gc: add 'help' option to list all available GC
[nit.git] / c_src / nitc._tables.c
index 85b5d6d..b56f56a 100644 (file)
@@ -7,22 +7,25 @@
 #include "parser_prod._sep.h"
 #include "lexer._sep.h"
 #include "parser_nodes._sep.h"
+#include "location._sep.h"
 #include "standard._sep.h"
 #include "environ._sep.h"
 #include "symbol._sep.h"
-#include "hash._sep.h"
 #include "string._sep.h"
-#include "array._sep.h"
+#include "collection._sep.h"
+#include "range._sep.h"
 #include "abstract_collection._sep.h"
 #include "kernel._sep.h"
-#include "time._sep.h"
+#include "list._sep.h"
 #include "sorter._sep.h"
+#include "array._sep.h"
+#include "hash_collection._sep.h"
+#include "hash._sep.h"
+#include "time._sep.h"
 #include "file._sep.h"
 #include "stream._sep.h"
 #include "string_search._sep.h"
 #include "exec._sep.h"
-#include "list._sep.h"
-#include "range._sep.h"
 #include "math._sep.h"
 #include "parser_tables._sep.h"
 #include "mmloader._sep.h"
 #include "partial_order._sep.h"
 #include "virtualtype._sep.h"
 #include "opts._sep.h"
-#include "control_flow._sep.h"
+#include "icode_generation._sep.h"
+#include "icode._sep.h"
+#include "icode_tools._sep.h"
+#include "icode_builder._sep.h"
+#include "icode_base._sep.h"
 #include "typing._sep.h"
+#include "escape._sep.h"
+#include "control_flow._sep.h"
+#include "primitive_info._sep.h"
+#include "nit_version._sep.h"
 #include "compiling._sep.h"
 #include "compiling_global._sep.h"
-#include "compiling_methods._sep.h"
+#include "table_computation._sep.h"
+#include "program._sep.h"
+#include "compiling_icode._sep.h"
+#include "analysis._sep.h"
+#include "icode_dump._sep.h"
+#include "allocate_iregister_slots._sep.h"
+#include "inline_methods._sep.h"
 #include "compiling_base._sep.h"
 #include "utils._sep.h"
 #include "nitc._sep.h"
 #include <nit_common.h>
+#define LOCATE_INIT_ATTRIBUTES__NitCompiler "init var of NitCompiler"
+void INIT_ATTRIBUTES__NitCompiler(val_t p0);
+typedef void (*INIT_ATTRIBUTES__NitCompiler_t)(val_t p0);
+val_t NEW_NitCompiler(void);
+#define LOCATE_CHECKNEW_NitCompiler "check new NitCompiler"
+void CHECKNEW_NitCompiler(val_t p0);
+typedef void (*CHECKNEW_NitCompiler_t)(val_t p0);
+#define LOCATE_NEW_NitCompiler_nitc___NitCompiler___init "new NitCompiler nitc::NitCompiler::init"
+val_t NEW_NitCompiler_nitc___NitCompiler___init(void);
+typedef val_t (*NEW_NitCompiler_nitc___NitCompiler___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__Sys "init var of Sys"
+void INIT_ATTRIBUTES__Sys(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Sys_t)(val_t p0);
+val_t NEW_Sys(void);
+#define LOCATE_CHECKNEW_Sys "check new Sys"
+void CHECKNEW_Sys(val_t p0);
+typedef void (*CHECKNEW_Sys_t)(val_t p0);
+#define LOCATE_NEW_Sys_kernel___Sys___init "new Sys kernel::Sys::init"
+val_t NEW_Sys_kernel___Sys___init(void);
+typedef val_t (*NEW_Sys_kernel___Sys___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__Object "init var of Object"
+void INIT_ATTRIBUTES__Object(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Object_t)(val_t p0);
+val_t NEW_Object(void);
+#define LOCATE_CHECKNEW_Object "check new Object"
+void CHECKNEW_Object(val_t p0);
+typedef void (*CHECKNEW_Object_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Comparable "init var of Comparable"
+void INIT_ATTRIBUTES__Comparable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Comparable_t)(val_t p0);
+val_t NEW_Comparable(void);
+#define LOCATE_CHECKNEW_Comparable "check new Comparable"
+void CHECKNEW_Comparable(val_t p0);
+typedef void (*CHECKNEW_Comparable_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Discrete "init var of Discrete"
+void INIT_ATTRIBUTES__Discrete(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Discrete_t)(val_t p0);
+val_t NEW_Discrete(void);
+#define LOCATE_CHECKNEW_Discrete "check new Discrete"
+void CHECKNEW_Discrete(val_t p0);
+typedef void (*CHECKNEW_Discrete_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Collection "init var of Collection"
+void INIT_ATTRIBUTES__Collection(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Collection_t)(val_t p0);
+val_t NEW_Collection(void);
+#define LOCATE_CHECKNEW_Collection "check new Collection"
+void CHECKNEW_Collection(val_t p0);
+typedef void (*CHECKNEW_Collection_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__NaiveCollection "init var of NaiveCollection"
+void INIT_ATTRIBUTES__NaiveCollection(val_t p0);
+typedef void (*INIT_ATTRIBUTES__NaiveCollection_t)(val_t p0);
+val_t NEW_NaiveCollection(void);
+#define LOCATE_CHECKNEW_NaiveCollection "check new NaiveCollection"
+void CHECKNEW_NaiveCollection(val_t p0);
+typedef void (*CHECKNEW_NaiveCollection_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Iterator "init var of Iterator"
+void INIT_ATTRIBUTES__Iterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Iterator_t)(val_t p0);
+val_t NEW_Iterator(void);
+#define LOCATE_CHECKNEW_Iterator "check new Iterator"
+void CHECKNEW_Iterator(val_t p0);
+typedef void (*CHECKNEW_Iterator_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Container "init var of Container"
+void INIT_ATTRIBUTES__Container(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Container_t)(val_t p0);
+val_t NEW_Container(void);
+#define LOCATE_CHECKNEW_Container "check new Container"
+void CHECKNEW_Container(val_t p0);
+typedef void (*CHECKNEW_Container_t)(val_t p0);
+#define LOCATE_NEW_Container_abstract_collection___Container___init "new Container abstract_collection::Container::init"
+val_t NEW_Container_abstract_collection___Container___init(val_t p0);
+typedef val_t (*NEW_Container_abstract_collection___Container___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ContainerIterator "init var of ContainerIterator"
+void INIT_ATTRIBUTES__ContainerIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ContainerIterator_t)(val_t p0);
+val_t NEW_ContainerIterator(void);
+#define LOCATE_CHECKNEW_ContainerIterator "check new ContainerIterator"
+void CHECKNEW_ContainerIterator(val_t p0);
+typedef void (*CHECKNEW_ContainerIterator_t)(val_t p0);
+#define LOCATE_NEW_ContainerIterator_abstract_collection___ContainerIterator___init "new ContainerIterator abstract_collection::ContainerIterator::init"
+val_t NEW_ContainerIterator_abstract_collection___ContainerIterator___init(val_t p0);
+typedef val_t (*NEW_ContainerIterator_abstract_collection___ContainerIterator___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__RemovableCollection "init var of RemovableCollection"
+void INIT_ATTRIBUTES__RemovableCollection(val_t p0);
+typedef void (*INIT_ATTRIBUTES__RemovableCollection_t)(val_t p0);
+val_t NEW_RemovableCollection(void);
+#define LOCATE_CHECKNEW_RemovableCollection "check new RemovableCollection"
+void CHECKNEW_RemovableCollection(val_t p0);
+typedef void (*CHECKNEW_RemovableCollection_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__SimpleCollection "init var of SimpleCollection"
+void INIT_ATTRIBUTES__SimpleCollection(val_t p0);
+typedef void (*INIT_ATTRIBUTES__SimpleCollection_t)(val_t p0);
+val_t NEW_SimpleCollection(void);
+#define LOCATE_CHECKNEW_SimpleCollection "check new SimpleCollection"
+void CHECKNEW_SimpleCollection(val_t p0);
+typedef void (*CHECKNEW_SimpleCollection_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Set "init var of Set"
+void INIT_ATTRIBUTES__Set(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Set_t)(val_t p0);
+val_t NEW_Set(void);
+#define LOCATE_CHECKNEW_Set "check new Set"
+void CHECKNEW_Set(val_t p0);
+typedef void (*CHECKNEW_Set_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__MapRead "init var of MapRead"
+void INIT_ATTRIBUTES__MapRead(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MapRead_t)(val_t p0);
+val_t NEW_MapRead(void);
+#define LOCATE_CHECKNEW_MapRead "check new MapRead"
+void CHECKNEW_MapRead(val_t p0);
+typedef void (*CHECKNEW_MapRead_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Map "init var of Map"
+void INIT_ATTRIBUTES__Map(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Map_t)(val_t p0);
+val_t NEW_Map(void);
+#define LOCATE_CHECKNEW_Map "check new Map"
+void CHECKNEW_Map(val_t p0);
+typedef void (*CHECKNEW_Map_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__MapIterator "init var of MapIterator"
+void INIT_ATTRIBUTES__MapIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MapIterator_t)(val_t p0);
+val_t NEW_MapIterator(void);
+#define LOCATE_CHECKNEW_MapIterator "check new MapIterator"
+void CHECKNEW_MapIterator(val_t p0);
+typedef void (*CHECKNEW_MapIterator_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__SequenceRead "init var of SequenceRead"
+void INIT_ATTRIBUTES__SequenceRead(val_t p0);
+typedef void (*INIT_ATTRIBUTES__SequenceRead_t)(val_t p0);
+val_t NEW_SequenceRead(void);
+#define LOCATE_CHECKNEW_SequenceRead "check new SequenceRead"
+void CHECKNEW_SequenceRead(val_t p0);
+typedef void (*CHECKNEW_SequenceRead_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Sequence "init var of Sequence"
+void INIT_ATTRIBUTES__Sequence(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Sequence_t)(val_t p0);
+val_t NEW_Sequence(void);
+#define LOCATE_CHECKNEW_Sequence "check new Sequence"
+void CHECKNEW_Sequence(val_t p0);
+typedef void (*CHECKNEW_Sequence_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IndexedIterator "init var of IndexedIterator"
+void INIT_ATTRIBUTES__IndexedIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IndexedIterator_t)(val_t p0);
+val_t NEW_IndexedIterator(void);
+#define LOCATE_CHECKNEW_IndexedIterator "check new IndexedIterator"
+void CHECKNEW_IndexedIterator(val_t p0);
+typedef void (*CHECKNEW_IndexedIterator_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__CoupleMap "init var of CoupleMap"
+void INIT_ATTRIBUTES__CoupleMap(val_t p0);
+typedef void (*INIT_ATTRIBUTES__CoupleMap_t)(val_t p0);
+val_t NEW_CoupleMap(void);
+#define LOCATE_CHECKNEW_CoupleMap "check new CoupleMap"
+void CHECKNEW_CoupleMap(val_t p0);
+typedef void (*CHECKNEW_CoupleMap_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__CoupleMapIterator "init var of CoupleMapIterator"
+void INIT_ATTRIBUTES__CoupleMapIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__CoupleMapIterator_t)(val_t p0);
+val_t NEW_CoupleMapIterator(void);
+#define LOCATE_CHECKNEW_CoupleMapIterator "check new CoupleMapIterator"
+void CHECKNEW_CoupleMapIterator(val_t p0);
+typedef void (*CHECKNEW_CoupleMapIterator_t)(val_t p0);
+#define LOCATE_NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init "new CoupleMapIterator abstract_collection::CoupleMapIterator::init"
+val_t NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init(val_t p0);
+typedef val_t (*NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Couple "init var of Couple"
+void INIT_ATTRIBUTES__Couple(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Couple_t)(val_t p0);
+val_t NEW_Couple(void);
+#define LOCATE_CHECKNEW_Couple "check new Couple"
+void CHECKNEW_Couple(val_t p0);
+typedef void (*CHECKNEW_Couple_t)(val_t p0);
+#define LOCATE_NEW_Couple_abstract_collection___Couple___init "new Couple abstract_collection::Couple::init"
+val_t NEW_Couple_abstract_collection___Couple___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Couple_abstract_collection___Couple___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__Range "init var of Range"
+void INIT_ATTRIBUTES__Range(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Range_t)(val_t p0);
+val_t NEW_Range(void);
+#define LOCATE_CHECKNEW_Range "check new Range"
+void CHECKNEW_Range(val_t p0);
+typedef void (*CHECKNEW_Range_t)(val_t p0);
+#define LOCATE_NEW_Range_range___Range___init "new Range range::Range::init"
+val_t NEW_Range_range___Range___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Range_range___Range___init_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_Range_range___Range___without_last "new Range range::Range::without_last"
+val_t NEW_Range_range___Range___without_last(val_t p0, val_t p1);
+typedef val_t (*NEW_Range_range___Range___without_last_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IteratorRange "init var of IteratorRange"
+void INIT_ATTRIBUTES__IteratorRange(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IteratorRange_t)(val_t p0);
+val_t NEW_IteratorRange(void);
+#define LOCATE_CHECKNEW_IteratorRange "check new IteratorRange"
+void CHECKNEW_IteratorRange(val_t p0);
+typedef void (*CHECKNEW_IteratorRange_t)(val_t p0);
+#define LOCATE_NEW_IteratorRange_range___IteratorRange___init "new IteratorRange range::IteratorRange::init"
+val_t NEW_IteratorRange_range___IteratorRange___init(val_t p0);
+typedef val_t (*NEW_IteratorRange_range___IteratorRange___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__List "init var of List"
+void INIT_ATTRIBUTES__List(val_t p0);
+typedef void (*INIT_ATTRIBUTES__List_t)(val_t p0);
+val_t NEW_List(void);
+#define LOCATE_CHECKNEW_List "check new List"
+void CHECKNEW_List(val_t p0);
+typedef void (*CHECKNEW_List_t)(val_t p0);
+#define LOCATE_NEW_List_list___List___init "new List list::List::init"
+val_t NEW_List_list___List___init(void);
+typedef val_t (*NEW_List_list___List___init_t)(void);
+#define LOCATE_NEW_List_list___List___from "new List list::List::from"
+val_t NEW_List_list___List___from(val_t p0);
+typedef val_t (*NEW_List_list___List___from_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ListIterator "init var of ListIterator"
+void INIT_ATTRIBUTES__ListIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ListIterator_t)(val_t p0);
+val_t NEW_ListIterator(void);
+#define LOCATE_CHECKNEW_ListIterator "check new ListIterator"
+void CHECKNEW_ListIterator(val_t p0);
+typedef void (*CHECKNEW_ListIterator_t)(val_t p0);
+#define LOCATE_NEW_ListIterator_list___ListIterator___init "new ListIterator list::ListIterator::init"
+val_t NEW_ListIterator_list___ListIterator___init(val_t p0);
+typedef val_t (*NEW_ListIterator_list___ListIterator___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ListNode "init var of ListNode"
+void INIT_ATTRIBUTES__ListNode(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ListNode_t)(val_t p0);
+val_t NEW_ListNode(void);
+#define LOCATE_CHECKNEW_ListNode "check new ListNode"
+void CHECKNEW_ListNode(val_t p0);
+typedef void (*CHECKNEW_ListNode_t)(val_t p0);
+#define LOCATE_NEW_ListNode_list___ListNode___init "new ListNode list::ListNode::init"
+val_t NEW_ListNode_list___ListNode___init(val_t p0);
+typedef val_t (*NEW_ListNode_list___ListNode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AbstractArrayRead "init var of AbstractArrayRead"
+void INIT_ATTRIBUTES__AbstractArrayRead(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AbstractArrayRead_t)(val_t p0);
+val_t NEW_AbstractArrayRead(void);
+#define LOCATE_CHECKNEW_AbstractArrayRead "check new AbstractArrayRead"
+void CHECKNEW_AbstractArrayRead(val_t p0);
+typedef void (*CHECKNEW_AbstractArrayRead_t)(val_t p0);
+#define LOCATE_NEW_AbstractArrayRead_array___AbstractArrayRead___init "new AbstractArrayRead array::AbstractArrayRead::init"
+val_t NEW_AbstractArrayRead_array___AbstractArrayRead___init(void);
+typedef val_t (*NEW_AbstractArrayRead_array___AbstractArrayRead___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__AbstractArray "init var of AbstractArray"
+void INIT_ATTRIBUTES__AbstractArray(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AbstractArray_t)(val_t p0);
+val_t NEW_AbstractArray(void);
+#define LOCATE_CHECKNEW_AbstractArray "check new AbstractArray"
+void CHECKNEW_AbstractArray(val_t p0);
+typedef void (*CHECKNEW_AbstractArray_t)(val_t p0);
+#define LOCATE_NEW_AbstractArray_array___AbstractArrayRead___init "new AbstractArray array::AbstractArrayRead::init"
+val_t NEW_AbstractArray_array___AbstractArrayRead___init(void);
+typedef val_t (*NEW_AbstractArray_array___AbstractArrayRead___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__Array "init var of Array"
+void INIT_ATTRIBUTES__Array(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Array_t)(val_t p0);
+val_t NEW_Array(void);
+#define LOCATE_CHECKNEW_Array "check new Array"
+void CHECKNEW_Array(val_t p0);
+typedef void (*CHECKNEW_Array_t)(val_t p0);
+#define LOCATE_NEW_Array_array___Array___init "new Array array::Array::init"
+val_t NEW_Array_array___Array___init(void);
+typedef val_t (*NEW_Array_array___Array___init_t)(void);
+#define LOCATE_NEW_Array_array___Array___with_items "new Array array::Array::with_items"
+val_t NEW_Array_array___Array___with_items(val_t p0);
+typedef val_t (*NEW_Array_array___Array___with_items_t)(val_t p0);
+#define LOCATE_NEW_Array_array___Array___with_capacity "new Array array::Array::with_capacity"
+val_t NEW_Array_array___Array___with_capacity(val_t p0);
+typedef val_t (*NEW_Array_array___Array___with_capacity_t)(val_t p0);
+#define LOCATE_NEW_Array_array___Array___filled_with "new Array array::Array::filled_with"
+val_t NEW_Array_array___Array___filled_with(val_t p0, val_t p1);
+typedef val_t (*NEW_Array_array___Array___filled_with_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_Array_array___Array___with_native "new Array array::Array::with_native"
+val_t NEW_Array_array___Array___with_native(val_t p0, val_t p1);
+typedef val_t (*NEW_Array_array___Array___with_native_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ArrayIterator "init var of ArrayIterator"
+void INIT_ATTRIBUTES__ArrayIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ArrayIterator_t)(val_t p0);
+val_t NEW_ArrayIterator(void);
+#define LOCATE_CHECKNEW_ArrayIterator "check new ArrayIterator"
+void CHECKNEW_ArrayIterator(val_t p0);
+typedef void (*CHECKNEW_ArrayIterator_t)(val_t p0);
+#define LOCATE_NEW_ArrayIterator_array___ArrayIterator___init "new ArrayIterator array::ArrayIterator::init"
+val_t NEW_ArrayIterator_array___ArrayIterator___init(val_t p0);
+typedef val_t (*NEW_ArrayIterator_array___ArrayIterator___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ArraySet "init var of ArraySet"
+void INIT_ATTRIBUTES__ArraySet(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ArraySet_t)(val_t p0);
+val_t NEW_ArraySet(void);
+#define LOCATE_CHECKNEW_ArraySet "check new ArraySet"
+void CHECKNEW_ArraySet(val_t p0);
+typedef void (*CHECKNEW_ArraySet_t)(val_t p0);
+#define LOCATE_NEW_ArraySet_array___ArraySet___init "new ArraySet array::ArraySet::init"
+val_t NEW_ArraySet_array___ArraySet___init(void);
+typedef val_t (*NEW_ArraySet_array___ArraySet___init_t)(void);
+#define LOCATE_NEW_ArraySet_array___ArraySet___with_capacity "new ArraySet array::ArraySet::with_capacity"
+val_t NEW_ArraySet_array___ArraySet___with_capacity(val_t p0);
+typedef val_t (*NEW_ArraySet_array___ArraySet___with_capacity_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ArraySetIterator "init var of ArraySetIterator"
+void INIT_ATTRIBUTES__ArraySetIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ArraySetIterator_t)(val_t p0);
+val_t NEW_ArraySetIterator(void);
+#define LOCATE_CHECKNEW_ArraySetIterator "check new ArraySetIterator"
+void CHECKNEW_ArraySetIterator(val_t p0);
+typedef void (*CHECKNEW_ArraySetIterator_t)(val_t p0);
+#define LOCATE_NEW_ArraySetIterator_array___ArraySetIterator___init "new ArraySetIterator array::ArraySetIterator::init"
+val_t NEW_ArraySetIterator_array___ArraySetIterator___init(val_t p0);
+typedef val_t (*NEW_ArraySetIterator_array___ArraySetIterator___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ArrayMap "init var of ArrayMap"
+void INIT_ATTRIBUTES__ArrayMap(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ArrayMap_t)(val_t p0);
+val_t NEW_ArrayMap(void);
+#define LOCATE_CHECKNEW_ArrayMap "check new ArrayMap"
+void CHECKNEW_ArrayMap(val_t p0);
+typedef void (*CHECKNEW_ArrayMap_t)(val_t p0);
+#define LOCATE_NEW_ArrayMap_array___ArrayMap___init "new ArrayMap array::ArrayMap::init"
+val_t NEW_ArrayMap_array___ArrayMap___init(void);
+typedef val_t (*NEW_ArrayMap_array___ArrayMap___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ArrayCapable "init var of ArrayCapable"
+void INIT_ATTRIBUTES__ArrayCapable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ArrayCapable_t)(val_t p0);
+val_t NEW_ArrayCapable(void);
+#define LOCATE_CHECKNEW_ArrayCapable "check new ArrayCapable"
+void CHECKNEW_ArrayCapable(val_t p0);
+typedef void (*CHECKNEW_ArrayCapable_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AbstractSorter "init var of AbstractSorter"
+void INIT_ATTRIBUTES__AbstractSorter(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AbstractSorter_t)(val_t p0);
+val_t NEW_AbstractSorter(void);
+#define LOCATE_CHECKNEW_AbstractSorter "check new AbstractSorter"
+void CHECKNEW_AbstractSorter(val_t p0);
+typedef void (*CHECKNEW_AbstractSorter_t)(val_t p0);
+#define LOCATE_NEW_AbstractSorter_sorter___AbstractSorter___init "new AbstractSorter sorter::AbstractSorter::init"
+val_t NEW_AbstractSorter_sorter___AbstractSorter___init(void);
+typedef val_t (*NEW_AbstractSorter_sorter___AbstractSorter___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ComparableSorter "init var of ComparableSorter"
+void INIT_ATTRIBUTES__ComparableSorter(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ComparableSorter_t)(val_t p0);
+val_t NEW_ComparableSorter(void);
+#define LOCATE_CHECKNEW_ComparableSorter "check new ComparableSorter"
+void CHECKNEW_ComparableSorter(val_t p0);
+typedef void (*CHECKNEW_ComparableSorter_t)(val_t p0);
+#define LOCATE_NEW_ComparableSorter_sorter___ComparableSorter___init "new ComparableSorter sorter::ComparableSorter::init"
+val_t NEW_ComparableSorter_sorter___ComparableSorter___init(void);
+typedef val_t (*NEW_ComparableSorter_sorter___ComparableSorter___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__HashCollection "init var of HashCollection"
+void INIT_ATTRIBUTES__HashCollection(val_t p0);
+typedef void (*INIT_ATTRIBUTES__HashCollection_t)(val_t p0);
+val_t NEW_HashCollection(void);
+#define LOCATE_CHECKNEW_HashCollection "check new HashCollection"
+void CHECKNEW_HashCollection(val_t p0);
+typedef void (*CHECKNEW_HashCollection_t)(val_t p0);
+#define LOCATE_NEW_HashCollection_hash_collection___HashCollection___init "new HashCollection hash_collection::HashCollection::init"
+val_t NEW_HashCollection_hash_collection___HashCollection___init(void);
+typedef val_t (*NEW_HashCollection_hash_collection___HashCollection___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__HashNode "init var of HashNode"
+void INIT_ATTRIBUTES__HashNode(val_t p0);
+typedef void (*INIT_ATTRIBUTES__HashNode_t)(val_t p0);
+val_t NEW_HashNode(void);
+#define LOCATE_CHECKNEW_HashNode "check new HashNode"
+void CHECKNEW_HashNode(val_t p0);
+typedef void (*CHECKNEW_HashNode_t)(val_t p0);
+#define LOCATE_NEW_HashNode_hash_collection___HashNode___init "new HashNode hash_collection::HashNode::init"
+val_t NEW_HashNode_hash_collection___HashNode___init(void);
+typedef val_t (*NEW_HashNode_hash_collection___HashNode___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__HashMap "init var of HashMap"
+void INIT_ATTRIBUTES__HashMap(val_t p0);
+typedef void (*INIT_ATTRIBUTES__HashMap_t)(val_t p0);
+val_t NEW_HashMap(void);
+#define LOCATE_CHECKNEW_HashMap "check new HashMap"
+void CHECKNEW_HashMap(val_t p0);
+typedef void (*CHECKNEW_HashMap_t)(val_t p0);
+#define LOCATE_NEW_HashMap_hash_collection___HashMap___init "new HashMap hash_collection::HashMap::init"
+val_t NEW_HashMap_hash_collection___HashMap___init(void);
+typedef val_t (*NEW_HashMap_hash_collection___HashMap___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__HashMapNode "init var of HashMapNode"
+void INIT_ATTRIBUTES__HashMapNode(val_t p0);
+typedef void (*INIT_ATTRIBUTES__HashMapNode_t)(val_t p0);
+val_t NEW_HashMapNode(void);
+#define LOCATE_CHECKNEW_HashMapNode "check new HashMapNode"
+void CHECKNEW_HashMapNode(val_t p0);
+typedef void (*CHECKNEW_HashMapNode_t)(val_t p0);
+#define LOCATE_NEW_HashMapNode_hash_collection___HashMapNode___init "new HashMapNode hash_collection::HashMapNode::init"
+val_t NEW_HashMapNode_hash_collection___HashMapNode___init(val_t p0, val_t p1);
+typedef val_t (*NEW_HashMapNode_hash_collection___HashMapNode___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__HashMapIterator "init var of HashMapIterator"
+void INIT_ATTRIBUTES__HashMapIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__HashMapIterator_t)(val_t p0);
+val_t NEW_HashMapIterator(void);
+#define LOCATE_CHECKNEW_HashMapIterator "check new HashMapIterator"
+void CHECKNEW_HashMapIterator(val_t p0);
+typedef void (*CHECKNEW_HashMapIterator_t)(val_t p0);
+#define LOCATE_NEW_HashMapIterator_hash_collection___HashMapIterator___init "new HashMapIterator hash_collection::HashMapIterator::init"
+val_t NEW_HashMapIterator_hash_collection___HashMapIterator___init(val_t p0);
+typedef val_t (*NEW_HashMapIterator_hash_collection___HashMapIterator___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__HashSet "init var of HashSet"
+void INIT_ATTRIBUTES__HashSet(val_t p0);
+typedef void (*INIT_ATTRIBUTES__HashSet_t)(val_t p0);
+val_t NEW_HashSet(void);
+#define LOCATE_CHECKNEW_HashSet "check new HashSet"
+void CHECKNEW_HashSet(val_t p0);
+typedef void (*CHECKNEW_HashSet_t)(val_t p0);
+#define LOCATE_NEW_HashSet_hash_collection___HashSet___init "new HashSet hash_collection::HashSet::init"
+val_t NEW_HashSet_hash_collection___HashSet___init(void);
+typedef val_t (*NEW_HashSet_hash_collection___HashSet___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__HashSetNode "init var of HashSetNode"
+void INIT_ATTRIBUTES__HashSetNode(val_t p0);
+typedef void (*INIT_ATTRIBUTES__HashSetNode_t)(val_t p0);
+val_t NEW_HashSetNode(void);
+#define LOCATE_CHECKNEW_HashSetNode "check new HashSetNode"
+void CHECKNEW_HashSetNode(val_t p0);
+typedef void (*CHECKNEW_HashSetNode_t)(val_t p0);
+#define LOCATE_NEW_HashSetNode_hash_collection___HashSetNode___init "new HashSetNode hash_collection::HashSetNode::init"
+val_t NEW_HashSetNode_hash_collection___HashSetNode___init(val_t p0);
+typedef val_t (*NEW_HashSetNode_hash_collection___HashSetNode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__HashSetIterator "init var of HashSetIterator"
+void INIT_ATTRIBUTES__HashSetIterator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__HashSetIterator_t)(val_t p0);
+val_t NEW_HashSetIterator(void);
+#define LOCATE_CHECKNEW_HashSetIterator "check new HashSetIterator"
+void CHECKNEW_HashSetIterator(val_t p0);
+typedef void (*CHECKNEW_HashSetIterator_t)(val_t p0);
+#define LOCATE_NEW_HashSetIterator_hash_collection___HashSetIterator___init "new HashSetIterator hash_collection::HashSetIterator::init"
+val_t NEW_HashSetIterator_hash_collection___HashSetIterator___init(val_t p0);
+typedef val_t (*NEW_HashSetIterator_hash_collection___HashSetIterator___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AbstractString "init var of AbstractString"
+void INIT_ATTRIBUTES__AbstractString(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AbstractString_t)(val_t p0);
+val_t NEW_AbstractString(void);
+#define LOCATE_CHECKNEW_AbstractString "check new AbstractString"
+void CHECKNEW_AbstractString(val_t p0);
+typedef void (*CHECKNEW_AbstractString_t)(val_t p0);
+#define LOCATE_NEW_AbstractString_array___AbstractArrayRead___init "new AbstractString array::AbstractArrayRead::init"
+val_t NEW_AbstractString_array___AbstractArrayRead___init(void);
+typedef val_t (*NEW_AbstractString_array___AbstractArrayRead___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__String "init var of String"
+void INIT_ATTRIBUTES__String(val_t p0);
+typedef void (*INIT_ATTRIBUTES__String_t)(val_t p0);
+val_t NEW_String(void);
+#define LOCATE_CHECKNEW_String "check new String"
+void CHECKNEW_String(val_t p0);
+typedef void (*CHECKNEW_String_t)(val_t p0);
+#define LOCATE_NEW_String_string___String___with_native "new String string::String::with_native"
+val_t NEW_String_string___String___with_native(val_t p0, val_t p1);
+typedef val_t (*NEW_String_string___String___with_native_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_String_string___String___from_cstring "new String string::String::from_cstring"
+val_t NEW_String_string___String___from_cstring(val_t p0);
+typedef val_t (*NEW_String_string___String___from_cstring_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Buffer "init var of Buffer"
+void INIT_ATTRIBUTES__Buffer(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Buffer_t)(val_t p0);
+val_t NEW_Buffer(void);
+#define LOCATE_CHECKNEW_Buffer "check new Buffer"
+void CHECKNEW_Buffer(val_t p0);
+typedef void (*CHECKNEW_Buffer_t)(val_t p0);
+#define LOCATE_NEW_Buffer_string___Buffer___init "new Buffer string::Buffer::init"
+val_t NEW_Buffer_string___Buffer___init(void);
+typedef val_t (*NEW_Buffer_string___Buffer___init_t)(void);
+#define LOCATE_NEW_Buffer_string___Buffer___from "new Buffer string::Buffer::from"
+val_t NEW_Buffer_string___Buffer___from(val_t p0);
+typedef val_t (*NEW_Buffer_string___Buffer___from_t)(val_t p0);
+#define LOCATE_NEW_Buffer_string___Buffer___with_capacity "new Buffer string::Buffer::with_capacity"
+val_t NEW_Buffer_string___Buffer___with_capacity(val_t p0);
+typedef val_t (*NEW_Buffer_string___Buffer___with_capacity_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__StringCapable "init var of StringCapable"
+void INIT_ATTRIBUTES__StringCapable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__StringCapable_t)(val_t p0);
+val_t NEW_StringCapable(void);
+#define LOCATE_CHECKNEW_StringCapable "check new StringCapable"
+void CHECKNEW_StringCapable(val_t p0);
+typedef void (*CHECKNEW_StringCapable_t)(val_t p0);
+#define LOCATE_NEW_StringCapable_string___StringCapable___init "new StringCapable string::StringCapable::init"
+val_t NEW_StringCapable_string___StringCapable___init(void);
+typedef val_t (*NEW_StringCapable_string___StringCapable___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__Symbol "init var of Symbol"
+void INIT_ATTRIBUTES__Symbol(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Symbol_t)(val_t p0);
+val_t NEW_Symbol(void);
+#define LOCATE_CHECKNEW_Symbol "check new Symbol"
+void CHECKNEW_Symbol(val_t p0);
+typedef void (*CHECKNEW_Symbol_t)(val_t p0);
+#define LOCATE_NEW_Symbol_symbol___Symbol___init "new Symbol symbol::Symbol::init"
+val_t NEW_Symbol_symbol___Symbol___init(val_t p0);
+typedef val_t (*NEW_Symbol_symbol___Symbol___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IOS "init var of IOS"
+void INIT_ATTRIBUTES__IOS(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IOS_t)(val_t p0);
+val_t NEW_IOS(void);
+#define LOCATE_CHECKNEW_IOS "check new IOS"
+void CHECKNEW_IOS(val_t p0);
+typedef void (*CHECKNEW_IOS_t)(val_t p0);
+#define LOCATE_NEW_IOS_stream___IOS___init "new IOS stream::IOS::init"
+val_t NEW_IOS_stream___IOS___init(void);
+typedef val_t (*NEW_IOS_stream___IOS___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__IStream "init var of IStream"
+void INIT_ATTRIBUTES__IStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IStream_t)(val_t p0);
+val_t NEW_IStream(void);
+#define LOCATE_CHECKNEW_IStream "check new IStream"
+void CHECKNEW_IStream(val_t p0);
+typedef void (*CHECKNEW_IStream_t)(val_t p0);
+#define LOCATE_NEW_IStream_stream___IOS___init "new IStream stream::IOS::init"
+val_t NEW_IStream_stream___IOS___init(void);
+typedef val_t (*NEW_IStream_stream___IOS___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__OStream "init var of OStream"
+void INIT_ATTRIBUTES__OStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OStream_t)(val_t p0);
+val_t NEW_OStream(void);
+#define LOCATE_CHECKNEW_OStream "check new OStream"
+void CHECKNEW_OStream(val_t p0);
+typedef void (*CHECKNEW_OStream_t)(val_t p0);
+#define LOCATE_NEW_OStream_stream___IOS___init "new OStream stream::IOS::init"
+val_t NEW_OStream_stream___IOS___init(void);
+typedef val_t (*NEW_OStream_stream___IOS___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__BufferedIStream "init var of BufferedIStream"
+void INIT_ATTRIBUTES__BufferedIStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__BufferedIStream_t)(val_t p0);
+val_t NEW_BufferedIStream(void);
+#define LOCATE_CHECKNEW_BufferedIStream "check new BufferedIStream"
+void CHECKNEW_BufferedIStream(val_t p0);
+typedef void (*CHECKNEW_BufferedIStream_t)(val_t p0);
+#define LOCATE_NEW_BufferedIStream_stream___IOS___init "new BufferedIStream stream::IOS::init"
+val_t NEW_BufferedIStream_stream___IOS___init(void);
+typedef val_t (*NEW_BufferedIStream_stream___IOS___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__IOStream "init var of IOStream"
+void INIT_ATTRIBUTES__IOStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IOStream_t)(val_t p0);
+val_t NEW_IOStream(void);
+#define LOCATE_CHECKNEW_IOStream "check new IOStream"
+void CHECKNEW_IOStream(val_t p0);
+typedef void (*CHECKNEW_IOStream_t)(val_t p0);
+#define LOCATE_NEW_IOStream_stream___IOS___init "new IOStream stream::IOS::init"
+val_t NEW_IOStream_stream___IOS___init(void);
+typedef val_t (*NEW_IOStream_stream___IOS___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__FDStream "init var of FDStream"
+void INIT_ATTRIBUTES__FDStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__FDStream_t)(val_t p0);
+val_t NEW_FDStream(void);
+#define LOCATE_CHECKNEW_FDStream "check new FDStream"
+void CHECKNEW_FDStream(val_t p0);
+typedef void (*CHECKNEW_FDStream_t)(val_t p0);
+#define LOCATE_NEW_FDStream_stream___FDStream___init "new FDStream stream::FDStream::init"
+val_t NEW_FDStream_stream___FDStream___init(val_t p0);
+typedef val_t (*NEW_FDStream_stream___FDStream___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__FDIStream "init var of FDIStream"
+void INIT_ATTRIBUTES__FDIStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__FDIStream_t)(val_t p0);
+val_t NEW_FDIStream(void);
+#define LOCATE_CHECKNEW_FDIStream "check new FDIStream"
+void CHECKNEW_FDIStream(val_t p0);
+typedef void (*CHECKNEW_FDIStream_t)(val_t p0);
+#define LOCATE_NEW_FDIStream_stream___FDIStream___init "new FDIStream stream::FDIStream::init"
+val_t NEW_FDIStream_stream___FDIStream___init(val_t p0);
+typedef val_t (*NEW_FDIStream_stream___FDIStream___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__FDOStream "init var of FDOStream"
+void INIT_ATTRIBUTES__FDOStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__FDOStream_t)(val_t p0);
+val_t NEW_FDOStream(void);
+#define LOCATE_CHECKNEW_FDOStream "check new FDOStream"
+void CHECKNEW_FDOStream(val_t p0);
+typedef void (*CHECKNEW_FDOStream_t)(val_t p0);
+#define LOCATE_NEW_FDOStream_stream___FDOStream___init "new FDOStream stream::FDOStream::init"
+val_t NEW_FDOStream_stream___FDOStream___init(val_t p0);
+typedef val_t (*NEW_FDOStream_stream___FDOStream___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__FDIOStream "init var of FDIOStream"
+void INIT_ATTRIBUTES__FDIOStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__FDIOStream_t)(val_t p0);
+val_t NEW_FDIOStream(void);
+#define LOCATE_CHECKNEW_FDIOStream "check new FDIOStream"
+void CHECKNEW_FDIOStream(val_t p0);
+typedef void (*CHECKNEW_FDIOStream_t)(val_t p0);
+#define LOCATE_NEW_FDIOStream_stream___FDIOStream___init "new FDIOStream stream::FDIOStream::init"
+val_t NEW_FDIOStream_stream___FDIOStream___init(val_t p0);
+typedef val_t (*NEW_FDIOStream_stream___FDIOStream___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Pattern "init var of Pattern"
+void INIT_ATTRIBUTES__Pattern(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Pattern_t)(val_t p0);
+val_t NEW_Pattern(void);
+#define LOCATE_CHECKNEW_Pattern "check new Pattern"
+void CHECKNEW_Pattern(val_t p0);
+typedef void (*CHECKNEW_Pattern_t)(val_t p0);
+#define LOCATE_NEW_Pattern_string_search___Pattern___init "new Pattern string_search::Pattern::init"
+val_t NEW_Pattern_string_search___Pattern___init(void);
+typedef val_t (*NEW_Pattern_string_search___Pattern___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__BM_Pattern "init var of BM_Pattern"
+void INIT_ATTRIBUTES__BM_Pattern(val_t p0);
+typedef void (*INIT_ATTRIBUTES__BM_Pattern_t)(val_t p0);
+val_t NEW_BM_Pattern(void);
+#define LOCATE_CHECKNEW_BM_Pattern "check new BM_Pattern"
+void CHECKNEW_BM_Pattern(val_t p0);
+typedef void (*CHECKNEW_BM_Pattern_t)(val_t p0);
+#define LOCATE_NEW_BM_Pattern_string_search___BM_Pattern___init "new BM_Pattern string_search::BM_Pattern::init"
+val_t NEW_BM_Pattern_string_search___BM_Pattern___init(val_t p0);
+typedef val_t (*NEW_BM_Pattern_string_search___BM_Pattern___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Match "init var of Match"
+void INIT_ATTRIBUTES__Match(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Match_t)(val_t p0);
+val_t NEW_Match(void);
+#define LOCATE_CHECKNEW_Match "check new Match"
+void CHECKNEW_Match(val_t p0);
+typedef void (*CHECKNEW_Match_t)(val_t p0);
+#define LOCATE_NEW_Match_string_search___Match___init "new Match string_search::Match::init"
+val_t NEW_Match_string_search___Match___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_Match_string_search___Match___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__FStream "init var of FStream"
+void INIT_ATTRIBUTES__FStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__FStream_t)(val_t p0);
+val_t NEW_FStream(void);
+#define LOCATE_CHECKNEW_FStream "check new FStream"
+void CHECKNEW_FStream(val_t p0);
+typedef void (*CHECKNEW_FStream_t)(val_t p0);
+#define LOCATE_NEW_FStream_stream___IOS___init "new FStream stream::IOS::init"
+val_t NEW_FStream_stream___IOS___init(void);
+typedef val_t (*NEW_FStream_stream___IOS___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__IFStream "init var of IFStream"
+void INIT_ATTRIBUTES__IFStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IFStream_t)(val_t p0);
+val_t NEW_IFStream(void);
+#define LOCATE_CHECKNEW_IFStream "check new IFStream"
+void CHECKNEW_IFStream(val_t p0);
+typedef void (*CHECKNEW_IFStream_t)(val_t p0);
+#define LOCATE_NEW_IFStream_file___IFStream___open "new IFStream file::IFStream::open"
+val_t NEW_IFStream_file___IFStream___open(val_t p0);
+typedef val_t (*NEW_IFStream_file___IFStream___open_t)(val_t p0);
+#define LOCATE_NEW_IFStream_file___IFStream___init "new IFStream file::IFStream::init"
+val_t NEW_IFStream_file___IFStream___init(void);
+typedef val_t (*NEW_IFStream_file___IFStream___init_t)(void);
+#define LOCATE_NEW_IFStream_file___IFStream___without_file "new IFStream file::IFStream::without_file"
+val_t NEW_IFStream_file___IFStream___without_file(void);
+typedef val_t (*NEW_IFStream_file___IFStream___without_file_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__OFStream "init var of OFStream"
+void INIT_ATTRIBUTES__OFStream(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OFStream_t)(val_t p0);
+val_t NEW_OFStream(void);
+#define LOCATE_CHECKNEW_OFStream "check new OFStream"
+void CHECKNEW_OFStream(val_t p0);
+typedef void (*CHECKNEW_OFStream_t)(val_t p0);
+#define LOCATE_NEW_OFStream_file___OFStream___open "new OFStream file::OFStream::open"
+val_t NEW_OFStream_file___OFStream___open(val_t p0);
+typedef val_t (*NEW_OFStream_file___OFStream___open_t)(val_t p0);
+#define LOCATE_NEW_OFStream_file___OFStream___init "new OFStream file::OFStream::init"
+val_t NEW_OFStream_file___OFStream___init(void);
+typedef val_t (*NEW_OFStream_file___OFStream___init_t)(void);
+#define LOCATE_NEW_OFStream_file___OFStream___without_file "new OFStream file::OFStream::without_file"
+val_t NEW_OFStream_file___OFStream___without_file(void);
+typedef val_t (*NEW_OFStream_file___OFStream___without_file_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__Stdin "init var of Stdin"
+void INIT_ATTRIBUTES__Stdin(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Stdin_t)(val_t p0);
+val_t NEW_Stdin(void);
+#define LOCATE_CHECKNEW_Stdin "check new Stdin"
+void CHECKNEW_Stdin(val_t p0);
+typedef void (*CHECKNEW_Stdin_t)(val_t p0);
+#define LOCATE_NEW_Stdin_file___Stdin___init "new Stdin file::Stdin::init"
+val_t NEW_Stdin_file___Stdin___init(void);
+typedef val_t (*NEW_Stdin_file___Stdin___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__Stdout "init var of Stdout"
+void INIT_ATTRIBUTES__Stdout(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Stdout_t)(val_t p0);
+val_t NEW_Stdout(void);
+#define LOCATE_CHECKNEW_Stdout "check new Stdout"
+void CHECKNEW_Stdout(val_t p0);
+typedef void (*CHECKNEW_Stdout_t)(val_t p0);
+#define LOCATE_NEW_Stdout_file___Stdout___init "new Stdout file::Stdout::init"
+val_t NEW_Stdout_file___Stdout___init(void);
+typedef val_t (*NEW_Stdout_file___Stdout___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__Stderr "init var of Stderr"
+void INIT_ATTRIBUTES__Stderr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Stderr_t)(val_t p0);
+val_t NEW_Stderr(void);
+#define LOCATE_CHECKNEW_Stderr "check new Stderr"
+void CHECKNEW_Stderr(val_t p0);
+typedef void (*CHECKNEW_Stderr_t)(val_t p0);
+#define LOCATE_NEW_Stderr_file___Stderr___init "new Stderr file::Stderr::init"
+val_t NEW_Stderr_file___Stderr___init(void);
+typedef val_t (*NEW_Stderr_file___Stderr___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__NativeFileCapable "init var of NativeFileCapable"
+void INIT_ATTRIBUTES__NativeFileCapable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__NativeFileCapable_t)(val_t p0);
+val_t NEW_NativeFileCapable(void);
+#define LOCATE_CHECKNEW_NativeFileCapable "check new NativeFileCapable"
+void CHECKNEW_NativeFileCapable(val_t p0);
+typedef void (*CHECKNEW_NativeFileCapable_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Process "init var of Process"
+void INIT_ATTRIBUTES__Process(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Process_t)(val_t p0);
+val_t NEW_Process(void);
+#define LOCATE_CHECKNEW_Process "check new Process"
+void CHECKNEW_Process(val_t p0);
+typedef void (*CHECKNEW_Process_t)(val_t p0);
+#define LOCATE_NEW_Process_exec___Process___init "new Process exec::Process::init"
+val_t NEW_Process_exec___Process___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Process_exec___Process___init_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_Process_exec___Process___init_ "new Process exec::Process::init_"
+val_t NEW_Process_exec___Process___init_(val_t p0);
+typedef val_t (*NEW_Process_exec___Process___init__t)(val_t p0);
+#define LOCATE_NEW_Process_exec___Process___execute "new Process exec::Process::execute"
+val_t NEW_Process_exec___Process___execute(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_Process_exec___Process___execute_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__IProcess "init var of IProcess"
+void INIT_ATTRIBUTES__IProcess(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IProcess_t)(val_t p0);
+val_t NEW_IProcess(void);
+#define LOCATE_CHECKNEW_IProcess "check new IProcess"
+void CHECKNEW_IProcess(val_t p0);
+typedef void (*CHECKNEW_IProcess_t)(val_t p0);
+#define LOCATE_NEW_IProcess_exec___IProcess___init "new IProcess exec::IProcess::init"
+val_t NEW_IProcess_exec___IProcess___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IProcess_exec___IProcess___init_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_IProcess_exec___IProcess___init_ "new IProcess exec::IProcess::init_"
+val_t NEW_IProcess_exec___IProcess___init_(val_t p0);
+typedef val_t (*NEW_IProcess_exec___IProcess___init__t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__OProcess "init var of OProcess"
+void INIT_ATTRIBUTES__OProcess(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OProcess_t)(val_t p0);
+val_t NEW_OProcess(void);
+#define LOCATE_CHECKNEW_OProcess "check new OProcess"
+void CHECKNEW_OProcess(val_t p0);
+typedef void (*CHECKNEW_OProcess_t)(val_t p0);
+#define LOCATE_NEW_OProcess_exec___OProcess___init "new OProcess exec::OProcess::init"
+val_t NEW_OProcess_exec___OProcess___init(val_t p0, val_t p1);
+typedef val_t (*NEW_OProcess_exec___OProcess___init_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_OProcess_exec___OProcess___init_ "new OProcess exec::OProcess::init_"
+val_t NEW_OProcess_exec___OProcess___init_(val_t p0);
+typedef val_t (*NEW_OProcess_exec___OProcess___init__t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IOProcess "init var of IOProcess"
+void INIT_ATTRIBUTES__IOProcess(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IOProcess_t)(val_t p0);
+val_t NEW_IOProcess(void);
+#define LOCATE_CHECKNEW_IOProcess "check new IOProcess"
+void CHECKNEW_IOProcess(val_t p0);
+typedef void (*CHECKNEW_IOProcess_t)(val_t p0);
+#define LOCATE_NEW_IOProcess_exec___IOProcess___init "new IOProcess exec::IOProcess::init"
+val_t NEW_IOProcess_exec___IOProcess___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IOProcess_exec___IOProcess___init_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_IOProcess_exec___IOProcess___init_ "new IOProcess exec::IOProcess::init_"
+val_t NEW_IOProcess_exec___IOProcess___init_(val_t p0);
+typedef val_t (*NEW_IOProcess_exec___IOProcess___init__t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Location "init var of Location"
+void INIT_ATTRIBUTES__Location(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Location_t)(val_t p0);
+val_t NEW_Location(void);
+#define LOCATE_CHECKNEW_Location "check new Location"
+void CHECKNEW_Location(val_t p0);
+typedef void (*CHECKNEW_Location_t)(val_t p0);
+#define LOCATE_NEW_Location_location___Location___init "new Location location::Location::init"
+val_t NEW_Location_location___Location___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_Location_location___Location___init_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_NEW_Location_location___Location___with_file "new Location location::Location::with_file"
+val_t NEW_Location_location___Location___with_file(val_t p0);
+typedef val_t (*NEW_Location_location___Location___with_file_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ANode "init var of ANode"
+void INIT_ATTRIBUTES__ANode(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ANode_t)(val_t p0);
+val_t NEW_ANode(void);
+#define LOCATE_CHECKNEW_ANode "check new ANode"
+void CHECKNEW_ANode(val_t p0);
+typedef void (*CHECKNEW_ANode_t)(val_t p0);
+#define LOCATE_NEW_ANode_parser_nodes___ANode___init "new ANode parser_nodes::ANode::init"
+val_t NEW_ANode_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ANode_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Token "init var of Token"
+void INIT_ATTRIBUTES__Token(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Token_t)(val_t p0);
+val_t NEW_Token(void);
+#define LOCATE_CHECKNEW_Token "check new Token"
+void CHECKNEW_Token(val_t p0);
+typedef void (*CHECKNEW_Token_t)(val_t p0);
+#define LOCATE_NEW_Token_parser_nodes___ANode___init "new Token parser_nodes::ANode::init"
+val_t NEW_Token_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_Token_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Prod "init var of Prod"
+void INIT_ATTRIBUTES__Prod(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Prod_t)(val_t p0);
+val_t NEW_Prod(void);
+#define LOCATE_CHECKNEW_Prod "check new Prod"
+void CHECKNEW_Prod(val_t p0);
+typedef void (*CHECKNEW_Prod_t)(val_t p0);
+#define LOCATE_NEW_Prod_parser_nodes___ANode___init "new Prod parser_nodes::ANode::init"
+val_t NEW_Prod_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_Prod_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TEol "init var of TEol"
+void INIT_ATTRIBUTES__TEol(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TEol_t)(val_t p0);
+val_t NEW_TEol(void);
+#define LOCATE_CHECKNEW_TEol "check new TEol"
+void CHECKNEW_TEol(val_t p0);
+typedef void (*CHECKNEW_TEol_t)(val_t p0);
+#define LOCATE_NEW_TEol_parser_nodes___ANode___init "new TEol parser_nodes::ANode::init"
+val_t NEW_TEol_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TEol_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TEol_lexer___TEol___init_tk "new TEol lexer::TEol::init_tk"
+val_t NEW_TEol_lexer___TEol___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TEol_lexer___TEol___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TComment "init var of TComment"
+void INIT_ATTRIBUTES__TComment(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TComment_t)(val_t p0);
+val_t NEW_TComment(void);
+#define LOCATE_CHECKNEW_TComment "check new TComment"
+void CHECKNEW_TComment(val_t p0);
+typedef void (*CHECKNEW_TComment_t)(val_t p0);
+#define LOCATE_NEW_TComment_parser_nodes___ANode___init "new TComment parser_nodes::ANode::init"
+val_t NEW_TComment_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TComment_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TComment_lexer___TComment___init_tk "new TComment lexer::TComment::init_tk"
+val_t NEW_TComment_lexer___TComment___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TComment_lexer___TComment___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TKwpackage "init var of TKwpackage"
+void INIT_ATTRIBUTES__TKwpackage(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwpackage_t)(val_t p0);
+val_t NEW_TKwpackage(void);
+#define LOCATE_CHECKNEW_TKwpackage "check new TKwpackage"
+void CHECKNEW_TKwpackage(val_t p0);
+typedef void (*CHECKNEW_TKwpackage_t)(val_t p0);
+#define LOCATE_NEW_TKwpackage_parser_nodes___ANode___init "new TKwpackage parser_nodes::ANode::init"
+val_t NEW_TKwpackage_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwpackage_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwpackage_lexer___TKwpackage___init_tk "new TKwpackage lexer::TKwpackage::init_tk"
+val_t NEW_TKwpackage_lexer___TKwpackage___init_tk(val_t p0);
+typedef val_t (*NEW_TKwpackage_lexer___TKwpackage___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwimport "init var of TKwimport"
+void INIT_ATTRIBUTES__TKwimport(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwimport_t)(val_t p0);
+val_t NEW_TKwimport(void);
+#define LOCATE_CHECKNEW_TKwimport "check new TKwimport"
+void CHECKNEW_TKwimport(val_t p0);
+typedef void (*CHECKNEW_TKwimport_t)(val_t p0);
+#define LOCATE_NEW_TKwimport_parser_nodes___ANode___init "new TKwimport parser_nodes::ANode::init"
+val_t NEW_TKwimport_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwimport_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwimport_lexer___TKwimport___init_tk "new TKwimport lexer::TKwimport::init_tk"
+val_t NEW_TKwimport_lexer___TKwimport___init_tk(val_t p0);
+typedef val_t (*NEW_TKwimport_lexer___TKwimport___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwclass "init var of TKwclass"
+void INIT_ATTRIBUTES__TKwclass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwclass_t)(val_t p0);
+val_t NEW_TKwclass(void);
+#define LOCATE_CHECKNEW_TKwclass "check new TKwclass"
+void CHECKNEW_TKwclass(val_t p0);
+typedef void (*CHECKNEW_TKwclass_t)(val_t p0);
+#define LOCATE_NEW_TKwclass_parser_nodes___ANode___init "new TKwclass parser_nodes::ANode::init"
+val_t NEW_TKwclass_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwclass_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwclass_lexer___TKwclass___init_tk "new TKwclass lexer::TKwclass::init_tk"
+val_t NEW_TKwclass_lexer___TKwclass___init_tk(val_t p0);
+typedef val_t (*NEW_TKwclass_lexer___TKwclass___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwabstract "init var of TKwabstract"
+void INIT_ATTRIBUTES__TKwabstract(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwabstract_t)(val_t p0);
+val_t NEW_TKwabstract(void);
+#define LOCATE_CHECKNEW_TKwabstract "check new TKwabstract"
+void CHECKNEW_TKwabstract(val_t p0);
+typedef void (*CHECKNEW_TKwabstract_t)(val_t p0);
+#define LOCATE_NEW_TKwabstract_parser_nodes___ANode___init "new TKwabstract parser_nodes::ANode::init"
+val_t NEW_TKwabstract_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwabstract_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwabstract_lexer___TKwabstract___init_tk "new TKwabstract lexer::TKwabstract::init_tk"
+val_t NEW_TKwabstract_lexer___TKwabstract___init_tk(val_t p0);
+typedef val_t (*NEW_TKwabstract_lexer___TKwabstract___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwinterface "init var of TKwinterface"
+void INIT_ATTRIBUTES__TKwinterface(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwinterface_t)(val_t p0);
+val_t NEW_TKwinterface(void);
+#define LOCATE_CHECKNEW_TKwinterface "check new TKwinterface"
+void CHECKNEW_TKwinterface(val_t p0);
+typedef void (*CHECKNEW_TKwinterface_t)(val_t p0);
+#define LOCATE_NEW_TKwinterface_parser_nodes___ANode___init "new TKwinterface parser_nodes::ANode::init"
+val_t NEW_TKwinterface_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwinterface_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwinterface_lexer___TKwinterface___init_tk "new TKwinterface lexer::TKwinterface::init_tk"
+val_t NEW_TKwinterface_lexer___TKwinterface___init_tk(val_t p0);
+typedef val_t (*NEW_TKwinterface_lexer___TKwinterface___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwuniversal "init var of TKwuniversal"
+void INIT_ATTRIBUTES__TKwuniversal(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwuniversal_t)(val_t p0);
+val_t NEW_TKwuniversal(void);
+#define LOCATE_CHECKNEW_TKwuniversal "check new TKwuniversal"
+void CHECKNEW_TKwuniversal(val_t p0);
+typedef void (*CHECKNEW_TKwuniversal_t)(val_t p0);
+#define LOCATE_NEW_TKwuniversal_parser_nodes___ANode___init "new TKwuniversal parser_nodes::ANode::init"
+val_t NEW_TKwuniversal_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwuniversal_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwuniversal_lexer___TKwuniversal___init_tk "new TKwuniversal lexer::TKwuniversal::init_tk"
+val_t NEW_TKwuniversal_lexer___TKwuniversal___init_tk(val_t p0);
+typedef val_t (*NEW_TKwuniversal_lexer___TKwuniversal___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwspecial "init var of TKwspecial"
+void INIT_ATTRIBUTES__TKwspecial(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwspecial_t)(val_t p0);
+val_t NEW_TKwspecial(void);
+#define LOCATE_CHECKNEW_TKwspecial "check new TKwspecial"
+void CHECKNEW_TKwspecial(val_t p0);
+typedef void (*CHECKNEW_TKwspecial_t)(val_t p0);
+#define LOCATE_NEW_TKwspecial_parser_nodes___ANode___init "new TKwspecial parser_nodes::ANode::init"
+val_t NEW_TKwspecial_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwspecial_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwspecial_lexer___TKwspecial___init_tk "new TKwspecial lexer::TKwspecial::init_tk"
+val_t NEW_TKwspecial_lexer___TKwspecial___init_tk(val_t p0);
+typedef val_t (*NEW_TKwspecial_lexer___TKwspecial___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwend "init var of TKwend"
+void INIT_ATTRIBUTES__TKwend(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwend_t)(val_t p0);
+val_t NEW_TKwend(void);
+#define LOCATE_CHECKNEW_TKwend "check new TKwend"
+void CHECKNEW_TKwend(val_t p0);
+typedef void (*CHECKNEW_TKwend_t)(val_t p0);
+#define LOCATE_NEW_TKwend_parser_nodes___ANode___init "new TKwend parser_nodes::ANode::init"
+val_t NEW_TKwend_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwend_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwend_lexer___TKwend___init_tk "new TKwend lexer::TKwend::init_tk"
+val_t NEW_TKwend_lexer___TKwend___init_tk(val_t p0);
+typedef val_t (*NEW_TKwend_lexer___TKwend___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwmeth "init var of TKwmeth"
+void INIT_ATTRIBUTES__TKwmeth(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwmeth_t)(val_t p0);
+val_t NEW_TKwmeth(void);
+#define LOCATE_CHECKNEW_TKwmeth "check new TKwmeth"
+void CHECKNEW_TKwmeth(val_t p0);
+typedef void (*CHECKNEW_TKwmeth_t)(val_t p0);
+#define LOCATE_NEW_TKwmeth_parser_nodes___ANode___init "new TKwmeth parser_nodes::ANode::init"
+val_t NEW_TKwmeth_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwmeth_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwmeth_lexer___TKwmeth___init_tk "new TKwmeth lexer::TKwmeth::init_tk"
+val_t NEW_TKwmeth_lexer___TKwmeth___init_tk(val_t p0);
+typedef val_t (*NEW_TKwmeth_lexer___TKwmeth___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwtype "init var of TKwtype"
+void INIT_ATTRIBUTES__TKwtype(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwtype_t)(val_t p0);
+val_t NEW_TKwtype(void);
+#define LOCATE_CHECKNEW_TKwtype "check new TKwtype"
+void CHECKNEW_TKwtype(val_t p0);
+typedef void (*CHECKNEW_TKwtype_t)(val_t p0);
+#define LOCATE_NEW_TKwtype_parser_nodes___ANode___init "new TKwtype parser_nodes::ANode::init"
+val_t NEW_TKwtype_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwtype_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwtype_lexer___TKwtype___init_tk "new TKwtype lexer::TKwtype::init_tk"
+val_t NEW_TKwtype_lexer___TKwtype___init_tk(val_t p0);
+typedef val_t (*NEW_TKwtype_lexer___TKwtype___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwinit "init var of TKwinit"
+void INIT_ATTRIBUTES__TKwinit(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwinit_t)(val_t p0);
+val_t NEW_TKwinit(void);
+#define LOCATE_CHECKNEW_TKwinit "check new TKwinit"
+void CHECKNEW_TKwinit(val_t p0);
+typedef void (*CHECKNEW_TKwinit_t)(val_t p0);
+#define LOCATE_NEW_TKwinit_parser_nodes___ANode___init "new TKwinit parser_nodes::ANode::init"
+val_t NEW_TKwinit_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwinit_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwinit_lexer___TKwinit___init_tk "new TKwinit lexer::TKwinit::init_tk"
+val_t NEW_TKwinit_lexer___TKwinit___init_tk(val_t p0);
+typedef val_t (*NEW_TKwinit_lexer___TKwinit___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwredef "init var of TKwredef"
+void INIT_ATTRIBUTES__TKwredef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwredef_t)(val_t p0);
+val_t NEW_TKwredef(void);
+#define LOCATE_CHECKNEW_TKwredef "check new TKwredef"
+void CHECKNEW_TKwredef(val_t p0);
+typedef void (*CHECKNEW_TKwredef_t)(val_t p0);
+#define LOCATE_NEW_TKwredef_parser_nodes___ANode___init "new TKwredef parser_nodes::ANode::init"
+val_t NEW_TKwredef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwredef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwredef_lexer___TKwredef___init_tk "new TKwredef lexer::TKwredef::init_tk"
+val_t NEW_TKwredef_lexer___TKwredef___init_tk(val_t p0);
+typedef val_t (*NEW_TKwredef_lexer___TKwredef___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwis "init var of TKwis"
+void INIT_ATTRIBUTES__TKwis(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwis_t)(val_t p0);
+val_t NEW_TKwis(void);
+#define LOCATE_CHECKNEW_TKwis "check new TKwis"
+void CHECKNEW_TKwis(val_t p0);
+typedef void (*CHECKNEW_TKwis_t)(val_t p0);
+#define LOCATE_NEW_TKwis_parser_nodes___ANode___init "new TKwis parser_nodes::ANode::init"
+val_t NEW_TKwis_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwis_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwis_lexer___TKwis___init_tk "new TKwis lexer::TKwis::init_tk"
+val_t NEW_TKwis_lexer___TKwis___init_tk(val_t p0);
+typedef val_t (*NEW_TKwis_lexer___TKwis___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwdo "init var of TKwdo"
+void INIT_ATTRIBUTES__TKwdo(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwdo_t)(val_t p0);
+val_t NEW_TKwdo(void);
+#define LOCATE_CHECKNEW_TKwdo "check new TKwdo"
+void CHECKNEW_TKwdo(val_t p0);
+typedef void (*CHECKNEW_TKwdo_t)(val_t p0);
+#define LOCATE_NEW_TKwdo_parser_nodes___ANode___init "new TKwdo parser_nodes::ANode::init"
+val_t NEW_TKwdo_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwdo_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwdo_lexer___TKwdo___init_tk "new TKwdo lexer::TKwdo::init_tk"
+val_t NEW_TKwdo_lexer___TKwdo___init_tk(val_t p0);
+typedef val_t (*NEW_TKwdo_lexer___TKwdo___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwreadable "init var of TKwreadable"
+void INIT_ATTRIBUTES__TKwreadable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwreadable_t)(val_t p0);
+val_t NEW_TKwreadable(void);
+#define LOCATE_CHECKNEW_TKwreadable "check new TKwreadable"
+void CHECKNEW_TKwreadable(val_t p0);
+typedef void (*CHECKNEW_TKwreadable_t)(val_t p0);
+#define LOCATE_NEW_TKwreadable_parser_nodes___ANode___init "new TKwreadable parser_nodes::ANode::init"
+val_t NEW_TKwreadable_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwreadable_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwreadable_lexer___TKwreadable___init_tk "new TKwreadable lexer::TKwreadable::init_tk"
+val_t NEW_TKwreadable_lexer___TKwreadable___init_tk(val_t p0);
+typedef val_t (*NEW_TKwreadable_lexer___TKwreadable___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwwritable "init var of TKwwritable"
+void INIT_ATTRIBUTES__TKwwritable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwwritable_t)(val_t p0);
+val_t NEW_TKwwritable(void);
+#define LOCATE_CHECKNEW_TKwwritable "check new TKwwritable"
+void CHECKNEW_TKwwritable(val_t p0);
+typedef void (*CHECKNEW_TKwwritable_t)(val_t p0);
+#define LOCATE_NEW_TKwwritable_parser_nodes___ANode___init "new TKwwritable parser_nodes::ANode::init"
+val_t NEW_TKwwritable_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwwritable_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwwritable_lexer___TKwwritable___init_tk "new TKwwritable lexer::TKwwritable::init_tk"
+val_t NEW_TKwwritable_lexer___TKwwritable___init_tk(val_t p0);
+typedef val_t (*NEW_TKwwritable_lexer___TKwwritable___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwvar "init var of TKwvar"
+void INIT_ATTRIBUTES__TKwvar(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwvar_t)(val_t p0);
+val_t NEW_TKwvar(void);
+#define LOCATE_CHECKNEW_TKwvar "check new TKwvar"
+void CHECKNEW_TKwvar(val_t p0);
+typedef void (*CHECKNEW_TKwvar_t)(val_t p0);
+#define LOCATE_NEW_TKwvar_parser_nodes___ANode___init "new TKwvar parser_nodes::ANode::init"
+val_t NEW_TKwvar_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwvar_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwvar_lexer___TKwvar___init_tk "new TKwvar lexer::TKwvar::init_tk"
+val_t NEW_TKwvar_lexer___TKwvar___init_tk(val_t p0);
+typedef val_t (*NEW_TKwvar_lexer___TKwvar___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwintern "init var of TKwintern"
+void INIT_ATTRIBUTES__TKwintern(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwintern_t)(val_t p0);
+val_t NEW_TKwintern(void);
+#define LOCATE_CHECKNEW_TKwintern "check new TKwintern"
+void CHECKNEW_TKwintern(val_t p0);
+typedef void (*CHECKNEW_TKwintern_t)(val_t p0);
+#define LOCATE_NEW_TKwintern_parser_nodes___ANode___init "new TKwintern parser_nodes::ANode::init"
+val_t NEW_TKwintern_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwintern_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwintern_lexer___TKwintern___init_tk "new TKwintern lexer::TKwintern::init_tk"
+val_t NEW_TKwintern_lexer___TKwintern___init_tk(val_t p0);
+typedef val_t (*NEW_TKwintern_lexer___TKwintern___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwextern "init var of TKwextern"
+void INIT_ATTRIBUTES__TKwextern(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwextern_t)(val_t p0);
+val_t NEW_TKwextern(void);
+#define LOCATE_CHECKNEW_TKwextern "check new TKwextern"
+void CHECKNEW_TKwextern(val_t p0);
+typedef void (*CHECKNEW_TKwextern_t)(val_t p0);
+#define LOCATE_NEW_TKwextern_parser_nodes___ANode___init "new TKwextern parser_nodes::ANode::init"
+val_t NEW_TKwextern_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwextern_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwextern_lexer___TKwextern___init_tk "new TKwextern lexer::TKwextern::init_tk"
+val_t NEW_TKwextern_lexer___TKwextern___init_tk(val_t p0);
+typedef val_t (*NEW_TKwextern_lexer___TKwextern___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwprotected "init var of TKwprotected"
+void INIT_ATTRIBUTES__TKwprotected(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwprotected_t)(val_t p0);
+val_t NEW_TKwprotected(void);
+#define LOCATE_CHECKNEW_TKwprotected "check new TKwprotected"
+void CHECKNEW_TKwprotected(val_t p0);
+typedef void (*CHECKNEW_TKwprotected_t)(val_t p0);
+#define LOCATE_NEW_TKwprotected_parser_nodes___ANode___init "new TKwprotected parser_nodes::ANode::init"
+val_t NEW_TKwprotected_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwprotected_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwprotected_lexer___TKwprotected___init_tk "new TKwprotected lexer::TKwprotected::init_tk"
+val_t NEW_TKwprotected_lexer___TKwprotected___init_tk(val_t p0);
+typedef val_t (*NEW_TKwprotected_lexer___TKwprotected___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwprivate "init var of TKwprivate"
+void INIT_ATTRIBUTES__TKwprivate(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwprivate_t)(val_t p0);
+val_t NEW_TKwprivate(void);
+#define LOCATE_CHECKNEW_TKwprivate "check new TKwprivate"
+void CHECKNEW_TKwprivate(val_t p0);
+typedef void (*CHECKNEW_TKwprivate_t)(val_t p0);
+#define LOCATE_NEW_TKwprivate_parser_nodes___ANode___init "new TKwprivate parser_nodes::ANode::init"
+val_t NEW_TKwprivate_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwprivate_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwprivate_lexer___TKwprivate___init_tk "new TKwprivate lexer::TKwprivate::init_tk"
+val_t NEW_TKwprivate_lexer___TKwprivate___init_tk(val_t p0);
+typedef val_t (*NEW_TKwprivate_lexer___TKwprivate___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwintrude "init var of TKwintrude"
+void INIT_ATTRIBUTES__TKwintrude(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwintrude_t)(val_t p0);
+val_t NEW_TKwintrude(void);
+#define LOCATE_CHECKNEW_TKwintrude "check new TKwintrude"
+void CHECKNEW_TKwintrude(val_t p0);
+typedef void (*CHECKNEW_TKwintrude_t)(val_t p0);
+#define LOCATE_NEW_TKwintrude_parser_nodes___ANode___init "new TKwintrude parser_nodes::ANode::init"
+val_t NEW_TKwintrude_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwintrude_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwintrude_lexer___TKwintrude___init_tk "new TKwintrude lexer::TKwintrude::init_tk"
+val_t NEW_TKwintrude_lexer___TKwintrude___init_tk(val_t p0);
+typedef val_t (*NEW_TKwintrude_lexer___TKwintrude___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwif "init var of TKwif"
+void INIT_ATTRIBUTES__TKwif(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwif_t)(val_t p0);
+val_t NEW_TKwif(void);
+#define LOCATE_CHECKNEW_TKwif "check new TKwif"
+void CHECKNEW_TKwif(val_t p0);
+typedef void (*CHECKNEW_TKwif_t)(val_t p0);
+#define LOCATE_NEW_TKwif_parser_nodes___ANode___init "new TKwif parser_nodes::ANode::init"
+val_t NEW_TKwif_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwif_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwif_lexer___TKwif___init_tk "new TKwif lexer::TKwif::init_tk"
+val_t NEW_TKwif_lexer___TKwif___init_tk(val_t p0);
+typedef val_t (*NEW_TKwif_lexer___TKwif___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwthen "init var of TKwthen"
+void INIT_ATTRIBUTES__TKwthen(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwthen_t)(val_t p0);
+val_t NEW_TKwthen(void);
+#define LOCATE_CHECKNEW_TKwthen "check new TKwthen"
+void CHECKNEW_TKwthen(val_t p0);
+typedef void (*CHECKNEW_TKwthen_t)(val_t p0);
+#define LOCATE_NEW_TKwthen_parser_nodes___ANode___init "new TKwthen parser_nodes::ANode::init"
+val_t NEW_TKwthen_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwthen_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwthen_lexer___TKwthen___init_tk "new TKwthen lexer::TKwthen::init_tk"
+val_t NEW_TKwthen_lexer___TKwthen___init_tk(val_t p0);
+typedef val_t (*NEW_TKwthen_lexer___TKwthen___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwelse "init var of TKwelse"
+void INIT_ATTRIBUTES__TKwelse(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwelse_t)(val_t p0);
+val_t NEW_TKwelse(void);
+#define LOCATE_CHECKNEW_TKwelse "check new TKwelse"
+void CHECKNEW_TKwelse(val_t p0);
+typedef void (*CHECKNEW_TKwelse_t)(val_t p0);
+#define LOCATE_NEW_TKwelse_parser_nodes___ANode___init "new TKwelse parser_nodes::ANode::init"
+val_t NEW_TKwelse_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwelse_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwelse_lexer___TKwelse___init_tk "new TKwelse lexer::TKwelse::init_tk"
+val_t NEW_TKwelse_lexer___TKwelse___init_tk(val_t p0);
+typedef val_t (*NEW_TKwelse_lexer___TKwelse___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwwhile "init var of TKwwhile"
+void INIT_ATTRIBUTES__TKwwhile(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwwhile_t)(val_t p0);
+val_t NEW_TKwwhile(void);
+#define LOCATE_CHECKNEW_TKwwhile "check new TKwwhile"
+void CHECKNEW_TKwwhile(val_t p0);
+typedef void (*CHECKNEW_TKwwhile_t)(val_t p0);
+#define LOCATE_NEW_TKwwhile_parser_nodes___ANode___init "new TKwwhile parser_nodes::ANode::init"
+val_t NEW_TKwwhile_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwwhile_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwwhile_lexer___TKwwhile___init_tk "new TKwwhile lexer::TKwwhile::init_tk"
+val_t NEW_TKwwhile_lexer___TKwwhile___init_tk(val_t p0);
+typedef val_t (*NEW_TKwwhile_lexer___TKwwhile___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwloop "init var of TKwloop"
+void INIT_ATTRIBUTES__TKwloop(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwloop_t)(val_t p0);
+val_t NEW_TKwloop(void);
+#define LOCATE_CHECKNEW_TKwloop "check new TKwloop"
+void CHECKNEW_TKwloop(val_t p0);
+typedef void (*CHECKNEW_TKwloop_t)(val_t p0);
+#define LOCATE_NEW_TKwloop_parser_nodes___ANode___init "new TKwloop parser_nodes::ANode::init"
+val_t NEW_TKwloop_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwloop_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwloop_lexer___TKwloop___init_tk "new TKwloop lexer::TKwloop::init_tk"
+val_t NEW_TKwloop_lexer___TKwloop___init_tk(val_t p0);
+typedef val_t (*NEW_TKwloop_lexer___TKwloop___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwfor "init var of TKwfor"
+void INIT_ATTRIBUTES__TKwfor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwfor_t)(val_t p0);
+val_t NEW_TKwfor(void);
+#define LOCATE_CHECKNEW_TKwfor "check new TKwfor"
+void CHECKNEW_TKwfor(val_t p0);
+typedef void (*CHECKNEW_TKwfor_t)(val_t p0);
+#define LOCATE_NEW_TKwfor_parser_nodes___ANode___init "new TKwfor parser_nodes::ANode::init"
+val_t NEW_TKwfor_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwfor_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwfor_lexer___TKwfor___init_tk "new TKwfor lexer::TKwfor::init_tk"
+val_t NEW_TKwfor_lexer___TKwfor___init_tk(val_t p0);
+typedef val_t (*NEW_TKwfor_lexer___TKwfor___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwin "init var of TKwin"
+void INIT_ATTRIBUTES__TKwin(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwin_t)(val_t p0);
+val_t NEW_TKwin(void);
+#define LOCATE_CHECKNEW_TKwin "check new TKwin"
+void CHECKNEW_TKwin(val_t p0);
+typedef void (*CHECKNEW_TKwin_t)(val_t p0);
+#define LOCATE_NEW_TKwin_parser_nodes___ANode___init "new TKwin parser_nodes::ANode::init"
+val_t NEW_TKwin_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwin_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwin_lexer___TKwin___init_tk "new TKwin lexer::TKwin::init_tk"
+val_t NEW_TKwin_lexer___TKwin___init_tk(val_t p0);
+typedef val_t (*NEW_TKwin_lexer___TKwin___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwand "init var of TKwand"
+void INIT_ATTRIBUTES__TKwand(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwand_t)(val_t p0);
+val_t NEW_TKwand(void);
+#define LOCATE_CHECKNEW_TKwand "check new TKwand"
+void CHECKNEW_TKwand(val_t p0);
+typedef void (*CHECKNEW_TKwand_t)(val_t p0);
+#define LOCATE_NEW_TKwand_parser_nodes___ANode___init "new TKwand parser_nodes::ANode::init"
+val_t NEW_TKwand_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwand_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwand_lexer___TKwand___init_tk "new TKwand lexer::TKwand::init_tk"
+val_t NEW_TKwand_lexer___TKwand___init_tk(val_t p0);
+typedef val_t (*NEW_TKwand_lexer___TKwand___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwor "init var of TKwor"
+void INIT_ATTRIBUTES__TKwor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwor_t)(val_t p0);
+val_t NEW_TKwor(void);
+#define LOCATE_CHECKNEW_TKwor "check new TKwor"
+void CHECKNEW_TKwor(val_t p0);
+typedef void (*CHECKNEW_TKwor_t)(val_t p0);
+#define LOCATE_NEW_TKwor_parser_nodes___ANode___init "new TKwor parser_nodes::ANode::init"
+val_t NEW_TKwor_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwor_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwor_lexer___TKwor___init_tk "new TKwor lexer::TKwor::init_tk"
+val_t NEW_TKwor_lexer___TKwor___init_tk(val_t p0);
+typedef val_t (*NEW_TKwor_lexer___TKwor___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwnot "init var of TKwnot"
+void INIT_ATTRIBUTES__TKwnot(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwnot_t)(val_t p0);
+val_t NEW_TKwnot(void);
+#define LOCATE_CHECKNEW_TKwnot "check new TKwnot"
+void CHECKNEW_TKwnot(val_t p0);
+typedef void (*CHECKNEW_TKwnot_t)(val_t p0);
+#define LOCATE_NEW_TKwnot_parser_nodes___ANode___init "new TKwnot parser_nodes::ANode::init"
+val_t NEW_TKwnot_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwnot_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwnot_lexer___TKwnot___init_tk "new TKwnot lexer::TKwnot::init_tk"
+val_t NEW_TKwnot_lexer___TKwnot___init_tk(val_t p0);
+typedef val_t (*NEW_TKwnot_lexer___TKwnot___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwreturn "init var of TKwreturn"
+void INIT_ATTRIBUTES__TKwreturn(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwreturn_t)(val_t p0);
+val_t NEW_TKwreturn(void);
+#define LOCATE_CHECKNEW_TKwreturn "check new TKwreturn"
+void CHECKNEW_TKwreturn(val_t p0);
+typedef void (*CHECKNEW_TKwreturn_t)(val_t p0);
+#define LOCATE_NEW_TKwreturn_parser_nodes___ANode___init "new TKwreturn parser_nodes::ANode::init"
+val_t NEW_TKwreturn_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwreturn_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwreturn_lexer___TKwreturn___init_tk "new TKwreturn lexer::TKwreturn::init_tk"
+val_t NEW_TKwreturn_lexer___TKwreturn___init_tk(val_t p0);
+typedef val_t (*NEW_TKwreturn_lexer___TKwreturn___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwcontinue "init var of TKwcontinue"
+void INIT_ATTRIBUTES__TKwcontinue(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwcontinue_t)(val_t p0);
+val_t NEW_TKwcontinue(void);
+#define LOCATE_CHECKNEW_TKwcontinue "check new TKwcontinue"
+void CHECKNEW_TKwcontinue(val_t p0);
+typedef void (*CHECKNEW_TKwcontinue_t)(val_t p0);
+#define LOCATE_NEW_TKwcontinue_parser_nodes___ANode___init "new TKwcontinue parser_nodes::ANode::init"
+val_t NEW_TKwcontinue_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwcontinue_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwcontinue_lexer___TKwcontinue___init_tk "new TKwcontinue lexer::TKwcontinue::init_tk"
+val_t NEW_TKwcontinue_lexer___TKwcontinue___init_tk(val_t p0);
+typedef val_t (*NEW_TKwcontinue_lexer___TKwcontinue___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwbreak "init var of TKwbreak"
+void INIT_ATTRIBUTES__TKwbreak(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwbreak_t)(val_t p0);
+val_t NEW_TKwbreak(void);
+#define LOCATE_CHECKNEW_TKwbreak "check new TKwbreak"
+void CHECKNEW_TKwbreak(val_t p0);
+typedef void (*CHECKNEW_TKwbreak_t)(val_t p0);
+#define LOCATE_NEW_TKwbreak_parser_nodes___ANode___init "new TKwbreak parser_nodes::ANode::init"
+val_t NEW_TKwbreak_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwbreak_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwbreak_lexer___TKwbreak___init_tk "new TKwbreak lexer::TKwbreak::init_tk"
+val_t NEW_TKwbreak_lexer___TKwbreak___init_tk(val_t p0);
+typedef val_t (*NEW_TKwbreak_lexer___TKwbreak___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwabort "init var of TKwabort"
+void INIT_ATTRIBUTES__TKwabort(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwabort_t)(val_t p0);
+val_t NEW_TKwabort(void);
+#define LOCATE_CHECKNEW_TKwabort "check new TKwabort"
+void CHECKNEW_TKwabort(val_t p0);
+typedef void (*CHECKNEW_TKwabort_t)(val_t p0);
+#define LOCATE_NEW_TKwabort_parser_nodes___ANode___init "new TKwabort parser_nodes::ANode::init"
+val_t NEW_TKwabort_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwabort_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwabort_lexer___TKwabort___init_tk "new TKwabort lexer::TKwabort::init_tk"
+val_t NEW_TKwabort_lexer___TKwabort___init_tk(val_t p0);
+typedef val_t (*NEW_TKwabort_lexer___TKwabort___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwassert "init var of TKwassert"
+void INIT_ATTRIBUTES__TKwassert(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwassert_t)(val_t p0);
+val_t NEW_TKwassert(void);
+#define LOCATE_CHECKNEW_TKwassert "check new TKwassert"
+void CHECKNEW_TKwassert(val_t p0);
+typedef void (*CHECKNEW_TKwassert_t)(val_t p0);
+#define LOCATE_NEW_TKwassert_parser_nodes___ANode___init "new TKwassert parser_nodes::ANode::init"
+val_t NEW_TKwassert_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwassert_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwassert_lexer___TKwassert___init_tk "new TKwassert lexer::TKwassert::init_tk"
+val_t NEW_TKwassert_lexer___TKwassert___init_tk(val_t p0);
+typedef val_t (*NEW_TKwassert_lexer___TKwassert___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwnew "init var of TKwnew"
+void INIT_ATTRIBUTES__TKwnew(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwnew_t)(val_t p0);
+val_t NEW_TKwnew(void);
+#define LOCATE_CHECKNEW_TKwnew "check new TKwnew"
+void CHECKNEW_TKwnew(val_t p0);
+typedef void (*CHECKNEW_TKwnew_t)(val_t p0);
+#define LOCATE_NEW_TKwnew_parser_nodes___ANode___init "new TKwnew parser_nodes::ANode::init"
+val_t NEW_TKwnew_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwnew_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwnew_lexer___TKwnew___init_tk "new TKwnew lexer::TKwnew::init_tk"
+val_t NEW_TKwnew_lexer___TKwnew___init_tk(val_t p0);
+typedef val_t (*NEW_TKwnew_lexer___TKwnew___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwisa "init var of TKwisa"
+void INIT_ATTRIBUTES__TKwisa(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwisa_t)(val_t p0);
+val_t NEW_TKwisa(void);
+#define LOCATE_CHECKNEW_TKwisa "check new TKwisa"
+void CHECKNEW_TKwisa(val_t p0);
+typedef void (*CHECKNEW_TKwisa_t)(val_t p0);
+#define LOCATE_NEW_TKwisa_parser_nodes___ANode___init "new TKwisa parser_nodes::ANode::init"
+val_t NEW_TKwisa_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwisa_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwisa_lexer___TKwisa___init_tk "new TKwisa lexer::TKwisa::init_tk"
+val_t NEW_TKwisa_lexer___TKwisa___init_tk(val_t p0);
+typedef val_t (*NEW_TKwisa_lexer___TKwisa___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwonce "init var of TKwonce"
+void INIT_ATTRIBUTES__TKwonce(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwonce_t)(val_t p0);
+val_t NEW_TKwonce(void);
+#define LOCATE_CHECKNEW_TKwonce "check new TKwonce"
+void CHECKNEW_TKwonce(val_t p0);
+typedef void (*CHECKNEW_TKwonce_t)(val_t p0);
+#define LOCATE_NEW_TKwonce_parser_nodes___ANode___init "new TKwonce parser_nodes::ANode::init"
+val_t NEW_TKwonce_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwonce_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwonce_lexer___TKwonce___init_tk "new TKwonce lexer::TKwonce::init_tk"
+val_t NEW_TKwonce_lexer___TKwonce___init_tk(val_t p0);
+typedef val_t (*NEW_TKwonce_lexer___TKwonce___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwsuper "init var of TKwsuper"
+void INIT_ATTRIBUTES__TKwsuper(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwsuper_t)(val_t p0);
+val_t NEW_TKwsuper(void);
+#define LOCATE_CHECKNEW_TKwsuper "check new TKwsuper"
+void CHECKNEW_TKwsuper(val_t p0);
+typedef void (*CHECKNEW_TKwsuper_t)(val_t p0);
+#define LOCATE_NEW_TKwsuper_parser_nodes___ANode___init "new TKwsuper parser_nodes::ANode::init"
+val_t NEW_TKwsuper_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwsuper_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwsuper_lexer___TKwsuper___init_tk "new TKwsuper lexer::TKwsuper::init_tk"
+val_t NEW_TKwsuper_lexer___TKwsuper___init_tk(val_t p0);
+typedef val_t (*NEW_TKwsuper_lexer___TKwsuper___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwself "init var of TKwself"
+void INIT_ATTRIBUTES__TKwself(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwself_t)(val_t p0);
+val_t NEW_TKwself(void);
+#define LOCATE_CHECKNEW_TKwself "check new TKwself"
+void CHECKNEW_TKwself(val_t p0);
+typedef void (*CHECKNEW_TKwself_t)(val_t p0);
+#define LOCATE_NEW_TKwself_parser_nodes___ANode___init "new TKwself parser_nodes::ANode::init"
+val_t NEW_TKwself_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwself_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwself_lexer___TKwself___init_tk "new TKwself lexer::TKwself::init_tk"
+val_t NEW_TKwself_lexer___TKwself___init_tk(val_t p0);
+typedef val_t (*NEW_TKwself_lexer___TKwself___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwtrue "init var of TKwtrue"
+void INIT_ATTRIBUTES__TKwtrue(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwtrue_t)(val_t p0);
+val_t NEW_TKwtrue(void);
+#define LOCATE_CHECKNEW_TKwtrue "check new TKwtrue"
+void CHECKNEW_TKwtrue(val_t p0);
+typedef void (*CHECKNEW_TKwtrue_t)(val_t p0);
+#define LOCATE_NEW_TKwtrue_parser_nodes___ANode___init "new TKwtrue parser_nodes::ANode::init"
+val_t NEW_TKwtrue_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwtrue_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwtrue_lexer___TKwtrue___init_tk "new TKwtrue lexer::TKwtrue::init_tk"
+val_t NEW_TKwtrue_lexer___TKwtrue___init_tk(val_t p0);
+typedef val_t (*NEW_TKwtrue_lexer___TKwtrue___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwfalse "init var of TKwfalse"
+void INIT_ATTRIBUTES__TKwfalse(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwfalse_t)(val_t p0);
+val_t NEW_TKwfalse(void);
+#define LOCATE_CHECKNEW_TKwfalse "check new TKwfalse"
+void CHECKNEW_TKwfalse(val_t p0);
+typedef void (*CHECKNEW_TKwfalse_t)(val_t p0);
+#define LOCATE_NEW_TKwfalse_parser_nodes___ANode___init "new TKwfalse parser_nodes::ANode::init"
+val_t NEW_TKwfalse_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwfalse_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwfalse_lexer___TKwfalse___init_tk "new TKwfalse lexer::TKwfalse::init_tk"
+val_t NEW_TKwfalse_lexer___TKwfalse___init_tk(val_t p0);
+typedef val_t (*NEW_TKwfalse_lexer___TKwfalse___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwnull "init var of TKwnull"
+void INIT_ATTRIBUTES__TKwnull(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwnull_t)(val_t p0);
+val_t NEW_TKwnull(void);
+#define LOCATE_CHECKNEW_TKwnull "check new TKwnull"
+void CHECKNEW_TKwnull(val_t p0);
+typedef void (*CHECKNEW_TKwnull_t)(val_t p0);
+#define LOCATE_NEW_TKwnull_parser_nodes___ANode___init "new TKwnull parser_nodes::ANode::init"
+val_t NEW_TKwnull_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwnull_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwnull_lexer___TKwnull___init_tk "new TKwnull lexer::TKwnull::init_tk"
+val_t NEW_TKwnull_lexer___TKwnull___init_tk(val_t p0);
+typedef val_t (*NEW_TKwnull_lexer___TKwnull___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwas "init var of TKwas"
+void INIT_ATTRIBUTES__TKwas(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwas_t)(val_t p0);
+val_t NEW_TKwas(void);
+#define LOCATE_CHECKNEW_TKwas "check new TKwas"
+void CHECKNEW_TKwas(val_t p0);
+typedef void (*CHECKNEW_TKwas_t)(val_t p0);
+#define LOCATE_NEW_TKwas_parser_nodes___ANode___init "new TKwas parser_nodes::ANode::init"
+val_t NEW_TKwas_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwas_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwas_lexer___TKwas___init_tk "new TKwas lexer::TKwas::init_tk"
+val_t NEW_TKwas_lexer___TKwas___init_tk(val_t p0);
+typedef val_t (*NEW_TKwas_lexer___TKwas___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwnullable "init var of TKwnullable"
+void INIT_ATTRIBUTES__TKwnullable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwnullable_t)(val_t p0);
+val_t NEW_TKwnullable(void);
+#define LOCATE_CHECKNEW_TKwnullable "check new TKwnullable"
+void CHECKNEW_TKwnullable(val_t p0);
+typedef void (*CHECKNEW_TKwnullable_t)(val_t p0);
+#define LOCATE_NEW_TKwnullable_parser_nodes___ANode___init "new TKwnullable parser_nodes::ANode::init"
+val_t NEW_TKwnullable_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwnullable_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwnullable_lexer___TKwnullable___init_tk "new TKwnullable lexer::TKwnullable::init_tk"
+val_t NEW_TKwnullable_lexer___TKwnullable___init_tk(val_t p0);
+typedef val_t (*NEW_TKwnullable_lexer___TKwnullable___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwisset "init var of TKwisset"
+void INIT_ATTRIBUTES__TKwisset(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwisset_t)(val_t p0);
+val_t NEW_TKwisset(void);
+#define LOCATE_CHECKNEW_TKwisset "check new TKwisset"
+void CHECKNEW_TKwisset(val_t p0);
+typedef void (*CHECKNEW_TKwisset_t)(val_t p0);
+#define LOCATE_NEW_TKwisset_parser_nodes___ANode___init "new TKwisset parser_nodes::ANode::init"
+val_t NEW_TKwisset_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwisset_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwisset_lexer___TKwisset___init_tk "new TKwisset lexer::TKwisset::init_tk"
+val_t NEW_TKwisset_lexer___TKwisset___init_tk(val_t p0);
+typedef val_t (*NEW_TKwisset_lexer___TKwisset___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TKwlabel "init var of TKwlabel"
+void INIT_ATTRIBUTES__TKwlabel(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TKwlabel_t)(val_t p0);
+val_t NEW_TKwlabel(void);
+#define LOCATE_CHECKNEW_TKwlabel "check new TKwlabel"
+void CHECKNEW_TKwlabel(val_t p0);
+typedef void (*CHECKNEW_TKwlabel_t)(val_t p0);
+#define LOCATE_NEW_TKwlabel_parser_nodes___ANode___init "new TKwlabel parser_nodes::ANode::init"
+val_t NEW_TKwlabel_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TKwlabel_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TKwlabel_lexer___TKwlabel___init_tk "new TKwlabel lexer::TKwlabel::init_tk"
+val_t NEW_TKwlabel_lexer___TKwlabel___init_tk(val_t p0);
+typedef val_t (*NEW_TKwlabel_lexer___TKwlabel___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TOpar "init var of TOpar"
+void INIT_ATTRIBUTES__TOpar(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TOpar_t)(val_t p0);
+val_t NEW_TOpar(void);
+#define LOCATE_CHECKNEW_TOpar "check new TOpar"
+void CHECKNEW_TOpar(val_t p0);
+typedef void (*CHECKNEW_TOpar_t)(val_t p0);
+#define LOCATE_NEW_TOpar_parser_nodes___ANode___init "new TOpar parser_nodes::ANode::init"
+val_t NEW_TOpar_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TOpar_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TOpar_lexer___TOpar___init_tk "new TOpar lexer::TOpar::init_tk"
+val_t NEW_TOpar_lexer___TOpar___init_tk(val_t p0);
+typedef val_t (*NEW_TOpar_lexer___TOpar___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TCpar "init var of TCpar"
+void INIT_ATTRIBUTES__TCpar(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TCpar_t)(val_t p0);
+val_t NEW_TCpar(void);
+#define LOCATE_CHECKNEW_TCpar "check new TCpar"
+void CHECKNEW_TCpar(val_t p0);
+typedef void (*CHECKNEW_TCpar_t)(val_t p0);
+#define LOCATE_NEW_TCpar_parser_nodes___ANode___init "new TCpar parser_nodes::ANode::init"
+val_t NEW_TCpar_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TCpar_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TCpar_lexer___TCpar___init_tk "new TCpar lexer::TCpar::init_tk"
+val_t NEW_TCpar_lexer___TCpar___init_tk(val_t p0);
+typedef val_t (*NEW_TCpar_lexer___TCpar___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TObra "init var of TObra"
+void INIT_ATTRIBUTES__TObra(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TObra_t)(val_t p0);
+val_t NEW_TObra(void);
+#define LOCATE_CHECKNEW_TObra "check new TObra"
+void CHECKNEW_TObra(val_t p0);
+typedef void (*CHECKNEW_TObra_t)(val_t p0);
+#define LOCATE_NEW_TObra_parser_nodes___ANode___init "new TObra parser_nodes::ANode::init"
+val_t NEW_TObra_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TObra_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TObra_lexer___TObra___init_tk "new TObra lexer::TObra::init_tk"
+val_t NEW_TObra_lexer___TObra___init_tk(val_t p0);
+typedef val_t (*NEW_TObra_lexer___TObra___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TCbra "init var of TCbra"
+void INIT_ATTRIBUTES__TCbra(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TCbra_t)(val_t p0);
+val_t NEW_TCbra(void);
+#define LOCATE_CHECKNEW_TCbra "check new TCbra"
+void CHECKNEW_TCbra(val_t p0);
+typedef void (*CHECKNEW_TCbra_t)(val_t p0);
+#define LOCATE_NEW_TCbra_parser_nodes___ANode___init "new TCbra parser_nodes::ANode::init"
+val_t NEW_TCbra_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TCbra_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TCbra_lexer___TCbra___init_tk "new TCbra lexer::TCbra::init_tk"
+val_t NEW_TCbra_lexer___TCbra___init_tk(val_t p0);
+typedef val_t (*NEW_TCbra_lexer___TCbra___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TComma "init var of TComma"
+void INIT_ATTRIBUTES__TComma(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TComma_t)(val_t p0);
+val_t NEW_TComma(void);
+#define LOCATE_CHECKNEW_TComma "check new TComma"
+void CHECKNEW_TComma(val_t p0);
+typedef void (*CHECKNEW_TComma_t)(val_t p0);
+#define LOCATE_NEW_TComma_parser_nodes___ANode___init "new TComma parser_nodes::ANode::init"
+val_t NEW_TComma_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TComma_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TComma_lexer___TComma___init_tk "new TComma lexer::TComma::init_tk"
+val_t NEW_TComma_lexer___TComma___init_tk(val_t p0);
+typedef val_t (*NEW_TComma_lexer___TComma___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TColumn "init var of TColumn"
+void INIT_ATTRIBUTES__TColumn(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TColumn_t)(val_t p0);
+val_t NEW_TColumn(void);
+#define LOCATE_CHECKNEW_TColumn "check new TColumn"
+void CHECKNEW_TColumn(val_t p0);
+typedef void (*CHECKNEW_TColumn_t)(val_t p0);
+#define LOCATE_NEW_TColumn_parser_nodes___ANode___init "new TColumn parser_nodes::ANode::init"
+val_t NEW_TColumn_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TColumn_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TColumn_lexer___TColumn___init_tk "new TColumn lexer::TColumn::init_tk"
+val_t NEW_TColumn_lexer___TColumn___init_tk(val_t p0);
+typedef val_t (*NEW_TColumn_lexer___TColumn___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TQuad "init var of TQuad"
+void INIT_ATTRIBUTES__TQuad(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TQuad_t)(val_t p0);
+val_t NEW_TQuad(void);
+#define LOCATE_CHECKNEW_TQuad "check new TQuad"
+void CHECKNEW_TQuad(val_t p0);
+typedef void (*CHECKNEW_TQuad_t)(val_t p0);
+#define LOCATE_NEW_TQuad_parser_nodes___ANode___init "new TQuad parser_nodes::ANode::init"
+val_t NEW_TQuad_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TQuad_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TQuad_lexer___TQuad___init_tk "new TQuad lexer::TQuad::init_tk"
+val_t NEW_TQuad_lexer___TQuad___init_tk(val_t p0);
+typedef val_t (*NEW_TQuad_lexer___TQuad___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TAssign "init var of TAssign"
+void INIT_ATTRIBUTES__TAssign(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TAssign_t)(val_t p0);
+val_t NEW_TAssign(void);
+#define LOCATE_CHECKNEW_TAssign "check new TAssign"
+void CHECKNEW_TAssign(val_t p0);
+typedef void (*CHECKNEW_TAssign_t)(val_t p0);
+#define LOCATE_NEW_TAssign_parser_nodes___ANode___init "new TAssign parser_nodes::ANode::init"
+val_t NEW_TAssign_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TAssign_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TAssign_lexer___TAssign___init_tk "new TAssign lexer::TAssign::init_tk"
+val_t NEW_TAssign_lexer___TAssign___init_tk(val_t p0);
+typedef val_t (*NEW_TAssign_lexer___TAssign___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TPluseq "init var of TPluseq"
+void INIT_ATTRIBUTES__TPluseq(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TPluseq_t)(val_t p0);
+val_t NEW_TPluseq(void);
+#define LOCATE_CHECKNEW_TPluseq "check new TPluseq"
+void CHECKNEW_TPluseq(val_t p0);
+typedef void (*CHECKNEW_TPluseq_t)(val_t p0);
+#define LOCATE_NEW_TPluseq_parser_nodes___ANode___init "new TPluseq parser_nodes::ANode::init"
+val_t NEW_TPluseq_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TPluseq_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TPluseq_lexer___TPluseq___init_tk "new TPluseq lexer::TPluseq::init_tk"
+val_t NEW_TPluseq_lexer___TPluseq___init_tk(val_t p0);
+typedef val_t (*NEW_TPluseq_lexer___TPluseq___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TMinuseq "init var of TMinuseq"
+void INIT_ATTRIBUTES__TMinuseq(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TMinuseq_t)(val_t p0);
+val_t NEW_TMinuseq(void);
+#define LOCATE_CHECKNEW_TMinuseq "check new TMinuseq"
+void CHECKNEW_TMinuseq(val_t p0);
+typedef void (*CHECKNEW_TMinuseq_t)(val_t p0);
+#define LOCATE_NEW_TMinuseq_parser_nodes___ANode___init "new TMinuseq parser_nodes::ANode::init"
+val_t NEW_TMinuseq_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TMinuseq_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TMinuseq_lexer___TMinuseq___init_tk "new TMinuseq lexer::TMinuseq::init_tk"
+val_t NEW_TMinuseq_lexer___TMinuseq___init_tk(val_t p0);
+typedef val_t (*NEW_TMinuseq_lexer___TMinuseq___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TDotdotdot "init var of TDotdotdot"
+void INIT_ATTRIBUTES__TDotdotdot(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TDotdotdot_t)(val_t p0);
+val_t NEW_TDotdotdot(void);
+#define LOCATE_CHECKNEW_TDotdotdot "check new TDotdotdot"
+void CHECKNEW_TDotdotdot(val_t p0);
+typedef void (*CHECKNEW_TDotdotdot_t)(val_t p0);
+#define LOCATE_NEW_TDotdotdot_parser_nodes___ANode___init "new TDotdotdot parser_nodes::ANode::init"
+val_t NEW_TDotdotdot_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TDotdotdot_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TDotdotdot_lexer___TDotdotdot___init_tk "new TDotdotdot lexer::TDotdotdot::init_tk"
+val_t NEW_TDotdotdot_lexer___TDotdotdot___init_tk(val_t p0);
+typedef val_t (*NEW_TDotdotdot_lexer___TDotdotdot___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TDotdot "init var of TDotdot"
+void INIT_ATTRIBUTES__TDotdot(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TDotdot_t)(val_t p0);
+val_t NEW_TDotdot(void);
+#define LOCATE_CHECKNEW_TDotdot "check new TDotdot"
+void CHECKNEW_TDotdot(val_t p0);
+typedef void (*CHECKNEW_TDotdot_t)(val_t p0);
+#define LOCATE_NEW_TDotdot_parser_nodes___ANode___init "new TDotdot parser_nodes::ANode::init"
+val_t NEW_TDotdot_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TDotdot_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TDotdot_lexer___TDotdot___init_tk "new TDotdot lexer::TDotdot::init_tk"
+val_t NEW_TDotdot_lexer___TDotdot___init_tk(val_t p0);
+typedef val_t (*NEW_TDotdot_lexer___TDotdot___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TDot "init var of TDot"
+void INIT_ATTRIBUTES__TDot(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TDot_t)(val_t p0);
+val_t NEW_TDot(void);
+#define LOCATE_CHECKNEW_TDot "check new TDot"
+void CHECKNEW_TDot(val_t p0);
+typedef void (*CHECKNEW_TDot_t)(val_t p0);
+#define LOCATE_NEW_TDot_parser_nodes___ANode___init "new TDot parser_nodes::ANode::init"
+val_t NEW_TDot_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TDot_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TDot_lexer___TDot___init_tk "new TDot lexer::TDot::init_tk"
+val_t NEW_TDot_lexer___TDot___init_tk(val_t p0);
+typedef val_t (*NEW_TDot_lexer___TDot___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TPlus "init var of TPlus"
+void INIT_ATTRIBUTES__TPlus(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TPlus_t)(val_t p0);
+val_t NEW_TPlus(void);
+#define LOCATE_CHECKNEW_TPlus "check new TPlus"
+void CHECKNEW_TPlus(val_t p0);
+typedef void (*CHECKNEW_TPlus_t)(val_t p0);
+#define LOCATE_NEW_TPlus_parser_nodes___ANode___init "new TPlus parser_nodes::ANode::init"
+val_t NEW_TPlus_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TPlus_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TPlus_lexer___TPlus___init_tk "new TPlus lexer::TPlus::init_tk"
+val_t NEW_TPlus_lexer___TPlus___init_tk(val_t p0);
+typedef val_t (*NEW_TPlus_lexer___TPlus___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TMinus "init var of TMinus"
+void INIT_ATTRIBUTES__TMinus(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TMinus_t)(val_t p0);
+val_t NEW_TMinus(void);
+#define LOCATE_CHECKNEW_TMinus "check new TMinus"
+void CHECKNEW_TMinus(val_t p0);
+typedef void (*CHECKNEW_TMinus_t)(val_t p0);
+#define LOCATE_NEW_TMinus_parser_nodes___ANode___init "new TMinus parser_nodes::ANode::init"
+val_t NEW_TMinus_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TMinus_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TMinus_lexer___TMinus___init_tk "new TMinus lexer::TMinus::init_tk"
+val_t NEW_TMinus_lexer___TMinus___init_tk(val_t p0);
+typedef val_t (*NEW_TMinus_lexer___TMinus___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TStar "init var of TStar"
+void INIT_ATTRIBUTES__TStar(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TStar_t)(val_t p0);
+val_t NEW_TStar(void);
+#define LOCATE_CHECKNEW_TStar "check new TStar"
+void CHECKNEW_TStar(val_t p0);
+typedef void (*CHECKNEW_TStar_t)(val_t p0);
+#define LOCATE_NEW_TStar_parser_nodes___ANode___init "new TStar parser_nodes::ANode::init"
+val_t NEW_TStar_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TStar_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TStar_lexer___TStar___init_tk "new TStar lexer::TStar::init_tk"
+val_t NEW_TStar_lexer___TStar___init_tk(val_t p0);
+typedef val_t (*NEW_TStar_lexer___TStar___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TSlash "init var of TSlash"
+void INIT_ATTRIBUTES__TSlash(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TSlash_t)(val_t p0);
+val_t NEW_TSlash(void);
+#define LOCATE_CHECKNEW_TSlash "check new TSlash"
+void CHECKNEW_TSlash(val_t p0);
+typedef void (*CHECKNEW_TSlash_t)(val_t p0);
+#define LOCATE_NEW_TSlash_parser_nodes___ANode___init "new TSlash parser_nodes::ANode::init"
+val_t NEW_TSlash_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TSlash_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TSlash_lexer___TSlash___init_tk "new TSlash lexer::TSlash::init_tk"
+val_t NEW_TSlash_lexer___TSlash___init_tk(val_t p0);
+typedef val_t (*NEW_TSlash_lexer___TSlash___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TPercent "init var of TPercent"
+void INIT_ATTRIBUTES__TPercent(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TPercent_t)(val_t p0);
+val_t NEW_TPercent(void);
+#define LOCATE_CHECKNEW_TPercent "check new TPercent"
+void CHECKNEW_TPercent(val_t p0);
+typedef void (*CHECKNEW_TPercent_t)(val_t p0);
+#define LOCATE_NEW_TPercent_parser_nodes___ANode___init "new TPercent parser_nodes::ANode::init"
+val_t NEW_TPercent_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TPercent_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TPercent_lexer___TPercent___init_tk "new TPercent lexer::TPercent::init_tk"
+val_t NEW_TPercent_lexer___TPercent___init_tk(val_t p0);
+typedef val_t (*NEW_TPercent_lexer___TPercent___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TEq "init var of TEq"
+void INIT_ATTRIBUTES__TEq(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TEq_t)(val_t p0);
+val_t NEW_TEq(void);
+#define LOCATE_CHECKNEW_TEq "check new TEq"
+void CHECKNEW_TEq(val_t p0);
+typedef void (*CHECKNEW_TEq_t)(val_t p0);
+#define LOCATE_NEW_TEq_parser_nodes___ANode___init "new TEq parser_nodes::ANode::init"
+val_t NEW_TEq_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TEq_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TEq_lexer___TEq___init_tk "new TEq lexer::TEq::init_tk"
+val_t NEW_TEq_lexer___TEq___init_tk(val_t p0);
+typedef val_t (*NEW_TEq_lexer___TEq___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TNe "init var of TNe"
+void INIT_ATTRIBUTES__TNe(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TNe_t)(val_t p0);
+val_t NEW_TNe(void);
+#define LOCATE_CHECKNEW_TNe "check new TNe"
+void CHECKNEW_TNe(val_t p0);
+typedef void (*CHECKNEW_TNe_t)(val_t p0);
+#define LOCATE_NEW_TNe_parser_nodes___ANode___init "new TNe parser_nodes::ANode::init"
+val_t NEW_TNe_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TNe_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TNe_lexer___TNe___init_tk "new TNe lexer::TNe::init_tk"
+val_t NEW_TNe_lexer___TNe___init_tk(val_t p0);
+typedef val_t (*NEW_TNe_lexer___TNe___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TLt "init var of TLt"
+void INIT_ATTRIBUTES__TLt(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TLt_t)(val_t p0);
+val_t NEW_TLt(void);
+#define LOCATE_CHECKNEW_TLt "check new TLt"
+void CHECKNEW_TLt(val_t p0);
+typedef void (*CHECKNEW_TLt_t)(val_t p0);
+#define LOCATE_NEW_TLt_parser_nodes___ANode___init "new TLt parser_nodes::ANode::init"
+val_t NEW_TLt_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TLt_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TLt_lexer___TLt___init_tk "new TLt lexer::TLt::init_tk"
+val_t NEW_TLt_lexer___TLt___init_tk(val_t p0);
+typedef val_t (*NEW_TLt_lexer___TLt___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TLe "init var of TLe"
+void INIT_ATTRIBUTES__TLe(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TLe_t)(val_t p0);
+val_t NEW_TLe(void);
+#define LOCATE_CHECKNEW_TLe "check new TLe"
+void CHECKNEW_TLe(val_t p0);
+typedef void (*CHECKNEW_TLe_t)(val_t p0);
+#define LOCATE_NEW_TLe_parser_nodes___ANode___init "new TLe parser_nodes::ANode::init"
+val_t NEW_TLe_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TLe_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TLe_lexer___TLe___init_tk "new TLe lexer::TLe::init_tk"
+val_t NEW_TLe_lexer___TLe___init_tk(val_t p0);
+typedef val_t (*NEW_TLe_lexer___TLe___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TGt "init var of TGt"
+void INIT_ATTRIBUTES__TGt(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TGt_t)(val_t p0);
+val_t NEW_TGt(void);
+#define LOCATE_CHECKNEW_TGt "check new TGt"
+void CHECKNEW_TGt(val_t p0);
+typedef void (*CHECKNEW_TGt_t)(val_t p0);
+#define LOCATE_NEW_TGt_parser_nodes___ANode___init "new TGt parser_nodes::ANode::init"
+val_t NEW_TGt_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TGt_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TGt_lexer___TGt___init_tk "new TGt lexer::TGt::init_tk"
+val_t NEW_TGt_lexer___TGt___init_tk(val_t p0);
+typedef val_t (*NEW_TGt_lexer___TGt___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TGe "init var of TGe"
+void INIT_ATTRIBUTES__TGe(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TGe_t)(val_t p0);
+val_t NEW_TGe(void);
+#define LOCATE_CHECKNEW_TGe "check new TGe"
+void CHECKNEW_TGe(val_t p0);
+typedef void (*CHECKNEW_TGe_t)(val_t p0);
+#define LOCATE_NEW_TGe_parser_nodes___ANode___init "new TGe parser_nodes::ANode::init"
+val_t NEW_TGe_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TGe_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TGe_lexer___TGe___init_tk "new TGe lexer::TGe::init_tk"
+val_t NEW_TGe_lexer___TGe___init_tk(val_t p0);
+typedef val_t (*NEW_TGe_lexer___TGe___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TStarship "init var of TStarship"
+void INIT_ATTRIBUTES__TStarship(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TStarship_t)(val_t p0);
+val_t NEW_TStarship(void);
+#define LOCATE_CHECKNEW_TStarship "check new TStarship"
+void CHECKNEW_TStarship(val_t p0);
+typedef void (*CHECKNEW_TStarship_t)(val_t p0);
+#define LOCATE_NEW_TStarship_parser_nodes___ANode___init "new TStarship parser_nodes::ANode::init"
+val_t NEW_TStarship_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TStarship_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TStarship_lexer___TStarship___init_tk "new TStarship lexer::TStarship::init_tk"
+val_t NEW_TStarship_lexer___TStarship___init_tk(val_t p0);
+typedef val_t (*NEW_TStarship_lexer___TStarship___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TBang "init var of TBang"
+void INIT_ATTRIBUTES__TBang(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TBang_t)(val_t p0);
+val_t NEW_TBang(void);
+#define LOCATE_CHECKNEW_TBang "check new TBang"
+void CHECKNEW_TBang(val_t p0);
+typedef void (*CHECKNEW_TBang_t)(val_t p0);
+#define LOCATE_NEW_TBang_parser_nodes___ANode___init "new TBang parser_nodes::ANode::init"
+val_t NEW_TBang_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TBang_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TBang_lexer___TBang___init_tk "new TBang lexer::TBang::init_tk"
+val_t NEW_TBang_lexer___TBang___init_tk(val_t p0);
+typedef val_t (*NEW_TBang_lexer___TBang___init_tk_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TClassid "init var of TClassid"
+void INIT_ATTRIBUTES__TClassid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TClassid_t)(val_t p0);
+val_t NEW_TClassid(void);
+#define LOCATE_CHECKNEW_TClassid "check new TClassid"
+void CHECKNEW_TClassid(val_t p0);
+typedef void (*CHECKNEW_TClassid_t)(val_t p0);
+#define LOCATE_NEW_TClassid_parser_nodes___ANode___init "new TClassid parser_nodes::ANode::init"
+val_t NEW_TClassid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TClassid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TClassid_lexer___TClassid___init_tk "new TClassid lexer::TClassid::init_tk"
+val_t NEW_TClassid_lexer___TClassid___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TClassid_lexer___TClassid___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TId "init var of TId"
+void INIT_ATTRIBUTES__TId(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TId_t)(val_t p0);
+val_t NEW_TId(void);
+#define LOCATE_CHECKNEW_TId "check new TId"
+void CHECKNEW_TId(val_t p0);
+typedef void (*CHECKNEW_TId_t)(val_t p0);
+#define LOCATE_NEW_TId_parser_nodes___ANode___init "new TId parser_nodes::ANode::init"
+val_t NEW_TId_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TId_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TId_lexer___TId___init_tk "new TId lexer::TId::init_tk"
+val_t NEW_TId_lexer___TId___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TId_lexer___TId___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TAttrid "init var of TAttrid"
+void INIT_ATTRIBUTES__TAttrid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TAttrid_t)(val_t p0);
+val_t NEW_TAttrid(void);
+#define LOCATE_CHECKNEW_TAttrid "check new TAttrid"
+void CHECKNEW_TAttrid(val_t p0);
+typedef void (*CHECKNEW_TAttrid_t)(val_t p0);
+#define LOCATE_NEW_TAttrid_parser_nodes___ANode___init "new TAttrid parser_nodes::ANode::init"
+val_t NEW_TAttrid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TAttrid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TAttrid_lexer___TAttrid___init_tk "new TAttrid lexer::TAttrid::init_tk"
+val_t NEW_TAttrid_lexer___TAttrid___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TAttrid_lexer___TAttrid___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TNumber "init var of TNumber"
+void INIT_ATTRIBUTES__TNumber(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TNumber_t)(val_t p0);
+val_t NEW_TNumber(void);
+#define LOCATE_CHECKNEW_TNumber "check new TNumber"
+void CHECKNEW_TNumber(val_t p0);
+typedef void (*CHECKNEW_TNumber_t)(val_t p0);
+#define LOCATE_NEW_TNumber_parser_nodes___ANode___init "new TNumber parser_nodes::ANode::init"
+val_t NEW_TNumber_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TNumber_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TNumber_lexer___TNumber___init_tk "new TNumber lexer::TNumber::init_tk"
+val_t NEW_TNumber_lexer___TNumber___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TNumber_lexer___TNumber___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TFloat "init var of TFloat"
+void INIT_ATTRIBUTES__TFloat(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TFloat_t)(val_t p0);
+val_t NEW_TFloat(void);
+#define LOCATE_CHECKNEW_TFloat "check new TFloat"
+void CHECKNEW_TFloat(val_t p0);
+typedef void (*CHECKNEW_TFloat_t)(val_t p0);
+#define LOCATE_NEW_TFloat_parser_nodes___ANode___init "new TFloat parser_nodes::ANode::init"
+val_t NEW_TFloat_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TFloat_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TFloat_lexer___TFloat___init_tk "new TFloat lexer::TFloat::init_tk"
+val_t NEW_TFloat_lexer___TFloat___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TFloat_lexer___TFloat___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TChar "init var of TChar"
+void INIT_ATTRIBUTES__TChar(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TChar_t)(val_t p0);
+val_t NEW_TChar(void);
+#define LOCATE_CHECKNEW_TChar "check new TChar"
+void CHECKNEW_TChar(val_t p0);
+typedef void (*CHECKNEW_TChar_t)(val_t p0);
+#define LOCATE_NEW_TChar_parser_nodes___ANode___init "new TChar parser_nodes::ANode::init"
+val_t NEW_TChar_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TChar_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TChar_lexer___TChar___init_tk "new TChar lexer::TChar::init_tk"
+val_t NEW_TChar_lexer___TChar___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TChar_lexer___TChar___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TString "init var of TString"
+void INIT_ATTRIBUTES__TString(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TString_t)(val_t p0);
+val_t NEW_TString(void);
+#define LOCATE_CHECKNEW_TString "check new TString"
+void CHECKNEW_TString(val_t p0);
+typedef void (*CHECKNEW_TString_t)(val_t p0);
+#define LOCATE_NEW_TString_parser_nodes___ANode___init "new TString parser_nodes::ANode::init"
+val_t NEW_TString_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TString_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TString_lexer___TString___init_tk "new TString lexer::TString::init_tk"
+val_t NEW_TString_lexer___TString___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TString_lexer___TString___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TStartString "init var of TStartString"
+void INIT_ATTRIBUTES__TStartString(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TStartString_t)(val_t p0);
+val_t NEW_TStartString(void);
+#define LOCATE_CHECKNEW_TStartString "check new TStartString"
+void CHECKNEW_TStartString(val_t p0);
+typedef void (*CHECKNEW_TStartString_t)(val_t p0);
+#define LOCATE_NEW_TStartString_parser_nodes___ANode___init "new TStartString parser_nodes::ANode::init"
+val_t NEW_TStartString_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TStartString_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TStartString_lexer___TStartString___init_tk "new TStartString lexer::TStartString::init_tk"
+val_t NEW_TStartString_lexer___TStartString___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TStartString_lexer___TStartString___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TMidString "init var of TMidString"
+void INIT_ATTRIBUTES__TMidString(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TMidString_t)(val_t p0);
+val_t NEW_TMidString(void);
+#define LOCATE_CHECKNEW_TMidString "check new TMidString"
+void CHECKNEW_TMidString(val_t p0);
+typedef void (*CHECKNEW_TMidString_t)(val_t p0);
+#define LOCATE_NEW_TMidString_parser_nodes___ANode___init "new TMidString parser_nodes::ANode::init"
+val_t NEW_TMidString_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TMidString_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TMidString_lexer___TMidString___init_tk "new TMidString lexer::TMidString::init_tk"
+val_t NEW_TMidString_lexer___TMidString___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TMidString_lexer___TMidString___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TEndString "init var of TEndString"
+void INIT_ATTRIBUTES__TEndString(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TEndString_t)(val_t p0);
+val_t NEW_TEndString(void);
+#define LOCATE_CHECKNEW_TEndString "check new TEndString"
+void CHECKNEW_TEndString(val_t p0);
+typedef void (*CHECKNEW_TEndString_t)(val_t p0);
+#define LOCATE_NEW_TEndString_parser_nodes___ANode___init "new TEndString parser_nodes::ANode::init"
+val_t NEW_TEndString_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_TEndString_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_TEndString_lexer___TEndString___init_tk "new TEndString lexer::TEndString::init_tk"
+val_t NEW_TEndString_lexer___TEndString___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TEndString_lexer___TEndString___init_tk_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__EOF "init var of EOF"
+void INIT_ATTRIBUTES__EOF(val_t p0);
+typedef void (*INIT_ATTRIBUTES__EOF_t)(val_t p0);
+val_t NEW_EOF(void);
+#define LOCATE_CHECKNEW_EOF "check new EOF"
+void CHECKNEW_EOF(val_t p0);
+typedef void (*CHECKNEW_EOF_t)(val_t p0);
+#define LOCATE_NEW_EOF_parser_nodes___EOF___noinit "new EOF parser_nodes::EOF::noinit"
+val_t NEW_EOF_parser_nodes___EOF___noinit(void);
+typedef val_t (*NEW_EOF_parser_nodes___EOF___noinit_t)(void);
+#define LOCATE_NEW_EOF_lexer___EOF___init "new EOF lexer::EOF::init"
+val_t NEW_EOF_lexer___EOF___init(val_t p0);
+typedef val_t (*NEW_EOF_lexer___EOF___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AError "init var of AError"
+void INIT_ATTRIBUTES__AError(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AError_t)(val_t p0);
+val_t NEW_AError(void);
+#define LOCATE_CHECKNEW_AError "check new AError"
+void CHECKNEW_AError(val_t p0);
+typedef void (*CHECKNEW_AError_t)(val_t p0);
+#define LOCATE_NEW_AError_parser_nodes___AError___noinit "new AError parser_nodes::AError::noinit"
+val_t NEW_AError_parser_nodes___AError___noinit(void);
+typedef val_t (*NEW_AError_parser_nodes___AError___noinit_t)(void);
+#define LOCATE_NEW_AError_lexer___AError___init_error "new AError lexer::AError::init_error"
+val_t NEW_AError_lexer___AError___init_error(val_t p0, val_t p1);
+typedef val_t (*NEW_AError_lexer___AError___init_error_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AModule "init var of AModule"
+void INIT_ATTRIBUTES__AModule(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AModule_t)(val_t p0);
+val_t NEW_AModule(void);
+#define LOCATE_CHECKNEW_AModule "check new AModule"
+void CHECKNEW_AModule(val_t p0);
+typedef void (*CHECKNEW_AModule_t)(val_t p0);
+#define LOCATE_NEW_AModule_parser_nodes___ANode___init "new AModule parser_nodes::ANode::init"
+val_t NEW_AModule_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AModule_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AModule_parser_prod___AModule___empty_init "new AModule parser_prod::AModule::empty_init"
+val_t NEW_AModule_parser_prod___AModule___empty_init(void);
+typedef val_t (*NEW_AModule_parser_prod___AModule___empty_init_t)(void);
+#define LOCATE_NEW_AModule_parser_prod___AModule___init_amodule "new AModule parser_prod::AModule::init_amodule"
+val_t NEW_AModule_parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AModule_parser_prod___AModule___init_amodule_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__APackagedecl "init var of APackagedecl"
+void INIT_ATTRIBUTES__APackagedecl(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APackagedecl_t)(val_t p0);
+val_t NEW_APackagedecl(void);
+#define LOCATE_CHECKNEW_APackagedecl "check new APackagedecl"
+void CHECKNEW_APackagedecl(val_t p0);
+typedef void (*CHECKNEW_APackagedecl_t)(val_t p0);
+#define LOCATE_NEW_APackagedecl_parser_nodes___ANode___init "new APackagedecl parser_nodes::ANode::init"
+val_t NEW_APackagedecl_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APackagedecl_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_APackagedecl_parser_prod___APackagedecl___empty_init "new APackagedecl parser_prod::APackagedecl::empty_init"
+val_t NEW_APackagedecl_parser_prod___APackagedecl___empty_init(void);
+typedef val_t (*NEW_APackagedecl_parser_prod___APackagedecl___empty_init_t)(void);
+#define LOCATE_NEW_APackagedecl_parser_prod___APackagedecl___init_apackagedecl "new APackagedecl parser_prod::APackagedecl::init_apackagedecl"
+val_t NEW_APackagedecl_parser_prod___APackagedecl___init_apackagedecl(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_APackagedecl_parser_prod___APackagedecl___init_apackagedecl_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AImport "init var of AImport"
+void INIT_ATTRIBUTES__AImport(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AImport_t)(val_t p0);
+val_t NEW_AImport(void);
+#define LOCATE_CHECKNEW_AImport "check new AImport"
+void CHECKNEW_AImport(val_t p0);
+typedef void (*CHECKNEW_AImport_t)(val_t p0);
+#define LOCATE_NEW_AImport_parser_nodes___ANode___init "new AImport parser_nodes::ANode::init"
+val_t NEW_AImport_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AImport_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AStdImport "init var of AStdImport"
+void INIT_ATTRIBUTES__AStdImport(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStdImport_t)(val_t p0);
+val_t NEW_AStdImport(void);
+#define LOCATE_CHECKNEW_AStdImport "check new AStdImport"
+void CHECKNEW_AStdImport(val_t p0);
+typedef void (*CHECKNEW_AStdImport_t)(val_t p0);
+#define LOCATE_NEW_AStdImport_parser_nodes___ANode___init "new AStdImport parser_nodes::ANode::init"
+val_t NEW_AStdImport_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStdImport_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AStdImport_parser_prod___AStdImport___empty_init "new AStdImport parser_prod::AStdImport::empty_init"
+val_t NEW_AStdImport_parser_prod___AStdImport___empty_init(void);
+typedef val_t (*NEW_AStdImport_parser_prod___AStdImport___empty_init_t)(void);
+#define LOCATE_NEW_AStdImport_parser_prod___AStdImport___init_astdimport "new AStdImport parser_prod::AStdImport::init_astdimport"
+val_t NEW_AStdImport_parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AStdImport_parser_prod___AStdImport___init_astdimport_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__ANoImport "init var of ANoImport"
+void INIT_ATTRIBUTES__ANoImport(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ANoImport_t)(val_t p0);
+val_t NEW_ANoImport(void);
+#define LOCATE_CHECKNEW_ANoImport "check new ANoImport"
+void CHECKNEW_ANoImport(val_t p0);
+typedef void (*CHECKNEW_ANoImport_t)(val_t p0);
+#define LOCATE_NEW_ANoImport_parser_nodes___ANode___init "new ANoImport parser_nodes::ANode::init"
+val_t NEW_ANoImport_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ANoImport_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ANoImport_parser_prod___ANoImport___empty_init "new ANoImport parser_prod::ANoImport::empty_init"
+val_t NEW_ANoImport_parser_prod___ANoImport___empty_init(void);
+typedef val_t (*NEW_ANoImport_parser_prod___ANoImport___empty_init_t)(void);
+#define LOCATE_NEW_ANoImport_parser_prod___ANoImport___init_anoimport "new ANoImport parser_prod::ANoImport::init_anoimport"
+val_t NEW_ANoImport_parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ANoImport_parser_prod___ANoImport___init_anoimport_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AVisibility "init var of AVisibility"
+void INIT_ATTRIBUTES__AVisibility(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AVisibility_t)(val_t p0);
+val_t NEW_AVisibility(void);
+#define LOCATE_CHECKNEW_AVisibility "check new AVisibility"
+void CHECKNEW_AVisibility(val_t p0);
+typedef void (*CHECKNEW_AVisibility_t)(val_t p0);
+#define LOCATE_NEW_AVisibility_parser_nodes___ANode___init "new AVisibility parser_nodes::ANode::init"
+val_t NEW_AVisibility_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AVisibility_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__APublicVisibility "init var of APublicVisibility"
+void INIT_ATTRIBUTES__APublicVisibility(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APublicVisibility_t)(val_t p0);
+val_t NEW_APublicVisibility(void);
+#define LOCATE_CHECKNEW_APublicVisibility "check new APublicVisibility"
+void CHECKNEW_APublicVisibility(val_t p0);
+typedef void (*CHECKNEW_APublicVisibility_t)(val_t p0);
+#define LOCATE_NEW_APublicVisibility_parser_nodes___ANode___init "new APublicVisibility parser_nodes::ANode::init"
+val_t NEW_APublicVisibility_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APublicVisibility_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_APublicVisibility_parser_prod___APublicVisibility___empty_init "new APublicVisibility parser_prod::APublicVisibility::empty_init"
+val_t NEW_APublicVisibility_parser_prod___APublicVisibility___empty_init(void);
+typedef val_t (*NEW_APublicVisibility_parser_prod___APublicVisibility___empty_init_t)(void);
+#define LOCATE_NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibility "new APublicVisibility parser_prod::APublicVisibility::init_apublicvisibility"
+val_t NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibility(void);
+typedef val_t (*NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibility_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__APrivateVisibility "init var of APrivateVisibility"
+void INIT_ATTRIBUTES__APrivateVisibility(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APrivateVisibility_t)(val_t p0);
+val_t NEW_APrivateVisibility(void);
+#define LOCATE_CHECKNEW_APrivateVisibility "check new APrivateVisibility"
+void CHECKNEW_APrivateVisibility(val_t p0);
+typedef void (*CHECKNEW_APrivateVisibility_t)(val_t p0);
+#define LOCATE_NEW_APrivateVisibility_parser_nodes___ANode___init "new APrivateVisibility parser_nodes::ANode::init"
+val_t NEW_APrivateVisibility_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APrivateVisibility_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_APrivateVisibility_parser_prod___APrivateVisibility___empty_init "new APrivateVisibility parser_prod::APrivateVisibility::empty_init"
+val_t NEW_APrivateVisibility_parser_prod___APrivateVisibility___empty_init(void);
+typedef val_t (*NEW_APrivateVisibility_parser_prod___APrivateVisibility___empty_init_t)(void);
+#define LOCATE_NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevisibility "new APrivateVisibility parser_prod::APrivateVisibility::init_aprivatevisibility"
+val_t NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0);
+typedef val_t (*NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevisibility_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AProtectedVisibility "init var of AProtectedVisibility"
+void INIT_ATTRIBUTES__AProtectedVisibility(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AProtectedVisibility_t)(val_t p0);
+val_t NEW_AProtectedVisibility(void);
+#define LOCATE_CHECKNEW_AProtectedVisibility "check new AProtectedVisibility"
+void CHECKNEW_AProtectedVisibility(val_t p0);
+typedef void (*CHECKNEW_AProtectedVisibility_t)(val_t p0);
+#define LOCATE_NEW_AProtectedVisibility_parser_nodes___ANode___init "new AProtectedVisibility parser_nodes::ANode::init"
+val_t NEW_AProtectedVisibility_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AProtectedVisibility_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___empty_init "new AProtectedVisibility parser_prod::AProtectedVisibility::empty_init"
+val_t NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___empty_init(void);
+typedef val_t (*NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___empty_init_t)(void);
+#define LOCATE_NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotectedvisibility "new AProtectedVisibility parser_prod::AProtectedVisibility::init_aprotectedvisibility"
+val_t NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0);
+typedef val_t (*NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotectedvisibility_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AIntrudeVisibility "init var of AIntrudeVisibility"
+void INIT_ATTRIBUTES__AIntrudeVisibility(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AIntrudeVisibility_t)(val_t p0);
+val_t NEW_AIntrudeVisibility(void);
+#define LOCATE_CHECKNEW_AIntrudeVisibility "check new AIntrudeVisibility"
+void CHECKNEW_AIntrudeVisibility(val_t p0);
+typedef void (*CHECKNEW_AIntrudeVisibility_t)(val_t p0);
+#define LOCATE_NEW_AIntrudeVisibility_parser_nodes___ANode___init "new AIntrudeVisibility parser_nodes::ANode::init"
+val_t NEW_AIntrudeVisibility_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AIntrudeVisibility_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___empty_init "new AIntrudeVisibility parser_prod::AIntrudeVisibility::empty_init"
+val_t NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___empty_init(void);
+typedef val_t (*NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___empty_init_t)(void);
+#define LOCATE_NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevisibility "new AIntrudeVisibility parser_prod::AIntrudeVisibility::init_aintrudevisibility"
+val_t NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0);
+typedef val_t (*NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevisibility_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AClassdef "init var of AClassdef"
+void INIT_ATTRIBUTES__AClassdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AClassdef_t)(val_t p0);
+val_t NEW_AClassdef(void);
+#define LOCATE_CHECKNEW_AClassdef "check new AClassdef"
+void CHECKNEW_AClassdef(val_t p0);
+typedef void (*CHECKNEW_AClassdef_t)(val_t p0);
+#define LOCATE_NEW_AClassdef_parser_nodes___ANode___init "new AClassdef parser_nodes::ANode::init"
+val_t NEW_AClassdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AClassdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AStdClassdef "init var of AStdClassdef"
+void INIT_ATTRIBUTES__AStdClassdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStdClassdef_t)(val_t p0);
+val_t NEW_AStdClassdef(void);
+#define LOCATE_CHECKNEW_AStdClassdef "check new AStdClassdef"
+void CHECKNEW_AStdClassdef(val_t p0);
+typedef void (*CHECKNEW_AStdClassdef_t)(val_t p0);
+#define LOCATE_NEW_AStdClassdef_parser_nodes___ANode___init "new AStdClassdef parser_nodes::ANode::init"
+val_t NEW_AStdClassdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStdClassdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AStdClassdef_parser_prod___AStdClassdef___empty_init "new AStdClassdef parser_prod::AStdClassdef::empty_init"
+val_t NEW_AStdClassdef_parser_prod___AStdClassdef___empty_init(void);
+typedef val_t (*NEW_AStdClassdef_parser_prod___AStdClassdef___empty_init_t)(void);
+#define LOCATE_NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef "new AStdClassdef parser_prod::AStdClassdef::init_astdclassdef"
+val_t NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
+typedef val_t (*NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
+#define LOCATE_INIT_ATTRIBUTES__ATopClassdef "init var of ATopClassdef"
+void INIT_ATTRIBUTES__ATopClassdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ATopClassdef_t)(val_t p0);
+val_t NEW_ATopClassdef(void);
+#define LOCATE_CHECKNEW_ATopClassdef "check new ATopClassdef"
+void CHECKNEW_ATopClassdef(val_t p0);
+typedef void (*CHECKNEW_ATopClassdef_t)(val_t p0);
+#define LOCATE_NEW_ATopClassdef_parser_nodes___ANode___init "new ATopClassdef parser_nodes::ANode::init"
+val_t NEW_ATopClassdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ATopClassdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ATopClassdef_parser_prod___ATopClassdef___empty_init "new ATopClassdef parser_prod::ATopClassdef::empty_init"
+val_t NEW_ATopClassdef_parser_prod___ATopClassdef___empty_init(void);
+typedef val_t (*NEW_ATopClassdef_parser_prod___ATopClassdef___empty_init_t)(void);
+#define LOCATE_NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef "new ATopClassdef parser_prod::ATopClassdef::init_atopclassdef"
+val_t NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(val_t p0);
+typedef val_t (*NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AMainClassdef "init var of AMainClassdef"
+void INIT_ATTRIBUTES__AMainClassdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AMainClassdef_t)(val_t p0);
+val_t NEW_AMainClassdef(void);
+#define LOCATE_CHECKNEW_AMainClassdef "check new AMainClassdef"
+void CHECKNEW_AMainClassdef(val_t p0);
+typedef void (*CHECKNEW_AMainClassdef_t)(val_t p0);
+#define LOCATE_NEW_AMainClassdef_parser_nodes___ANode___init "new AMainClassdef parser_nodes::ANode::init"
+val_t NEW_AMainClassdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AMainClassdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AMainClassdef_parser_prod___AMainClassdef___empty_init "new AMainClassdef parser_prod::AMainClassdef::empty_init"
+val_t NEW_AMainClassdef_parser_prod___AMainClassdef___empty_init(void);
+typedef val_t (*NEW_AMainClassdef_parser_prod___AMainClassdef___empty_init_t)(void);
+#define LOCATE_NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef "new AMainClassdef parser_prod::AMainClassdef::init_amainclassdef"
+val_t NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef(val_t p0);
+typedef val_t (*NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AClasskind "init var of AClasskind"
+void INIT_ATTRIBUTES__AClasskind(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AClasskind_t)(val_t p0);
+val_t NEW_AClasskind(void);
+#define LOCATE_CHECKNEW_AClasskind "check new AClasskind"
+void CHECKNEW_AClasskind(val_t p0);
+typedef void (*CHECKNEW_AClasskind_t)(val_t p0);
+#define LOCATE_NEW_AClasskind_parser_nodes___ANode___init "new AClasskind parser_nodes::ANode::init"
+val_t NEW_AClasskind_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AClasskind_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AConcreteClasskind "init var of AConcreteClasskind"
+void INIT_ATTRIBUTES__AConcreteClasskind(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AConcreteClasskind_t)(val_t p0);
+val_t NEW_AConcreteClasskind(void);
+#define LOCATE_CHECKNEW_AConcreteClasskind "check new AConcreteClasskind"
+void CHECKNEW_AConcreteClasskind(val_t p0);
+typedef void (*CHECKNEW_AConcreteClasskind_t)(val_t p0);
+#define LOCATE_NEW_AConcreteClasskind_parser_nodes___ANode___init "new AConcreteClasskind parser_nodes::ANode::init"
+val_t NEW_AConcreteClasskind_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AConcreteClasskind_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___empty_init "new AConcreteClasskind parser_prod::AConcreteClasskind::empty_init"
+val_t NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___empty_init(void);
+typedef val_t (*NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___empty_init_t)(void);
+#define LOCATE_NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcreteclasskind "new AConcreteClasskind parser_prod::AConcreteClasskind::init_aconcreteclasskind"
+val_t NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0);
+typedef val_t (*NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcreteclasskind_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AAbstractClasskind "init var of AAbstractClasskind"
+void INIT_ATTRIBUTES__AAbstractClasskind(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAbstractClasskind_t)(val_t p0);
+val_t NEW_AAbstractClasskind(void);
+#define LOCATE_CHECKNEW_AAbstractClasskind "check new AAbstractClasskind"
+void CHECKNEW_AAbstractClasskind(val_t p0);
+typedef void (*CHECKNEW_AAbstractClasskind_t)(val_t p0);
+#define LOCATE_NEW_AAbstractClasskind_parser_nodes___ANode___init "new AAbstractClasskind parser_nodes::ANode::init"
+val_t NEW_AAbstractClasskind_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAbstractClasskind_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___empty_init "new AAbstractClasskind parser_prod::AAbstractClasskind::empty_init"
+val_t NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___empty_init(void);
+typedef val_t (*NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___empty_init_t)(void);
+#define LOCATE_NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractclasskind "new AAbstractClasskind parser_prod::AAbstractClasskind::init_aabstractclasskind"
+val_t NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1);
+typedef val_t (*NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractclasskind_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AInterfaceClasskind "init var of AInterfaceClasskind"
+void INIT_ATTRIBUTES__AInterfaceClasskind(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AInterfaceClasskind_t)(val_t p0);
+val_t NEW_AInterfaceClasskind(void);
+#define LOCATE_CHECKNEW_AInterfaceClasskind "check new AInterfaceClasskind"
+void CHECKNEW_AInterfaceClasskind(val_t p0);
+typedef void (*CHECKNEW_AInterfaceClasskind_t)(val_t p0);
+#define LOCATE_NEW_AInterfaceClasskind_parser_nodes___ANode___init "new AInterfaceClasskind parser_nodes::ANode::init"
+val_t NEW_AInterfaceClasskind_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AInterfaceClasskind_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___empty_init "new AInterfaceClasskind parser_prod::AInterfaceClasskind::empty_init"
+val_t NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___empty_init(void);
+typedef val_t (*NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___empty_init_t)(void);
+#define LOCATE_NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind "new AInterfaceClasskind parser_prod::AInterfaceClasskind::init_ainterfaceclasskind"
+val_t NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0);
+typedef val_t (*NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AUniversalClasskind "init var of AUniversalClasskind"
+void INIT_ATTRIBUTES__AUniversalClasskind(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AUniversalClasskind_t)(val_t p0);
+val_t NEW_AUniversalClasskind(void);
+#define LOCATE_CHECKNEW_AUniversalClasskind "check new AUniversalClasskind"
+void CHECKNEW_AUniversalClasskind(val_t p0);
+typedef void (*CHECKNEW_AUniversalClasskind_t)(val_t p0);
+#define LOCATE_NEW_AUniversalClasskind_parser_nodes___ANode___init "new AUniversalClasskind parser_nodes::ANode::init"
+val_t NEW_AUniversalClasskind_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AUniversalClasskind_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___empty_init "new AUniversalClasskind parser_prod::AUniversalClasskind::empty_init"
+val_t NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___empty_init(void);
+typedef val_t (*NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___empty_init_t)(void);
+#define LOCATE_NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___init_auniversalclasskind "new AUniversalClasskind parser_prod::AUniversalClasskind::init_auniversalclasskind"
+val_t NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t p0);
+typedef val_t (*NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___init_auniversalclasskind_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AFormaldef "init var of AFormaldef"
+void INIT_ATTRIBUTES__AFormaldef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AFormaldef_t)(val_t p0);
+val_t NEW_AFormaldef(void);
+#define LOCATE_CHECKNEW_AFormaldef "check new AFormaldef"
+void CHECKNEW_AFormaldef(val_t p0);
+typedef void (*CHECKNEW_AFormaldef_t)(val_t p0);
+#define LOCATE_NEW_AFormaldef_parser_nodes___ANode___init "new AFormaldef parser_nodes::ANode::init"
+val_t NEW_AFormaldef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AFormaldef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AFormaldef_parser_prod___AFormaldef___empty_init "new AFormaldef parser_prod::AFormaldef::empty_init"
+val_t NEW_AFormaldef_parser_prod___AFormaldef___empty_init(void);
+typedef val_t (*NEW_AFormaldef_parser_prod___AFormaldef___empty_init_t)(void);
+#define LOCATE_NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef "new AFormaldef parser_prod::AFormaldef::init_aformaldef"
+val_t NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1);
+typedef val_t (*NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ASuperclass "init var of ASuperclass"
+void INIT_ATTRIBUTES__ASuperclass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASuperclass_t)(val_t p0);
+val_t NEW_ASuperclass(void);
+#define LOCATE_CHECKNEW_ASuperclass "check new ASuperclass"
+void CHECKNEW_ASuperclass(val_t p0);
+typedef void (*CHECKNEW_ASuperclass_t)(val_t p0);
+#define LOCATE_NEW_ASuperclass_parser_nodes___ANode___init "new ASuperclass parser_nodes::ANode::init"
+val_t NEW_ASuperclass_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASuperclass_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASuperclass_parser_prod___ASuperclass___empty_init "new ASuperclass parser_prod::ASuperclass::empty_init"
+val_t NEW_ASuperclass_parser_prod___ASuperclass___empty_init(void);
+typedef val_t (*NEW_ASuperclass_parser_prod___ASuperclass___empty_init_t)(void);
+#define LOCATE_NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass "new ASuperclass parser_prod::ASuperclass::init_asuperclass"
+val_t NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1);
+typedef val_t (*NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__APropdef "init var of APropdef"
+void INIT_ATTRIBUTES__APropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APropdef_t)(val_t p0);
+val_t NEW_APropdef(void);
+#define LOCATE_CHECKNEW_APropdef "check new APropdef"
+void CHECKNEW_APropdef(val_t p0);
+typedef void (*CHECKNEW_APropdef_t)(val_t p0);
+#define LOCATE_NEW_APropdef_parser_nodes___ANode___init "new APropdef parser_nodes::ANode::init"
+val_t NEW_APropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AAttrPropdef "init var of AAttrPropdef"
+void INIT_ATTRIBUTES__AAttrPropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAttrPropdef_t)(val_t p0);
+val_t NEW_AAttrPropdef(void);
+#define LOCATE_CHECKNEW_AAttrPropdef "check new AAttrPropdef"
+void CHECKNEW_AAttrPropdef(val_t p0);
+typedef void (*CHECKNEW_AAttrPropdef_t)(val_t p0);
+#define LOCATE_NEW_AAttrPropdef_parser_nodes___ANode___init "new AAttrPropdef parser_nodes::ANode::init"
+val_t NEW_AAttrPropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAttrPropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAttrPropdef_parser_prod___AAttrPropdef___empty_init "new AAttrPropdef parser_prod::AAttrPropdef::empty_init"
+val_t NEW_AAttrPropdef_parser_prod___AAttrPropdef___empty_init(void);
+typedef val_t (*NEW_AAttrPropdef_parser_prod___AAttrPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef "new AAttrPropdef parser_prod::AAttrPropdef::init_aattrpropdef"
+val_t NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8);
+typedef val_t (*NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8);
+#define LOCATE_INIT_ATTRIBUTES__AMethPropdef "init var of AMethPropdef"
+void INIT_ATTRIBUTES__AMethPropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AMethPropdef_t)(val_t p0);
+val_t NEW_AMethPropdef(void);
+#define LOCATE_CHECKNEW_AMethPropdef "check new AMethPropdef"
+void CHECKNEW_AMethPropdef(val_t p0);
+typedef void (*CHECKNEW_AMethPropdef_t)(val_t p0);
+#define LOCATE_NEW_AMethPropdef_parser_nodes___ANode___init "new AMethPropdef parser_nodes::ANode::init"
+val_t NEW_AMethPropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AMethPropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AMethPropdef_parser_prod___AMethPropdef___empty_init "new AMethPropdef parser_prod::AMethPropdef::empty_init"
+val_t NEW_AMethPropdef_parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_AMethPropdef_parser_prod___AMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AMethPropdef_parser_prod___AMethPropdef___init_amethpropdef "new AMethPropdef parser_prod::AMethPropdef::init_amethpropdef"
+val_t NEW_AMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AMethPropdef_parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_INIT_ATTRIBUTES__ADeferredMethPropdef "init var of ADeferredMethPropdef"
+void INIT_ATTRIBUTES__ADeferredMethPropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ADeferredMethPropdef_t)(val_t p0);
+val_t NEW_ADeferredMethPropdef(void);
+#define LOCATE_CHECKNEW_ADeferredMethPropdef "check new ADeferredMethPropdef"
+void CHECKNEW_ADeferredMethPropdef(val_t p0);
+typedef void (*CHECKNEW_ADeferredMethPropdef_t)(val_t p0);
+#define LOCATE_NEW_ADeferredMethPropdef_parser_nodes___ANode___init "new ADeferredMethPropdef parser_nodes::ANode::init"
+val_t NEW_ADeferredMethPropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ADeferredMethPropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___empty_init "new ADeferredMethPropdef parser_prod::AMethPropdef::empty_init"
+val_t NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___init_amethpropdef "new ADeferredMethPropdef parser_prod::AMethPropdef::init_amethpropdef"
+val_t NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___empty_init "new ADeferredMethPropdef parser_prod::ADeferredMethPropdef::empty_init"
+val_t NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___empty_init(void);
+typedef val_t (*NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef "new ADeferredMethPropdef parser_prod::ADeferredMethPropdef::init_adeferredmethpropdef"
+val_t NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+typedef val_t (*NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+#define LOCATE_INIT_ATTRIBUTES__AInternMethPropdef "init var of AInternMethPropdef"
+void INIT_ATTRIBUTES__AInternMethPropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AInternMethPropdef_t)(val_t p0);
+val_t NEW_AInternMethPropdef(void);
+#define LOCATE_CHECKNEW_AInternMethPropdef "check new AInternMethPropdef"
+void CHECKNEW_AInternMethPropdef(val_t p0);
+typedef void (*CHECKNEW_AInternMethPropdef_t)(val_t p0);
+#define LOCATE_NEW_AInternMethPropdef_parser_nodes___ANode___init "new AInternMethPropdef parser_nodes::ANode::init"
+val_t NEW_AInternMethPropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AInternMethPropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AInternMethPropdef_parser_prod___AMethPropdef___empty_init "new AInternMethPropdef parser_prod::AMethPropdef::empty_init"
+val_t NEW_AInternMethPropdef_parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_AInternMethPropdef_parser_prod___AMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AInternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef "new AInternMethPropdef parser_prod::AMethPropdef::init_amethpropdef"
+val_t NEW_AInternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AInternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___empty_init "new AInternMethPropdef parser_prod::AInternMethPropdef::empty_init"
+val_t NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___empty_init(void);
+typedef val_t (*NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef "new AInternMethPropdef parser_prod::AInternMethPropdef::init_ainternmethpropdef"
+val_t NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+typedef val_t (*NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+#define LOCATE_INIT_ATTRIBUTES__AExternMethPropdef "init var of AExternMethPropdef"
+void INIT_ATTRIBUTES__AExternMethPropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AExternMethPropdef_t)(val_t p0);
+val_t NEW_AExternMethPropdef(void);
+#define LOCATE_CHECKNEW_AExternMethPropdef "check new AExternMethPropdef"
+void CHECKNEW_AExternMethPropdef(val_t p0);
+typedef void (*CHECKNEW_AExternMethPropdef_t)(val_t p0);
+#define LOCATE_NEW_AExternMethPropdef_parser_nodes___ANode___init "new AExternMethPropdef parser_nodes::ANode::init"
+val_t NEW_AExternMethPropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AExternMethPropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AExternMethPropdef_parser_prod___AMethPropdef___empty_init "new AExternMethPropdef parser_prod::AMethPropdef::empty_init"
+val_t NEW_AExternMethPropdef_parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_AExternMethPropdef_parser_prod___AMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AExternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef "new AExternMethPropdef parser_prod::AMethPropdef::init_amethpropdef"
+val_t NEW_AExternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AExternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___empty_init "new AExternMethPropdef parser_prod::AExternMethPropdef::empty_init"
+val_t NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___empty_init(void);
+typedef val_t (*NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef "new AExternMethPropdef parser_prod::AExternMethPropdef::init_aexternmethpropdef"
+val_t NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+typedef val_t (*NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+#define LOCATE_INIT_ATTRIBUTES__AConcreteMethPropdef "init var of AConcreteMethPropdef"
+void INIT_ATTRIBUTES__AConcreteMethPropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AConcreteMethPropdef_t)(val_t p0);
+val_t NEW_AConcreteMethPropdef(void);
+#define LOCATE_CHECKNEW_AConcreteMethPropdef "check new AConcreteMethPropdef"
+void CHECKNEW_AConcreteMethPropdef(val_t p0);
+typedef void (*CHECKNEW_AConcreteMethPropdef_t)(val_t p0);
+#define LOCATE_NEW_AConcreteMethPropdef_parser_nodes___ANode___init "new AConcreteMethPropdef parser_nodes::ANode::init"
+val_t NEW_AConcreteMethPropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AConcreteMethPropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___empty_init "new AConcreteMethPropdef parser_prod::AMethPropdef::empty_init"
+val_t NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___init_amethpropdef "new AConcreteMethPropdef parser_prod::AMethPropdef::init_amethpropdef"
+val_t NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___empty_init "new AConcreteMethPropdef parser_prod::AConcreteMethPropdef::empty_init"
+val_t NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___empty_init(void);
+typedef val_t (*NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef "new AConcreteMethPropdef parser_prod::AConcreteMethPropdef::init_aconcretemethpropdef"
+val_t NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+typedef val_t (*NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+#define LOCATE_INIT_ATTRIBUTES__AConcreteInitPropdef "init var of AConcreteInitPropdef"
+void INIT_ATTRIBUTES__AConcreteInitPropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AConcreteInitPropdef_t)(val_t p0);
+val_t NEW_AConcreteInitPropdef(void);
+#define LOCATE_CHECKNEW_AConcreteInitPropdef "check new AConcreteInitPropdef"
+void CHECKNEW_AConcreteInitPropdef(val_t p0);
+typedef void (*CHECKNEW_AConcreteInitPropdef_t)(val_t p0);
+#define LOCATE_NEW_AConcreteInitPropdef_parser_nodes___ANode___init "new AConcreteInitPropdef parser_nodes::ANode::init"
+val_t NEW_AConcreteInitPropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AConcreteInitPropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___empty_init "new AConcreteInitPropdef parser_prod::AMethPropdef::empty_init"
+val_t NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___init_amethpropdef "new AConcreteInitPropdef parser_prod::AMethPropdef::init_amethpropdef"
+val_t NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___empty_init "new AConcreteInitPropdef parser_prod::AConcreteMethPropdef::empty_init"
+val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___empty_init(void);
+typedef val_t (*NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef "new AConcreteInitPropdef parser_prod::AConcreteMethPropdef::init_aconcretemethpropdef"
+val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+typedef val_t (*NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+#define LOCATE_NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___empty_init "new AConcreteInitPropdef parser_prod::AConcreteInitPropdef::empty_init"
+val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___empty_init(void);
+typedef val_t (*NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef "new AConcreteInitPropdef parser_prod::AConcreteInitPropdef::init_aconcreteinitpropdef"
+val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+typedef val_t (*NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+#define LOCATE_INIT_ATTRIBUTES__AMainMethPropdef "init var of AMainMethPropdef"
+void INIT_ATTRIBUTES__AMainMethPropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AMainMethPropdef_t)(val_t p0);
+val_t NEW_AMainMethPropdef(void);
+#define LOCATE_CHECKNEW_AMainMethPropdef "check new AMainMethPropdef"
+void CHECKNEW_AMainMethPropdef(val_t p0);
+typedef void (*CHECKNEW_AMainMethPropdef_t)(val_t p0);
+#define LOCATE_NEW_AMainMethPropdef_parser_nodes___ANode___init "new AMainMethPropdef parser_nodes::ANode::init"
+val_t NEW_AMainMethPropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AMainMethPropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AMainMethPropdef_parser_prod___AMethPropdef___empty_init "new AMainMethPropdef parser_prod::AMethPropdef::empty_init"
+val_t NEW_AMainMethPropdef_parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_AMainMethPropdef_parser_prod___AMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AMainMethPropdef_parser_prod___AMethPropdef___init_amethpropdef "new AMainMethPropdef parser_prod::AMethPropdef::init_amethpropdef"
+val_t NEW_AMainMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AMainMethPropdef_parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___empty_init "new AMainMethPropdef parser_prod::AConcreteMethPropdef::empty_init"
+val_t NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___empty_init(void);
+typedef val_t (*NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef "new AMainMethPropdef parser_prod::AConcreteMethPropdef::init_aconcretemethpropdef"
+val_t NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+typedef val_t (*NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+#define LOCATE_NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___empty_init "new AMainMethPropdef parser_prod::AMainMethPropdef::empty_init"
+val_t NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___empty_init(void);
+typedef val_t (*NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___empty_init_t)(void);
+#define LOCATE_NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef "new AMainMethPropdef parser_prod::AMainMethPropdef::init_amainmethpropdef"
+val_t NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1);
+typedef val_t (*NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ATypePropdef "init var of ATypePropdef"
+void INIT_ATTRIBUTES__ATypePropdef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ATypePropdef_t)(val_t p0);
+val_t NEW_ATypePropdef(void);
+#define LOCATE_CHECKNEW_ATypePropdef "check new ATypePropdef"
+void CHECKNEW_ATypePropdef(val_t p0);
+typedef void (*CHECKNEW_ATypePropdef_t)(val_t p0);
+#define LOCATE_NEW_ATypePropdef_parser_nodes___ANode___init "new ATypePropdef parser_nodes::ANode::init"
+val_t NEW_ATypePropdef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ATypePropdef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ATypePropdef_parser_prod___ATypePropdef___empty_init "new ATypePropdef parser_prod::ATypePropdef::empty_init"
+val_t NEW_ATypePropdef_parser_prod___ATypePropdef___empty_init(void);
+typedef val_t (*NEW_ATypePropdef_parser_prod___ATypePropdef___empty_init_t)(void);
+#define LOCATE_NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef "new ATypePropdef parser_prod::ATypePropdef::init_atypepropdef"
+val_t NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+typedef val_t (*NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+#define LOCATE_INIT_ATTRIBUTES__AAble "init var of AAble"
+void INIT_ATTRIBUTES__AAble(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAble_t)(val_t p0);
+val_t NEW_AAble(void);
+#define LOCATE_CHECKNEW_AAble "check new AAble"
+void CHECKNEW_AAble(val_t p0);
+typedef void (*CHECKNEW_AAble_t)(val_t p0);
+#define LOCATE_NEW_AAble_parser_nodes___ANode___init "new AAble parser_nodes::ANode::init"
+val_t NEW_AAble_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAble_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AReadAble "init var of AReadAble"
+void INIT_ATTRIBUTES__AReadAble(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AReadAble_t)(val_t p0);
+val_t NEW_AReadAble(void);
+#define LOCATE_CHECKNEW_AReadAble "check new AReadAble"
+void CHECKNEW_AReadAble(val_t p0);
+typedef void (*CHECKNEW_AReadAble_t)(val_t p0);
+#define LOCATE_NEW_AReadAble_parser_nodes___ANode___init "new AReadAble parser_nodes::ANode::init"
+val_t NEW_AReadAble_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AReadAble_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AReadAble_parser_prod___AReadAble___empty_init "new AReadAble parser_prod::AReadAble::empty_init"
+val_t NEW_AReadAble_parser_prod___AReadAble___empty_init(void);
+typedef val_t (*NEW_AReadAble_parser_prod___AReadAble___empty_init_t)(void);
+#define LOCATE_NEW_AReadAble_parser_prod___AReadAble___init_areadable "new AReadAble parser_prod::AReadAble::init_areadable"
+val_t NEW_AReadAble_parser_prod___AReadAble___init_areadable(val_t p0, val_t p1);
+typedef val_t (*NEW_AReadAble_parser_prod___AReadAble___init_areadable_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AWriteAble "init var of AWriteAble"
+void INIT_ATTRIBUTES__AWriteAble(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AWriteAble_t)(val_t p0);
+val_t NEW_AWriteAble(void);
+#define LOCATE_CHECKNEW_AWriteAble "check new AWriteAble"
+void CHECKNEW_AWriteAble(val_t p0);
+typedef void (*CHECKNEW_AWriteAble_t)(val_t p0);
+#define LOCATE_NEW_AWriteAble_parser_nodes___ANode___init "new AWriteAble parser_nodes::ANode::init"
+val_t NEW_AWriteAble_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AWriteAble_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AWriteAble_parser_prod___AWriteAble___empty_init "new AWriteAble parser_prod::AWriteAble::empty_init"
+val_t NEW_AWriteAble_parser_prod___AWriteAble___empty_init(void);
+typedef val_t (*NEW_AWriteAble_parser_prod___AWriteAble___empty_init_t)(void);
+#define LOCATE_NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable "new AWriteAble parser_prod::AWriteAble::init_awriteable"
+val_t NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1);
+typedef val_t (*NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AMethid "init var of AMethid"
+void INIT_ATTRIBUTES__AMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AMethid_t)(val_t p0);
+val_t NEW_AMethid(void);
+#define LOCATE_CHECKNEW_AMethid "check new AMethid"
+void CHECKNEW_AMethid(val_t p0);
+typedef void (*CHECKNEW_AMethid_t)(val_t p0);
+#define LOCATE_NEW_AMethid_parser_nodes___ANode___init "new AMethid parser_nodes::ANode::init"
+val_t NEW_AMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AIdMethid "init var of AIdMethid"
+void INIT_ATTRIBUTES__AIdMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AIdMethid_t)(val_t p0);
+val_t NEW_AIdMethid(void);
+#define LOCATE_CHECKNEW_AIdMethid "check new AIdMethid"
+void CHECKNEW_AIdMethid(val_t p0);
+typedef void (*CHECKNEW_AIdMethid_t)(val_t p0);
+#define LOCATE_NEW_AIdMethid_parser_nodes___ANode___init "new AIdMethid parser_nodes::ANode::init"
+val_t NEW_AIdMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AIdMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AIdMethid_parser_prod___AIdMethid___empty_init "new AIdMethid parser_prod::AIdMethid::empty_init"
+val_t NEW_AIdMethid_parser_prod___AIdMethid___empty_init(void);
+typedef val_t (*NEW_AIdMethid_parser_prod___AIdMethid___empty_init_t)(void);
+#define LOCATE_NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid "new AIdMethid parser_prod::AIdMethid::init_aidmethid"
+val_t NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid(val_t p0);
+typedef val_t (*NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__APlusMethid "init var of APlusMethid"
+void INIT_ATTRIBUTES__APlusMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APlusMethid_t)(val_t p0);
+val_t NEW_APlusMethid(void);
+#define LOCATE_CHECKNEW_APlusMethid "check new APlusMethid"
+void CHECKNEW_APlusMethid(val_t p0);
+typedef void (*CHECKNEW_APlusMethid_t)(val_t p0);
+#define LOCATE_NEW_APlusMethid_parser_nodes___ANode___init "new APlusMethid parser_nodes::ANode::init"
+val_t NEW_APlusMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APlusMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_APlusMethid_parser_prod___APlusMethid___empty_init "new APlusMethid parser_prod::APlusMethid::empty_init"
+val_t NEW_APlusMethid_parser_prod___APlusMethid___empty_init(void);
+typedef val_t (*NEW_APlusMethid_parser_prod___APlusMethid___empty_init_t)(void);
+#define LOCATE_NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid "new APlusMethid parser_prod::APlusMethid::init_aplusmethid"
+val_t NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid(val_t p0);
+typedef val_t (*NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AMinusMethid "init var of AMinusMethid"
+void INIT_ATTRIBUTES__AMinusMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AMinusMethid_t)(val_t p0);
+val_t NEW_AMinusMethid(void);
+#define LOCATE_CHECKNEW_AMinusMethid "check new AMinusMethid"
+void CHECKNEW_AMinusMethid(val_t p0);
+typedef void (*CHECKNEW_AMinusMethid_t)(val_t p0);
+#define LOCATE_NEW_AMinusMethid_parser_nodes___ANode___init "new AMinusMethid parser_nodes::ANode::init"
+val_t NEW_AMinusMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AMinusMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AMinusMethid_parser_prod___AMinusMethid___empty_init "new AMinusMethid parser_prod::AMinusMethid::empty_init"
+val_t NEW_AMinusMethid_parser_prod___AMinusMethid___empty_init(void);
+typedef val_t (*NEW_AMinusMethid_parser_prod___AMinusMethid___empty_init_t)(void);
+#define LOCATE_NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid "new AMinusMethid parser_prod::AMinusMethid::init_aminusmethid"
+val_t NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid(val_t p0);
+typedef val_t (*NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AStarMethid "init var of AStarMethid"
+void INIT_ATTRIBUTES__AStarMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStarMethid_t)(val_t p0);
+val_t NEW_AStarMethid(void);
+#define LOCATE_CHECKNEW_AStarMethid "check new AStarMethid"
+void CHECKNEW_AStarMethid(val_t p0);
+typedef void (*CHECKNEW_AStarMethid_t)(val_t p0);
+#define LOCATE_NEW_AStarMethid_parser_nodes___ANode___init "new AStarMethid parser_nodes::ANode::init"
+val_t NEW_AStarMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStarMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AStarMethid_parser_prod___AStarMethid___empty_init "new AStarMethid parser_prod::AStarMethid::empty_init"
+val_t NEW_AStarMethid_parser_prod___AStarMethid___empty_init(void);
+typedef val_t (*NEW_AStarMethid_parser_prod___AStarMethid___empty_init_t)(void);
+#define LOCATE_NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid "new AStarMethid parser_prod::AStarMethid::init_astarmethid"
+val_t NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid(val_t p0);
+typedef val_t (*NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ASlashMethid "init var of ASlashMethid"
+void INIT_ATTRIBUTES__ASlashMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASlashMethid_t)(val_t p0);
+val_t NEW_ASlashMethid(void);
+#define LOCATE_CHECKNEW_ASlashMethid "check new ASlashMethid"
+void CHECKNEW_ASlashMethid(val_t p0);
+typedef void (*CHECKNEW_ASlashMethid_t)(val_t p0);
+#define LOCATE_NEW_ASlashMethid_parser_nodes___ANode___init "new ASlashMethid parser_nodes::ANode::init"
+val_t NEW_ASlashMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASlashMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASlashMethid_parser_prod___ASlashMethid___empty_init "new ASlashMethid parser_prod::ASlashMethid::empty_init"
+val_t NEW_ASlashMethid_parser_prod___ASlashMethid___empty_init(void);
+typedef val_t (*NEW_ASlashMethid_parser_prod___ASlashMethid___empty_init_t)(void);
+#define LOCATE_NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid "new ASlashMethid parser_prod::ASlashMethid::init_aslashmethid"
+val_t NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid(val_t p0);
+typedef val_t (*NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__APercentMethid "init var of APercentMethid"
+void INIT_ATTRIBUTES__APercentMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APercentMethid_t)(val_t p0);
+val_t NEW_APercentMethid(void);
+#define LOCATE_CHECKNEW_APercentMethid "check new APercentMethid"
+void CHECKNEW_APercentMethid(val_t p0);
+typedef void (*CHECKNEW_APercentMethid_t)(val_t p0);
+#define LOCATE_NEW_APercentMethid_parser_nodes___ANode___init "new APercentMethid parser_nodes::ANode::init"
+val_t NEW_APercentMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APercentMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_APercentMethid_parser_prod___APercentMethid___empty_init "new APercentMethid parser_prod::APercentMethid::empty_init"
+val_t NEW_APercentMethid_parser_prod___APercentMethid___empty_init(void);
+typedef val_t (*NEW_APercentMethid_parser_prod___APercentMethid___empty_init_t)(void);
+#define LOCATE_NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid "new APercentMethid parser_prod::APercentMethid::init_apercentmethid"
+val_t NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid(val_t p0);
+typedef val_t (*NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AEqMethid "init var of AEqMethid"
+void INIT_ATTRIBUTES__AEqMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AEqMethid_t)(val_t p0);
+val_t NEW_AEqMethid(void);
+#define LOCATE_CHECKNEW_AEqMethid "check new AEqMethid"
+void CHECKNEW_AEqMethid(val_t p0);
+typedef void (*CHECKNEW_AEqMethid_t)(val_t p0);
+#define LOCATE_NEW_AEqMethid_parser_nodes___ANode___init "new AEqMethid parser_nodes::ANode::init"
+val_t NEW_AEqMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AEqMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AEqMethid_parser_prod___AEqMethid___empty_init "new AEqMethid parser_prod::AEqMethid::empty_init"
+val_t NEW_AEqMethid_parser_prod___AEqMethid___empty_init(void);
+typedef val_t (*NEW_AEqMethid_parser_prod___AEqMethid___empty_init_t)(void);
+#define LOCATE_NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid "new AEqMethid parser_prod::AEqMethid::init_aeqmethid"
+val_t NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid(val_t p0);
+typedef val_t (*NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ANeMethid "init var of ANeMethid"
+void INIT_ATTRIBUTES__ANeMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ANeMethid_t)(val_t p0);
+val_t NEW_ANeMethid(void);
+#define LOCATE_CHECKNEW_ANeMethid "check new ANeMethid"
+void CHECKNEW_ANeMethid(val_t p0);
+typedef void (*CHECKNEW_ANeMethid_t)(val_t p0);
+#define LOCATE_NEW_ANeMethid_parser_nodes___ANode___init "new ANeMethid parser_nodes::ANode::init"
+val_t NEW_ANeMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ANeMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ANeMethid_parser_prod___ANeMethid___empty_init "new ANeMethid parser_prod::ANeMethid::empty_init"
+val_t NEW_ANeMethid_parser_prod___ANeMethid___empty_init(void);
+typedef val_t (*NEW_ANeMethid_parser_prod___ANeMethid___empty_init_t)(void);
+#define LOCATE_NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid "new ANeMethid parser_prod::ANeMethid::init_anemethid"
+val_t NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid(val_t p0);
+typedef val_t (*NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ALeMethid "init var of ALeMethid"
+void INIT_ATTRIBUTES__ALeMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ALeMethid_t)(val_t p0);
+val_t NEW_ALeMethid(void);
+#define LOCATE_CHECKNEW_ALeMethid "check new ALeMethid"
+void CHECKNEW_ALeMethid(val_t p0);
+typedef void (*CHECKNEW_ALeMethid_t)(val_t p0);
+#define LOCATE_NEW_ALeMethid_parser_nodes___ANode___init "new ALeMethid parser_nodes::ANode::init"
+val_t NEW_ALeMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ALeMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ALeMethid_parser_prod___ALeMethid___empty_init "new ALeMethid parser_prod::ALeMethid::empty_init"
+val_t NEW_ALeMethid_parser_prod___ALeMethid___empty_init(void);
+typedef val_t (*NEW_ALeMethid_parser_prod___ALeMethid___empty_init_t)(void);
+#define LOCATE_NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid "new ALeMethid parser_prod::ALeMethid::init_alemethid"
+val_t NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid(val_t p0);
+typedef val_t (*NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AGeMethid "init var of AGeMethid"
+void INIT_ATTRIBUTES__AGeMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AGeMethid_t)(val_t p0);
+val_t NEW_AGeMethid(void);
+#define LOCATE_CHECKNEW_AGeMethid "check new AGeMethid"
+void CHECKNEW_AGeMethid(val_t p0);
+typedef void (*CHECKNEW_AGeMethid_t)(val_t p0);
+#define LOCATE_NEW_AGeMethid_parser_nodes___ANode___init "new AGeMethid parser_nodes::ANode::init"
+val_t NEW_AGeMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AGeMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AGeMethid_parser_prod___AGeMethid___empty_init "new AGeMethid parser_prod::AGeMethid::empty_init"
+val_t NEW_AGeMethid_parser_prod___AGeMethid___empty_init(void);
+typedef val_t (*NEW_AGeMethid_parser_prod___AGeMethid___empty_init_t)(void);
+#define LOCATE_NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid "new AGeMethid parser_prod::AGeMethid::init_agemethid"
+val_t NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid(val_t p0);
+typedef val_t (*NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ALtMethid "init var of ALtMethid"
+void INIT_ATTRIBUTES__ALtMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ALtMethid_t)(val_t p0);
+val_t NEW_ALtMethid(void);
+#define LOCATE_CHECKNEW_ALtMethid "check new ALtMethid"
+void CHECKNEW_ALtMethid(val_t p0);
+typedef void (*CHECKNEW_ALtMethid_t)(val_t p0);
+#define LOCATE_NEW_ALtMethid_parser_nodes___ANode___init "new ALtMethid parser_nodes::ANode::init"
+val_t NEW_ALtMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ALtMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ALtMethid_parser_prod___ALtMethid___empty_init "new ALtMethid parser_prod::ALtMethid::empty_init"
+val_t NEW_ALtMethid_parser_prod___ALtMethid___empty_init(void);
+typedef val_t (*NEW_ALtMethid_parser_prod___ALtMethid___empty_init_t)(void);
+#define LOCATE_NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid "new ALtMethid parser_prod::ALtMethid::init_altmethid"
+val_t NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid(val_t p0);
+typedef val_t (*NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AGtMethid "init var of AGtMethid"
+void INIT_ATTRIBUTES__AGtMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AGtMethid_t)(val_t p0);
+val_t NEW_AGtMethid(void);
+#define LOCATE_CHECKNEW_AGtMethid "check new AGtMethid"
+void CHECKNEW_AGtMethid(val_t p0);
+typedef void (*CHECKNEW_AGtMethid_t)(val_t p0);
+#define LOCATE_NEW_AGtMethid_parser_nodes___ANode___init "new AGtMethid parser_nodes::ANode::init"
+val_t NEW_AGtMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AGtMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AGtMethid_parser_prod___AGtMethid___empty_init "new AGtMethid parser_prod::AGtMethid::empty_init"
+val_t NEW_AGtMethid_parser_prod___AGtMethid___empty_init(void);
+typedef val_t (*NEW_AGtMethid_parser_prod___AGtMethid___empty_init_t)(void);
+#define LOCATE_NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid "new AGtMethid parser_prod::AGtMethid::init_agtmethid"
+val_t NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid(val_t p0);
+typedef val_t (*NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ABraMethid "init var of ABraMethid"
+void INIT_ATTRIBUTES__ABraMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABraMethid_t)(val_t p0);
+val_t NEW_ABraMethid(void);
+#define LOCATE_CHECKNEW_ABraMethid "check new ABraMethid"
+void CHECKNEW_ABraMethid(val_t p0);
+typedef void (*CHECKNEW_ABraMethid_t)(val_t p0);
+#define LOCATE_NEW_ABraMethid_parser_nodes___ANode___init "new ABraMethid parser_nodes::ANode::init"
+val_t NEW_ABraMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABraMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABraMethid_parser_prod___ABraMethid___empty_init "new ABraMethid parser_prod::ABraMethid::empty_init"
+val_t NEW_ABraMethid_parser_prod___ABraMethid___empty_init(void);
+typedef val_t (*NEW_ABraMethid_parser_prod___ABraMethid___empty_init_t)(void);
+#define LOCATE_NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid "new ABraMethid parser_prod::ABraMethid::init_abramethid"
+val_t NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1);
+typedef val_t (*NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AStarshipMethid "init var of AStarshipMethid"
+void INIT_ATTRIBUTES__AStarshipMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStarshipMethid_t)(val_t p0);
+val_t NEW_AStarshipMethid(void);
+#define LOCATE_CHECKNEW_AStarshipMethid "check new AStarshipMethid"
+void CHECKNEW_AStarshipMethid(val_t p0);
+typedef void (*CHECKNEW_AStarshipMethid_t)(val_t p0);
+#define LOCATE_NEW_AStarshipMethid_parser_nodes___ANode___init "new AStarshipMethid parser_nodes::ANode::init"
+val_t NEW_AStarshipMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStarshipMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AStarshipMethid_parser_prod___AStarshipMethid___empty_init "new AStarshipMethid parser_prod::AStarshipMethid::empty_init"
+val_t NEW_AStarshipMethid_parser_prod___AStarshipMethid___empty_init(void);
+typedef val_t (*NEW_AStarshipMethid_parser_prod___AStarshipMethid___empty_init_t)(void);
+#define LOCATE_NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid "new AStarshipMethid parser_prod::AStarshipMethid::init_astarshipmethid"
+val_t NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0);
+typedef val_t (*NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AAssignMethid "init var of AAssignMethid"
+void INIT_ATTRIBUTES__AAssignMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAssignMethid_t)(val_t p0);
+val_t NEW_AAssignMethid(void);
+#define LOCATE_CHECKNEW_AAssignMethid "check new AAssignMethid"
+void CHECKNEW_AAssignMethid(val_t p0);
+typedef void (*CHECKNEW_AAssignMethid_t)(val_t p0);
+#define LOCATE_NEW_AAssignMethid_parser_nodes___ANode___init "new AAssignMethid parser_nodes::ANode::init"
+val_t NEW_AAssignMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAssignMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAssignMethid_parser_prod___AAssignMethid___empty_init "new AAssignMethid parser_prod::AAssignMethid::empty_init"
+val_t NEW_AAssignMethid_parser_prod___AAssignMethid___empty_init(void);
+typedef val_t (*NEW_AAssignMethid_parser_prod___AAssignMethid___empty_init_t)(void);
+#define LOCATE_NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid "new AAssignMethid parser_prod::AAssignMethid::init_aassignmethid"
+val_t NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1);
+typedef val_t (*NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ABraassignMethid "init var of ABraassignMethid"
+void INIT_ATTRIBUTES__ABraassignMethid(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABraassignMethid_t)(val_t p0);
+val_t NEW_ABraassignMethid(void);
+#define LOCATE_CHECKNEW_ABraassignMethid "check new ABraassignMethid"
+void CHECKNEW_ABraassignMethid(val_t p0);
+typedef void (*CHECKNEW_ABraassignMethid_t)(val_t p0);
+#define LOCATE_NEW_ABraassignMethid_parser_nodes___ANode___init "new ABraassignMethid parser_nodes::ANode::init"
+val_t NEW_ABraassignMethid_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABraassignMethid_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABraassignMethid_parser_prod___ABraassignMethid___empty_init "new ABraassignMethid parser_prod::ABraassignMethid::empty_init"
+val_t NEW_ABraassignMethid_parser_prod___ABraassignMethid___empty_init(void);
+typedef val_t (*NEW_ABraassignMethid_parser_prod___ABraassignMethid___empty_init_t)(void);
+#define LOCATE_NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethid "new ABraassignMethid parser_prod::ABraassignMethid::init_abraassignmethid"
+val_t NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethid_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__ASignature "init var of ASignature"
+void INIT_ATTRIBUTES__ASignature(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASignature_t)(val_t p0);
+val_t NEW_ASignature(void);
+#define LOCATE_CHECKNEW_ASignature "check new ASignature"
+void CHECKNEW_ASignature(val_t p0);
+typedef void (*CHECKNEW_ASignature_t)(val_t p0);
+#define LOCATE_NEW_ASignature_parser_nodes___ANode___init "new ASignature parser_nodes::ANode::init"
+val_t NEW_ASignature_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASignature_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASignature_parser_prod___ASignature___empty_init "new ASignature parser_prod::ASignature::empty_init"
+val_t NEW_ASignature_parser_prod___ASignature___empty_init(void);
+typedef val_t (*NEW_ASignature_parser_prod___ASignature___empty_init_t)(void);
+#define LOCATE_NEW_ASignature_parser_prod___ASignature___init_asignature "new ASignature parser_prod::ASignature::init_asignature"
+val_t NEW_ASignature_parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ASignature_parser_prod___ASignature___init_asignature_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AParam "init var of AParam"
+void INIT_ATTRIBUTES__AParam(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AParam_t)(val_t p0);
+val_t NEW_AParam(void);
+#define LOCATE_CHECKNEW_AParam "check new AParam"
+void CHECKNEW_AParam(val_t p0);
+typedef void (*CHECKNEW_AParam_t)(val_t p0);
+#define LOCATE_NEW_AParam_parser_nodes___ANode___init "new AParam parser_nodes::ANode::init"
+val_t NEW_AParam_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AParam_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AParam_parser_prod___AParam___empty_init "new AParam parser_prod::AParam::empty_init"
+val_t NEW_AParam_parser_prod___AParam___empty_init(void);
+typedef val_t (*NEW_AParam_parser_prod___AParam___empty_init_t)(void);
+#define LOCATE_NEW_AParam_parser_prod___AParam___init_aparam "new AParam parser_prod::AParam::init_aparam"
+val_t NEW_AParam_parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AParam_parser_prod___AParam___init_aparam_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AClosureDecl "init var of AClosureDecl"
+void INIT_ATTRIBUTES__AClosureDecl(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AClosureDecl_t)(val_t p0);
+val_t NEW_AClosureDecl(void);
+#define LOCATE_CHECKNEW_AClosureDecl "check new AClosureDecl"
+void CHECKNEW_AClosureDecl(val_t p0);
+typedef void (*CHECKNEW_AClosureDecl_t)(val_t p0);
+#define LOCATE_NEW_AClosureDecl_parser_nodes___ANode___init "new AClosureDecl parser_nodes::ANode::init"
+val_t NEW_AClosureDecl_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AClosureDecl_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AClosureDecl_parser_prod___AClosureDecl___empty_init "new AClosureDecl parser_prod::AClosureDecl::empty_init"
+val_t NEW_AClosureDecl_parser_prod___AClosureDecl___empty_init(void);
+typedef val_t (*NEW_AClosureDecl_parser_prod___AClosureDecl___empty_init_t)(void);
+#define LOCATE_NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl "new AClosureDecl parser_prod::AClosureDecl::init_aclosuredecl"
+val_t NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_INIT_ATTRIBUTES__AType "init var of AType"
+void INIT_ATTRIBUTES__AType(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AType_t)(val_t p0);
+val_t NEW_AType(void);
+#define LOCATE_CHECKNEW_AType "check new AType"
+void CHECKNEW_AType(val_t p0);
+typedef void (*CHECKNEW_AType_t)(val_t p0);
+#define LOCATE_NEW_AType_parser_nodes___ANode___init "new AType parser_nodes::ANode::init"
+val_t NEW_AType_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AType_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AType_parser_prod___AType___empty_init "new AType parser_prod::AType::empty_init"
+val_t NEW_AType_parser_prod___AType___empty_init(void);
+typedef val_t (*NEW_AType_parser_prod___AType___empty_init_t)(void);
+#define LOCATE_NEW_AType_parser_prod___AType___init_atype "new AType parser_prod::AType::init_atype"
+val_t NEW_AType_parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AType_parser_prod___AType___init_atype_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__ALabel "init var of ALabel"
+void INIT_ATTRIBUTES__ALabel(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ALabel_t)(val_t p0);
+val_t NEW_ALabel(void);
+#define LOCATE_CHECKNEW_ALabel "check new ALabel"
+void CHECKNEW_ALabel(val_t p0);
+typedef void (*CHECKNEW_ALabel_t)(val_t p0);
+#define LOCATE_NEW_ALabel_parser_nodes___ANode___init "new ALabel parser_nodes::ANode::init"
+val_t NEW_ALabel_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ALabel_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ALabel_parser_prod___ALabel___empty_init "new ALabel parser_prod::ALabel::empty_init"
+val_t NEW_ALabel_parser_prod___ALabel___empty_init(void);
+typedef val_t (*NEW_ALabel_parser_prod___ALabel___empty_init_t)(void);
+#define LOCATE_NEW_ALabel_parser_prod___ALabel___init_alabel "new ALabel parser_prod::ALabel::init_alabel"
+val_t NEW_ALabel_parser_prod___ALabel___init_alabel(val_t p0, val_t p1);
+typedef val_t (*NEW_ALabel_parser_prod___ALabel___init_alabel_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AExpr "init var of AExpr"
+void INIT_ATTRIBUTES__AExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AExpr_t)(val_t p0);
+val_t NEW_AExpr(void);
+#define LOCATE_CHECKNEW_AExpr "check new AExpr"
+void CHECKNEW_AExpr(val_t p0);
+typedef void (*CHECKNEW_AExpr_t)(val_t p0);
+#define LOCATE_NEW_AExpr_parser_nodes___ANode___init "new AExpr parser_nodes::ANode::init"
+val_t NEW_AExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ABlockExpr "init var of ABlockExpr"
+void INIT_ATTRIBUTES__ABlockExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABlockExpr_t)(val_t p0);
+val_t NEW_ABlockExpr(void);
+#define LOCATE_CHECKNEW_ABlockExpr "check new ABlockExpr"
+void CHECKNEW_ABlockExpr(val_t p0);
+typedef void (*CHECKNEW_ABlockExpr_t)(val_t p0);
+#define LOCATE_NEW_ABlockExpr_parser_nodes___ANode___init "new ABlockExpr parser_nodes::ANode::init"
+val_t NEW_ABlockExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABlockExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABlockExpr_parser_prod___ABlockExpr___empty_init "new ABlockExpr parser_prod::ABlockExpr::empty_init"
+val_t NEW_ABlockExpr_parser_prod___ABlockExpr___empty_init(void);
+typedef val_t (*NEW_ABlockExpr_parser_prod___ABlockExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr "new ABlockExpr parser_prod::ABlockExpr::init_ablockexpr"
+val_t NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(val_t p0);
+typedef val_t (*NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AVardeclExpr "init var of AVardeclExpr"
+void INIT_ATTRIBUTES__AVardeclExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AVardeclExpr_t)(val_t p0);
+val_t NEW_AVardeclExpr(void);
+#define LOCATE_CHECKNEW_AVardeclExpr "check new AVardeclExpr"
+void CHECKNEW_AVardeclExpr(val_t p0);
+typedef void (*CHECKNEW_AVardeclExpr_t)(val_t p0);
+#define LOCATE_NEW_AVardeclExpr_parser_nodes___ANode___init "new AVardeclExpr parser_nodes::ANode::init"
+val_t NEW_AVardeclExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AVardeclExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AVardeclExpr_parser_prod___AVardeclExpr___empty_init "new AVardeclExpr parser_prod::AVardeclExpr::empty_init"
+val_t NEW_AVardeclExpr_parser_prod___AVardeclExpr___empty_init(void);
+typedef val_t (*NEW_AVardeclExpr_parser_prod___AVardeclExpr___empty_init_t)(void);
+#define LOCATE_NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr "new AVardeclExpr parser_prod::AVardeclExpr::init_avardeclexpr"
+val_t NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_INIT_ATTRIBUTES__AReturnExpr "init var of AReturnExpr"
+void INIT_ATTRIBUTES__AReturnExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AReturnExpr_t)(val_t p0);
+val_t NEW_AReturnExpr(void);
+#define LOCATE_CHECKNEW_AReturnExpr "check new AReturnExpr"
+void CHECKNEW_AReturnExpr(val_t p0);
+typedef void (*CHECKNEW_AReturnExpr_t)(val_t p0);
+#define LOCATE_NEW_AReturnExpr_parser_nodes___ANode___init "new AReturnExpr parser_nodes::ANode::init"
+val_t NEW_AReturnExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AReturnExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AReturnExpr_parser_prod___AReturnExpr___empty_init "new AReturnExpr parser_prod::AReturnExpr::empty_init"
+val_t NEW_AReturnExpr_parser_prod___AReturnExpr___empty_init(void);
+typedef val_t (*NEW_AReturnExpr_parser_prod___AReturnExpr___empty_init_t)(void);
+#define LOCATE_NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr "new AReturnExpr parser_prod::AReturnExpr::init_areturnexpr"
+val_t NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ALabelable "init var of ALabelable"
+void INIT_ATTRIBUTES__ALabelable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ALabelable_t)(val_t p0);
+val_t NEW_ALabelable(void);
+#define LOCATE_CHECKNEW_ALabelable "check new ALabelable"
+void CHECKNEW_ALabelable(val_t p0);
+typedef void (*CHECKNEW_ALabelable_t)(val_t p0);
+#define LOCATE_NEW_ALabelable_parser_nodes___ANode___init "new ALabelable parser_nodes::ANode::init"
+val_t NEW_ALabelable_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ALabelable_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ABreakExpr "init var of ABreakExpr"
+void INIT_ATTRIBUTES__ABreakExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABreakExpr_t)(val_t p0);
+val_t NEW_ABreakExpr(void);
+#define LOCATE_CHECKNEW_ABreakExpr "check new ABreakExpr"
+void CHECKNEW_ABreakExpr(val_t p0);
+typedef void (*CHECKNEW_ABreakExpr_t)(val_t p0);
+#define LOCATE_NEW_ABreakExpr_parser_nodes___ANode___init "new ABreakExpr parser_nodes::ANode::init"
+val_t NEW_ABreakExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABreakExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABreakExpr_parser_prod___ABreakExpr___empty_init "new ABreakExpr parser_prod::ABreakExpr::empty_init"
+val_t NEW_ABreakExpr_parser_prod___ABreakExpr___empty_init(void);
+typedef val_t (*NEW_ABreakExpr_parser_prod___ABreakExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr "new ABreakExpr parser_prod::ABreakExpr::init_abreakexpr"
+val_t NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AAbortExpr "init var of AAbortExpr"
+void INIT_ATTRIBUTES__AAbortExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAbortExpr_t)(val_t p0);
+val_t NEW_AAbortExpr(void);
+#define LOCATE_CHECKNEW_AAbortExpr "check new AAbortExpr"
+void CHECKNEW_AAbortExpr(val_t p0);
+typedef void (*CHECKNEW_AAbortExpr_t)(val_t p0);
+#define LOCATE_NEW_AAbortExpr_parser_nodes___ANode___init "new AAbortExpr parser_nodes::ANode::init"
+val_t NEW_AAbortExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAbortExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAbortExpr_parser_prod___AAbortExpr___empty_init "new AAbortExpr parser_prod::AAbortExpr::empty_init"
+val_t NEW_AAbortExpr_parser_prod___AAbortExpr___empty_init(void);
+typedef val_t (*NEW_AAbortExpr_parser_prod___AAbortExpr___empty_init_t)(void);
+#define LOCATE_NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr "new AAbortExpr parser_prod::AAbortExpr::init_aabortexpr"
+val_t NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr(val_t p0);
+typedef val_t (*NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AContinueExpr "init var of AContinueExpr"
+void INIT_ATTRIBUTES__AContinueExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AContinueExpr_t)(val_t p0);
+val_t NEW_AContinueExpr(void);
+#define LOCATE_CHECKNEW_AContinueExpr "check new AContinueExpr"
+void CHECKNEW_AContinueExpr(val_t p0);
+typedef void (*CHECKNEW_AContinueExpr_t)(val_t p0);
+#define LOCATE_NEW_AContinueExpr_parser_nodes___ANode___init "new AContinueExpr parser_nodes::ANode::init"
+val_t NEW_AContinueExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AContinueExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AContinueExpr_parser_prod___AContinueExpr___empty_init "new AContinueExpr parser_prod::AContinueExpr::empty_init"
+val_t NEW_AContinueExpr_parser_prod___AContinueExpr___empty_init(void);
+typedef val_t (*NEW_AContinueExpr_parser_prod___AContinueExpr___empty_init_t)(void);
+#define LOCATE_NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr "new AContinueExpr parser_prod::AContinueExpr::init_acontinueexpr"
+val_t NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__ADoExpr "init var of ADoExpr"
+void INIT_ATTRIBUTES__ADoExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ADoExpr_t)(val_t p0);
+val_t NEW_ADoExpr(void);
+#define LOCATE_CHECKNEW_ADoExpr "check new ADoExpr"
+void CHECKNEW_ADoExpr(val_t p0);
+typedef void (*CHECKNEW_ADoExpr_t)(val_t p0);
+#define LOCATE_NEW_ADoExpr_parser_nodes___ANode___init "new ADoExpr parser_nodes::ANode::init"
+val_t NEW_ADoExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ADoExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ADoExpr_parser_prod___ADoExpr___empty_init "new ADoExpr parser_prod::ADoExpr::empty_init"
+val_t NEW_ADoExpr_parser_prod___ADoExpr___empty_init(void);
+typedef val_t (*NEW_ADoExpr_parser_prod___ADoExpr___empty_init_t)(void);
+#define LOCATE_NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr "new ADoExpr parser_prod::ADoExpr::init_adoexpr"
+val_t NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AIfExpr "init var of AIfExpr"
+void INIT_ATTRIBUTES__AIfExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AIfExpr_t)(val_t p0);
+val_t NEW_AIfExpr(void);
+#define LOCATE_CHECKNEW_AIfExpr "check new AIfExpr"
+void CHECKNEW_AIfExpr(val_t p0);
+typedef void (*CHECKNEW_AIfExpr_t)(val_t p0);
+#define LOCATE_NEW_AIfExpr_parser_nodes___ANode___init "new AIfExpr parser_nodes::ANode::init"
+val_t NEW_AIfExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AIfExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AIfExpr_parser_prod___AIfExpr___empty_init "new AIfExpr parser_prod::AIfExpr::empty_init"
+val_t NEW_AIfExpr_parser_prod___AIfExpr___empty_init(void);
+typedef val_t (*NEW_AIfExpr_parser_prod___AIfExpr___empty_init_t)(void);
+#define LOCATE_NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr "new AIfExpr parser_prod::AIfExpr::init_aifexpr"
+val_t NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__AIfexprExpr "init var of AIfexprExpr"
+void INIT_ATTRIBUTES__AIfexprExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AIfexprExpr_t)(val_t p0);
+val_t NEW_AIfexprExpr(void);
+#define LOCATE_CHECKNEW_AIfexprExpr "check new AIfexprExpr"
+void CHECKNEW_AIfexprExpr(val_t p0);
+typedef void (*CHECKNEW_AIfexprExpr_t)(val_t p0);
+#define LOCATE_NEW_AIfexprExpr_parser_nodes___ANode___init "new AIfexprExpr parser_nodes::ANode::init"
+val_t NEW_AIfexprExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AIfexprExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AIfexprExpr_parser_prod___AIfexprExpr___empty_init "new AIfexprExpr parser_prod::AIfexprExpr::empty_init"
+val_t NEW_AIfexprExpr_parser_prod___AIfexprExpr___empty_init(void);
+typedef val_t (*NEW_AIfexprExpr_parser_prod___AIfexprExpr___empty_init_t)(void);
+#define LOCATE_NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr "new AIfexprExpr parser_prod::AIfexprExpr::init_aifexprexpr"
+val_t NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+typedef val_t (*NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+#define LOCATE_INIT_ATTRIBUTES__AWhileExpr "init var of AWhileExpr"
+void INIT_ATTRIBUTES__AWhileExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AWhileExpr_t)(val_t p0);
+val_t NEW_AWhileExpr(void);
+#define LOCATE_CHECKNEW_AWhileExpr "check new AWhileExpr"
+void CHECKNEW_AWhileExpr(val_t p0);
+typedef void (*CHECKNEW_AWhileExpr_t)(val_t p0);
+#define LOCATE_NEW_AWhileExpr_parser_nodes___ANode___init "new AWhileExpr parser_nodes::ANode::init"
+val_t NEW_AWhileExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AWhileExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AWhileExpr_parser_prod___AWhileExpr___empty_init "new AWhileExpr parser_prod::AWhileExpr::empty_init"
+val_t NEW_AWhileExpr_parser_prod___AWhileExpr___empty_init(void);
+typedef val_t (*NEW_AWhileExpr_parser_prod___AWhileExpr___empty_init_t)(void);
+#define LOCATE_NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr "new AWhileExpr parser_prod::AWhileExpr::init_awhileexpr"
+val_t NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_INIT_ATTRIBUTES__ALoopExpr "init var of ALoopExpr"
+void INIT_ATTRIBUTES__ALoopExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ALoopExpr_t)(val_t p0);
+val_t NEW_ALoopExpr(void);
+#define LOCATE_CHECKNEW_ALoopExpr "check new ALoopExpr"
+void CHECKNEW_ALoopExpr(val_t p0);
+typedef void (*CHECKNEW_ALoopExpr_t)(val_t p0);
+#define LOCATE_NEW_ALoopExpr_parser_nodes___ANode___init "new ALoopExpr parser_nodes::ANode::init"
+val_t NEW_ALoopExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ALoopExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ALoopExpr_parser_prod___ALoopExpr___empty_init "new ALoopExpr parser_prod::ALoopExpr::empty_init"
+val_t NEW_ALoopExpr_parser_prod___ALoopExpr___empty_init(void);
+typedef val_t (*NEW_ALoopExpr_parser_prod___ALoopExpr___empty_init_t)(void);
+#define LOCATE_NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr "new ALoopExpr parser_prod::ALoopExpr::init_aloopexpr"
+val_t NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AForExpr "init var of AForExpr"
+void INIT_ATTRIBUTES__AForExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AForExpr_t)(val_t p0);
+val_t NEW_AForExpr(void);
+#define LOCATE_CHECKNEW_AForExpr "check new AForExpr"
+void CHECKNEW_AForExpr(val_t p0);
+typedef void (*CHECKNEW_AForExpr_t)(val_t p0);
+#define LOCATE_NEW_AForExpr_parser_nodes___ANode___init "new AForExpr parser_nodes::ANode::init"
+val_t NEW_AForExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AForExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AForExpr_parser_prod___AForExpr___empty_init "new AForExpr parser_prod::AForExpr::empty_init"
+val_t NEW_AForExpr_parser_prod___AForExpr___empty_init(void);
+typedef val_t (*NEW_AForExpr_parser_prod___AForExpr___empty_init_t)(void);
+#define LOCATE_NEW_AForExpr_parser_prod___AForExpr___init_aforexpr "new AForExpr parser_prod::AForExpr::init_aforexpr"
+val_t NEW_AForExpr_parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+typedef val_t (*NEW_AForExpr_parser_prod___AForExpr___init_aforexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+#define LOCATE_INIT_ATTRIBUTES__AAssertExpr "init var of AAssertExpr"
+void INIT_ATTRIBUTES__AAssertExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAssertExpr_t)(val_t p0);
+val_t NEW_AAssertExpr(void);
+#define LOCATE_CHECKNEW_AAssertExpr "check new AAssertExpr"
+void CHECKNEW_AAssertExpr(val_t p0);
+typedef void (*CHECKNEW_AAssertExpr_t)(val_t p0);
+#define LOCATE_NEW_AAssertExpr_parser_nodes___ANode___init "new AAssertExpr parser_nodes::ANode::init"
+val_t NEW_AAssertExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAssertExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAssertExpr_parser_prod___AAssertExpr___empty_init "new AAssertExpr parser_prod::AAssertExpr::empty_init"
+val_t NEW_AAssertExpr_parser_prod___AAssertExpr___empty_init(void);
+typedef val_t (*NEW_AAssertExpr_parser_prod___AAssertExpr___empty_init_t)(void);
+#define LOCATE_NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr "new AAssertExpr parser_prod::AAssertExpr::init_aassertexpr"
+val_t NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__AAssignFormExpr "init var of AAssignFormExpr"
+void INIT_ATTRIBUTES__AAssignFormExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAssignFormExpr_t)(val_t p0);
+val_t NEW_AAssignFormExpr(void);
+#define LOCATE_CHECKNEW_AAssignFormExpr "check new AAssignFormExpr"
+void CHECKNEW_AAssignFormExpr(val_t p0);
+typedef void (*CHECKNEW_AAssignFormExpr_t)(val_t p0);
+#define LOCATE_NEW_AAssignFormExpr_parser_nodes___ANode___init "new AAssignFormExpr parser_nodes::ANode::init"
+val_t NEW_AAssignFormExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAssignFormExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AReassignFormExpr "init var of AReassignFormExpr"
+void INIT_ATTRIBUTES__AReassignFormExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AReassignFormExpr_t)(val_t p0);
+val_t NEW_AReassignFormExpr(void);
+#define LOCATE_CHECKNEW_AReassignFormExpr "check new AReassignFormExpr"
+void CHECKNEW_AReassignFormExpr(val_t p0);
+typedef void (*CHECKNEW_AReassignFormExpr_t)(val_t p0);
+#define LOCATE_NEW_AReassignFormExpr_parser_nodes___ANode___init "new AReassignFormExpr parser_nodes::ANode::init"
+val_t NEW_AReassignFormExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AReassignFormExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AOnceExpr "init var of AOnceExpr"
+void INIT_ATTRIBUTES__AOnceExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AOnceExpr_t)(val_t p0);
+val_t NEW_AOnceExpr(void);
+#define LOCATE_CHECKNEW_AOnceExpr "check new AOnceExpr"
+void CHECKNEW_AOnceExpr(val_t p0);
+typedef void (*CHECKNEW_AOnceExpr_t)(val_t p0);
+#define LOCATE_NEW_AOnceExpr_parser_nodes___ANode___init "new AOnceExpr parser_nodes::ANode::init"
+val_t NEW_AOnceExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AOnceExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AOnceExpr_parser_prod___AOnceExpr___empty_init "new AOnceExpr parser_prod::AOnceExpr::empty_init"
+val_t NEW_AOnceExpr_parser_prod___AOnceExpr___empty_init(void);
+typedef val_t (*NEW_AOnceExpr_parser_prod___AOnceExpr___empty_init_t)(void);
+#define LOCATE_NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr "new AOnceExpr parser_prod::AOnceExpr::init_aonceexpr"
+val_t NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ASendExpr "init var of ASendExpr"
+void INIT_ATTRIBUTES__ASendExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASendExpr_t)(val_t p0);
+val_t NEW_ASendExpr(void);
+#define LOCATE_CHECKNEW_ASendExpr "check new ASendExpr"
+void CHECKNEW_ASendExpr(val_t p0);
+typedef void (*CHECKNEW_ASendExpr_t)(val_t p0);
+#define LOCATE_NEW_ASendExpr_parser_nodes___ANode___init "new ASendExpr parser_nodes::ANode::init"
+val_t NEW_ASendExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASendExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASendExpr_parser_prod___ASendExpr___empty_init "new ASendExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ASendExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ASendExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ASendExpr_parser_prod___ASendExpr___init_asendexpr "new ASendExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ASendExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ASendExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ABinopExpr "init var of ABinopExpr"
+void INIT_ATTRIBUTES__ABinopExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABinopExpr_t)(val_t p0);
+val_t NEW_ABinopExpr(void);
+#define LOCATE_CHECKNEW_ABinopExpr "check new ABinopExpr"
+void CHECKNEW_ABinopExpr(val_t p0);
+typedef void (*CHECKNEW_ABinopExpr_t)(val_t p0);
+#define LOCATE_NEW_ABinopExpr_parser_nodes___ANode___init "new ABinopExpr parser_nodes::ANode::init"
+val_t NEW_ABinopExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABinopExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABinopExpr_parser_prod___ASendExpr___empty_init "new ABinopExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ABinopExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ABinopExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABinopExpr_parser_prod___ASendExpr___init_asendexpr "new ABinopExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ABinopExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ABinopExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ABinopExpr_parser_prod___ABinopExpr___empty_init "new ABinopExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_ABinopExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_ABinopExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABinopExpr_parser_prod___ABinopExpr___init_abinopexpr "new ABinopExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_ABinopExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ABinopExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ABoolExpr "init var of ABoolExpr"
+void INIT_ATTRIBUTES__ABoolExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABoolExpr_t)(val_t p0);
+val_t NEW_ABoolExpr(void);
+#define LOCATE_CHECKNEW_ABoolExpr "check new ABoolExpr"
+void CHECKNEW_ABoolExpr(val_t p0);
+typedef void (*CHECKNEW_ABoolExpr_t)(val_t p0);
+#define LOCATE_NEW_ABoolExpr_parser_nodes___ANode___init "new ABoolExpr parser_nodes::ANode::init"
+val_t NEW_ABoolExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABoolExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AOrExpr "init var of AOrExpr"
+void INIT_ATTRIBUTES__AOrExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AOrExpr_t)(val_t p0);
+val_t NEW_AOrExpr(void);
+#define LOCATE_CHECKNEW_AOrExpr "check new AOrExpr"
+void CHECKNEW_AOrExpr(val_t p0);
+typedef void (*CHECKNEW_AOrExpr_t)(val_t p0);
+#define LOCATE_NEW_AOrExpr_parser_nodes___ANode___init "new AOrExpr parser_nodes::ANode::init"
+val_t NEW_AOrExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AOrExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AOrExpr_parser_prod___AOrExpr___empty_init "new AOrExpr parser_prod::AOrExpr::empty_init"
+val_t NEW_AOrExpr_parser_prod___AOrExpr___empty_init(void);
+typedef val_t (*NEW_AOrExpr_parser_prod___AOrExpr___empty_init_t)(void);
+#define LOCATE_NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr "new AOrExpr parser_prod::AOrExpr::init_aorexpr"
+val_t NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AAndExpr "init var of AAndExpr"
+void INIT_ATTRIBUTES__AAndExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAndExpr_t)(val_t p0);
+val_t NEW_AAndExpr(void);
+#define LOCATE_CHECKNEW_AAndExpr "check new AAndExpr"
+void CHECKNEW_AAndExpr(val_t p0);
+typedef void (*CHECKNEW_AAndExpr_t)(val_t p0);
+#define LOCATE_NEW_AAndExpr_parser_nodes___ANode___init "new AAndExpr parser_nodes::ANode::init"
+val_t NEW_AAndExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAndExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAndExpr_parser_prod___AAndExpr___empty_init "new AAndExpr parser_prod::AAndExpr::empty_init"
+val_t NEW_AAndExpr_parser_prod___AAndExpr___empty_init(void);
+typedef val_t (*NEW_AAndExpr_parser_prod___AAndExpr___empty_init_t)(void);
+#define LOCATE_NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr "new AAndExpr parser_prod::AAndExpr::init_aandexpr"
+val_t NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ANotExpr "init var of ANotExpr"
+void INIT_ATTRIBUTES__ANotExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ANotExpr_t)(val_t p0);
+val_t NEW_ANotExpr(void);
+#define LOCATE_CHECKNEW_ANotExpr "check new ANotExpr"
+void CHECKNEW_ANotExpr(val_t p0);
+typedef void (*CHECKNEW_ANotExpr_t)(val_t p0);
+#define LOCATE_NEW_ANotExpr_parser_nodes___ANode___init "new ANotExpr parser_nodes::ANode::init"
+val_t NEW_ANotExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ANotExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ANotExpr_parser_prod___ANotExpr___empty_init "new ANotExpr parser_prod::ANotExpr::empty_init"
+val_t NEW_ANotExpr_parser_prod___ANotExpr___empty_init(void);
+typedef val_t (*NEW_ANotExpr_parser_prod___ANotExpr___empty_init_t)(void);
+#define LOCATE_NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr "new ANotExpr parser_prod::ANotExpr::init_anotexpr"
+val_t NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AEqExpr "init var of AEqExpr"
+void INIT_ATTRIBUTES__AEqExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AEqExpr_t)(val_t p0);
+val_t NEW_AEqExpr(void);
+#define LOCATE_CHECKNEW_AEqExpr "check new AEqExpr"
+void CHECKNEW_AEqExpr(val_t p0);
+typedef void (*CHECKNEW_AEqExpr_t)(val_t p0);
+#define LOCATE_NEW_AEqExpr_parser_nodes___ANode___init "new AEqExpr parser_nodes::ANode::init"
+val_t NEW_AEqExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AEqExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AEqExpr_parser_prod___ASendExpr___empty_init "new AEqExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_AEqExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_AEqExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_AEqExpr_parser_prod___ASendExpr___init_asendexpr "new AEqExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_AEqExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_AEqExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_AEqExpr_parser_prod___ABinopExpr___empty_init "new AEqExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_AEqExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_AEqExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_AEqExpr_parser_prod___ABinopExpr___init_abinopexpr "new AEqExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_AEqExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AEqExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_AEqExpr_parser_prod___AEqExpr___empty_init "new AEqExpr parser_prod::AEqExpr::empty_init"
+val_t NEW_AEqExpr_parser_prod___AEqExpr___empty_init(void);
+typedef val_t (*NEW_AEqExpr_parser_prod___AEqExpr___empty_init_t)(void);
+#define LOCATE_NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr "new AEqExpr parser_prod::AEqExpr::init_aeqexpr"
+val_t NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AEeExpr "init var of AEeExpr"
+void INIT_ATTRIBUTES__AEeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AEeExpr_t)(val_t p0);
+val_t NEW_AEeExpr(void);
+#define LOCATE_CHECKNEW_AEeExpr "check new AEeExpr"
+void CHECKNEW_AEeExpr(val_t p0);
+typedef void (*CHECKNEW_AEeExpr_t)(val_t p0);
+#define LOCATE_NEW_AEeExpr_parser_nodes___ANode___init "new AEeExpr parser_nodes::ANode::init"
+val_t NEW_AEeExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AEeExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AEeExpr_parser_prod___AEeExpr___empty_init "new AEeExpr parser_prod::AEeExpr::empty_init"
+val_t NEW_AEeExpr_parser_prod___AEeExpr___empty_init(void);
+typedef val_t (*NEW_AEeExpr_parser_prod___AEeExpr___empty_init_t)(void);
+#define LOCATE_NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr "new AEeExpr parser_prod::AEeExpr::init_aeeexpr"
+val_t NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ANeExpr "init var of ANeExpr"
+void INIT_ATTRIBUTES__ANeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ANeExpr_t)(val_t p0);
+val_t NEW_ANeExpr(void);
+#define LOCATE_CHECKNEW_ANeExpr "check new ANeExpr"
+void CHECKNEW_ANeExpr(val_t p0);
+typedef void (*CHECKNEW_ANeExpr_t)(val_t p0);
+#define LOCATE_NEW_ANeExpr_parser_nodes___ANode___init "new ANeExpr parser_nodes::ANode::init"
+val_t NEW_ANeExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ANeExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ANeExpr_parser_prod___ASendExpr___empty_init "new ANeExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ANeExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ANeExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ANeExpr_parser_prod___ASendExpr___init_asendexpr "new ANeExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ANeExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ANeExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ANeExpr_parser_prod___ABinopExpr___empty_init "new ANeExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_ANeExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_ANeExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_ANeExpr_parser_prod___ABinopExpr___init_abinopexpr "new ANeExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_ANeExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ANeExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_ANeExpr_parser_prod___ANeExpr___empty_init "new ANeExpr parser_prod::ANeExpr::empty_init"
+val_t NEW_ANeExpr_parser_prod___ANeExpr___empty_init(void);
+typedef val_t (*NEW_ANeExpr_parser_prod___ANeExpr___empty_init_t)(void);
+#define LOCATE_NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr "new ANeExpr parser_prod::ANeExpr::init_aneexpr"
+val_t NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ALtExpr "init var of ALtExpr"
+void INIT_ATTRIBUTES__ALtExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ALtExpr_t)(val_t p0);
+val_t NEW_ALtExpr(void);
+#define LOCATE_CHECKNEW_ALtExpr "check new ALtExpr"
+void CHECKNEW_ALtExpr(val_t p0);
+typedef void (*CHECKNEW_ALtExpr_t)(val_t p0);
+#define LOCATE_NEW_ALtExpr_parser_nodes___ANode___init "new ALtExpr parser_nodes::ANode::init"
+val_t NEW_ALtExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ALtExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ALtExpr_parser_prod___ASendExpr___empty_init "new ALtExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ALtExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ALtExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ALtExpr_parser_prod___ASendExpr___init_asendexpr "new ALtExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ALtExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ALtExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ALtExpr_parser_prod___ABinopExpr___empty_init "new ALtExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_ALtExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_ALtExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_ALtExpr_parser_prod___ABinopExpr___init_abinopexpr "new ALtExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_ALtExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ALtExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_ALtExpr_parser_prod___ALtExpr___empty_init "new ALtExpr parser_prod::ALtExpr::empty_init"
+val_t NEW_ALtExpr_parser_prod___ALtExpr___empty_init(void);
+typedef val_t (*NEW_ALtExpr_parser_prod___ALtExpr___empty_init_t)(void);
+#define LOCATE_NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr "new ALtExpr parser_prod::ALtExpr::init_altexpr"
+val_t NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ALeExpr "init var of ALeExpr"
+void INIT_ATTRIBUTES__ALeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ALeExpr_t)(val_t p0);
+val_t NEW_ALeExpr(void);
+#define LOCATE_CHECKNEW_ALeExpr "check new ALeExpr"
+void CHECKNEW_ALeExpr(val_t p0);
+typedef void (*CHECKNEW_ALeExpr_t)(val_t p0);
+#define LOCATE_NEW_ALeExpr_parser_nodes___ANode___init "new ALeExpr parser_nodes::ANode::init"
+val_t NEW_ALeExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ALeExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ALeExpr_parser_prod___ASendExpr___empty_init "new ALeExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ALeExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ALeExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ALeExpr_parser_prod___ASendExpr___init_asendexpr "new ALeExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ALeExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ALeExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ALeExpr_parser_prod___ABinopExpr___empty_init "new ALeExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_ALeExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_ALeExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_ALeExpr_parser_prod___ABinopExpr___init_abinopexpr "new ALeExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_ALeExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ALeExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_ALeExpr_parser_prod___ALeExpr___empty_init "new ALeExpr parser_prod::ALeExpr::empty_init"
+val_t NEW_ALeExpr_parser_prod___ALeExpr___empty_init(void);
+typedef val_t (*NEW_ALeExpr_parser_prod___ALeExpr___empty_init_t)(void);
+#define LOCATE_NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr "new ALeExpr parser_prod::ALeExpr::init_aleexpr"
+val_t NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AGtExpr "init var of AGtExpr"
+void INIT_ATTRIBUTES__AGtExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AGtExpr_t)(val_t p0);
+val_t NEW_AGtExpr(void);
+#define LOCATE_CHECKNEW_AGtExpr "check new AGtExpr"
+void CHECKNEW_AGtExpr(val_t p0);
+typedef void (*CHECKNEW_AGtExpr_t)(val_t p0);
+#define LOCATE_NEW_AGtExpr_parser_nodes___ANode___init "new AGtExpr parser_nodes::ANode::init"
+val_t NEW_AGtExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AGtExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AGtExpr_parser_prod___ASendExpr___empty_init "new AGtExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_AGtExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_AGtExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_AGtExpr_parser_prod___ASendExpr___init_asendexpr "new AGtExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_AGtExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_AGtExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_AGtExpr_parser_prod___ABinopExpr___empty_init "new AGtExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_AGtExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_AGtExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_AGtExpr_parser_prod___ABinopExpr___init_abinopexpr "new AGtExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_AGtExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AGtExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_AGtExpr_parser_prod___AGtExpr___empty_init "new AGtExpr parser_prod::AGtExpr::empty_init"
+val_t NEW_AGtExpr_parser_prod___AGtExpr___empty_init(void);
+typedef val_t (*NEW_AGtExpr_parser_prod___AGtExpr___empty_init_t)(void);
+#define LOCATE_NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr "new AGtExpr parser_prod::AGtExpr::init_agtexpr"
+val_t NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AGeExpr "init var of AGeExpr"
+void INIT_ATTRIBUTES__AGeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AGeExpr_t)(val_t p0);
+val_t NEW_AGeExpr(void);
+#define LOCATE_CHECKNEW_AGeExpr "check new AGeExpr"
+void CHECKNEW_AGeExpr(val_t p0);
+typedef void (*CHECKNEW_AGeExpr_t)(val_t p0);
+#define LOCATE_NEW_AGeExpr_parser_nodes___ANode___init "new AGeExpr parser_nodes::ANode::init"
+val_t NEW_AGeExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AGeExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AGeExpr_parser_prod___ASendExpr___empty_init "new AGeExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_AGeExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_AGeExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_AGeExpr_parser_prod___ASendExpr___init_asendexpr "new AGeExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_AGeExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_AGeExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_AGeExpr_parser_prod___ABinopExpr___empty_init "new AGeExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_AGeExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_AGeExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_AGeExpr_parser_prod___ABinopExpr___init_abinopexpr "new AGeExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_AGeExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AGeExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_AGeExpr_parser_prod___AGeExpr___empty_init "new AGeExpr parser_prod::AGeExpr::empty_init"
+val_t NEW_AGeExpr_parser_prod___AGeExpr___empty_init(void);
+typedef val_t (*NEW_AGeExpr_parser_prod___AGeExpr___empty_init_t)(void);
+#define LOCATE_NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr "new AGeExpr parser_prod::AGeExpr::init_ageexpr"
+val_t NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AIsaExpr "init var of AIsaExpr"
+void INIT_ATTRIBUTES__AIsaExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AIsaExpr_t)(val_t p0);
+val_t NEW_AIsaExpr(void);
+#define LOCATE_CHECKNEW_AIsaExpr "check new AIsaExpr"
+void CHECKNEW_AIsaExpr(val_t p0);
+typedef void (*CHECKNEW_AIsaExpr_t)(val_t p0);
+#define LOCATE_NEW_AIsaExpr_parser_nodes___ANode___init "new AIsaExpr parser_nodes::ANode::init"
+val_t NEW_AIsaExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AIsaExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AIsaExpr_parser_prod___AIsaExpr___empty_init "new AIsaExpr parser_prod::AIsaExpr::empty_init"
+val_t NEW_AIsaExpr_parser_prod___AIsaExpr___empty_init(void);
+typedef val_t (*NEW_AIsaExpr_parser_prod___AIsaExpr___empty_init_t)(void);
+#define LOCATE_NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr "new AIsaExpr parser_prod::AIsaExpr::init_aisaexpr"
+val_t NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__APlusExpr "init var of APlusExpr"
+void INIT_ATTRIBUTES__APlusExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APlusExpr_t)(val_t p0);
+val_t NEW_APlusExpr(void);
+#define LOCATE_CHECKNEW_APlusExpr "check new APlusExpr"
+void CHECKNEW_APlusExpr(val_t p0);
+typedef void (*CHECKNEW_APlusExpr_t)(val_t p0);
+#define LOCATE_NEW_APlusExpr_parser_nodes___ANode___init "new APlusExpr parser_nodes::ANode::init"
+val_t NEW_APlusExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APlusExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_APlusExpr_parser_prod___ASendExpr___empty_init "new APlusExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_APlusExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_APlusExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_APlusExpr_parser_prod___ASendExpr___init_asendexpr "new APlusExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_APlusExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_APlusExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_APlusExpr_parser_prod___ABinopExpr___empty_init "new APlusExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_APlusExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_APlusExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_APlusExpr_parser_prod___ABinopExpr___init_abinopexpr "new APlusExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_APlusExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_APlusExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_APlusExpr_parser_prod___APlusExpr___empty_init "new APlusExpr parser_prod::APlusExpr::empty_init"
+val_t NEW_APlusExpr_parser_prod___APlusExpr___empty_init(void);
+typedef val_t (*NEW_APlusExpr_parser_prod___APlusExpr___empty_init_t)(void);
+#define LOCATE_NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr "new APlusExpr parser_prod::APlusExpr::init_aplusexpr"
+val_t NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AMinusExpr "init var of AMinusExpr"
+void INIT_ATTRIBUTES__AMinusExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AMinusExpr_t)(val_t p0);
+val_t NEW_AMinusExpr(void);
+#define LOCATE_CHECKNEW_AMinusExpr "check new AMinusExpr"
+void CHECKNEW_AMinusExpr(val_t p0);
+typedef void (*CHECKNEW_AMinusExpr_t)(val_t p0);
+#define LOCATE_NEW_AMinusExpr_parser_nodes___ANode___init "new AMinusExpr parser_nodes::ANode::init"
+val_t NEW_AMinusExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AMinusExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AMinusExpr_parser_prod___ASendExpr___empty_init "new AMinusExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_AMinusExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_AMinusExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_AMinusExpr_parser_prod___ASendExpr___init_asendexpr "new AMinusExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_AMinusExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_AMinusExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_AMinusExpr_parser_prod___ABinopExpr___empty_init "new AMinusExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_AMinusExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_AMinusExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_AMinusExpr_parser_prod___ABinopExpr___init_abinopexpr "new AMinusExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_AMinusExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AMinusExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_AMinusExpr_parser_prod___AMinusExpr___empty_init "new AMinusExpr parser_prod::AMinusExpr::empty_init"
+val_t NEW_AMinusExpr_parser_prod___AMinusExpr___empty_init(void);
+typedef val_t (*NEW_AMinusExpr_parser_prod___AMinusExpr___empty_init_t)(void);
+#define LOCATE_NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr "new AMinusExpr parser_prod::AMinusExpr::init_aminusexpr"
+val_t NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AStarshipExpr "init var of AStarshipExpr"
+void INIT_ATTRIBUTES__AStarshipExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStarshipExpr_t)(val_t p0);
+val_t NEW_AStarshipExpr(void);
+#define LOCATE_CHECKNEW_AStarshipExpr "check new AStarshipExpr"
+void CHECKNEW_AStarshipExpr(val_t p0);
+typedef void (*CHECKNEW_AStarshipExpr_t)(val_t p0);
+#define LOCATE_NEW_AStarshipExpr_parser_nodes___ANode___init "new AStarshipExpr parser_nodes::ANode::init"
+val_t NEW_AStarshipExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStarshipExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AStarshipExpr_parser_prod___ASendExpr___empty_init "new AStarshipExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_AStarshipExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_AStarshipExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_AStarshipExpr_parser_prod___ASendExpr___init_asendexpr "new AStarshipExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_AStarshipExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_AStarshipExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_AStarshipExpr_parser_prod___ABinopExpr___empty_init "new AStarshipExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_AStarshipExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_AStarshipExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_AStarshipExpr_parser_prod___ABinopExpr___init_abinopexpr "new AStarshipExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_AStarshipExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AStarshipExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_AStarshipExpr_parser_prod___AStarshipExpr___empty_init "new AStarshipExpr parser_prod::AStarshipExpr::empty_init"
+val_t NEW_AStarshipExpr_parser_prod___AStarshipExpr___empty_init(void);
+typedef val_t (*NEW_AStarshipExpr_parser_prod___AStarshipExpr___empty_init_t)(void);
+#define LOCATE_NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr "new AStarshipExpr parser_prod::AStarshipExpr::init_astarshipexpr"
+val_t NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AStarExpr "init var of AStarExpr"
+void INIT_ATTRIBUTES__AStarExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStarExpr_t)(val_t p0);
+val_t NEW_AStarExpr(void);
+#define LOCATE_CHECKNEW_AStarExpr "check new AStarExpr"
+void CHECKNEW_AStarExpr(val_t p0);
+typedef void (*CHECKNEW_AStarExpr_t)(val_t p0);
+#define LOCATE_NEW_AStarExpr_parser_nodes___ANode___init "new AStarExpr parser_nodes::ANode::init"
+val_t NEW_AStarExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStarExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AStarExpr_parser_prod___ASendExpr___empty_init "new AStarExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_AStarExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_AStarExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_AStarExpr_parser_prod___ASendExpr___init_asendexpr "new AStarExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_AStarExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_AStarExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_AStarExpr_parser_prod___ABinopExpr___empty_init "new AStarExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_AStarExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_AStarExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_AStarExpr_parser_prod___ABinopExpr___init_abinopexpr "new AStarExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_AStarExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AStarExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_AStarExpr_parser_prod___AStarExpr___empty_init "new AStarExpr parser_prod::AStarExpr::empty_init"
+val_t NEW_AStarExpr_parser_prod___AStarExpr___empty_init(void);
+typedef val_t (*NEW_AStarExpr_parser_prod___AStarExpr___empty_init_t)(void);
+#define LOCATE_NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr "new AStarExpr parser_prod::AStarExpr::init_astarexpr"
+val_t NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ASlashExpr "init var of ASlashExpr"
+void INIT_ATTRIBUTES__ASlashExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASlashExpr_t)(val_t p0);
+val_t NEW_ASlashExpr(void);
+#define LOCATE_CHECKNEW_ASlashExpr "check new ASlashExpr"
+void CHECKNEW_ASlashExpr(val_t p0);
+typedef void (*CHECKNEW_ASlashExpr_t)(val_t p0);
+#define LOCATE_NEW_ASlashExpr_parser_nodes___ANode___init "new ASlashExpr parser_nodes::ANode::init"
+val_t NEW_ASlashExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASlashExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASlashExpr_parser_prod___ASendExpr___empty_init "new ASlashExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ASlashExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ASlashExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ASlashExpr_parser_prod___ASendExpr___init_asendexpr "new ASlashExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ASlashExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ASlashExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ASlashExpr_parser_prod___ABinopExpr___empty_init "new ASlashExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_ASlashExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_ASlashExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_ASlashExpr_parser_prod___ABinopExpr___init_abinopexpr "new ASlashExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_ASlashExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ASlashExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_ASlashExpr_parser_prod___ASlashExpr___empty_init "new ASlashExpr parser_prod::ASlashExpr::empty_init"
+val_t NEW_ASlashExpr_parser_prod___ASlashExpr___empty_init(void);
+typedef val_t (*NEW_ASlashExpr_parser_prod___ASlashExpr___empty_init_t)(void);
+#define LOCATE_NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr "new ASlashExpr parser_prod::ASlashExpr::init_aslashexpr"
+val_t NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__APercentExpr "init var of APercentExpr"
+void INIT_ATTRIBUTES__APercentExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APercentExpr_t)(val_t p0);
+val_t NEW_APercentExpr(void);
+#define LOCATE_CHECKNEW_APercentExpr "check new APercentExpr"
+void CHECKNEW_APercentExpr(val_t p0);
+typedef void (*CHECKNEW_APercentExpr_t)(val_t p0);
+#define LOCATE_NEW_APercentExpr_parser_nodes___ANode___init "new APercentExpr parser_nodes::ANode::init"
+val_t NEW_APercentExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APercentExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_APercentExpr_parser_prod___ASendExpr___empty_init "new APercentExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_APercentExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_APercentExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_APercentExpr_parser_prod___ASendExpr___init_asendexpr "new APercentExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_APercentExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_APercentExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_APercentExpr_parser_prod___ABinopExpr___empty_init "new APercentExpr parser_prod::ABinopExpr::empty_init"
+val_t NEW_APercentExpr_parser_prod___ABinopExpr___empty_init(void);
+typedef val_t (*NEW_APercentExpr_parser_prod___ABinopExpr___empty_init_t)(void);
+#define LOCATE_NEW_APercentExpr_parser_prod___ABinopExpr___init_abinopexpr "new APercentExpr parser_prod::ABinopExpr::init_abinopexpr"
+val_t NEW_APercentExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_APercentExpr_parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_APercentExpr_parser_prod___APercentExpr___empty_init "new APercentExpr parser_prod::APercentExpr::empty_init"
+val_t NEW_APercentExpr_parser_prod___APercentExpr___empty_init(void);
+typedef val_t (*NEW_APercentExpr_parser_prod___APercentExpr___empty_init_t)(void);
+#define LOCATE_NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr "new APercentExpr parser_prod::APercentExpr::init_apercentexpr"
+val_t NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AUminusExpr "init var of AUminusExpr"
+void INIT_ATTRIBUTES__AUminusExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AUminusExpr_t)(val_t p0);
+val_t NEW_AUminusExpr(void);
+#define LOCATE_CHECKNEW_AUminusExpr "check new AUminusExpr"
+void CHECKNEW_AUminusExpr(val_t p0);
+typedef void (*CHECKNEW_AUminusExpr_t)(val_t p0);
+#define LOCATE_NEW_AUminusExpr_parser_nodes___ANode___init "new AUminusExpr parser_nodes::ANode::init"
+val_t NEW_AUminusExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AUminusExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AUminusExpr_parser_prod___ASendExpr___empty_init "new AUminusExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_AUminusExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_AUminusExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_AUminusExpr_parser_prod___ASendExpr___init_asendexpr "new AUminusExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_AUminusExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_AUminusExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_AUminusExpr_parser_prod___AUminusExpr___empty_init "new AUminusExpr parser_prod::AUminusExpr::empty_init"
+val_t NEW_AUminusExpr_parser_prod___AUminusExpr___empty_init(void);
+typedef val_t (*NEW_AUminusExpr_parser_prod___AUminusExpr___empty_init_t)(void);
+#define LOCATE_NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr "new AUminusExpr parser_prod::AUminusExpr::init_auminusexpr"
+val_t NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ANewExpr "init var of ANewExpr"
+void INIT_ATTRIBUTES__ANewExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ANewExpr_t)(val_t p0);
+val_t NEW_ANewExpr(void);
+#define LOCATE_CHECKNEW_ANewExpr "check new ANewExpr"
+void CHECKNEW_ANewExpr(val_t p0);
+typedef void (*CHECKNEW_ANewExpr_t)(val_t p0);
+#define LOCATE_NEW_ANewExpr_parser_nodes___ANode___init "new ANewExpr parser_nodes::ANode::init"
+val_t NEW_ANewExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ANewExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ANewExpr_parser_prod___ANewExpr___empty_init "new ANewExpr parser_prod::ANewExpr::empty_init"
+val_t NEW_ANewExpr_parser_prod___ANewExpr___empty_init(void);
+typedef val_t (*NEW_ANewExpr_parser_prod___ANewExpr___empty_init_t)(void);
+#define LOCATE_NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr "new ANewExpr parser_prod::ANewExpr::init_anewexpr"
+val_t NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__AAttrFormExpr "init var of AAttrFormExpr"
+void INIT_ATTRIBUTES__AAttrFormExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAttrFormExpr_t)(val_t p0);
+val_t NEW_AAttrFormExpr(void);
+#define LOCATE_CHECKNEW_AAttrFormExpr "check new AAttrFormExpr"
+void CHECKNEW_AAttrFormExpr(val_t p0);
+typedef void (*CHECKNEW_AAttrFormExpr_t)(val_t p0);
+#define LOCATE_NEW_AAttrFormExpr_parser_nodes___ANode___init "new AAttrFormExpr parser_nodes::ANode::init"
+val_t NEW_AAttrFormExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAttrFormExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AAttrExpr "init var of AAttrExpr"
+void INIT_ATTRIBUTES__AAttrExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAttrExpr_t)(val_t p0);
+val_t NEW_AAttrExpr(void);
+#define LOCATE_CHECKNEW_AAttrExpr "check new AAttrExpr"
+void CHECKNEW_AAttrExpr(val_t p0);
+typedef void (*CHECKNEW_AAttrExpr_t)(val_t p0);
+#define LOCATE_NEW_AAttrExpr_parser_nodes___ANode___init "new AAttrExpr parser_nodes::ANode::init"
+val_t NEW_AAttrExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAttrExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAttrExpr_parser_prod___AAttrExpr___empty_init "new AAttrExpr parser_prod::AAttrExpr::empty_init"
+val_t NEW_AAttrExpr_parser_prod___AAttrExpr___empty_init(void);
+typedef val_t (*NEW_AAttrExpr_parser_prod___AAttrExpr___empty_init_t)(void);
+#define LOCATE_NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr "new AAttrExpr parser_prod::AAttrExpr::init_aattrexpr"
+val_t NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AAttrAssignExpr "init var of AAttrAssignExpr"
+void INIT_ATTRIBUTES__AAttrAssignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAttrAssignExpr_t)(val_t p0);
+val_t NEW_AAttrAssignExpr(void);
+#define LOCATE_CHECKNEW_AAttrAssignExpr "check new AAttrAssignExpr"
+void CHECKNEW_AAttrAssignExpr(val_t p0);
+typedef void (*CHECKNEW_AAttrAssignExpr_t)(val_t p0);
+#define LOCATE_NEW_AAttrAssignExpr_parser_nodes___ANode___init "new AAttrAssignExpr parser_nodes::ANode::init"
+val_t NEW_AAttrAssignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAttrAssignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___empty_init "new AAttrAssignExpr parser_prod::AAttrAssignExpr::empty_init"
+val_t NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___empty_init(void);
+typedef val_t (*NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___empty_init_t)(void);
+#define LOCATE_NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr "new AAttrAssignExpr parser_prod::AAttrAssignExpr::init_aattrassignexpr"
+val_t NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__ACallFormExpr "init var of ACallFormExpr"
+void INIT_ATTRIBUTES__ACallFormExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ACallFormExpr_t)(val_t p0);
+val_t NEW_ACallFormExpr(void);
+#define LOCATE_CHECKNEW_ACallFormExpr "check new ACallFormExpr"
+void CHECKNEW_ACallFormExpr(val_t p0);
+typedef void (*CHECKNEW_ACallFormExpr_t)(val_t p0);
+#define LOCATE_NEW_ACallFormExpr_parser_nodes___ANode___init "new ACallFormExpr parser_nodes::ANode::init"
+val_t NEW_ACallFormExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ACallFormExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ACallFormExpr_parser_prod___ASendExpr___empty_init "new ACallFormExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ACallFormExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ACallFormExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACallFormExpr_parser_prod___ASendExpr___init_asendexpr "new ACallFormExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ACallFormExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ACallFormExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AAttrReassignExpr "init var of AAttrReassignExpr"
+void INIT_ATTRIBUTES__AAttrReassignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAttrReassignExpr_t)(val_t p0);
+val_t NEW_AAttrReassignExpr(void);
+#define LOCATE_CHECKNEW_AAttrReassignExpr "check new AAttrReassignExpr"
+void CHECKNEW_AAttrReassignExpr(val_t p0);
+typedef void (*CHECKNEW_AAttrReassignExpr_t)(val_t p0);
+#define LOCATE_NEW_AAttrReassignExpr_parser_nodes___ANode___init "new AAttrReassignExpr parser_nodes::ANode::init"
+val_t NEW_AAttrReassignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAttrReassignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___empty_init "new AAttrReassignExpr parser_prod::AAttrReassignExpr::empty_init"
+val_t NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___empty_init(void);
+typedef val_t (*NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___empty_init_t)(void);
+#define LOCATE_NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr "new AAttrReassignExpr parser_prod::AAttrReassignExpr::init_aattrreassignexpr"
+val_t NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__ACallExpr "init var of ACallExpr"
+void INIT_ATTRIBUTES__ACallExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ACallExpr_t)(val_t p0);
+val_t NEW_ACallExpr(void);
+#define LOCATE_CHECKNEW_ACallExpr "check new ACallExpr"
+void CHECKNEW_ACallExpr(val_t p0);
+typedef void (*CHECKNEW_ACallExpr_t)(val_t p0);
+#define LOCATE_NEW_ACallExpr_parser_nodes___ANode___init "new ACallExpr parser_nodes::ANode::init"
+val_t NEW_ACallExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ACallExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ACallExpr_parser_prod___ASendExpr___empty_init "new ACallExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ACallExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ACallExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACallExpr_parser_prod___ASendExpr___init_asendexpr "new ACallExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ACallExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ACallExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ACallExpr_parser_prod___ACallExpr___empty_init "new ACallExpr parser_prod::ACallExpr::empty_init"
+val_t NEW_ACallExpr_parser_prod___ACallExpr___empty_init(void);
+typedef val_t (*NEW_ACallExpr_parser_prod___ACallExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr "new ACallExpr parser_prod::ACallExpr::init_acallexpr"
+val_t NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__ACallAssignExpr "init var of ACallAssignExpr"
+void INIT_ATTRIBUTES__ACallAssignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ACallAssignExpr_t)(val_t p0);
+val_t NEW_ACallAssignExpr(void);
+#define LOCATE_CHECKNEW_ACallAssignExpr "check new ACallAssignExpr"
+void CHECKNEW_ACallAssignExpr(val_t p0);
+typedef void (*CHECKNEW_ACallAssignExpr_t)(val_t p0);
+#define LOCATE_NEW_ACallAssignExpr_parser_nodes___ANode___init "new ACallAssignExpr parser_nodes::ANode::init"
+val_t NEW_ACallAssignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ACallAssignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ACallAssignExpr_parser_prod___ASendExpr___empty_init "new ACallAssignExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ACallAssignExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ACallAssignExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACallAssignExpr_parser_prod___ASendExpr___init_asendexpr "new ACallAssignExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ACallAssignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ACallAssignExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___empty_init "new ACallAssignExpr parser_prod::ACallAssignExpr::empty_init"
+val_t NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___empty_init(void);
+typedef val_t (*NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr "new ACallAssignExpr parser_prod::ACallAssignExpr::init_acallassignexpr"
+val_t NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_INIT_ATTRIBUTES__ACallReassignExpr "init var of ACallReassignExpr"
+void INIT_ATTRIBUTES__ACallReassignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ACallReassignExpr_t)(val_t p0);
+val_t NEW_ACallReassignExpr(void);
+#define LOCATE_CHECKNEW_ACallReassignExpr "check new ACallReassignExpr"
+void CHECKNEW_ACallReassignExpr(val_t p0);
+typedef void (*CHECKNEW_ACallReassignExpr_t)(val_t p0);
+#define LOCATE_NEW_ACallReassignExpr_parser_nodes___ANode___init "new ACallReassignExpr parser_nodes::ANode::init"
+val_t NEW_ACallReassignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ACallReassignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ACallReassignExpr_parser_prod___ASendExpr___empty_init "new ACallReassignExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ACallReassignExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ACallReassignExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACallReassignExpr_parser_prod___ASendExpr___init_asendexpr "new ACallReassignExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ACallReassignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ACallReassignExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___empty_init "new ACallReassignExpr parser_prod::ACallReassignExpr::empty_init"
+val_t NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___empty_init(void);
+typedef val_t (*NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr "new ACallReassignExpr parser_prod::ACallReassignExpr::init_acallreassignexpr"
+val_t NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_INIT_ATTRIBUTES__ASuperExpr "init var of ASuperExpr"
+void INIT_ATTRIBUTES__ASuperExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASuperExpr_t)(val_t p0);
+val_t NEW_ASuperExpr(void);
+#define LOCATE_CHECKNEW_ASuperExpr "check new ASuperExpr"
+void CHECKNEW_ASuperExpr(val_t p0);
+typedef void (*CHECKNEW_ASuperExpr_t)(val_t p0);
+#define LOCATE_NEW_ASuperExpr_parser_nodes___ANode___init "new ASuperExpr parser_nodes::ANode::init"
+val_t NEW_ASuperExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASuperExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASuperExpr_parser_prod___ASuperExpr___empty_init "new ASuperExpr parser_prod::ASuperExpr::empty_init"
+val_t NEW_ASuperExpr_parser_prod___ASuperExpr___empty_init(void);
+typedef val_t (*NEW_ASuperExpr_parser_prod___ASuperExpr___empty_init_t)(void);
+#define LOCATE_NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr "new ASuperExpr parser_prod::ASuperExpr::init_asuperexpr"
+val_t NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AInitExpr "init var of AInitExpr"
+void INIT_ATTRIBUTES__AInitExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AInitExpr_t)(val_t p0);
+val_t NEW_AInitExpr(void);
+#define LOCATE_CHECKNEW_AInitExpr "check new AInitExpr"
+void CHECKNEW_AInitExpr(val_t p0);
+typedef void (*CHECKNEW_AInitExpr_t)(val_t p0);
+#define LOCATE_NEW_AInitExpr_parser_nodes___ANode___init "new AInitExpr parser_nodes::ANode::init"
+val_t NEW_AInitExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AInitExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AInitExpr_parser_prod___ASendExpr___empty_init "new AInitExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_AInitExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_AInitExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_AInitExpr_parser_prod___ASendExpr___init_asendexpr "new AInitExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_AInitExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_AInitExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_AInitExpr_parser_prod___AInitExpr___empty_init "new AInitExpr parser_prod::AInitExpr::empty_init"
+val_t NEW_AInitExpr_parser_prod___AInitExpr___empty_init(void);
+typedef val_t (*NEW_AInitExpr_parser_prod___AInitExpr___empty_init_t)(void);
+#define LOCATE_NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr "new AInitExpr parser_prod::AInitExpr::init_ainitexpr"
+val_t NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__ABraFormExpr "init var of ABraFormExpr"
+void INIT_ATTRIBUTES__ABraFormExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABraFormExpr_t)(val_t p0);
+val_t NEW_ABraFormExpr(void);
+#define LOCATE_CHECKNEW_ABraFormExpr "check new ABraFormExpr"
+void CHECKNEW_ABraFormExpr(val_t p0);
+typedef void (*CHECKNEW_ABraFormExpr_t)(val_t p0);
+#define LOCATE_NEW_ABraFormExpr_parser_nodes___ANode___init "new ABraFormExpr parser_nodes::ANode::init"
+val_t NEW_ABraFormExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABraFormExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABraFormExpr_parser_prod___ASendExpr___empty_init "new ABraFormExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ABraFormExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ABraFormExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABraFormExpr_parser_prod___ASendExpr___init_asendexpr "new ABraFormExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ABraFormExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ABraFormExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ABraExpr "init var of ABraExpr"
+void INIT_ATTRIBUTES__ABraExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABraExpr_t)(val_t p0);
+val_t NEW_ABraExpr(void);
+#define LOCATE_CHECKNEW_ABraExpr "check new ABraExpr"
+void CHECKNEW_ABraExpr(val_t p0);
+typedef void (*CHECKNEW_ABraExpr_t)(val_t p0);
+#define LOCATE_NEW_ABraExpr_parser_nodes___ANode___init "new ABraExpr parser_nodes::ANode::init"
+val_t NEW_ABraExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABraExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABraExpr_parser_prod___ASendExpr___empty_init "new ABraExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ABraExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ABraExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABraExpr_parser_prod___ASendExpr___init_asendexpr "new ABraExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ABraExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ABraExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ABraExpr_parser_prod___ABraExpr___empty_init "new ABraExpr parser_prod::ABraExpr::empty_init"
+val_t NEW_ABraExpr_parser_prod___ABraExpr___empty_init(void);
+typedef val_t (*NEW_ABraExpr_parser_prod___ABraExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr "new ABraExpr parser_prod::ABraExpr::init_abraexpr"
+val_t NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__ABraAssignExpr "init var of ABraAssignExpr"
+void INIT_ATTRIBUTES__ABraAssignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABraAssignExpr_t)(val_t p0);
+val_t NEW_ABraAssignExpr(void);
+#define LOCATE_CHECKNEW_ABraAssignExpr "check new ABraAssignExpr"
+void CHECKNEW_ABraAssignExpr(val_t p0);
+typedef void (*CHECKNEW_ABraAssignExpr_t)(val_t p0);
+#define LOCATE_NEW_ABraAssignExpr_parser_nodes___ANode___init "new ABraAssignExpr parser_nodes::ANode::init"
+val_t NEW_ABraAssignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABraAssignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABraAssignExpr_parser_prod___ASendExpr___empty_init "new ABraAssignExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ABraAssignExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ABraAssignExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABraAssignExpr_parser_prod___ASendExpr___init_asendexpr "new ABraAssignExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ABraAssignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ABraAssignExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___empty_init "new ABraAssignExpr parser_prod::ABraAssignExpr::empty_init"
+val_t NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___empty_init(void);
+typedef val_t (*NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr "new ABraAssignExpr parser_prod::ABraAssignExpr::init_abraassignexpr"
+val_t NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__AVarFormExpr "init var of AVarFormExpr"
+void INIT_ATTRIBUTES__AVarFormExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AVarFormExpr_t)(val_t p0);
+val_t NEW_AVarFormExpr(void);
+#define LOCATE_CHECKNEW_AVarFormExpr "check new AVarFormExpr"
+void CHECKNEW_AVarFormExpr(val_t p0);
+typedef void (*CHECKNEW_AVarFormExpr_t)(val_t p0);
+#define LOCATE_NEW_AVarFormExpr_parser_nodes___ANode___init "new AVarFormExpr parser_nodes::ANode::init"
+val_t NEW_AVarFormExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AVarFormExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ABraReassignExpr "init var of ABraReassignExpr"
+void INIT_ATTRIBUTES__ABraReassignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABraReassignExpr_t)(val_t p0);
+val_t NEW_ABraReassignExpr(void);
+#define LOCATE_CHECKNEW_ABraReassignExpr "check new ABraReassignExpr"
+void CHECKNEW_ABraReassignExpr(val_t p0);
+typedef void (*CHECKNEW_ABraReassignExpr_t)(val_t p0);
+#define LOCATE_NEW_ABraReassignExpr_parser_nodes___ANode___init "new ABraReassignExpr parser_nodes::ANode::init"
+val_t NEW_ABraReassignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABraReassignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABraReassignExpr_parser_prod___ASendExpr___empty_init "new ABraReassignExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ABraReassignExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ABraReassignExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABraReassignExpr_parser_prod___ASendExpr___init_asendexpr "new ABraReassignExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ABraReassignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ABraReassignExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___empty_init "new ABraReassignExpr parser_prod::ABraReassignExpr::empty_init"
+val_t NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___empty_init(void);
+typedef val_t (*NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___empty_init_t)(void);
+#define LOCATE_NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexpr "new ABraReassignExpr parser_prod::ABraReassignExpr::init_abrareassignexpr"
+val_t NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__AClosureCallExpr "init var of AClosureCallExpr"
+void INIT_ATTRIBUTES__AClosureCallExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AClosureCallExpr_t)(val_t p0);
+val_t NEW_AClosureCallExpr(void);
+#define LOCATE_CHECKNEW_AClosureCallExpr "check new AClosureCallExpr"
+void CHECKNEW_AClosureCallExpr(val_t p0);
+typedef void (*CHECKNEW_AClosureCallExpr_t)(val_t p0);
+#define LOCATE_NEW_AClosureCallExpr_parser_nodes___ANode___init "new AClosureCallExpr parser_nodes::ANode::init"
+val_t NEW_AClosureCallExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AClosureCallExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___empty_init "new AClosureCallExpr parser_prod::AClosureCallExpr::empty_init"
+val_t NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___empty_init(void);
+typedef val_t (*NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___empty_init_t)(void);
+#define LOCATE_NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr "new AClosureCallExpr parser_prod::AClosureCallExpr::init_aclosurecallexpr"
+val_t NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AVarExpr "init var of AVarExpr"
+void INIT_ATTRIBUTES__AVarExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AVarExpr_t)(val_t p0);
+val_t NEW_AVarExpr(void);
+#define LOCATE_CHECKNEW_AVarExpr "check new AVarExpr"
+void CHECKNEW_AVarExpr(val_t p0);
+typedef void (*CHECKNEW_AVarExpr_t)(val_t p0);
+#define LOCATE_NEW_AVarExpr_parser_nodes___ANode___init "new AVarExpr parser_nodes::ANode::init"
+val_t NEW_AVarExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AVarExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AVarExpr_parser_prod___AVarExpr___empty_init "new AVarExpr parser_prod::AVarExpr::empty_init"
+val_t NEW_AVarExpr_parser_prod___AVarExpr___empty_init(void);
+typedef val_t (*NEW_AVarExpr_parser_prod___AVarExpr___empty_init_t)(void);
+#define LOCATE_NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr "new AVarExpr parser_prod::AVarExpr::init_avarexpr"
+val_t NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(val_t p0);
+typedef val_t (*NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AVarAssignExpr "init var of AVarAssignExpr"
+void INIT_ATTRIBUTES__AVarAssignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AVarAssignExpr_t)(val_t p0);
+val_t NEW_AVarAssignExpr(void);
+#define LOCATE_CHECKNEW_AVarAssignExpr "check new AVarAssignExpr"
+void CHECKNEW_AVarAssignExpr(val_t p0);
+typedef void (*CHECKNEW_AVarAssignExpr_t)(val_t p0);
+#define LOCATE_NEW_AVarAssignExpr_parser_nodes___ANode___init "new AVarAssignExpr parser_nodes::ANode::init"
+val_t NEW_AVarAssignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AVarAssignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___empty_init "new AVarAssignExpr parser_prod::AVarAssignExpr::empty_init"
+val_t NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___empty_init(void);
+typedef val_t (*NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___empty_init_t)(void);
+#define LOCATE_NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr "new AVarAssignExpr parser_prod::AVarAssignExpr::init_avarassignexpr"
+val_t NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AVarReassignExpr "init var of AVarReassignExpr"
+void INIT_ATTRIBUTES__AVarReassignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AVarReassignExpr_t)(val_t p0);
+val_t NEW_AVarReassignExpr(void);
+#define LOCATE_CHECKNEW_AVarReassignExpr "check new AVarReassignExpr"
+void CHECKNEW_AVarReassignExpr(val_t p0);
+typedef void (*CHECKNEW_AVarReassignExpr_t)(val_t p0);
+#define LOCATE_NEW_AVarReassignExpr_parser_nodes___ANode___init "new AVarReassignExpr parser_nodes::ANode::init"
+val_t NEW_AVarReassignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AVarReassignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___empty_init "new AVarReassignExpr parser_prod::AVarReassignExpr::empty_init"
+val_t NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___empty_init(void);
+typedef val_t (*NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___empty_init_t)(void);
+#define LOCATE_NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr "new AVarReassignExpr parser_prod::AVarReassignExpr::init_avarreassignexpr"
+val_t NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__ARangeExpr "init var of ARangeExpr"
+void INIT_ATTRIBUTES__ARangeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ARangeExpr_t)(val_t p0);
+val_t NEW_ARangeExpr(void);
+#define LOCATE_CHECKNEW_ARangeExpr "check new ARangeExpr"
+void CHECKNEW_ARangeExpr(val_t p0);
+typedef void (*CHECKNEW_ARangeExpr_t)(val_t p0);
+#define LOCATE_NEW_ARangeExpr_parser_nodes___ANode___init "new ARangeExpr parser_nodes::ANode::init"
+val_t NEW_ARangeExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ARangeExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ARangeExpr_parser_prod___ARangeExpr___empty_init "new ARangeExpr parser_prod::ARangeExpr::empty_init"
+val_t NEW_ARangeExpr_parser_prod___ARangeExpr___empty_init(void);
+typedef val_t (*NEW_ARangeExpr_parser_prod___ARangeExpr___empty_init_t)(void);
+#define LOCATE_NEW_ARangeExpr_parser_prod___ARangeExpr___init_arangeexpr "new ARangeExpr parser_prod::ARangeExpr::init_arangeexpr"
+val_t NEW_ARangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ARangeExpr_parser_prod___ARangeExpr___init_arangeexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ACrangeExpr "init var of ACrangeExpr"
+void INIT_ATTRIBUTES__ACrangeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ACrangeExpr_t)(val_t p0);
+val_t NEW_ACrangeExpr(void);
+#define LOCATE_CHECKNEW_ACrangeExpr "check new ACrangeExpr"
+void CHECKNEW_ACrangeExpr(val_t p0);
+typedef void (*CHECKNEW_ACrangeExpr_t)(val_t p0);
+#define LOCATE_NEW_ACrangeExpr_parser_nodes___ANode___init "new ACrangeExpr parser_nodes::ANode::init"
+val_t NEW_ACrangeExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ACrangeExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ACrangeExpr_parser_prod___ARangeExpr___empty_init "new ACrangeExpr parser_prod::ARangeExpr::empty_init"
+val_t NEW_ACrangeExpr_parser_prod___ARangeExpr___empty_init(void);
+typedef val_t (*NEW_ACrangeExpr_parser_prod___ARangeExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACrangeExpr_parser_prod___ARangeExpr___init_arangeexpr "new ACrangeExpr parser_prod::ARangeExpr::init_arangeexpr"
+val_t NEW_ACrangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ACrangeExpr_parser_prod___ARangeExpr___init_arangeexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_ACrangeExpr_parser_prod___ACrangeExpr___empty_init "new ACrangeExpr parser_prod::ACrangeExpr::empty_init"
+val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___empty_init(void);
+typedef val_t (*NEW_ACrangeExpr_parser_prod___ACrangeExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr "new ACrangeExpr parser_prod::ACrangeExpr::init_acrangeexpr"
+val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AOrangeExpr "init var of AOrangeExpr"
+void INIT_ATTRIBUTES__AOrangeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AOrangeExpr_t)(val_t p0);
+val_t NEW_AOrangeExpr(void);
+#define LOCATE_CHECKNEW_AOrangeExpr "check new AOrangeExpr"
+void CHECKNEW_AOrangeExpr(val_t p0);
+typedef void (*CHECKNEW_AOrangeExpr_t)(val_t p0);
+#define LOCATE_NEW_AOrangeExpr_parser_nodes___ANode___init "new AOrangeExpr parser_nodes::ANode::init"
+val_t NEW_AOrangeExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AOrangeExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AOrangeExpr_parser_prod___ARangeExpr___empty_init "new AOrangeExpr parser_prod::ARangeExpr::empty_init"
+val_t NEW_AOrangeExpr_parser_prod___ARangeExpr___empty_init(void);
+typedef val_t (*NEW_AOrangeExpr_parser_prod___ARangeExpr___empty_init_t)(void);
+#define LOCATE_NEW_AOrangeExpr_parser_prod___ARangeExpr___init_arangeexpr "new AOrangeExpr parser_prod::ARangeExpr::init_arangeexpr"
+val_t NEW_AOrangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AOrangeExpr_parser_prod___ARangeExpr___init_arangeexpr_t)(val_t p0, val_t p1);
+#define LOCATE_NEW_AOrangeExpr_parser_prod___AOrangeExpr___empty_init "new AOrangeExpr parser_prod::AOrangeExpr::empty_init"
+val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___empty_init(void);
+typedef val_t (*NEW_AOrangeExpr_parser_prod___AOrangeExpr___empty_init_t)(void);
+#define LOCATE_NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr "new AOrangeExpr parser_prod::AOrangeExpr::init_aorangeexpr"
+val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AArrayExpr "init var of AArrayExpr"
+void INIT_ATTRIBUTES__AArrayExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AArrayExpr_t)(val_t p0);
+val_t NEW_AArrayExpr(void);
+#define LOCATE_CHECKNEW_AArrayExpr "check new AArrayExpr"
+void CHECKNEW_AArrayExpr(val_t p0);
+typedef void (*CHECKNEW_AArrayExpr_t)(val_t p0);
+#define LOCATE_NEW_AArrayExpr_parser_nodes___ANode___init "new AArrayExpr parser_nodes::ANode::init"
+val_t NEW_AArrayExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AArrayExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AArrayExpr_parser_prod___AArrayExpr___empty_init "new AArrayExpr parser_prod::AArrayExpr::empty_init"
+val_t NEW_AArrayExpr_parser_prod___AArrayExpr___empty_init(void);
+typedef val_t (*NEW_AArrayExpr_parser_prod___AArrayExpr___empty_init_t)(void);
+#define LOCATE_NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr "new AArrayExpr parser_prod::AArrayExpr::init_aarrayexpr"
+val_t NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr(val_t p0);
+typedef val_t (*NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ASelfExpr "init var of ASelfExpr"
+void INIT_ATTRIBUTES__ASelfExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASelfExpr_t)(val_t p0);
+val_t NEW_ASelfExpr(void);
+#define LOCATE_CHECKNEW_ASelfExpr "check new ASelfExpr"
+void CHECKNEW_ASelfExpr(val_t p0);
+typedef void (*CHECKNEW_ASelfExpr_t)(val_t p0);
+#define LOCATE_NEW_ASelfExpr_parser_nodes___ANode___init "new ASelfExpr parser_nodes::ANode::init"
+val_t NEW_ASelfExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASelfExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASelfExpr_parser_prod___ASelfExpr___empty_init "new ASelfExpr parser_prod::ASelfExpr::empty_init"
+val_t NEW_ASelfExpr_parser_prod___ASelfExpr___empty_init(void);
+typedef val_t (*NEW_ASelfExpr_parser_prod___ASelfExpr___empty_init_t)(void);
+#define LOCATE_NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr "new ASelfExpr parser_prod::ASelfExpr::init_aselfexpr"
+val_t NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
+typedef val_t (*NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AImplicitSelfExpr "init var of AImplicitSelfExpr"
+void INIT_ATTRIBUTES__AImplicitSelfExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AImplicitSelfExpr_t)(val_t p0);
+val_t NEW_AImplicitSelfExpr(void);
+#define LOCATE_CHECKNEW_AImplicitSelfExpr "check new AImplicitSelfExpr"
+void CHECKNEW_AImplicitSelfExpr(val_t p0);
+typedef void (*CHECKNEW_AImplicitSelfExpr_t)(val_t p0);
+#define LOCATE_NEW_AImplicitSelfExpr_parser_nodes___ANode___init "new AImplicitSelfExpr parser_nodes::ANode::init"
+val_t NEW_AImplicitSelfExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AImplicitSelfExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___empty_init "new AImplicitSelfExpr parser_prod::ASelfExpr::empty_init"
+val_t NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___empty_init(void);
+typedef val_t (*NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___empty_init_t)(void);
+#define LOCATE_NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___init_aselfexpr "new AImplicitSelfExpr parser_prod::ASelfExpr::init_aselfexpr"
+val_t NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
+typedef val_t (*NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___init_aselfexpr_t)(val_t p0);
+#define LOCATE_NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___empty_init "new AImplicitSelfExpr parser_prod::AImplicitSelfExpr::empty_init"
+val_t NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___empty_init(void);
+typedef val_t (*NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___empty_init_t)(void);
+#define LOCATE_NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr "new AImplicitSelfExpr parser_prod::AImplicitSelfExpr::init_aimplicitselfexpr"
+val_t NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(void);
+typedef val_t (*NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ATrueExpr "init var of ATrueExpr"
+void INIT_ATTRIBUTES__ATrueExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ATrueExpr_t)(val_t p0);
+val_t NEW_ATrueExpr(void);
+#define LOCATE_CHECKNEW_ATrueExpr "check new ATrueExpr"
+void CHECKNEW_ATrueExpr(val_t p0);
+typedef void (*CHECKNEW_ATrueExpr_t)(val_t p0);
+#define LOCATE_NEW_ATrueExpr_parser_nodes___ANode___init "new ATrueExpr parser_nodes::ANode::init"
+val_t NEW_ATrueExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ATrueExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ATrueExpr_parser_prod___ATrueExpr___empty_init "new ATrueExpr parser_prod::ATrueExpr::empty_init"
+val_t NEW_ATrueExpr_parser_prod___ATrueExpr___empty_init(void);
+typedef val_t (*NEW_ATrueExpr_parser_prod___ATrueExpr___empty_init_t)(void);
+#define LOCATE_NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr "new ATrueExpr parser_prod::ATrueExpr::init_atrueexpr"
+val_t NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr(val_t p0);
+typedef val_t (*NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AFalseExpr "init var of AFalseExpr"
+void INIT_ATTRIBUTES__AFalseExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AFalseExpr_t)(val_t p0);
+val_t NEW_AFalseExpr(void);
+#define LOCATE_CHECKNEW_AFalseExpr "check new AFalseExpr"
+void CHECKNEW_AFalseExpr(val_t p0);
+typedef void (*CHECKNEW_AFalseExpr_t)(val_t p0);
+#define LOCATE_NEW_AFalseExpr_parser_nodes___ANode___init "new AFalseExpr parser_nodes::ANode::init"
+val_t NEW_AFalseExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AFalseExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AFalseExpr_parser_prod___AFalseExpr___empty_init "new AFalseExpr parser_prod::AFalseExpr::empty_init"
+val_t NEW_AFalseExpr_parser_prod___AFalseExpr___empty_init(void);
+typedef val_t (*NEW_AFalseExpr_parser_prod___AFalseExpr___empty_init_t)(void);
+#define LOCATE_NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr "new AFalseExpr parser_prod::AFalseExpr::init_afalseexpr"
+val_t NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr(val_t p0);
+typedef val_t (*NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ANullExpr "init var of ANullExpr"
+void INIT_ATTRIBUTES__ANullExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ANullExpr_t)(val_t p0);
+val_t NEW_ANullExpr(void);
+#define LOCATE_CHECKNEW_ANullExpr "check new ANullExpr"
+void CHECKNEW_ANullExpr(val_t p0);
+typedef void (*CHECKNEW_ANullExpr_t)(val_t p0);
+#define LOCATE_NEW_ANullExpr_parser_nodes___ANode___init "new ANullExpr parser_nodes::ANode::init"
+val_t NEW_ANullExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ANullExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ANullExpr_parser_prod___ANullExpr___empty_init "new ANullExpr parser_prod::ANullExpr::empty_init"
+val_t NEW_ANullExpr_parser_prod___ANullExpr___empty_init(void);
+typedef val_t (*NEW_ANullExpr_parser_prod___ANullExpr___empty_init_t)(void);
+#define LOCATE_NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr "new ANullExpr parser_prod::ANullExpr::init_anullexpr"
+val_t NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr(val_t p0);
+typedef val_t (*NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AIntExpr "init var of AIntExpr"
+void INIT_ATTRIBUTES__AIntExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AIntExpr_t)(val_t p0);
+val_t NEW_AIntExpr(void);
+#define LOCATE_CHECKNEW_AIntExpr "check new AIntExpr"
+void CHECKNEW_AIntExpr(val_t p0);
+typedef void (*CHECKNEW_AIntExpr_t)(val_t p0);
+#define LOCATE_NEW_AIntExpr_parser_nodes___ANode___init "new AIntExpr parser_nodes::ANode::init"
+val_t NEW_AIntExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AIntExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AIntExpr_parser_prod___AIntExpr___empty_init "new AIntExpr parser_prod::AIntExpr::empty_init"
+val_t NEW_AIntExpr_parser_prod___AIntExpr___empty_init(void);
+typedef val_t (*NEW_AIntExpr_parser_prod___AIntExpr___empty_init_t)(void);
+#define LOCATE_NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr "new AIntExpr parser_prod::AIntExpr::init_aintexpr"
+val_t NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr(val_t p0);
+typedef val_t (*NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AFloatExpr "init var of AFloatExpr"
+void INIT_ATTRIBUTES__AFloatExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AFloatExpr_t)(val_t p0);
+val_t NEW_AFloatExpr(void);
+#define LOCATE_CHECKNEW_AFloatExpr "check new AFloatExpr"
+void CHECKNEW_AFloatExpr(val_t p0);
+typedef void (*CHECKNEW_AFloatExpr_t)(val_t p0);
+#define LOCATE_NEW_AFloatExpr_parser_nodes___ANode___init "new AFloatExpr parser_nodes::ANode::init"
+val_t NEW_AFloatExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AFloatExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AFloatExpr_parser_prod___AFloatExpr___empty_init "new AFloatExpr parser_prod::AFloatExpr::empty_init"
+val_t NEW_AFloatExpr_parser_prod___AFloatExpr___empty_init(void);
+typedef val_t (*NEW_AFloatExpr_parser_prod___AFloatExpr___empty_init_t)(void);
+#define LOCATE_NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr "new AFloatExpr parser_prod::AFloatExpr::init_afloatexpr"
+val_t NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr(val_t p0);
+typedef val_t (*NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ACharExpr "init var of ACharExpr"
+void INIT_ATTRIBUTES__ACharExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ACharExpr_t)(val_t p0);
+val_t NEW_ACharExpr(void);
+#define LOCATE_CHECKNEW_ACharExpr "check new ACharExpr"
+void CHECKNEW_ACharExpr(val_t p0);
+typedef void (*CHECKNEW_ACharExpr_t)(val_t p0);
+#define LOCATE_NEW_ACharExpr_parser_nodes___ANode___init "new ACharExpr parser_nodes::ANode::init"
+val_t NEW_ACharExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ACharExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ACharExpr_parser_prod___ACharExpr___empty_init "new ACharExpr parser_prod::ACharExpr::empty_init"
+val_t NEW_ACharExpr_parser_prod___ACharExpr___empty_init(void);
+typedef val_t (*NEW_ACharExpr_parser_prod___ACharExpr___empty_init_t)(void);
+#define LOCATE_NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr "new ACharExpr parser_prod::ACharExpr::init_acharexpr"
+val_t NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr(val_t p0);
+typedef val_t (*NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AStringFormExpr "init var of AStringFormExpr"
+void INIT_ATTRIBUTES__AStringFormExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStringFormExpr_t)(val_t p0);
+val_t NEW_AStringFormExpr(void);
+#define LOCATE_CHECKNEW_AStringFormExpr "check new AStringFormExpr"
+void CHECKNEW_AStringFormExpr(val_t p0);
+typedef void (*CHECKNEW_AStringFormExpr_t)(val_t p0);
+#define LOCATE_NEW_AStringFormExpr_parser_nodes___ANode___init "new AStringFormExpr parser_nodes::ANode::init"
+val_t NEW_AStringFormExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStringFormExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AStringExpr "init var of AStringExpr"
+void INIT_ATTRIBUTES__AStringExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStringExpr_t)(val_t p0);
+val_t NEW_AStringExpr(void);
+#define LOCATE_CHECKNEW_AStringExpr "check new AStringExpr"
+void CHECKNEW_AStringExpr(val_t p0);
+typedef void (*CHECKNEW_AStringExpr_t)(val_t p0);
+#define LOCATE_NEW_AStringExpr_parser_nodes___ANode___init "new AStringExpr parser_nodes::ANode::init"
+val_t NEW_AStringExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStringExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AStringExpr_parser_prod___AStringExpr___empty_init "new AStringExpr parser_prod::AStringExpr::empty_init"
+val_t NEW_AStringExpr_parser_prod___AStringExpr___empty_init(void);
+typedef val_t (*NEW_AStringExpr_parser_prod___AStringExpr___empty_init_t)(void);
+#define LOCATE_NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr "new AStringExpr parser_prod::AStringExpr::init_astringexpr"
+val_t NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr(val_t p0);
+typedef val_t (*NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AStartStringExpr "init var of AStartStringExpr"
+void INIT_ATTRIBUTES__AStartStringExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AStartStringExpr_t)(val_t p0);
+val_t NEW_AStartStringExpr(void);
+#define LOCATE_CHECKNEW_AStartStringExpr "check new AStartStringExpr"
+void CHECKNEW_AStartStringExpr(val_t p0);
+typedef void (*CHECKNEW_AStartStringExpr_t)(val_t p0);
+#define LOCATE_NEW_AStartStringExpr_parser_nodes___ANode___init "new AStartStringExpr parser_nodes::ANode::init"
+val_t NEW_AStartStringExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AStartStringExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AStartStringExpr_parser_prod___AStartStringExpr___empty_init "new AStartStringExpr parser_prod::AStartStringExpr::empty_init"
+val_t NEW_AStartStringExpr_parser_prod___AStartStringExpr___empty_init(void);
+typedef val_t (*NEW_AStartStringExpr_parser_prod___AStartStringExpr___empty_init_t)(void);
+#define LOCATE_NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexpr "new AStartStringExpr parser_prod::AStartStringExpr::init_astartstringexpr"
+val_t NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0);
+typedef val_t (*NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AMidStringExpr "init var of AMidStringExpr"
+void INIT_ATTRIBUTES__AMidStringExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AMidStringExpr_t)(val_t p0);
+val_t NEW_AMidStringExpr(void);
+#define LOCATE_CHECKNEW_AMidStringExpr "check new AMidStringExpr"
+void CHECKNEW_AMidStringExpr(val_t p0);
+typedef void (*CHECKNEW_AMidStringExpr_t)(val_t p0);
+#define LOCATE_NEW_AMidStringExpr_parser_nodes___ANode___init "new AMidStringExpr parser_nodes::ANode::init"
+val_t NEW_AMidStringExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AMidStringExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AMidStringExpr_parser_prod___AMidStringExpr___empty_init "new AMidStringExpr parser_prod::AMidStringExpr::empty_init"
+val_t NEW_AMidStringExpr_parser_prod___AMidStringExpr___empty_init(void);
+typedef val_t (*NEW_AMidStringExpr_parser_prod___AMidStringExpr___empty_init_t)(void);
+#define LOCATE_NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr "new AMidStringExpr parser_prod::AMidStringExpr::init_amidstringexpr"
+val_t NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0);
+typedef val_t (*NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AEndStringExpr "init var of AEndStringExpr"
+void INIT_ATTRIBUTES__AEndStringExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AEndStringExpr_t)(val_t p0);
+val_t NEW_AEndStringExpr(void);
+#define LOCATE_CHECKNEW_AEndStringExpr "check new AEndStringExpr"
+void CHECKNEW_AEndStringExpr(val_t p0);
+typedef void (*CHECKNEW_AEndStringExpr_t)(val_t p0);
+#define LOCATE_NEW_AEndStringExpr_parser_nodes___ANode___init "new AEndStringExpr parser_nodes::ANode::init"
+val_t NEW_AEndStringExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AEndStringExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AEndStringExpr_parser_prod___AEndStringExpr___empty_init "new AEndStringExpr parser_prod::AEndStringExpr::empty_init"
+val_t NEW_AEndStringExpr_parser_prod___AEndStringExpr___empty_init(void);
+typedef val_t (*NEW_AEndStringExpr_parser_prod___AEndStringExpr___empty_init_t)(void);
+#define LOCATE_NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr "new AEndStringExpr parser_prod::AEndStringExpr::init_aendstringexpr"
+val_t NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0);
+typedef val_t (*NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ASuperstringExpr "init var of ASuperstringExpr"
+void INIT_ATTRIBUTES__ASuperstringExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASuperstringExpr_t)(val_t p0);
+val_t NEW_ASuperstringExpr(void);
+#define LOCATE_CHECKNEW_ASuperstringExpr "check new ASuperstringExpr"
+void CHECKNEW_ASuperstringExpr(val_t p0);
+typedef void (*CHECKNEW_ASuperstringExpr_t)(val_t p0);
+#define LOCATE_NEW_ASuperstringExpr_parser_nodes___ANode___init "new ASuperstringExpr parser_nodes::ANode::init"
+val_t NEW_ASuperstringExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASuperstringExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___empty_init "new ASuperstringExpr parser_prod::ASuperstringExpr::empty_init"
+val_t NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___empty_init(void);
+typedef val_t (*NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___empty_init_t)(void);
+#define LOCATE_NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr "new ASuperstringExpr parser_prod::ASuperstringExpr::init_asuperstringexpr"
+val_t NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0);
+typedef val_t (*NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AParExpr "init var of AParExpr"
+void INIT_ATTRIBUTES__AParExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AParExpr_t)(val_t p0);
+val_t NEW_AParExpr(void);
+#define LOCATE_CHECKNEW_AParExpr "check new AParExpr"
+void CHECKNEW_AParExpr(val_t p0);
+typedef void (*CHECKNEW_AParExpr_t)(val_t p0);
+#define LOCATE_NEW_AParExpr_parser_nodes___ANode___init "new AParExpr parser_nodes::ANode::init"
+val_t NEW_AParExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AParExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AParExpr_parser_prod___AParExpr___empty_init "new AParExpr parser_prod::AParExpr::empty_init"
+val_t NEW_AParExpr_parser_prod___AParExpr___empty_init(void);
+typedef val_t (*NEW_AParExpr_parser_prod___AParExpr___empty_init_t)(void);
+#define LOCATE_NEW_AParExpr_parser_prod___AParExpr___init_aparexpr "new AParExpr parser_prod::AParExpr::init_aparexpr"
+val_t NEW_AParExpr_parser_prod___AParExpr___init_aparexpr(val_t p0);
+typedef val_t (*NEW_AParExpr_parser_prod___AParExpr___init_aparexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AProxyExpr "init var of AProxyExpr"
+void INIT_ATTRIBUTES__AProxyExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AProxyExpr_t)(val_t p0);
+val_t NEW_AProxyExpr(void);
+#define LOCATE_CHECKNEW_AProxyExpr "check new AProxyExpr"
+void CHECKNEW_AProxyExpr(val_t p0);
+typedef void (*CHECKNEW_AProxyExpr_t)(val_t p0);
+#define LOCATE_NEW_AProxyExpr_parser_nodes___ANode___init "new AProxyExpr parser_nodes::ANode::init"
+val_t NEW_AProxyExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AProxyExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AAsCastExpr "init var of AAsCastExpr"
+void INIT_ATTRIBUTES__AAsCastExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAsCastExpr_t)(val_t p0);
+val_t NEW_AAsCastExpr(void);
+#define LOCATE_CHECKNEW_AAsCastExpr "check new AAsCastExpr"
+void CHECKNEW_AAsCastExpr(val_t p0);
+typedef void (*CHECKNEW_AAsCastExpr_t)(val_t p0);
+#define LOCATE_NEW_AAsCastExpr_parser_nodes___ANode___init "new AAsCastExpr parser_nodes::ANode::init"
+val_t NEW_AAsCastExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAsCastExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAsCastExpr_parser_prod___AAsCastExpr___empty_init "new AAsCastExpr parser_prod::AAsCastExpr::empty_init"
+val_t NEW_AAsCastExpr_parser_prod___AAsCastExpr___empty_init(void);
+typedef val_t (*NEW_AAsCastExpr_parser_prod___AAsCastExpr___empty_init_t)(void);
+#define LOCATE_NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr "new AAsCastExpr parser_prod::AAsCastExpr::init_aascastexpr"
+val_t NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AAsNotnullExpr "init var of AAsNotnullExpr"
+void INIT_ATTRIBUTES__AAsNotnullExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAsNotnullExpr_t)(val_t p0);
+val_t NEW_AAsNotnullExpr(void);
+#define LOCATE_CHECKNEW_AAsNotnullExpr "check new AAsNotnullExpr"
+void CHECKNEW_AAsNotnullExpr(val_t p0);
+typedef void (*CHECKNEW_AAsNotnullExpr_t)(val_t p0);
+#define LOCATE_NEW_AAsNotnullExpr_parser_nodes___ANode___init "new AAsNotnullExpr parser_nodes::ANode::init"
+val_t NEW_AAsNotnullExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAsNotnullExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___empty_init "new AAsNotnullExpr parser_prod::AAsNotnullExpr::empty_init"
+val_t NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___empty_init(void);
+typedef val_t (*NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___empty_init_t)(void);
+#define LOCATE_NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___init_aasnotnullexpr "new AAsNotnullExpr parser_prod::AAsNotnullExpr::init_aasnotnullexpr"
+val_t NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___init_aasnotnullexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__AIssetAttrExpr "init var of AIssetAttrExpr"
+void INIT_ATTRIBUTES__AIssetAttrExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AIssetAttrExpr_t)(val_t p0);
+val_t NEW_AIssetAttrExpr(void);
+#define LOCATE_CHECKNEW_AIssetAttrExpr "check new AIssetAttrExpr"
+void CHECKNEW_AIssetAttrExpr(val_t p0);
+typedef void (*CHECKNEW_AIssetAttrExpr_t)(val_t p0);
+#define LOCATE_NEW_AIssetAttrExpr_parser_nodes___ANode___init "new AIssetAttrExpr parser_nodes::ANode::init"
+val_t NEW_AIssetAttrExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AIssetAttrExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___empty_init "new AIssetAttrExpr parser_prod::AIssetAttrExpr::empty_init"
+val_t NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___empty_init(void);
+typedef val_t (*NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___empty_init_t)(void);
+#define LOCATE_NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr "new AIssetAttrExpr parser_prod::AIssetAttrExpr::init_aissetattrexpr"
+val_t NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AAssignOp "init var of AAssignOp"
+void INIT_ATTRIBUTES__AAssignOp(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAssignOp_t)(val_t p0);
+val_t NEW_AAssignOp(void);
+#define LOCATE_CHECKNEW_AAssignOp "check new AAssignOp"
+void CHECKNEW_AAssignOp(val_t p0);
+typedef void (*CHECKNEW_AAssignOp_t)(val_t p0);
+#define LOCATE_NEW_AAssignOp_parser_nodes___ANode___init "new AAssignOp parser_nodes::ANode::init"
+val_t NEW_AAssignOp_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAssignOp_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__APlusAssignOp "init var of APlusAssignOp"
+void INIT_ATTRIBUTES__APlusAssignOp(val_t p0);
+typedef void (*INIT_ATTRIBUTES__APlusAssignOp_t)(val_t p0);
+val_t NEW_APlusAssignOp(void);
+#define LOCATE_CHECKNEW_APlusAssignOp "check new APlusAssignOp"
+void CHECKNEW_APlusAssignOp(val_t p0);
+typedef void (*CHECKNEW_APlusAssignOp_t)(val_t p0);
+#define LOCATE_NEW_APlusAssignOp_parser_nodes___ANode___init "new APlusAssignOp parser_nodes::ANode::init"
+val_t NEW_APlusAssignOp_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_APlusAssignOp_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_APlusAssignOp_parser_prod___APlusAssignOp___empty_init "new APlusAssignOp parser_prod::APlusAssignOp::empty_init"
+val_t NEW_APlusAssignOp_parser_prod___APlusAssignOp___empty_init(void);
+typedef val_t (*NEW_APlusAssignOp_parser_prod___APlusAssignOp___empty_init_t)(void);
+#define LOCATE_NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop "new APlusAssignOp parser_prod::APlusAssignOp::init_aplusassignop"
+val_t NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop(val_t p0);
+typedef val_t (*NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AMinusAssignOp "init var of AMinusAssignOp"
+void INIT_ATTRIBUTES__AMinusAssignOp(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AMinusAssignOp_t)(val_t p0);
+val_t NEW_AMinusAssignOp(void);
+#define LOCATE_CHECKNEW_AMinusAssignOp "check new AMinusAssignOp"
+void CHECKNEW_AMinusAssignOp(val_t p0);
+typedef void (*CHECKNEW_AMinusAssignOp_t)(val_t p0);
+#define LOCATE_NEW_AMinusAssignOp_parser_nodes___ANode___init "new AMinusAssignOp parser_nodes::ANode::init"
+val_t NEW_AMinusAssignOp_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AMinusAssignOp_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___empty_init "new AMinusAssignOp parser_prod::AMinusAssignOp::empty_init"
+val_t NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___empty_init(void);
+typedef val_t (*NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___empty_init_t)(void);
+#define LOCATE_NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop "new AMinusAssignOp parser_prod::AMinusAssignOp::init_aminusassignop"
+val_t NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0);
+typedef val_t (*NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AClosureDef "init var of AClosureDef"
+void INIT_ATTRIBUTES__AClosureDef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AClosureDef_t)(val_t p0);
+val_t NEW_AClosureDef(void);
+#define LOCATE_CHECKNEW_AClosureDef "check new AClosureDef"
+void CHECKNEW_AClosureDef(val_t p0);
+typedef void (*CHECKNEW_AClosureDef_t)(val_t p0);
+#define LOCATE_NEW_AClosureDef_parser_nodes___ANode___init "new AClosureDef parser_nodes::ANode::init"
+val_t NEW_AClosureDef_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AClosureDef_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AClosureDef_parser_prod___AClosureDef___empty_init "new AClosureDef parser_prod::AClosureDef::empty_init"
+val_t NEW_AClosureDef_parser_prod___AClosureDef___empty_init(void);
+typedef val_t (*NEW_AClosureDef_parser_prod___AClosureDef___empty_init_t)(void);
+#define LOCATE_NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef "new AClosureDef parser_prod::AClosureDef::init_aclosuredef"
+val_t NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+typedef val_t (*NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+#define LOCATE_INIT_ATTRIBUTES__AClosureId "init var of AClosureId"
+void INIT_ATTRIBUTES__AClosureId(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AClosureId_t)(val_t p0);
+val_t NEW_AClosureId(void);
+#define LOCATE_CHECKNEW_AClosureId "check new AClosureId"
+void CHECKNEW_AClosureId(val_t p0);
+typedef void (*CHECKNEW_AClosureId_t)(val_t p0);
+#define LOCATE_NEW_AClosureId_parser_nodes___ANode___init "new AClosureId parser_nodes::ANode::init"
+val_t NEW_AClosureId_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AClosureId_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ASimpleClosureId "init var of ASimpleClosureId"
+void INIT_ATTRIBUTES__ASimpleClosureId(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASimpleClosureId_t)(val_t p0);
+val_t NEW_ASimpleClosureId(void);
+#define LOCATE_CHECKNEW_ASimpleClosureId "check new ASimpleClosureId"
+void CHECKNEW_ASimpleClosureId(val_t p0);
+typedef void (*CHECKNEW_ASimpleClosureId_t)(val_t p0);
+#define LOCATE_NEW_ASimpleClosureId_parser_nodes___ANode___init "new ASimpleClosureId parser_nodes::ANode::init"
+val_t NEW_ASimpleClosureId_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASimpleClosureId_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___empty_init "new ASimpleClosureId parser_prod::ASimpleClosureId::empty_init"
+val_t NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___empty_init(void);
+typedef val_t (*NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___empty_init_t)(void);
+#define LOCATE_NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___init_asimpleclosureid "new ASimpleClosureId parser_prod::ASimpleClosureId::init_asimpleclosureid"
+val_t NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0);
+typedef val_t (*NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___init_asimpleclosureid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ABreakClosureId "init var of ABreakClosureId"
+void INIT_ATTRIBUTES__ABreakClosureId(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ABreakClosureId_t)(val_t p0);
+val_t NEW_ABreakClosureId(void);
+#define LOCATE_CHECKNEW_ABreakClosureId "check new ABreakClosureId"
+void CHECKNEW_ABreakClosureId(val_t p0);
+typedef void (*CHECKNEW_ABreakClosureId_t)(val_t p0);
+#define LOCATE_NEW_ABreakClosureId_parser_nodes___ANode___init "new ABreakClosureId parser_nodes::ANode::init"
+val_t NEW_ABreakClosureId_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ABreakClosureId_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ABreakClosureId_parser_prod___ABreakClosureId___empty_init "new ABreakClosureId parser_prod::ABreakClosureId::empty_init"
+val_t NEW_ABreakClosureId_parser_prod___ABreakClosureId___empty_init(void);
+typedef val_t (*NEW_ABreakClosureId_parser_prod___ABreakClosureId___empty_init_t)(void);
+#define LOCATE_NEW_ABreakClosureId_parser_prod___ABreakClosureId___init_abreakclosureid "new ABreakClosureId parser_prod::ABreakClosureId::init_abreakclosureid"
+val_t NEW_ABreakClosureId_parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0);
+typedef val_t (*NEW_ABreakClosureId_parser_prod___ABreakClosureId___init_abreakclosureid_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AQualified "init var of AQualified"
+void INIT_ATTRIBUTES__AQualified(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AQualified_t)(val_t p0);
+val_t NEW_AQualified(void);
+#define LOCATE_CHECKNEW_AQualified "check new AQualified"
+void CHECKNEW_AQualified(val_t p0);
+typedef void (*CHECKNEW_AQualified_t)(val_t p0);
+#define LOCATE_NEW_AQualified_parser_nodes___ANode___init "new AQualified parser_nodes::ANode::init"
+val_t NEW_AQualified_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AQualified_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_AQualified_parser_prod___AQualified___empty_init "new AQualified parser_prod::AQualified::empty_init"
+val_t NEW_AQualified_parser_prod___AQualified___empty_init(void);
+typedef val_t (*NEW_AQualified_parser_prod___AQualified___empty_init_t)(void);
+#define LOCATE_NEW_AQualified_parser_prod___AQualified___init_aqualified "new AQualified parser_prod::AQualified::init_aqualified"
+val_t NEW_AQualified_parser_prod___AQualified___init_aqualified(val_t p0, val_t p1);
+typedef val_t (*NEW_AQualified_parser_prod___AQualified___init_aqualified_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ADoc "init var of ADoc"
+void INIT_ATTRIBUTES__ADoc(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ADoc_t)(val_t p0);
+val_t NEW_ADoc(void);
+#define LOCATE_CHECKNEW_ADoc "check new ADoc"
+void CHECKNEW_ADoc(val_t p0);
+typedef void (*CHECKNEW_ADoc_t)(val_t p0);
+#define LOCATE_NEW_ADoc_parser_nodes___ANode___init "new ADoc parser_nodes::ANode::init"
+val_t NEW_ADoc_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ADoc_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ADoc_parser_prod___ADoc___empty_init "new ADoc parser_prod::ADoc::empty_init"
+val_t NEW_ADoc_parser_prod___ADoc___empty_init(void);
+typedef val_t (*NEW_ADoc_parser_prod___ADoc___empty_init_t)(void);
+#define LOCATE_NEW_ADoc_parser_prod___ADoc___init_adoc "new ADoc parser_prod::ADoc::init_adoc"
+val_t NEW_ADoc_parser_prod___ADoc___init_adoc(val_t p0);
+typedef val_t (*NEW_ADoc_parser_prod___ADoc___init_adoc_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Start "init var of Start"
+void INIT_ATTRIBUTES__Start(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Start_t)(val_t p0);
+val_t NEW_Start(void);
+#define LOCATE_CHECKNEW_Start "check new Start"
+void CHECKNEW_Start(val_t p0);
+typedef void (*CHECKNEW_Start_t)(val_t p0);
+#define LOCATE_NEW_Start_parser_nodes___ANode___init "new Start parser_nodes::ANode::init"
+val_t NEW_Start_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_Start_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_Start_parser_prod___Start___init "new Start parser_prod::Start::init"
+val_t NEW_Start_parser_prod___Start___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Start_parser_prod___Start___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__Lexer "init var of Lexer"
+void INIT_ATTRIBUTES__Lexer(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Lexer_t)(val_t p0);
+val_t NEW_Lexer(void);
+#define LOCATE_CHECKNEW_Lexer "check new Lexer"
+void CHECKNEW_Lexer(val_t p0);
+typedef void (*CHECKNEW_Lexer_t)(val_t p0);
+#define LOCATE_NEW_Lexer_lexer___Lexer___init "new Lexer lexer::Lexer::init"
+val_t NEW_Lexer_lexer___Lexer___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Lexer_lexer___Lexer___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__Visitor "init var of Visitor"
+void INIT_ATTRIBUTES__Visitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Visitor_t)(val_t p0);
+val_t NEW_Visitor(void);
+#define LOCATE_CHECKNEW_Visitor "check new Visitor"
+void CHECKNEW_Visitor(val_t p0);
+typedef void (*CHECKNEW_Visitor_t)(val_t p0);
+#define LOCATE_NEW_Visitor_parser_prod___Visitor___init "new Visitor parser_prod::Visitor::init"
+val_t NEW_Visitor_parser_prod___Visitor___init(void);
+typedef val_t (*NEW_Visitor_parser_prod___Visitor___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ParserTable "init var of ParserTable"
+void INIT_ATTRIBUTES__ParserTable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ParserTable_t)(val_t p0);
+val_t NEW_ParserTable(void);
+#define LOCATE_CHECKNEW_ParserTable "check new ParserTable"
+void CHECKNEW_ParserTable(val_t p0);
+typedef void (*CHECKNEW_ParserTable_t)(val_t p0);
+#define LOCATE_NEW_ParserTable_parser_tables___ParserTable___init "new ParserTable parser_tables::ParserTable::init"
+val_t NEW_ParserTable_parser_tables___ParserTable___init(void);
+typedef val_t (*NEW_ParserTable_parser_tables___ParserTable___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__State "init var of State"
+void INIT_ATTRIBUTES__State(val_t p0);
+typedef void (*INIT_ATTRIBUTES__State_t)(val_t p0);
+val_t NEW_State(void);
+#define LOCATE_CHECKNEW_State "check new State"
+void CHECKNEW_State(val_t p0);
+typedef void (*CHECKNEW_State_t)(val_t p0);
+#define LOCATE_NEW_State_parser___State___init "new State parser::State::init"
+val_t NEW_State_parser___State___init(val_t p0, val_t p1);
+typedef val_t (*NEW_State_parser___State___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__Parser "init var of Parser"
+void INIT_ATTRIBUTES__Parser(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Parser_t)(val_t p0);
+val_t NEW_Parser(void);
+#define LOCATE_CHECKNEW_Parser "check new Parser"
+void CHECKNEW_Parser(val_t p0);
+typedef void (*CHECKNEW_Parser_t)(val_t p0);
+#define LOCATE_NEW_Parser_parser___Parser___init "new Parser parser::Parser::init"
+val_t NEW_Parser_parser___Parser___init(val_t p0);
+typedef val_t (*NEW_Parser_parser___Parser___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ComputeProdLocationVisitor "init var of ComputeProdLocationVisitor"
+void INIT_ATTRIBUTES__ComputeProdLocationVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ComputeProdLocationVisitor_t)(val_t p0);
+val_t NEW_ComputeProdLocationVisitor(void);
+#define LOCATE_CHECKNEW_ComputeProdLocationVisitor "check new ComputeProdLocationVisitor"
+void CHECKNEW_ComputeProdLocationVisitor(val_t p0);
+typedef void (*CHECKNEW_ComputeProdLocationVisitor_t)(val_t p0);
+#define LOCATE_NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init "new ComputeProdLocationVisitor parser::ComputeProdLocationVisitor::init"
+val_t NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init(void);
+typedef val_t (*NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction "init var of ReduceAction"
+void INIT_ATTRIBUTES__ReduceAction(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction_t)(val_t p0);
+val_t NEW_ReduceAction(void);
+#define LOCATE_CHECKNEW_ReduceAction "check new ReduceAction"
+void CHECKNEW_ReduceAction(val_t p0);
+typedef void (*CHECKNEW_ReduceAction_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction_parser___ReduceAction___init "new ReduceAction parser::ReduceAction::init"
+val_t NEW_ReduceAction_parser___ReduceAction___init(void);
+typedef val_t (*NEW_ReduceAction_parser___ReduceAction___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction0 "init var of ReduceAction0"
+void INIT_ATTRIBUTES__ReduceAction0(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction0_t)(val_t p0);
+val_t NEW_ReduceAction0(void);
+#define LOCATE_CHECKNEW_ReduceAction0 "check new ReduceAction0"
+void CHECKNEW_ReduceAction0(val_t p0);
+typedef void (*CHECKNEW_ReduceAction0_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction0_parser___ReduceAction0___init "new ReduceAction0 parser::ReduceAction0::init"
+val_t NEW_ReduceAction0_parser___ReduceAction0___init(void);
+typedef val_t (*NEW_ReduceAction0_parser___ReduceAction0___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1 "init var of ReduceAction1"
+void INIT_ATTRIBUTES__ReduceAction1(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1_t)(val_t p0);
+val_t NEW_ReduceAction1(void);
+#define LOCATE_CHECKNEW_ReduceAction1 "check new ReduceAction1"
+void CHECKNEW_ReduceAction1(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1_parser___ReduceAction1___init "new ReduceAction1 parser::ReduceAction1::init"
+val_t NEW_ReduceAction1_parser___ReduceAction1___init(void);
+typedef val_t (*NEW_ReduceAction1_parser___ReduceAction1___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction2 "init var of ReduceAction2"
+void INIT_ATTRIBUTES__ReduceAction2(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction2_t)(val_t p0);
+val_t NEW_ReduceAction2(void);
+#define LOCATE_CHECKNEW_ReduceAction2 "check new ReduceAction2"
+void CHECKNEW_ReduceAction2(val_t p0);
+typedef void (*CHECKNEW_ReduceAction2_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction2_parser___ReduceAction2___init "new ReduceAction2 parser::ReduceAction2::init"
+val_t NEW_ReduceAction2_parser___ReduceAction2___init(void);
+typedef val_t (*NEW_ReduceAction2_parser___ReduceAction2___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction3 "init var of ReduceAction3"
+void INIT_ATTRIBUTES__ReduceAction3(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction3_t)(val_t p0);
+val_t NEW_ReduceAction3(void);
+#define LOCATE_CHECKNEW_ReduceAction3 "check new ReduceAction3"
+void CHECKNEW_ReduceAction3(val_t p0);
+typedef void (*CHECKNEW_ReduceAction3_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction3_parser___ReduceAction3___init "new ReduceAction3 parser::ReduceAction3::init"
+val_t NEW_ReduceAction3_parser___ReduceAction3___init(void);
+typedef val_t (*NEW_ReduceAction3_parser___ReduceAction3___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction4 "init var of ReduceAction4"
+void INIT_ATTRIBUTES__ReduceAction4(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction4_t)(val_t p0);
+val_t NEW_ReduceAction4(void);
+#define LOCATE_CHECKNEW_ReduceAction4 "check new ReduceAction4"
+void CHECKNEW_ReduceAction4(val_t p0);
+typedef void (*CHECKNEW_ReduceAction4_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction4_parser___ReduceAction4___init "new ReduceAction4 parser::ReduceAction4::init"
+val_t NEW_ReduceAction4_parser___ReduceAction4___init(void);
+typedef val_t (*NEW_ReduceAction4_parser___ReduceAction4___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction5 "init var of ReduceAction5"
+void INIT_ATTRIBUTES__ReduceAction5(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction5_t)(val_t p0);
+val_t NEW_ReduceAction5(void);
+#define LOCATE_CHECKNEW_ReduceAction5 "check new ReduceAction5"
+void CHECKNEW_ReduceAction5(val_t p0);
+typedef void (*CHECKNEW_ReduceAction5_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction5_parser___ReduceAction5___init "new ReduceAction5 parser::ReduceAction5::init"
+val_t NEW_ReduceAction5_parser___ReduceAction5___init(void);
+typedef val_t (*NEW_ReduceAction5_parser___ReduceAction5___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction6 "init var of ReduceAction6"
+void INIT_ATTRIBUTES__ReduceAction6(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction6_t)(val_t p0);
+val_t NEW_ReduceAction6(void);
+#define LOCATE_CHECKNEW_ReduceAction6 "check new ReduceAction6"
+void CHECKNEW_ReduceAction6(val_t p0);
+typedef void (*CHECKNEW_ReduceAction6_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction6_parser___ReduceAction6___init "new ReduceAction6 parser::ReduceAction6::init"
+val_t NEW_ReduceAction6_parser___ReduceAction6___init(void);
+typedef val_t (*NEW_ReduceAction6_parser___ReduceAction6___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction7 "init var of ReduceAction7"
+void INIT_ATTRIBUTES__ReduceAction7(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction7_t)(val_t p0);
+val_t NEW_ReduceAction7(void);
+#define LOCATE_CHECKNEW_ReduceAction7 "check new ReduceAction7"
+void CHECKNEW_ReduceAction7(val_t p0);
+typedef void (*CHECKNEW_ReduceAction7_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction7_parser___ReduceAction7___init "new ReduceAction7 parser::ReduceAction7::init"
+val_t NEW_ReduceAction7_parser___ReduceAction7___init(void);
+typedef val_t (*NEW_ReduceAction7_parser___ReduceAction7___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction8 "init var of ReduceAction8"
+void INIT_ATTRIBUTES__ReduceAction8(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction8_t)(val_t p0);
+val_t NEW_ReduceAction8(void);
+#define LOCATE_CHECKNEW_ReduceAction8 "check new ReduceAction8"
+void CHECKNEW_ReduceAction8(val_t p0);
+typedef void (*CHECKNEW_ReduceAction8_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction8_parser___ReduceAction8___init "new ReduceAction8 parser::ReduceAction8::init"
+val_t NEW_ReduceAction8_parser___ReduceAction8___init(void);
+typedef val_t (*NEW_ReduceAction8_parser___ReduceAction8___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction9 "init var of ReduceAction9"
+void INIT_ATTRIBUTES__ReduceAction9(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction9_t)(val_t p0);
+val_t NEW_ReduceAction9(void);
+#define LOCATE_CHECKNEW_ReduceAction9 "check new ReduceAction9"
+void CHECKNEW_ReduceAction9(val_t p0);
+typedef void (*CHECKNEW_ReduceAction9_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction9_parser___ReduceAction9___init "new ReduceAction9 parser::ReduceAction9::init"
+val_t NEW_ReduceAction9_parser___ReduceAction9___init(void);
+typedef val_t (*NEW_ReduceAction9_parser___ReduceAction9___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction10 "init var of ReduceAction10"
+void INIT_ATTRIBUTES__ReduceAction10(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction10_t)(val_t p0);
+val_t NEW_ReduceAction10(void);
+#define LOCATE_CHECKNEW_ReduceAction10 "check new ReduceAction10"
+void CHECKNEW_ReduceAction10(val_t p0);
+typedef void (*CHECKNEW_ReduceAction10_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction10_parser___ReduceAction10___init "new ReduceAction10 parser::ReduceAction10::init"
+val_t NEW_ReduceAction10_parser___ReduceAction10___init(void);
+typedef val_t (*NEW_ReduceAction10_parser___ReduceAction10___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction11 "init var of ReduceAction11"
+void INIT_ATTRIBUTES__ReduceAction11(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction11_t)(val_t p0);
+val_t NEW_ReduceAction11(void);
+#define LOCATE_CHECKNEW_ReduceAction11 "check new ReduceAction11"
+void CHECKNEW_ReduceAction11(val_t p0);
+typedef void (*CHECKNEW_ReduceAction11_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction11_parser___ReduceAction11___init "new ReduceAction11 parser::ReduceAction11::init"
+val_t NEW_ReduceAction11_parser___ReduceAction11___init(void);
+typedef val_t (*NEW_ReduceAction11_parser___ReduceAction11___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction12 "init var of ReduceAction12"
+void INIT_ATTRIBUTES__ReduceAction12(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction12_t)(val_t p0);
+val_t NEW_ReduceAction12(void);
+#define LOCATE_CHECKNEW_ReduceAction12 "check new ReduceAction12"
+void CHECKNEW_ReduceAction12(val_t p0);
+typedef void (*CHECKNEW_ReduceAction12_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction12_parser___ReduceAction12___init "new ReduceAction12 parser::ReduceAction12::init"
+val_t NEW_ReduceAction12_parser___ReduceAction12___init(void);
+typedef val_t (*NEW_ReduceAction12_parser___ReduceAction12___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction13 "init var of ReduceAction13"
+void INIT_ATTRIBUTES__ReduceAction13(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction13_t)(val_t p0);
+val_t NEW_ReduceAction13(void);
+#define LOCATE_CHECKNEW_ReduceAction13 "check new ReduceAction13"
+void CHECKNEW_ReduceAction13(val_t p0);
+typedef void (*CHECKNEW_ReduceAction13_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction13_parser___ReduceAction13___init "new ReduceAction13 parser::ReduceAction13::init"
+val_t NEW_ReduceAction13_parser___ReduceAction13___init(void);
+typedef val_t (*NEW_ReduceAction13_parser___ReduceAction13___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction14 "init var of ReduceAction14"
+void INIT_ATTRIBUTES__ReduceAction14(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction14_t)(val_t p0);
+val_t NEW_ReduceAction14(void);
+#define LOCATE_CHECKNEW_ReduceAction14 "check new ReduceAction14"
+void CHECKNEW_ReduceAction14(val_t p0);
+typedef void (*CHECKNEW_ReduceAction14_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction14_parser___ReduceAction14___init "new ReduceAction14 parser::ReduceAction14::init"
+val_t NEW_ReduceAction14_parser___ReduceAction14___init(void);
+typedef val_t (*NEW_ReduceAction14_parser___ReduceAction14___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction15 "init var of ReduceAction15"
+void INIT_ATTRIBUTES__ReduceAction15(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction15_t)(val_t p0);
+val_t NEW_ReduceAction15(void);
+#define LOCATE_CHECKNEW_ReduceAction15 "check new ReduceAction15"
+void CHECKNEW_ReduceAction15(val_t p0);
+typedef void (*CHECKNEW_ReduceAction15_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction15_parser___ReduceAction15___init "new ReduceAction15 parser::ReduceAction15::init"
+val_t NEW_ReduceAction15_parser___ReduceAction15___init(void);
+typedef val_t (*NEW_ReduceAction15_parser___ReduceAction15___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction16 "init var of ReduceAction16"
+void INIT_ATTRIBUTES__ReduceAction16(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction16_t)(val_t p0);
+val_t NEW_ReduceAction16(void);
+#define LOCATE_CHECKNEW_ReduceAction16 "check new ReduceAction16"
+void CHECKNEW_ReduceAction16(val_t p0);
+typedef void (*CHECKNEW_ReduceAction16_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction16_parser___ReduceAction16___init "new ReduceAction16 parser::ReduceAction16::init"
+val_t NEW_ReduceAction16_parser___ReduceAction16___init(void);
+typedef val_t (*NEW_ReduceAction16_parser___ReduceAction16___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction17 "init var of ReduceAction17"
+void INIT_ATTRIBUTES__ReduceAction17(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction17_t)(val_t p0);
+val_t NEW_ReduceAction17(void);
+#define LOCATE_CHECKNEW_ReduceAction17 "check new ReduceAction17"
+void CHECKNEW_ReduceAction17(val_t p0);
+typedef void (*CHECKNEW_ReduceAction17_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction17_parser___ReduceAction17___init "new ReduceAction17 parser::ReduceAction17::init"
+val_t NEW_ReduceAction17_parser___ReduceAction17___init(void);
+typedef val_t (*NEW_ReduceAction17_parser___ReduceAction17___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction18 "init var of ReduceAction18"
+void INIT_ATTRIBUTES__ReduceAction18(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction18_t)(val_t p0);
+val_t NEW_ReduceAction18(void);
+#define LOCATE_CHECKNEW_ReduceAction18 "check new ReduceAction18"
+void CHECKNEW_ReduceAction18(val_t p0);
+typedef void (*CHECKNEW_ReduceAction18_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction18_parser___ReduceAction18___init "new ReduceAction18 parser::ReduceAction18::init"
+val_t NEW_ReduceAction18_parser___ReduceAction18___init(void);
+typedef val_t (*NEW_ReduceAction18_parser___ReduceAction18___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction19 "init var of ReduceAction19"
+void INIT_ATTRIBUTES__ReduceAction19(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction19_t)(val_t p0);
+val_t NEW_ReduceAction19(void);
+#define LOCATE_CHECKNEW_ReduceAction19 "check new ReduceAction19"
+void CHECKNEW_ReduceAction19(val_t p0);
+typedef void (*CHECKNEW_ReduceAction19_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction19_parser___ReduceAction19___init "new ReduceAction19 parser::ReduceAction19::init"
+val_t NEW_ReduceAction19_parser___ReduceAction19___init(void);
+typedef val_t (*NEW_ReduceAction19_parser___ReduceAction19___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction20 "init var of ReduceAction20"
+void INIT_ATTRIBUTES__ReduceAction20(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction20_t)(val_t p0);
+val_t NEW_ReduceAction20(void);
+#define LOCATE_CHECKNEW_ReduceAction20 "check new ReduceAction20"
+void CHECKNEW_ReduceAction20(val_t p0);
+typedef void (*CHECKNEW_ReduceAction20_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction20_parser___ReduceAction20___init "new ReduceAction20 parser::ReduceAction20::init"
+val_t NEW_ReduceAction20_parser___ReduceAction20___init(void);
+typedef val_t (*NEW_ReduceAction20_parser___ReduceAction20___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction21 "init var of ReduceAction21"
+void INIT_ATTRIBUTES__ReduceAction21(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction21_t)(val_t p0);
+val_t NEW_ReduceAction21(void);
+#define LOCATE_CHECKNEW_ReduceAction21 "check new ReduceAction21"
+void CHECKNEW_ReduceAction21(val_t p0);
+typedef void (*CHECKNEW_ReduceAction21_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction21_parser___ReduceAction21___init "new ReduceAction21 parser::ReduceAction21::init"
+val_t NEW_ReduceAction21_parser___ReduceAction21___init(void);
+typedef val_t (*NEW_ReduceAction21_parser___ReduceAction21___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction22 "init var of ReduceAction22"
+void INIT_ATTRIBUTES__ReduceAction22(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction22_t)(val_t p0);
+val_t NEW_ReduceAction22(void);
+#define LOCATE_CHECKNEW_ReduceAction22 "check new ReduceAction22"
+void CHECKNEW_ReduceAction22(val_t p0);
+typedef void (*CHECKNEW_ReduceAction22_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction22_parser___ReduceAction22___init "new ReduceAction22 parser::ReduceAction22::init"
+val_t NEW_ReduceAction22_parser___ReduceAction22___init(void);
+typedef val_t (*NEW_ReduceAction22_parser___ReduceAction22___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction23 "init var of ReduceAction23"
+void INIT_ATTRIBUTES__ReduceAction23(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction23_t)(val_t p0);
+val_t NEW_ReduceAction23(void);
+#define LOCATE_CHECKNEW_ReduceAction23 "check new ReduceAction23"
+void CHECKNEW_ReduceAction23(val_t p0);
+typedef void (*CHECKNEW_ReduceAction23_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction23_parser___ReduceAction23___init "new ReduceAction23 parser::ReduceAction23::init"
+val_t NEW_ReduceAction23_parser___ReduceAction23___init(void);
+typedef val_t (*NEW_ReduceAction23_parser___ReduceAction23___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction24 "init var of ReduceAction24"
+void INIT_ATTRIBUTES__ReduceAction24(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction24_t)(val_t p0);
+val_t NEW_ReduceAction24(void);
+#define LOCATE_CHECKNEW_ReduceAction24 "check new ReduceAction24"
+void CHECKNEW_ReduceAction24(val_t p0);
+typedef void (*CHECKNEW_ReduceAction24_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction24_parser___ReduceAction24___init "new ReduceAction24 parser::ReduceAction24::init"
+val_t NEW_ReduceAction24_parser___ReduceAction24___init(void);
+typedef val_t (*NEW_ReduceAction24_parser___ReduceAction24___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction25 "init var of ReduceAction25"
+void INIT_ATTRIBUTES__ReduceAction25(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction25_t)(val_t p0);
+val_t NEW_ReduceAction25(void);
+#define LOCATE_CHECKNEW_ReduceAction25 "check new ReduceAction25"
+void CHECKNEW_ReduceAction25(val_t p0);
+typedef void (*CHECKNEW_ReduceAction25_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction25_parser___ReduceAction25___init "new ReduceAction25 parser::ReduceAction25::init"
+val_t NEW_ReduceAction25_parser___ReduceAction25___init(void);
+typedef val_t (*NEW_ReduceAction25_parser___ReduceAction25___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction26 "init var of ReduceAction26"
+void INIT_ATTRIBUTES__ReduceAction26(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction26_t)(val_t p0);
+val_t NEW_ReduceAction26(void);
+#define LOCATE_CHECKNEW_ReduceAction26 "check new ReduceAction26"
+void CHECKNEW_ReduceAction26(val_t p0);
+typedef void (*CHECKNEW_ReduceAction26_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction26_parser___ReduceAction26___init "new ReduceAction26 parser::ReduceAction26::init"
+val_t NEW_ReduceAction26_parser___ReduceAction26___init(void);
+typedef val_t (*NEW_ReduceAction26_parser___ReduceAction26___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction27 "init var of ReduceAction27"
+void INIT_ATTRIBUTES__ReduceAction27(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction27_t)(val_t p0);
+val_t NEW_ReduceAction27(void);
+#define LOCATE_CHECKNEW_ReduceAction27 "check new ReduceAction27"
+void CHECKNEW_ReduceAction27(val_t p0);
+typedef void (*CHECKNEW_ReduceAction27_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction27_parser___ReduceAction27___init "new ReduceAction27 parser::ReduceAction27::init"
+val_t NEW_ReduceAction27_parser___ReduceAction27___init(void);
+typedef val_t (*NEW_ReduceAction27_parser___ReduceAction27___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction28 "init var of ReduceAction28"
+void INIT_ATTRIBUTES__ReduceAction28(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction28_t)(val_t p0);
+val_t NEW_ReduceAction28(void);
+#define LOCATE_CHECKNEW_ReduceAction28 "check new ReduceAction28"
+void CHECKNEW_ReduceAction28(val_t p0);
+typedef void (*CHECKNEW_ReduceAction28_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction28_parser___ReduceAction28___init "new ReduceAction28 parser::ReduceAction28::init"
+val_t NEW_ReduceAction28_parser___ReduceAction28___init(void);
+typedef val_t (*NEW_ReduceAction28_parser___ReduceAction28___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction29 "init var of ReduceAction29"
+void INIT_ATTRIBUTES__ReduceAction29(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction29_t)(val_t p0);
+val_t NEW_ReduceAction29(void);
+#define LOCATE_CHECKNEW_ReduceAction29 "check new ReduceAction29"
+void CHECKNEW_ReduceAction29(val_t p0);
+typedef void (*CHECKNEW_ReduceAction29_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction29_parser___ReduceAction29___init "new ReduceAction29 parser::ReduceAction29::init"
+val_t NEW_ReduceAction29_parser___ReduceAction29___init(void);
+typedef val_t (*NEW_ReduceAction29_parser___ReduceAction29___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction30 "init var of ReduceAction30"
+void INIT_ATTRIBUTES__ReduceAction30(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction30_t)(val_t p0);
+val_t NEW_ReduceAction30(void);
+#define LOCATE_CHECKNEW_ReduceAction30 "check new ReduceAction30"
+void CHECKNEW_ReduceAction30(val_t p0);
+typedef void (*CHECKNEW_ReduceAction30_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction30_parser___ReduceAction30___init "new ReduceAction30 parser::ReduceAction30::init"
+val_t NEW_ReduceAction30_parser___ReduceAction30___init(void);
+typedef val_t (*NEW_ReduceAction30_parser___ReduceAction30___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction31 "init var of ReduceAction31"
+void INIT_ATTRIBUTES__ReduceAction31(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction31_t)(val_t p0);
+val_t NEW_ReduceAction31(void);
+#define LOCATE_CHECKNEW_ReduceAction31 "check new ReduceAction31"
+void CHECKNEW_ReduceAction31(val_t p0);
+typedef void (*CHECKNEW_ReduceAction31_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction31_parser___ReduceAction31___init "new ReduceAction31 parser::ReduceAction31::init"
+val_t NEW_ReduceAction31_parser___ReduceAction31___init(void);
+typedef val_t (*NEW_ReduceAction31_parser___ReduceAction31___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction32 "init var of ReduceAction32"
+void INIT_ATTRIBUTES__ReduceAction32(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction32_t)(val_t p0);
+val_t NEW_ReduceAction32(void);
+#define LOCATE_CHECKNEW_ReduceAction32 "check new ReduceAction32"
+void CHECKNEW_ReduceAction32(val_t p0);
+typedef void (*CHECKNEW_ReduceAction32_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction32_parser___ReduceAction32___init "new ReduceAction32 parser::ReduceAction32::init"
+val_t NEW_ReduceAction32_parser___ReduceAction32___init(void);
+typedef val_t (*NEW_ReduceAction32_parser___ReduceAction32___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction33 "init var of ReduceAction33"
+void INIT_ATTRIBUTES__ReduceAction33(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction33_t)(val_t p0);
+val_t NEW_ReduceAction33(void);
+#define LOCATE_CHECKNEW_ReduceAction33 "check new ReduceAction33"
+void CHECKNEW_ReduceAction33(val_t p0);
+typedef void (*CHECKNEW_ReduceAction33_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction33_parser___ReduceAction33___init "new ReduceAction33 parser::ReduceAction33::init"
+val_t NEW_ReduceAction33_parser___ReduceAction33___init(void);
+typedef val_t (*NEW_ReduceAction33_parser___ReduceAction33___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction34 "init var of ReduceAction34"
+void INIT_ATTRIBUTES__ReduceAction34(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction34_t)(val_t p0);
+val_t NEW_ReduceAction34(void);
+#define LOCATE_CHECKNEW_ReduceAction34 "check new ReduceAction34"
+void CHECKNEW_ReduceAction34(val_t p0);
+typedef void (*CHECKNEW_ReduceAction34_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction34_parser___ReduceAction34___init "new ReduceAction34 parser::ReduceAction34::init"
+val_t NEW_ReduceAction34_parser___ReduceAction34___init(void);
+typedef val_t (*NEW_ReduceAction34_parser___ReduceAction34___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction35 "init var of ReduceAction35"
+void INIT_ATTRIBUTES__ReduceAction35(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction35_t)(val_t p0);
+val_t NEW_ReduceAction35(void);
+#define LOCATE_CHECKNEW_ReduceAction35 "check new ReduceAction35"
+void CHECKNEW_ReduceAction35(val_t p0);
+typedef void (*CHECKNEW_ReduceAction35_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction35_parser___ReduceAction35___init "new ReduceAction35 parser::ReduceAction35::init"
+val_t NEW_ReduceAction35_parser___ReduceAction35___init(void);
+typedef val_t (*NEW_ReduceAction35_parser___ReduceAction35___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction36 "init var of ReduceAction36"
+void INIT_ATTRIBUTES__ReduceAction36(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction36_t)(val_t p0);
+val_t NEW_ReduceAction36(void);
+#define LOCATE_CHECKNEW_ReduceAction36 "check new ReduceAction36"
+void CHECKNEW_ReduceAction36(val_t p0);
+typedef void (*CHECKNEW_ReduceAction36_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction36_parser___ReduceAction36___init "new ReduceAction36 parser::ReduceAction36::init"
+val_t NEW_ReduceAction36_parser___ReduceAction36___init(void);
+typedef val_t (*NEW_ReduceAction36_parser___ReduceAction36___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction37 "init var of ReduceAction37"
+void INIT_ATTRIBUTES__ReduceAction37(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction37_t)(val_t p0);
+val_t NEW_ReduceAction37(void);
+#define LOCATE_CHECKNEW_ReduceAction37 "check new ReduceAction37"
+void CHECKNEW_ReduceAction37(val_t p0);
+typedef void (*CHECKNEW_ReduceAction37_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction37_parser___ReduceAction37___init "new ReduceAction37 parser::ReduceAction37::init"
+val_t NEW_ReduceAction37_parser___ReduceAction37___init(void);
+typedef val_t (*NEW_ReduceAction37_parser___ReduceAction37___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction38 "init var of ReduceAction38"
+void INIT_ATTRIBUTES__ReduceAction38(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction38_t)(val_t p0);
+val_t NEW_ReduceAction38(void);
+#define LOCATE_CHECKNEW_ReduceAction38 "check new ReduceAction38"
+void CHECKNEW_ReduceAction38(val_t p0);
+typedef void (*CHECKNEW_ReduceAction38_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction38_parser___ReduceAction38___init "new ReduceAction38 parser::ReduceAction38::init"
+val_t NEW_ReduceAction38_parser___ReduceAction38___init(void);
+typedef val_t (*NEW_ReduceAction38_parser___ReduceAction38___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction39 "init var of ReduceAction39"
+void INIT_ATTRIBUTES__ReduceAction39(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction39_t)(val_t p0);
+val_t NEW_ReduceAction39(void);
+#define LOCATE_CHECKNEW_ReduceAction39 "check new ReduceAction39"
+void CHECKNEW_ReduceAction39(val_t p0);
+typedef void (*CHECKNEW_ReduceAction39_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction39_parser___ReduceAction39___init "new ReduceAction39 parser::ReduceAction39::init"
+val_t NEW_ReduceAction39_parser___ReduceAction39___init(void);
+typedef val_t (*NEW_ReduceAction39_parser___ReduceAction39___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction40 "init var of ReduceAction40"
+void INIT_ATTRIBUTES__ReduceAction40(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction40_t)(val_t p0);
+val_t NEW_ReduceAction40(void);
+#define LOCATE_CHECKNEW_ReduceAction40 "check new ReduceAction40"
+void CHECKNEW_ReduceAction40(val_t p0);
+typedef void (*CHECKNEW_ReduceAction40_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction40_parser___ReduceAction40___init "new ReduceAction40 parser::ReduceAction40::init"
+val_t NEW_ReduceAction40_parser___ReduceAction40___init(void);
+typedef val_t (*NEW_ReduceAction40_parser___ReduceAction40___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction41 "init var of ReduceAction41"
+void INIT_ATTRIBUTES__ReduceAction41(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction41_t)(val_t p0);
+val_t NEW_ReduceAction41(void);
+#define LOCATE_CHECKNEW_ReduceAction41 "check new ReduceAction41"
+void CHECKNEW_ReduceAction41(val_t p0);
+typedef void (*CHECKNEW_ReduceAction41_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction41_parser___ReduceAction41___init "new ReduceAction41 parser::ReduceAction41::init"
+val_t NEW_ReduceAction41_parser___ReduceAction41___init(void);
+typedef val_t (*NEW_ReduceAction41_parser___ReduceAction41___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction42 "init var of ReduceAction42"
+void INIT_ATTRIBUTES__ReduceAction42(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction42_t)(val_t p0);
+val_t NEW_ReduceAction42(void);
+#define LOCATE_CHECKNEW_ReduceAction42 "check new ReduceAction42"
+void CHECKNEW_ReduceAction42(val_t p0);
+typedef void (*CHECKNEW_ReduceAction42_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction42_parser___ReduceAction42___init "new ReduceAction42 parser::ReduceAction42::init"
+val_t NEW_ReduceAction42_parser___ReduceAction42___init(void);
+typedef val_t (*NEW_ReduceAction42_parser___ReduceAction42___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction43 "init var of ReduceAction43"
+void INIT_ATTRIBUTES__ReduceAction43(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction43_t)(val_t p0);
+val_t NEW_ReduceAction43(void);
+#define LOCATE_CHECKNEW_ReduceAction43 "check new ReduceAction43"
+void CHECKNEW_ReduceAction43(val_t p0);
+typedef void (*CHECKNEW_ReduceAction43_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction43_parser___ReduceAction43___init "new ReduceAction43 parser::ReduceAction43::init"
+val_t NEW_ReduceAction43_parser___ReduceAction43___init(void);
+typedef val_t (*NEW_ReduceAction43_parser___ReduceAction43___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction44 "init var of ReduceAction44"
+void INIT_ATTRIBUTES__ReduceAction44(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction44_t)(val_t p0);
+val_t NEW_ReduceAction44(void);
+#define LOCATE_CHECKNEW_ReduceAction44 "check new ReduceAction44"
+void CHECKNEW_ReduceAction44(val_t p0);
+typedef void (*CHECKNEW_ReduceAction44_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction44_parser___ReduceAction44___init "new ReduceAction44 parser::ReduceAction44::init"
+val_t NEW_ReduceAction44_parser___ReduceAction44___init(void);
+typedef val_t (*NEW_ReduceAction44_parser___ReduceAction44___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction45 "init var of ReduceAction45"
+void INIT_ATTRIBUTES__ReduceAction45(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction45_t)(val_t p0);
+val_t NEW_ReduceAction45(void);
+#define LOCATE_CHECKNEW_ReduceAction45 "check new ReduceAction45"
+void CHECKNEW_ReduceAction45(val_t p0);
+typedef void (*CHECKNEW_ReduceAction45_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction45_parser___ReduceAction45___init "new ReduceAction45 parser::ReduceAction45::init"
+val_t NEW_ReduceAction45_parser___ReduceAction45___init(void);
+typedef val_t (*NEW_ReduceAction45_parser___ReduceAction45___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction46 "init var of ReduceAction46"
+void INIT_ATTRIBUTES__ReduceAction46(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction46_t)(val_t p0);
+val_t NEW_ReduceAction46(void);
+#define LOCATE_CHECKNEW_ReduceAction46 "check new ReduceAction46"
+void CHECKNEW_ReduceAction46(val_t p0);
+typedef void (*CHECKNEW_ReduceAction46_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction46_parser___ReduceAction46___init "new ReduceAction46 parser::ReduceAction46::init"
+val_t NEW_ReduceAction46_parser___ReduceAction46___init(void);
+typedef val_t (*NEW_ReduceAction46_parser___ReduceAction46___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction47 "init var of ReduceAction47"
+void INIT_ATTRIBUTES__ReduceAction47(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction47_t)(val_t p0);
+val_t NEW_ReduceAction47(void);
+#define LOCATE_CHECKNEW_ReduceAction47 "check new ReduceAction47"
+void CHECKNEW_ReduceAction47(val_t p0);
+typedef void (*CHECKNEW_ReduceAction47_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction47_parser___ReduceAction47___init "new ReduceAction47 parser::ReduceAction47::init"
+val_t NEW_ReduceAction47_parser___ReduceAction47___init(void);
+typedef val_t (*NEW_ReduceAction47_parser___ReduceAction47___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction48 "init var of ReduceAction48"
+void INIT_ATTRIBUTES__ReduceAction48(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction48_t)(val_t p0);
+val_t NEW_ReduceAction48(void);
+#define LOCATE_CHECKNEW_ReduceAction48 "check new ReduceAction48"
+void CHECKNEW_ReduceAction48(val_t p0);
+typedef void (*CHECKNEW_ReduceAction48_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction48_parser___ReduceAction48___init "new ReduceAction48 parser::ReduceAction48::init"
+val_t NEW_ReduceAction48_parser___ReduceAction48___init(void);
+typedef val_t (*NEW_ReduceAction48_parser___ReduceAction48___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction49 "init var of ReduceAction49"
+void INIT_ATTRIBUTES__ReduceAction49(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction49_t)(val_t p0);
+val_t NEW_ReduceAction49(void);
+#define LOCATE_CHECKNEW_ReduceAction49 "check new ReduceAction49"
+void CHECKNEW_ReduceAction49(val_t p0);
+typedef void (*CHECKNEW_ReduceAction49_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction49_parser___ReduceAction49___init "new ReduceAction49 parser::ReduceAction49::init"
+val_t NEW_ReduceAction49_parser___ReduceAction49___init(void);
+typedef val_t (*NEW_ReduceAction49_parser___ReduceAction49___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction50 "init var of ReduceAction50"
+void INIT_ATTRIBUTES__ReduceAction50(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction50_t)(val_t p0);
+val_t NEW_ReduceAction50(void);
+#define LOCATE_CHECKNEW_ReduceAction50 "check new ReduceAction50"
+void CHECKNEW_ReduceAction50(val_t p0);
+typedef void (*CHECKNEW_ReduceAction50_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction50_parser___ReduceAction50___init "new ReduceAction50 parser::ReduceAction50::init"
+val_t NEW_ReduceAction50_parser___ReduceAction50___init(void);
+typedef val_t (*NEW_ReduceAction50_parser___ReduceAction50___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction51 "init var of ReduceAction51"
+void INIT_ATTRIBUTES__ReduceAction51(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction51_t)(val_t p0);
+val_t NEW_ReduceAction51(void);
+#define LOCATE_CHECKNEW_ReduceAction51 "check new ReduceAction51"
+void CHECKNEW_ReduceAction51(val_t p0);
+typedef void (*CHECKNEW_ReduceAction51_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction51_parser___ReduceAction51___init "new ReduceAction51 parser::ReduceAction51::init"
+val_t NEW_ReduceAction51_parser___ReduceAction51___init(void);
+typedef val_t (*NEW_ReduceAction51_parser___ReduceAction51___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction52 "init var of ReduceAction52"
+void INIT_ATTRIBUTES__ReduceAction52(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction52_t)(val_t p0);
+val_t NEW_ReduceAction52(void);
+#define LOCATE_CHECKNEW_ReduceAction52 "check new ReduceAction52"
+void CHECKNEW_ReduceAction52(val_t p0);
+typedef void (*CHECKNEW_ReduceAction52_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction52_parser___ReduceAction52___init "new ReduceAction52 parser::ReduceAction52::init"
+val_t NEW_ReduceAction52_parser___ReduceAction52___init(void);
+typedef val_t (*NEW_ReduceAction52_parser___ReduceAction52___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction53 "init var of ReduceAction53"
+void INIT_ATTRIBUTES__ReduceAction53(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction53_t)(val_t p0);
+val_t NEW_ReduceAction53(void);
+#define LOCATE_CHECKNEW_ReduceAction53 "check new ReduceAction53"
+void CHECKNEW_ReduceAction53(val_t p0);
+typedef void (*CHECKNEW_ReduceAction53_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction53_parser___ReduceAction53___init "new ReduceAction53 parser::ReduceAction53::init"
+val_t NEW_ReduceAction53_parser___ReduceAction53___init(void);
+typedef val_t (*NEW_ReduceAction53_parser___ReduceAction53___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction54 "init var of ReduceAction54"
+void INIT_ATTRIBUTES__ReduceAction54(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction54_t)(val_t p0);
+val_t NEW_ReduceAction54(void);
+#define LOCATE_CHECKNEW_ReduceAction54 "check new ReduceAction54"
+void CHECKNEW_ReduceAction54(val_t p0);
+typedef void (*CHECKNEW_ReduceAction54_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction54_parser___ReduceAction54___init "new ReduceAction54 parser::ReduceAction54::init"
+val_t NEW_ReduceAction54_parser___ReduceAction54___init(void);
+typedef val_t (*NEW_ReduceAction54_parser___ReduceAction54___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction55 "init var of ReduceAction55"
+void INIT_ATTRIBUTES__ReduceAction55(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction55_t)(val_t p0);
+val_t NEW_ReduceAction55(void);
+#define LOCATE_CHECKNEW_ReduceAction55 "check new ReduceAction55"
+void CHECKNEW_ReduceAction55(val_t p0);
+typedef void (*CHECKNEW_ReduceAction55_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction55_parser___ReduceAction55___init "new ReduceAction55 parser::ReduceAction55::init"
+val_t NEW_ReduceAction55_parser___ReduceAction55___init(void);
+typedef val_t (*NEW_ReduceAction55_parser___ReduceAction55___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction56 "init var of ReduceAction56"
+void INIT_ATTRIBUTES__ReduceAction56(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction56_t)(val_t p0);
+val_t NEW_ReduceAction56(void);
+#define LOCATE_CHECKNEW_ReduceAction56 "check new ReduceAction56"
+void CHECKNEW_ReduceAction56(val_t p0);
+typedef void (*CHECKNEW_ReduceAction56_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction56_parser___ReduceAction56___init "new ReduceAction56 parser::ReduceAction56::init"
+val_t NEW_ReduceAction56_parser___ReduceAction56___init(void);
+typedef val_t (*NEW_ReduceAction56_parser___ReduceAction56___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction57 "init var of ReduceAction57"
+void INIT_ATTRIBUTES__ReduceAction57(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction57_t)(val_t p0);
+val_t NEW_ReduceAction57(void);
+#define LOCATE_CHECKNEW_ReduceAction57 "check new ReduceAction57"
+void CHECKNEW_ReduceAction57(val_t p0);
+typedef void (*CHECKNEW_ReduceAction57_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction57_parser___ReduceAction57___init "new ReduceAction57 parser::ReduceAction57::init"
+val_t NEW_ReduceAction57_parser___ReduceAction57___init(void);
+typedef val_t (*NEW_ReduceAction57_parser___ReduceAction57___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction58 "init var of ReduceAction58"
+void INIT_ATTRIBUTES__ReduceAction58(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction58_t)(val_t p0);
+val_t NEW_ReduceAction58(void);
+#define LOCATE_CHECKNEW_ReduceAction58 "check new ReduceAction58"
+void CHECKNEW_ReduceAction58(val_t p0);
+typedef void (*CHECKNEW_ReduceAction58_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction58_parser___ReduceAction58___init "new ReduceAction58 parser::ReduceAction58::init"
+val_t NEW_ReduceAction58_parser___ReduceAction58___init(void);
+typedef val_t (*NEW_ReduceAction58_parser___ReduceAction58___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction59 "init var of ReduceAction59"
+void INIT_ATTRIBUTES__ReduceAction59(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction59_t)(val_t p0);
+val_t NEW_ReduceAction59(void);
+#define LOCATE_CHECKNEW_ReduceAction59 "check new ReduceAction59"
+void CHECKNEW_ReduceAction59(val_t p0);
+typedef void (*CHECKNEW_ReduceAction59_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction59_parser___ReduceAction59___init "new ReduceAction59 parser::ReduceAction59::init"
+val_t NEW_ReduceAction59_parser___ReduceAction59___init(void);
+typedef val_t (*NEW_ReduceAction59_parser___ReduceAction59___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction60 "init var of ReduceAction60"
+void INIT_ATTRIBUTES__ReduceAction60(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction60_t)(val_t p0);
+val_t NEW_ReduceAction60(void);
+#define LOCATE_CHECKNEW_ReduceAction60 "check new ReduceAction60"
+void CHECKNEW_ReduceAction60(val_t p0);
+typedef void (*CHECKNEW_ReduceAction60_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction60_parser___ReduceAction60___init "new ReduceAction60 parser::ReduceAction60::init"
+val_t NEW_ReduceAction60_parser___ReduceAction60___init(void);
+typedef val_t (*NEW_ReduceAction60_parser___ReduceAction60___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction61 "init var of ReduceAction61"
+void INIT_ATTRIBUTES__ReduceAction61(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction61_t)(val_t p0);
+val_t NEW_ReduceAction61(void);
+#define LOCATE_CHECKNEW_ReduceAction61 "check new ReduceAction61"
+void CHECKNEW_ReduceAction61(val_t p0);
+typedef void (*CHECKNEW_ReduceAction61_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction61_parser___ReduceAction61___init "new ReduceAction61 parser::ReduceAction61::init"
+val_t NEW_ReduceAction61_parser___ReduceAction61___init(void);
+typedef val_t (*NEW_ReduceAction61_parser___ReduceAction61___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction62 "init var of ReduceAction62"
+void INIT_ATTRIBUTES__ReduceAction62(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction62_t)(val_t p0);
+val_t NEW_ReduceAction62(void);
+#define LOCATE_CHECKNEW_ReduceAction62 "check new ReduceAction62"
+void CHECKNEW_ReduceAction62(val_t p0);
+typedef void (*CHECKNEW_ReduceAction62_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction62_parser___ReduceAction62___init "new ReduceAction62 parser::ReduceAction62::init"
+val_t NEW_ReduceAction62_parser___ReduceAction62___init(void);
+typedef val_t (*NEW_ReduceAction62_parser___ReduceAction62___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction63 "init var of ReduceAction63"
+void INIT_ATTRIBUTES__ReduceAction63(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction63_t)(val_t p0);
+val_t NEW_ReduceAction63(void);
+#define LOCATE_CHECKNEW_ReduceAction63 "check new ReduceAction63"
+void CHECKNEW_ReduceAction63(val_t p0);
+typedef void (*CHECKNEW_ReduceAction63_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction63_parser___ReduceAction63___init "new ReduceAction63 parser::ReduceAction63::init"
+val_t NEW_ReduceAction63_parser___ReduceAction63___init(void);
+typedef val_t (*NEW_ReduceAction63_parser___ReduceAction63___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction64 "init var of ReduceAction64"
+void INIT_ATTRIBUTES__ReduceAction64(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction64_t)(val_t p0);
+val_t NEW_ReduceAction64(void);
+#define LOCATE_CHECKNEW_ReduceAction64 "check new ReduceAction64"
+void CHECKNEW_ReduceAction64(val_t p0);
+typedef void (*CHECKNEW_ReduceAction64_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction64_parser___ReduceAction64___init "new ReduceAction64 parser::ReduceAction64::init"
+val_t NEW_ReduceAction64_parser___ReduceAction64___init(void);
+typedef val_t (*NEW_ReduceAction64_parser___ReduceAction64___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction65 "init var of ReduceAction65"
+void INIT_ATTRIBUTES__ReduceAction65(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction65_t)(val_t p0);
+val_t NEW_ReduceAction65(void);
+#define LOCATE_CHECKNEW_ReduceAction65 "check new ReduceAction65"
+void CHECKNEW_ReduceAction65(val_t p0);
+typedef void (*CHECKNEW_ReduceAction65_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction65_parser___ReduceAction65___init "new ReduceAction65 parser::ReduceAction65::init"
+val_t NEW_ReduceAction65_parser___ReduceAction65___init(void);
+typedef val_t (*NEW_ReduceAction65_parser___ReduceAction65___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction66 "init var of ReduceAction66"
+void INIT_ATTRIBUTES__ReduceAction66(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction66_t)(val_t p0);
+val_t NEW_ReduceAction66(void);
+#define LOCATE_CHECKNEW_ReduceAction66 "check new ReduceAction66"
+void CHECKNEW_ReduceAction66(val_t p0);
+typedef void (*CHECKNEW_ReduceAction66_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction66_parser___ReduceAction66___init "new ReduceAction66 parser::ReduceAction66::init"
+val_t NEW_ReduceAction66_parser___ReduceAction66___init(void);
+typedef val_t (*NEW_ReduceAction66_parser___ReduceAction66___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction67 "init var of ReduceAction67"
+void INIT_ATTRIBUTES__ReduceAction67(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction67_t)(val_t p0);
+val_t NEW_ReduceAction67(void);
+#define LOCATE_CHECKNEW_ReduceAction67 "check new ReduceAction67"
+void CHECKNEW_ReduceAction67(val_t p0);
+typedef void (*CHECKNEW_ReduceAction67_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction67_parser___ReduceAction67___init "new ReduceAction67 parser::ReduceAction67::init"
+val_t NEW_ReduceAction67_parser___ReduceAction67___init(void);
+typedef val_t (*NEW_ReduceAction67_parser___ReduceAction67___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction68 "init var of ReduceAction68"
+void INIT_ATTRIBUTES__ReduceAction68(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction68_t)(val_t p0);
+val_t NEW_ReduceAction68(void);
+#define LOCATE_CHECKNEW_ReduceAction68 "check new ReduceAction68"
+void CHECKNEW_ReduceAction68(val_t p0);
+typedef void (*CHECKNEW_ReduceAction68_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction68_parser___ReduceAction68___init "new ReduceAction68 parser::ReduceAction68::init"
+val_t NEW_ReduceAction68_parser___ReduceAction68___init(void);
+typedef val_t (*NEW_ReduceAction68_parser___ReduceAction68___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction69 "init var of ReduceAction69"
+void INIT_ATTRIBUTES__ReduceAction69(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction69_t)(val_t p0);
+val_t NEW_ReduceAction69(void);
+#define LOCATE_CHECKNEW_ReduceAction69 "check new ReduceAction69"
+void CHECKNEW_ReduceAction69(val_t p0);
+typedef void (*CHECKNEW_ReduceAction69_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction69_parser___ReduceAction69___init "new ReduceAction69 parser::ReduceAction69::init"
+val_t NEW_ReduceAction69_parser___ReduceAction69___init(void);
+typedef val_t (*NEW_ReduceAction69_parser___ReduceAction69___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction70 "init var of ReduceAction70"
+void INIT_ATTRIBUTES__ReduceAction70(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction70_t)(val_t p0);
+val_t NEW_ReduceAction70(void);
+#define LOCATE_CHECKNEW_ReduceAction70 "check new ReduceAction70"
+void CHECKNEW_ReduceAction70(val_t p0);
+typedef void (*CHECKNEW_ReduceAction70_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction70_parser___ReduceAction70___init "new ReduceAction70 parser::ReduceAction70::init"
+val_t NEW_ReduceAction70_parser___ReduceAction70___init(void);
+typedef val_t (*NEW_ReduceAction70_parser___ReduceAction70___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction71 "init var of ReduceAction71"
+void INIT_ATTRIBUTES__ReduceAction71(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction71_t)(val_t p0);
+val_t NEW_ReduceAction71(void);
+#define LOCATE_CHECKNEW_ReduceAction71 "check new ReduceAction71"
+void CHECKNEW_ReduceAction71(val_t p0);
+typedef void (*CHECKNEW_ReduceAction71_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction71_parser___ReduceAction71___init "new ReduceAction71 parser::ReduceAction71::init"
+val_t NEW_ReduceAction71_parser___ReduceAction71___init(void);
+typedef val_t (*NEW_ReduceAction71_parser___ReduceAction71___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction72 "init var of ReduceAction72"
+void INIT_ATTRIBUTES__ReduceAction72(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction72_t)(val_t p0);
+val_t NEW_ReduceAction72(void);
+#define LOCATE_CHECKNEW_ReduceAction72 "check new ReduceAction72"
+void CHECKNEW_ReduceAction72(val_t p0);
+typedef void (*CHECKNEW_ReduceAction72_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction72_parser___ReduceAction72___init "new ReduceAction72 parser::ReduceAction72::init"
+val_t NEW_ReduceAction72_parser___ReduceAction72___init(void);
+typedef val_t (*NEW_ReduceAction72_parser___ReduceAction72___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction73 "init var of ReduceAction73"
+void INIT_ATTRIBUTES__ReduceAction73(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction73_t)(val_t p0);
+val_t NEW_ReduceAction73(void);
+#define LOCATE_CHECKNEW_ReduceAction73 "check new ReduceAction73"
+void CHECKNEW_ReduceAction73(val_t p0);
+typedef void (*CHECKNEW_ReduceAction73_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction73_parser___ReduceAction73___init "new ReduceAction73 parser::ReduceAction73::init"
+val_t NEW_ReduceAction73_parser___ReduceAction73___init(void);
+typedef val_t (*NEW_ReduceAction73_parser___ReduceAction73___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction74 "init var of ReduceAction74"
+void INIT_ATTRIBUTES__ReduceAction74(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction74_t)(val_t p0);
+val_t NEW_ReduceAction74(void);
+#define LOCATE_CHECKNEW_ReduceAction74 "check new ReduceAction74"
+void CHECKNEW_ReduceAction74(val_t p0);
+typedef void (*CHECKNEW_ReduceAction74_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction74_parser___ReduceAction74___init "new ReduceAction74 parser::ReduceAction74::init"
+val_t NEW_ReduceAction74_parser___ReduceAction74___init(void);
+typedef val_t (*NEW_ReduceAction74_parser___ReduceAction74___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction75 "init var of ReduceAction75"
+void INIT_ATTRIBUTES__ReduceAction75(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction75_t)(val_t p0);
+val_t NEW_ReduceAction75(void);
+#define LOCATE_CHECKNEW_ReduceAction75 "check new ReduceAction75"
+void CHECKNEW_ReduceAction75(val_t p0);
+typedef void (*CHECKNEW_ReduceAction75_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction75_parser___ReduceAction75___init "new ReduceAction75 parser::ReduceAction75::init"
+val_t NEW_ReduceAction75_parser___ReduceAction75___init(void);
+typedef val_t (*NEW_ReduceAction75_parser___ReduceAction75___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction76 "init var of ReduceAction76"
+void INIT_ATTRIBUTES__ReduceAction76(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction76_t)(val_t p0);
+val_t NEW_ReduceAction76(void);
+#define LOCATE_CHECKNEW_ReduceAction76 "check new ReduceAction76"
+void CHECKNEW_ReduceAction76(val_t p0);
+typedef void (*CHECKNEW_ReduceAction76_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction76_parser___ReduceAction76___init "new ReduceAction76 parser::ReduceAction76::init"
+val_t NEW_ReduceAction76_parser___ReduceAction76___init(void);
+typedef val_t (*NEW_ReduceAction76_parser___ReduceAction76___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction77 "init var of ReduceAction77"
+void INIT_ATTRIBUTES__ReduceAction77(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction77_t)(val_t p0);
+val_t NEW_ReduceAction77(void);
+#define LOCATE_CHECKNEW_ReduceAction77 "check new ReduceAction77"
+void CHECKNEW_ReduceAction77(val_t p0);
+typedef void (*CHECKNEW_ReduceAction77_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction77_parser___ReduceAction77___init "new ReduceAction77 parser::ReduceAction77::init"
+val_t NEW_ReduceAction77_parser___ReduceAction77___init(void);
+typedef val_t (*NEW_ReduceAction77_parser___ReduceAction77___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction78 "init var of ReduceAction78"
+void INIT_ATTRIBUTES__ReduceAction78(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction78_t)(val_t p0);
+val_t NEW_ReduceAction78(void);
+#define LOCATE_CHECKNEW_ReduceAction78 "check new ReduceAction78"
+void CHECKNEW_ReduceAction78(val_t p0);
+typedef void (*CHECKNEW_ReduceAction78_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction78_parser___ReduceAction78___init "new ReduceAction78 parser::ReduceAction78::init"
+val_t NEW_ReduceAction78_parser___ReduceAction78___init(void);
+typedef val_t (*NEW_ReduceAction78_parser___ReduceAction78___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction79 "init var of ReduceAction79"
+void INIT_ATTRIBUTES__ReduceAction79(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction79_t)(val_t p0);
+val_t NEW_ReduceAction79(void);
+#define LOCATE_CHECKNEW_ReduceAction79 "check new ReduceAction79"
+void CHECKNEW_ReduceAction79(val_t p0);
+typedef void (*CHECKNEW_ReduceAction79_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction79_parser___ReduceAction79___init "new ReduceAction79 parser::ReduceAction79::init"
+val_t NEW_ReduceAction79_parser___ReduceAction79___init(void);
+typedef val_t (*NEW_ReduceAction79_parser___ReduceAction79___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction80 "init var of ReduceAction80"
+void INIT_ATTRIBUTES__ReduceAction80(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction80_t)(val_t p0);
+val_t NEW_ReduceAction80(void);
+#define LOCATE_CHECKNEW_ReduceAction80 "check new ReduceAction80"
+void CHECKNEW_ReduceAction80(val_t p0);
+typedef void (*CHECKNEW_ReduceAction80_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction80_parser___ReduceAction80___init "new ReduceAction80 parser::ReduceAction80::init"
+val_t NEW_ReduceAction80_parser___ReduceAction80___init(void);
+typedef val_t (*NEW_ReduceAction80_parser___ReduceAction80___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction81 "init var of ReduceAction81"
+void INIT_ATTRIBUTES__ReduceAction81(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction81_t)(val_t p0);
+val_t NEW_ReduceAction81(void);
+#define LOCATE_CHECKNEW_ReduceAction81 "check new ReduceAction81"
+void CHECKNEW_ReduceAction81(val_t p0);
+typedef void (*CHECKNEW_ReduceAction81_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction81_parser___ReduceAction81___init "new ReduceAction81 parser::ReduceAction81::init"
+val_t NEW_ReduceAction81_parser___ReduceAction81___init(void);
+typedef val_t (*NEW_ReduceAction81_parser___ReduceAction81___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction82 "init var of ReduceAction82"
+void INIT_ATTRIBUTES__ReduceAction82(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction82_t)(val_t p0);
+val_t NEW_ReduceAction82(void);
+#define LOCATE_CHECKNEW_ReduceAction82 "check new ReduceAction82"
+void CHECKNEW_ReduceAction82(val_t p0);
+typedef void (*CHECKNEW_ReduceAction82_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction82_parser___ReduceAction82___init "new ReduceAction82 parser::ReduceAction82::init"
+val_t NEW_ReduceAction82_parser___ReduceAction82___init(void);
+typedef val_t (*NEW_ReduceAction82_parser___ReduceAction82___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction83 "init var of ReduceAction83"
+void INIT_ATTRIBUTES__ReduceAction83(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction83_t)(val_t p0);
+val_t NEW_ReduceAction83(void);
+#define LOCATE_CHECKNEW_ReduceAction83 "check new ReduceAction83"
+void CHECKNEW_ReduceAction83(val_t p0);
+typedef void (*CHECKNEW_ReduceAction83_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction83_parser___ReduceAction83___init "new ReduceAction83 parser::ReduceAction83::init"
+val_t NEW_ReduceAction83_parser___ReduceAction83___init(void);
+typedef val_t (*NEW_ReduceAction83_parser___ReduceAction83___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction84 "init var of ReduceAction84"
+void INIT_ATTRIBUTES__ReduceAction84(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction84_t)(val_t p0);
+val_t NEW_ReduceAction84(void);
+#define LOCATE_CHECKNEW_ReduceAction84 "check new ReduceAction84"
+void CHECKNEW_ReduceAction84(val_t p0);
+typedef void (*CHECKNEW_ReduceAction84_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction84_parser___ReduceAction84___init "new ReduceAction84 parser::ReduceAction84::init"
+val_t NEW_ReduceAction84_parser___ReduceAction84___init(void);
+typedef val_t (*NEW_ReduceAction84_parser___ReduceAction84___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction85 "init var of ReduceAction85"
+void INIT_ATTRIBUTES__ReduceAction85(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction85_t)(val_t p0);
+val_t NEW_ReduceAction85(void);
+#define LOCATE_CHECKNEW_ReduceAction85 "check new ReduceAction85"
+void CHECKNEW_ReduceAction85(val_t p0);
+typedef void (*CHECKNEW_ReduceAction85_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction85_parser___ReduceAction85___init "new ReduceAction85 parser::ReduceAction85::init"
+val_t NEW_ReduceAction85_parser___ReduceAction85___init(void);
+typedef val_t (*NEW_ReduceAction85_parser___ReduceAction85___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction86 "init var of ReduceAction86"
+void INIT_ATTRIBUTES__ReduceAction86(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction86_t)(val_t p0);
+val_t NEW_ReduceAction86(void);
+#define LOCATE_CHECKNEW_ReduceAction86 "check new ReduceAction86"
+void CHECKNEW_ReduceAction86(val_t p0);
+typedef void (*CHECKNEW_ReduceAction86_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction86_parser___ReduceAction86___init "new ReduceAction86 parser::ReduceAction86::init"
+val_t NEW_ReduceAction86_parser___ReduceAction86___init(void);
+typedef val_t (*NEW_ReduceAction86_parser___ReduceAction86___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction87 "init var of ReduceAction87"
+void INIT_ATTRIBUTES__ReduceAction87(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction87_t)(val_t p0);
+val_t NEW_ReduceAction87(void);
+#define LOCATE_CHECKNEW_ReduceAction87 "check new ReduceAction87"
+void CHECKNEW_ReduceAction87(val_t p0);
+typedef void (*CHECKNEW_ReduceAction87_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction87_parser___ReduceAction87___init "new ReduceAction87 parser::ReduceAction87::init"
+val_t NEW_ReduceAction87_parser___ReduceAction87___init(void);
+typedef val_t (*NEW_ReduceAction87_parser___ReduceAction87___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction88 "init var of ReduceAction88"
+void INIT_ATTRIBUTES__ReduceAction88(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction88_t)(val_t p0);
+val_t NEW_ReduceAction88(void);
+#define LOCATE_CHECKNEW_ReduceAction88 "check new ReduceAction88"
+void CHECKNEW_ReduceAction88(val_t p0);
+typedef void (*CHECKNEW_ReduceAction88_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction88_parser___ReduceAction88___init "new ReduceAction88 parser::ReduceAction88::init"
+val_t NEW_ReduceAction88_parser___ReduceAction88___init(void);
+typedef val_t (*NEW_ReduceAction88_parser___ReduceAction88___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction89 "init var of ReduceAction89"
+void INIT_ATTRIBUTES__ReduceAction89(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction89_t)(val_t p0);
+val_t NEW_ReduceAction89(void);
+#define LOCATE_CHECKNEW_ReduceAction89 "check new ReduceAction89"
+void CHECKNEW_ReduceAction89(val_t p0);
+typedef void (*CHECKNEW_ReduceAction89_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction89_parser___ReduceAction89___init "new ReduceAction89 parser::ReduceAction89::init"
+val_t NEW_ReduceAction89_parser___ReduceAction89___init(void);
+typedef val_t (*NEW_ReduceAction89_parser___ReduceAction89___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction90 "init var of ReduceAction90"
+void INIT_ATTRIBUTES__ReduceAction90(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction90_t)(val_t p0);
+val_t NEW_ReduceAction90(void);
+#define LOCATE_CHECKNEW_ReduceAction90 "check new ReduceAction90"
+void CHECKNEW_ReduceAction90(val_t p0);
+typedef void (*CHECKNEW_ReduceAction90_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction90_parser___ReduceAction90___init "new ReduceAction90 parser::ReduceAction90::init"
+val_t NEW_ReduceAction90_parser___ReduceAction90___init(void);
+typedef val_t (*NEW_ReduceAction90_parser___ReduceAction90___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction91 "init var of ReduceAction91"
+void INIT_ATTRIBUTES__ReduceAction91(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction91_t)(val_t p0);
+val_t NEW_ReduceAction91(void);
+#define LOCATE_CHECKNEW_ReduceAction91 "check new ReduceAction91"
+void CHECKNEW_ReduceAction91(val_t p0);
+typedef void (*CHECKNEW_ReduceAction91_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction91_parser___ReduceAction91___init "new ReduceAction91 parser::ReduceAction91::init"
+val_t NEW_ReduceAction91_parser___ReduceAction91___init(void);
+typedef val_t (*NEW_ReduceAction91_parser___ReduceAction91___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction92 "init var of ReduceAction92"
+void INIT_ATTRIBUTES__ReduceAction92(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction92_t)(val_t p0);
+val_t NEW_ReduceAction92(void);
+#define LOCATE_CHECKNEW_ReduceAction92 "check new ReduceAction92"
+void CHECKNEW_ReduceAction92(val_t p0);
+typedef void (*CHECKNEW_ReduceAction92_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction92_parser___ReduceAction92___init "new ReduceAction92 parser::ReduceAction92::init"
+val_t NEW_ReduceAction92_parser___ReduceAction92___init(void);
+typedef val_t (*NEW_ReduceAction92_parser___ReduceAction92___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction93 "init var of ReduceAction93"
+void INIT_ATTRIBUTES__ReduceAction93(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction93_t)(val_t p0);
+val_t NEW_ReduceAction93(void);
+#define LOCATE_CHECKNEW_ReduceAction93 "check new ReduceAction93"
+void CHECKNEW_ReduceAction93(val_t p0);
+typedef void (*CHECKNEW_ReduceAction93_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction93_parser___ReduceAction93___init "new ReduceAction93 parser::ReduceAction93::init"
+val_t NEW_ReduceAction93_parser___ReduceAction93___init(void);
+typedef val_t (*NEW_ReduceAction93_parser___ReduceAction93___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction94 "init var of ReduceAction94"
+void INIT_ATTRIBUTES__ReduceAction94(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction94_t)(val_t p0);
+val_t NEW_ReduceAction94(void);
+#define LOCATE_CHECKNEW_ReduceAction94 "check new ReduceAction94"
+void CHECKNEW_ReduceAction94(val_t p0);
+typedef void (*CHECKNEW_ReduceAction94_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction94_parser___ReduceAction94___init "new ReduceAction94 parser::ReduceAction94::init"
+val_t NEW_ReduceAction94_parser___ReduceAction94___init(void);
+typedef val_t (*NEW_ReduceAction94_parser___ReduceAction94___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction95 "init var of ReduceAction95"
+void INIT_ATTRIBUTES__ReduceAction95(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction95_t)(val_t p0);
+val_t NEW_ReduceAction95(void);
+#define LOCATE_CHECKNEW_ReduceAction95 "check new ReduceAction95"
+void CHECKNEW_ReduceAction95(val_t p0);
+typedef void (*CHECKNEW_ReduceAction95_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction95_parser___ReduceAction95___init "new ReduceAction95 parser::ReduceAction95::init"
+val_t NEW_ReduceAction95_parser___ReduceAction95___init(void);
+typedef val_t (*NEW_ReduceAction95_parser___ReduceAction95___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction96 "init var of ReduceAction96"
+void INIT_ATTRIBUTES__ReduceAction96(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction96_t)(val_t p0);
+val_t NEW_ReduceAction96(void);
+#define LOCATE_CHECKNEW_ReduceAction96 "check new ReduceAction96"
+void CHECKNEW_ReduceAction96(val_t p0);
+typedef void (*CHECKNEW_ReduceAction96_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction96_parser___ReduceAction96___init "new ReduceAction96 parser::ReduceAction96::init"
+val_t NEW_ReduceAction96_parser___ReduceAction96___init(void);
+typedef val_t (*NEW_ReduceAction96_parser___ReduceAction96___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction97 "init var of ReduceAction97"
+void INIT_ATTRIBUTES__ReduceAction97(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction97_t)(val_t p0);
+val_t NEW_ReduceAction97(void);
+#define LOCATE_CHECKNEW_ReduceAction97 "check new ReduceAction97"
+void CHECKNEW_ReduceAction97(val_t p0);
+typedef void (*CHECKNEW_ReduceAction97_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction97_parser___ReduceAction97___init "new ReduceAction97 parser::ReduceAction97::init"
+val_t NEW_ReduceAction97_parser___ReduceAction97___init(void);
+typedef val_t (*NEW_ReduceAction97_parser___ReduceAction97___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction98 "init var of ReduceAction98"
+void INIT_ATTRIBUTES__ReduceAction98(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction98_t)(val_t p0);
+val_t NEW_ReduceAction98(void);
+#define LOCATE_CHECKNEW_ReduceAction98 "check new ReduceAction98"
+void CHECKNEW_ReduceAction98(val_t p0);
+typedef void (*CHECKNEW_ReduceAction98_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction98_parser___ReduceAction98___init "new ReduceAction98 parser::ReduceAction98::init"
+val_t NEW_ReduceAction98_parser___ReduceAction98___init(void);
+typedef val_t (*NEW_ReduceAction98_parser___ReduceAction98___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction99 "init var of ReduceAction99"
+void INIT_ATTRIBUTES__ReduceAction99(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction99_t)(val_t p0);
+val_t NEW_ReduceAction99(void);
+#define LOCATE_CHECKNEW_ReduceAction99 "check new ReduceAction99"
+void CHECKNEW_ReduceAction99(val_t p0);
+typedef void (*CHECKNEW_ReduceAction99_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction99_parser___ReduceAction99___init "new ReduceAction99 parser::ReduceAction99::init"
+val_t NEW_ReduceAction99_parser___ReduceAction99___init(void);
+typedef val_t (*NEW_ReduceAction99_parser___ReduceAction99___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction100 "init var of ReduceAction100"
+void INIT_ATTRIBUTES__ReduceAction100(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction100_t)(val_t p0);
+val_t NEW_ReduceAction100(void);
+#define LOCATE_CHECKNEW_ReduceAction100 "check new ReduceAction100"
+void CHECKNEW_ReduceAction100(val_t p0);
+typedef void (*CHECKNEW_ReduceAction100_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction100_parser___ReduceAction100___init "new ReduceAction100 parser::ReduceAction100::init"
+val_t NEW_ReduceAction100_parser___ReduceAction100___init(void);
+typedef val_t (*NEW_ReduceAction100_parser___ReduceAction100___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction101 "init var of ReduceAction101"
+void INIT_ATTRIBUTES__ReduceAction101(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction101_t)(val_t p0);
+val_t NEW_ReduceAction101(void);
+#define LOCATE_CHECKNEW_ReduceAction101 "check new ReduceAction101"
+void CHECKNEW_ReduceAction101(val_t p0);
+typedef void (*CHECKNEW_ReduceAction101_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction101_parser___ReduceAction101___init "new ReduceAction101 parser::ReduceAction101::init"
+val_t NEW_ReduceAction101_parser___ReduceAction101___init(void);
+typedef val_t (*NEW_ReduceAction101_parser___ReduceAction101___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction102 "init var of ReduceAction102"
+void INIT_ATTRIBUTES__ReduceAction102(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction102_t)(val_t p0);
+val_t NEW_ReduceAction102(void);
+#define LOCATE_CHECKNEW_ReduceAction102 "check new ReduceAction102"
+void CHECKNEW_ReduceAction102(val_t p0);
+typedef void (*CHECKNEW_ReduceAction102_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction102_parser___ReduceAction102___init "new ReduceAction102 parser::ReduceAction102::init"
+val_t NEW_ReduceAction102_parser___ReduceAction102___init(void);
+typedef val_t (*NEW_ReduceAction102_parser___ReduceAction102___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction103 "init var of ReduceAction103"
+void INIT_ATTRIBUTES__ReduceAction103(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction103_t)(val_t p0);
+val_t NEW_ReduceAction103(void);
+#define LOCATE_CHECKNEW_ReduceAction103 "check new ReduceAction103"
+void CHECKNEW_ReduceAction103(val_t p0);
+typedef void (*CHECKNEW_ReduceAction103_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction103_parser___ReduceAction103___init "new ReduceAction103 parser::ReduceAction103::init"
+val_t NEW_ReduceAction103_parser___ReduceAction103___init(void);
+typedef val_t (*NEW_ReduceAction103_parser___ReduceAction103___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction104 "init var of ReduceAction104"
+void INIT_ATTRIBUTES__ReduceAction104(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction104_t)(val_t p0);
+val_t NEW_ReduceAction104(void);
+#define LOCATE_CHECKNEW_ReduceAction104 "check new ReduceAction104"
+void CHECKNEW_ReduceAction104(val_t p0);
+typedef void (*CHECKNEW_ReduceAction104_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction104_parser___ReduceAction104___init "new ReduceAction104 parser::ReduceAction104::init"
+val_t NEW_ReduceAction104_parser___ReduceAction104___init(void);
+typedef val_t (*NEW_ReduceAction104_parser___ReduceAction104___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction105 "init var of ReduceAction105"
+void INIT_ATTRIBUTES__ReduceAction105(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction105_t)(val_t p0);
+val_t NEW_ReduceAction105(void);
+#define LOCATE_CHECKNEW_ReduceAction105 "check new ReduceAction105"
+void CHECKNEW_ReduceAction105(val_t p0);
+typedef void (*CHECKNEW_ReduceAction105_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction105_parser___ReduceAction105___init "new ReduceAction105 parser::ReduceAction105::init"
+val_t NEW_ReduceAction105_parser___ReduceAction105___init(void);
+typedef val_t (*NEW_ReduceAction105_parser___ReduceAction105___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction106 "init var of ReduceAction106"
+void INIT_ATTRIBUTES__ReduceAction106(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction106_t)(val_t p0);
+val_t NEW_ReduceAction106(void);
+#define LOCATE_CHECKNEW_ReduceAction106 "check new ReduceAction106"
+void CHECKNEW_ReduceAction106(val_t p0);
+typedef void (*CHECKNEW_ReduceAction106_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction106_parser___ReduceAction106___init "new ReduceAction106 parser::ReduceAction106::init"
+val_t NEW_ReduceAction106_parser___ReduceAction106___init(void);
+typedef val_t (*NEW_ReduceAction106_parser___ReduceAction106___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction107 "init var of ReduceAction107"
+void INIT_ATTRIBUTES__ReduceAction107(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction107_t)(val_t p0);
+val_t NEW_ReduceAction107(void);
+#define LOCATE_CHECKNEW_ReduceAction107 "check new ReduceAction107"
+void CHECKNEW_ReduceAction107(val_t p0);
+typedef void (*CHECKNEW_ReduceAction107_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction107_parser___ReduceAction107___init "new ReduceAction107 parser::ReduceAction107::init"
+val_t NEW_ReduceAction107_parser___ReduceAction107___init(void);
+typedef val_t (*NEW_ReduceAction107_parser___ReduceAction107___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction108 "init var of ReduceAction108"
+void INIT_ATTRIBUTES__ReduceAction108(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction108_t)(val_t p0);
+val_t NEW_ReduceAction108(void);
+#define LOCATE_CHECKNEW_ReduceAction108 "check new ReduceAction108"
+void CHECKNEW_ReduceAction108(val_t p0);
+typedef void (*CHECKNEW_ReduceAction108_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction108_parser___ReduceAction108___init "new ReduceAction108 parser::ReduceAction108::init"
+val_t NEW_ReduceAction108_parser___ReduceAction108___init(void);
+typedef val_t (*NEW_ReduceAction108_parser___ReduceAction108___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction109 "init var of ReduceAction109"
+void INIT_ATTRIBUTES__ReduceAction109(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction109_t)(val_t p0);
+val_t NEW_ReduceAction109(void);
+#define LOCATE_CHECKNEW_ReduceAction109 "check new ReduceAction109"
+void CHECKNEW_ReduceAction109(val_t p0);
+typedef void (*CHECKNEW_ReduceAction109_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction109_parser___ReduceAction109___init "new ReduceAction109 parser::ReduceAction109::init"
+val_t NEW_ReduceAction109_parser___ReduceAction109___init(void);
+typedef val_t (*NEW_ReduceAction109_parser___ReduceAction109___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction110 "init var of ReduceAction110"
+void INIT_ATTRIBUTES__ReduceAction110(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction110_t)(val_t p0);
+val_t NEW_ReduceAction110(void);
+#define LOCATE_CHECKNEW_ReduceAction110 "check new ReduceAction110"
+void CHECKNEW_ReduceAction110(val_t p0);
+typedef void (*CHECKNEW_ReduceAction110_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction110_parser___ReduceAction110___init "new ReduceAction110 parser::ReduceAction110::init"
+val_t NEW_ReduceAction110_parser___ReduceAction110___init(void);
+typedef val_t (*NEW_ReduceAction110_parser___ReduceAction110___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction111 "init var of ReduceAction111"
+void INIT_ATTRIBUTES__ReduceAction111(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction111_t)(val_t p0);
+val_t NEW_ReduceAction111(void);
+#define LOCATE_CHECKNEW_ReduceAction111 "check new ReduceAction111"
+void CHECKNEW_ReduceAction111(val_t p0);
+typedef void (*CHECKNEW_ReduceAction111_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction111_parser___ReduceAction111___init "new ReduceAction111 parser::ReduceAction111::init"
+val_t NEW_ReduceAction111_parser___ReduceAction111___init(void);
+typedef val_t (*NEW_ReduceAction111_parser___ReduceAction111___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction112 "init var of ReduceAction112"
+void INIT_ATTRIBUTES__ReduceAction112(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction112_t)(val_t p0);
+val_t NEW_ReduceAction112(void);
+#define LOCATE_CHECKNEW_ReduceAction112 "check new ReduceAction112"
+void CHECKNEW_ReduceAction112(val_t p0);
+typedef void (*CHECKNEW_ReduceAction112_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction112_parser___ReduceAction112___init "new ReduceAction112 parser::ReduceAction112::init"
+val_t NEW_ReduceAction112_parser___ReduceAction112___init(void);
+typedef val_t (*NEW_ReduceAction112_parser___ReduceAction112___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction113 "init var of ReduceAction113"
+void INIT_ATTRIBUTES__ReduceAction113(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction113_t)(val_t p0);
+val_t NEW_ReduceAction113(void);
+#define LOCATE_CHECKNEW_ReduceAction113 "check new ReduceAction113"
+void CHECKNEW_ReduceAction113(val_t p0);
+typedef void (*CHECKNEW_ReduceAction113_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction113_parser___ReduceAction113___init "new ReduceAction113 parser::ReduceAction113::init"
+val_t NEW_ReduceAction113_parser___ReduceAction113___init(void);
+typedef val_t (*NEW_ReduceAction113_parser___ReduceAction113___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction114 "init var of ReduceAction114"
+void INIT_ATTRIBUTES__ReduceAction114(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction114_t)(val_t p0);
+val_t NEW_ReduceAction114(void);
+#define LOCATE_CHECKNEW_ReduceAction114 "check new ReduceAction114"
+void CHECKNEW_ReduceAction114(val_t p0);
+typedef void (*CHECKNEW_ReduceAction114_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction114_parser___ReduceAction114___init "new ReduceAction114 parser::ReduceAction114::init"
+val_t NEW_ReduceAction114_parser___ReduceAction114___init(void);
+typedef val_t (*NEW_ReduceAction114_parser___ReduceAction114___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction115 "init var of ReduceAction115"
+void INIT_ATTRIBUTES__ReduceAction115(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction115_t)(val_t p0);
+val_t NEW_ReduceAction115(void);
+#define LOCATE_CHECKNEW_ReduceAction115 "check new ReduceAction115"
+void CHECKNEW_ReduceAction115(val_t p0);
+typedef void (*CHECKNEW_ReduceAction115_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction115_parser___ReduceAction115___init "new ReduceAction115 parser::ReduceAction115::init"
+val_t NEW_ReduceAction115_parser___ReduceAction115___init(void);
+typedef val_t (*NEW_ReduceAction115_parser___ReduceAction115___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction116 "init var of ReduceAction116"
+void INIT_ATTRIBUTES__ReduceAction116(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction116_t)(val_t p0);
+val_t NEW_ReduceAction116(void);
+#define LOCATE_CHECKNEW_ReduceAction116 "check new ReduceAction116"
+void CHECKNEW_ReduceAction116(val_t p0);
+typedef void (*CHECKNEW_ReduceAction116_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction116_parser___ReduceAction116___init "new ReduceAction116 parser::ReduceAction116::init"
+val_t NEW_ReduceAction116_parser___ReduceAction116___init(void);
+typedef val_t (*NEW_ReduceAction116_parser___ReduceAction116___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction117 "init var of ReduceAction117"
+void INIT_ATTRIBUTES__ReduceAction117(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction117_t)(val_t p0);
+val_t NEW_ReduceAction117(void);
+#define LOCATE_CHECKNEW_ReduceAction117 "check new ReduceAction117"
+void CHECKNEW_ReduceAction117(val_t p0);
+typedef void (*CHECKNEW_ReduceAction117_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction117_parser___ReduceAction117___init "new ReduceAction117 parser::ReduceAction117::init"
+val_t NEW_ReduceAction117_parser___ReduceAction117___init(void);
+typedef val_t (*NEW_ReduceAction117_parser___ReduceAction117___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction118 "init var of ReduceAction118"
+void INIT_ATTRIBUTES__ReduceAction118(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction118_t)(val_t p0);
+val_t NEW_ReduceAction118(void);
+#define LOCATE_CHECKNEW_ReduceAction118 "check new ReduceAction118"
+void CHECKNEW_ReduceAction118(val_t p0);
+typedef void (*CHECKNEW_ReduceAction118_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction118_parser___ReduceAction118___init "new ReduceAction118 parser::ReduceAction118::init"
+val_t NEW_ReduceAction118_parser___ReduceAction118___init(void);
+typedef val_t (*NEW_ReduceAction118_parser___ReduceAction118___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction119 "init var of ReduceAction119"
+void INIT_ATTRIBUTES__ReduceAction119(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction119_t)(val_t p0);
+val_t NEW_ReduceAction119(void);
+#define LOCATE_CHECKNEW_ReduceAction119 "check new ReduceAction119"
+void CHECKNEW_ReduceAction119(val_t p0);
+typedef void (*CHECKNEW_ReduceAction119_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction119_parser___ReduceAction119___init "new ReduceAction119 parser::ReduceAction119::init"
+val_t NEW_ReduceAction119_parser___ReduceAction119___init(void);
+typedef val_t (*NEW_ReduceAction119_parser___ReduceAction119___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction120 "init var of ReduceAction120"
+void INIT_ATTRIBUTES__ReduceAction120(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction120_t)(val_t p0);
+val_t NEW_ReduceAction120(void);
+#define LOCATE_CHECKNEW_ReduceAction120 "check new ReduceAction120"
+void CHECKNEW_ReduceAction120(val_t p0);
+typedef void (*CHECKNEW_ReduceAction120_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction120_parser___ReduceAction120___init "new ReduceAction120 parser::ReduceAction120::init"
+val_t NEW_ReduceAction120_parser___ReduceAction120___init(void);
+typedef val_t (*NEW_ReduceAction120_parser___ReduceAction120___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction121 "init var of ReduceAction121"
+void INIT_ATTRIBUTES__ReduceAction121(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction121_t)(val_t p0);
+val_t NEW_ReduceAction121(void);
+#define LOCATE_CHECKNEW_ReduceAction121 "check new ReduceAction121"
+void CHECKNEW_ReduceAction121(val_t p0);
+typedef void (*CHECKNEW_ReduceAction121_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction121_parser___ReduceAction121___init "new ReduceAction121 parser::ReduceAction121::init"
+val_t NEW_ReduceAction121_parser___ReduceAction121___init(void);
+typedef val_t (*NEW_ReduceAction121_parser___ReduceAction121___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction122 "init var of ReduceAction122"
+void INIT_ATTRIBUTES__ReduceAction122(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction122_t)(val_t p0);
+val_t NEW_ReduceAction122(void);
+#define LOCATE_CHECKNEW_ReduceAction122 "check new ReduceAction122"
+void CHECKNEW_ReduceAction122(val_t p0);
+typedef void (*CHECKNEW_ReduceAction122_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction122_parser___ReduceAction122___init "new ReduceAction122 parser::ReduceAction122::init"
+val_t NEW_ReduceAction122_parser___ReduceAction122___init(void);
+typedef val_t (*NEW_ReduceAction122_parser___ReduceAction122___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction123 "init var of ReduceAction123"
+void INIT_ATTRIBUTES__ReduceAction123(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction123_t)(val_t p0);
+val_t NEW_ReduceAction123(void);
+#define LOCATE_CHECKNEW_ReduceAction123 "check new ReduceAction123"
+void CHECKNEW_ReduceAction123(val_t p0);
+typedef void (*CHECKNEW_ReduceAction123_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction123_parser___ReduceAction123___init "new ReduceAction123 parser::ReduceAction123::init"
+val_t NEW_ReduceAction123_parser___ReduceAction123___init(void);
+typedef val_t (*NEW_ReduceAction123_parser___ReduceAction123___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction124 "init var of ReduceAction124"
+void INIT_ATTRIBUTES__ReduceAction124(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction124_t)(val_t p0);
+val_t NEW_ReduceAction124(void);
+#define LOCATE_CHECKNEW_ReduceAction124 "check new ReduceAction124"
+void CHECKNEW_ReduceAction124(val_t p0);
+typedef void (*CHECKNEW_ReduceAction124_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction124_parser___ReduceAction124___init "new ReduceAction124 parser::ReduceAction124::init"
+val_t NEW_ReduceAction124_parser___ReduceAction124___init(void);
+typedef val_t (*NEW_ReduceAction124_parser___ReduceAction124___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction125 "init var of ReduceAction125"
+void INIT_ATTRIBUTES__ReduceAction125(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction125_t)(val_t p0);
+val_t NEW_ReduceAction125(void);
+#define LOCATE_CHECKNEW_ReduceAction125 "check new ReduceAction125"
+void CHECKNEW_ReduceAction125(val_t p0);
+typedef void (*CHECKNEW_ReduceAction125_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction125_parser___ReduceAction125___init "new ReduceAction125 parser::ReduceAction125::init"
+val_t NEW_ReduceAction125_parser___ReduceAction125___init(void);
+typedef val_t (*NEW_ReduceAction125_parser___ReduceAction125___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction126 "init var of ReduceAction126"
+void INIT_ATTRIBUTES__ReduceAction126(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction126_t)(val_t p0);
+val_t NEW_ReduceAction126(void);
+#define LOCATE_CHECKNEW_ReduceAction126 "check new ReduceAction126"
+void CHECKNEW_ReduceAction126(val_t p0);
+typedef void (*CHECKNEW_ReduceAction126_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction126_parser___ReduceAction126___init "new ReduceAction126 parser::ReduceAction126::init"
+val_t NEW_ReduceAction126_parser___ReduceAction126___init(void);
+typedef val_t (*NEW_ReduceAction126_parser___ReduceAction126___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction127 "init var of ReduceAction127"
+void INIT_ATTRIBUTES__ReduceAction127(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction127_t)(val_t p0);
+val_t NEW_ReduceAction127(void);
+#define LOCATE_CHECKNEW_ReduceAction127 "check new ReduceAction127"
+void CHECKNEW_ReduceAction127(val_t p0);
+typedef void (*CHECKNEW_ReduceAction127_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction127_parser___ReduceAction127___init "new ReduceAction127 parser::ReduceAction127::init"
+val_t NEW_ReduceAction127_parser___ReduceAction127___init(void);
+typedef val_t (*NEW_ReduceAction127_parser___ReduceAction127___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction128 "init var of ReduceAction128"
+void INIT_ATTRIBUTES__ReduceAction128(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction128_t)(val_t p0);
+val_t NEW_ReduceAction128(void);
+#define LOCATE_CHECKNEW_ReduceAction128 "check new ReduceAction128"
+void CHECKNEW_ReduceAction128(val_t p0);
+typedef void (*CHECKNEW_ReduceAction128_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction128_parser___ReduceAction128___init "new ReduceAction128 parser::ReduceAction128::init"
+val_t NEW_ReduceAction128_parser___ReduceAction128___init(void);
+typedef val_t (*NEW_ReduceAction128_parser___ReduceAction128___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction129 "init var of ReduceAction129"
+void INIT_ATTRIBUTES__ReduceAction129(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction129_t)(val_t p0);
+val_t NEW_ReduceAction129(void);
+#define LOCATE_CHECKNEW_ReduceAction129 "check new ReduceAction129"
+void CHECKNEW_ReduceAction129(val_t p0);
+typedef void (*CHECKNEW_ReduceAction129_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction129_parser___ReduceAction129___init "new ReduceAction129 parser::ReduceAction129::init"
+val_t NEW_ReduceAction129_parser___ReduceAction129___init(void);
+typedef val_t (*NEW_ReduceAction129_parser___ReduceAction129___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction130 "init var of ReduceAction130"
+void INIT_ATTRIBUTES__ReduceAction130(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction130_t)(val_t p0);
+val_t NEW_ReduceAction130(void);
+#define LOCATE_CHECKNEW_ReduceAction130 "check new ReduceAction130"
+void CHECKNEW_ReduceAction130(val_t p0);
+typedef void (*CHECKNEW_ReduceAction130_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction130_parser___ReduceAction130___init "new ReduceAction130 parser::ReduceAction130::init"
+val_t NEW_ReduceAction130_parser___ReduceAction130___init(void);
+typedef val_t (*NEW_ReduceAction130_parser___ReduceAction130___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction131 "init var of ReduceAction131"
+void INIT_ATTRIBUTES__ReduceAction131(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction131_t)(val_t p0);
+val_t NEW_ReduceAction131(void);
+#define LOCATE_CHECKNEW_ReduceAction131 "check new ReduceAction131"
+void CHECKNEW_ReduceAction131(val_t p0);
+typedef void (*CHECKNEW_ReduceAction131_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction131_parser___ReduceAction131___init "new ReduceAction131 parser::ReduceAction131::init"
+val_t NEW_ReduceAction131_parser___ReduceAction131___init(void);
+typedef val_t (*NEW_ReduceAction131_parser___ReduceAction131___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction132 "init var of ReduceAction132"
+void INIT_ATTRIBUTES__ReduceAction132(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction132_t)(val_t p0);
+val_t NEW_ReduceAction132(void);
+#define LOCATE_CHECKNEW_ReduceAction132 "check new ReduceAction132"
+void CHECKNEW_ReduceAction132(val_t p0);
+typedef void (*CHECKNEW_ReduceAction132_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction132_parser___ReduceAction132___init "new ReduceAction132 parser::ReduceAction132::init"
+val_t NEW_ReduceAction132_parser___ReduceAction132___init(void);
+typedef val_t (*NEW_ReduceAction132_parser___ReduceAction132___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction133 "init var of ReduceAction133"
+void INIT_ATTRIBUTES__ReduceAction133(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction133_t)(val_t p0);
+val_t NEW_ReduceAction133(void);
+#define LOCATE_CHECKNEW_ReduceAction133 "check new ReduceAction133"
+void CHECKNEW_ReduceAction133(val_t p0);
+typedef void (*CHECKNEW_ReduceAction133_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction133_parser___ReduceAction133___init "new ReduceAction133 parser::ReduceAction133::init"
+val_t NEW_ReduceAction133_parser___ReduceAction133___init(void);
+typedef val_t (*NEW_ReduceAction133_parser___ReduceAction133___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction134 "init var of ReduceAction134"
+void INIT_ATTRIBUTES__ReduceAction134(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction134_t)(val_t p0);
+val_t NEW_ReduceAction134(void);
+#define LOCATE_CHECKNEW_ReduceAction134 "check new ReduceAction134"
+void CHECKNEW_ReduceAction134(val_t p0);
+typedef void (*CHECKNEW_ReduceAction134_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction134_parser___ReduceAction134___init "new ReduceAction134 parser::ReduceAction134::init"
+val_t NEW_ReduceAction134_parser___ReduceAction134___init(void);
+typedef val_t (*NEW_ReduceAction134_parser___ReduceAction134___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction135 "init var of ReduceAction135"
+void INIT_ATTRIBUTES__ReduceAction135(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction135_t)(val_t p0);
+val_t NEW_ReduceAction135(void);
+#define LOCATE_CHECKNEW_ReduceAction135 "check new ReduceAction135"
+void CHECKNEW_ReduceAction135(val_t p0);
+typedef void (*CHECKNEW_ReduceAction135_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction135_parser___ReduceAction135___init "new ReduceAction135 parser::ReduceAction135::init"
+val_t NEW_ReduceAction135_parser___ReduceAction135___init(void);
+typedef val_t (*NEW_ReduceAction135_parser___ReduceAction135___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction136 "init var of ReduceAction136"
+void INIT_ATTRIBUTES__ReduceAction136(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction136_t)(val_t p0);
+val_t NEW_ReduceAction136(void);
+#define LOCATE_CHECKNEW_ReduceAction136 "check new ReduceAction136"
+void CHECKNEW_ReduceAction136(val_t p0);
+typedef void (*CHECKNEW_ReduceAction136_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction136_parser___ReduceAction136___init "new ReduceAction136 parser::ReduceAction136::init"
+val_t NEW_ReduceAction136_parser___ReduceAction136___init(void);
+typedef val_t (*NEW_ReduceAction136_parser___ReduceAction136___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction137 "init var of ReduceAction137"
+void INIT_ATTRIBUTES__ReduceAction137(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction137_t)(val_t p0);
+val_t NEW_ReduceAction137(void);
+#define LOCATE_CHECKNEW_ReduceAction137 "check new ReduceAction137"
+void CHECKNEW_ReduceAction137(val_t p0);
+typedef void (*CHECKNEW_ReduceAction137_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction137_parser___ReduceAction137___init "new ReduceAction137 parser::ReduceAction137::init"
+val_t NEW_ReduceAction137_parser___ReduceAction137___init(void);
+typedef val_t (*NEW_ReduceAction137_parser___ReduceAction137___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction138 "init var of ReduceAction138"
+void INIT_ATTRIBUTES__ReduceAction138(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction138_t)(val_t p0);
+val_t NEW_ReduceAction138(void);
+#define LOCATE_CHECKNEW_ReduceAction138 "check new ReduceAction138"
+void CHECKNEW_ReduceAction138(val_t p0);
+typedef void (*CHECKNEW_ReduceAction138_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction138_parser___ReduceAction138___init "new ReduceAction138 parser::ReduceAction138::init"
+val_t NEW_ReduceAction138_parser___ReduceAction138___init(void);
+typedef val_t (*NEW_ReduceAction138_parser___ReduceAction138___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction139 "init var of ReduceAction139"
+void INIT_ATTRIBUTES__ReduceAction139(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction139_t)(val_t p0);
+val_t NEW_ReduceAction139(void);
+#define LOCATE_CHECKNEW_ReduceAction139 "check new ReduceAction139"
+void CHECKNEW_ReduceAction139(val_t p0);
+typedef void (*CHECKNEW_ReduceAction139_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction139_parser___ReduceAction139___init "new ReduceAction139 parser::ReduceAction139::init"
+val_t NEW_ReduceAction139_parser___ReduceAction139___init(void);
+typedef val_t (*NEW_ReduceAction139_parser___ReduceAction139___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction140 "init var of ReduceAction140"
+void INIT_ATTRIBUTES__ReduceAction140(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction140_t)(val_t p0);
+val_t NEW_ReduceAction140(void);
+#define LOCATE_CHECKNEW_ReduceAction140 "check new ReduceAction140"
+void CHECKNEW_ReduceAction140(val_t p0);
+typedef void (*CHECKNEW_ReduceAction140_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction140_parser___ReduceAction140___init "new ReduceAction140 parser::ReduceAction140::init"
+val_t NEW_ReduceAction140_parser___ReduceAction140___init(void);
+typedef val_t (*NEW_ReduceAction140_parser___ReduceAction140___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction141 "init var of ReduceAction141"
+void INIT_ATTRIBUTES__ReduceAction141(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction141_t)(val_t p0);
+val_t NEW_ReduceAction141(void);
+#define LOCATE_CHECKNEW_ReduceAction141 "check new ReduceAction141"
+void CHECKNEW_ReduceAction141(val_t p0);
+typedef void (*CHECKNEW_ReduceAction141_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction141_parser___ReduceAction141___init "new ReduceAction141 parser::ReduceAction141::init"
+val_t NEW_ReduceAction141_parser___ReduceAction141___init(void);
+typedef val_t (*NEW_ReduceAction141_parser___ReduceAction141___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction142 "init var of ReduceAction142"
+void INIT_ATTRIBUTES__ReduceAction142(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction142_t)(val_t p0);
+val_t NEW_ReduceAction142(void);
+#define LOCATE_CHECKNEW_ReduceAction142 "check new ReduceAction142"
+void CHECKNEW_ReduceAction142(val_t p0);
+typedef void (*CHECKNEW_ReduceAction142_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction142_parser___ReduceAction142___init "new ReduceAction142 parser::ReduceAction142::init"
+val_t NEW_ReduceAction142_parser___ReduceAction142___init(void);
+typedef val_t (*NEW_ReduceAction142_parser___ReduceAction142___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction143 "init var of ReduceAction143"
+void INIT_ATTRIBUTES__ReduceAction143(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction143_t)(val_t p0);
+val_t NEW_ReduceAction143(void);
+#define LOCATE_CHECKNEW_ReduceAction143 "check new ReduceAction143"
+void CHECKNEW_ReduceAction143(val_t p0);
+typedef void (*CHECKNEW_ReduceAction143_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction143_parser___ReduceAction143___init "new ReduceAction143 parser::ReduceAction143::init"
+val_t NEW_ReduceAction143_parser___ReduceAction143___init(void);
+typedef val_t (*NEW_ReduceAction143_parser___ReduceAction143___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction144 "init var of ReduceAction144"
+void INIT_ATTRIBUTES__ReduceAction144(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction144_t)(val_t p0);
+val_t NEW_ReduceAction144(void);
+#define LOCATE_CHECKNEW_ReduceAction144 "check new ReduceAction144"
+void CHECKNEW_ReduceAction144(val_t p0);
+typedef void (*CHECKNEW_ReduceAction144_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction144_parser___ReduceAction144___init "new ReduceAction144 parser::ReduceAction144::init"
+val_t NEW_ReduceAction144_parser___ReduceAction144___init(void);
+typedef val_t (*NEW_ReduceAction144_parser___ReduceAction144___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction145 "init var of ReduceAction145"
+void INIT_ATTRIBUTES__ReduceAction145(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction145_t)(val_t p0);
+val_t NEW_ReduceAction145(void);
+#define LOCATE_CHECKNEW_ReduceAction145 "check new ReduceAction145"
+void CHECKNEW_ReduceAction145(val_t p0);
+typedef void (*CHECKNEW_ReduceAction145_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction145_parser___ReduceAction145___init "new ReduceAction145 parser::ReduceAction145::init"
+val_t NEW_ReduceAction145_parser___ReduceAction145___init(void);
+typedef val_t (*NEW_ReduceAction145_parser___ReduceAction145___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction146 "init var of ReduceAction146"
+void INIT_ATTRIBUTES__ReduceAction146(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction146_t)(val_t p0);
+val_t NEW_ReduceAction146(void);
+#define LOCATE_CHECKNEW_ReduceAction146 "check new ReduceAction146"
+void CHECKNEW_ReduceAction146(val_t p0);
+typedef void (*CHECKNEW_ReduceAction146_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction146_parser___ReduceAction146___init "new ReduceAction146 parser::ReduceAction146::init"
+val_t NEW_ReduceAction146_parser___ReduceAction146___init(void);
+typedef val_t (*NEW_ReduceAction146_parser___ReduceAction146___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction147 "init var of ReduceAction147"
+void INIT_ATTRIBUTES__ReduceAction147(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction147_t)(val_t p0);
+val_t NEW_ReduceAction147(void);
+#define LOCATE_CHECKNEW_ReduceAction147 "check new ReduceAction147"
+void CHECKNEW_ReduceAction147(val_t p0);
+typedef void (*CHECKNEW_ReduceAction147_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction147_parser___ReduceAction147___init "new ReduceAction147 parser::ReduceAction147::init"
+val_t NEW_ReduceAction147_parser___ReduceAction147___init(void);
+typedef val_t (*NEW_ReduceAction147_parser___ReduceAction147___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction148 "init var of ReduceAction148"
+void INIT_ATTRIBUTES__ReduceAction148(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction148_t)(val_t p0);
+val_t NEW_ReduceAction148(void);
+#define LOCATE_CHECKNEW_ReduceAction148 "check new ReduceAction148"
+void CHECKNEW_ReduceAction148(val_t p0);
+typedef void (*CHECKNEW_ReduceAction148_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction148_parser___ReduceAction148___init "new ReduceAction148 parser::ReduceAction148::init"
+val_t NEW_ReduceAction148_parser___ReduceAction148___init(void);
+typedef val_t (*NEW_ReduceAction148_parser___ReduceAction148___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction149 "init var of ReduceAction149"
+void INIT_ATTRIBUTES__ReduceAction149(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction149_t)(val_t p0);
+val_t NEW_ReduceAction149(void);
+#define LOCATE_CHECKNEW_ReduceAction149 "check new ReduceAction149"
+void CHECKNEW_ReduceAction149(val_t p0);
+typedef void (*CHECKNEW_ReduceAction149_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction149_parser___ReduceAction149___init "new ReduceAction149 parser::ReduceAction149::init"
+val_t NEW_ReduceAction149_parser___ReduceAction149___init(void);
+typedef val_t (*NEW_ReduceAction149_parser___ReduceAction149___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction150 "init var of ReduceAction150"
+void INIT_ATTRIBUTES__ReduceAction150(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction150_t)(val_t p0);
+val_t NEW_ReduceAction150(void);
+#define LOCATE_CHECKNEW_ReduceAction150 "check new ReduceAction150"
+void CHECKNEW_ReduceAction150(val_t p0);
+typedef void (*CHECKNEW_ReduceAction150_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction150_parser___ReduceAction150___init "new ReduceAction150 parser::ReduceAction150::init"
+val_t NEW_ReduceAction150_parser___ReduceAction150___init(void);
+typedef val_t (*NEW_ReduceAction150_parser___ReduceAction150___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction151 "init var of ReduceAction151"
+void INIT_ATTRIBUTES__ReduceAction151(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction151_t)(val_t p0);
+val_t NEW_ReduceAction151(void);
+#define LOCATE_CHECKNEW_ReduceAction151 "check new ReduceAction151"
+void CHECKNEW_ReduceAction151(val_t p0);
+typedef void (*CHECKNEW_ReduceAction151_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction151_parser___ReduceAction151___init "new ReduceAction151 parser::ReduceAction151::init"
+val_t NEW_ReduceAction151_parser___ReduceAction151___init(void);
+typedef val_t (*NEW_ReduceAction151_parser___ReduceAction151___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction152 "init var of ReduceAction152"
+void INIT_ATTRIBUTES__ReduceAction152(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction152_t)(val_t p0);
+val_t NEW_ReduceAction152(void);
+#define LOCATE_CHECKNEW_ReduceAction152 "check new ReduceAction152"
+void CHECKNEW_ReduceAction152(val_t p0);
+typedef void (*CHECKNEW_ReduceAction152_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction152_parser___ReduceAction152___init "new ReduceAction152 parser::ReduceAction152::init"
+val_t NEW_ReduceAction152_parser___ReduceAction152___init(void);
+typedef val_t (*NEW_ReduceAction152_parser___ReduceAction152___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction153 "init var of ReduceAction153"
+void INIT_ATTRIBUTES__ReduceAction153(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction153_t)(val_t p0);
+val_t NEW_ReduceAction153(void);
+#define LOCATE_CHECKNEW_ReduceAction153 "check new ReduceAction153"
+void CHECKNEW_ReduceAction153(val_t p0);
+typedef void (*CHECKNEW_ReduceAction153_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction153_parser___ReduceAction153___init "new ReduceAction153 parser::ReduceAction153::init"
+val_t NEW_ReduceAction153_parser___ReduceAction153___init(void);
+typedef val_t (*NEW_ReduceAction153_parser___ReduceAction153___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction154 "init var of ReduceAction154"
+void INIT_ATTRIBUTES__ReduceAction154(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction154_t)(val_t p0);
+val_t NEW_ReduceAction154(void);
+#define LOCATE_CHECKNEW_ReduceAction154 "check new ReduceAction154"
+void CHECKNEW_ReduceAction154(val_t p0);
+typedef void (*CHECKNEW_ReduceAction154_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction154_parser___ReduceAction154___init "new ReduceAction154 parser::ReduceAction154::init"
+val_t NEW_ReduceAction154_parser___ReduceAction154___init(void);
+typedef val_t (*NEW_ReduceAction154_parser___ReduceAction154___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction155 "init var of ReduceAction155"
+void INIT_ATTRIBUTES__ReduceAction155(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction155_t)(val_t p0);
+val_t NEW_ReduceAction155(void);
+#define LOCATE_CHECKNEW_ReduceAction155 "check new ReduceAction155"
+void CHECKNEW_ReduceAction155(val_t p0);
+typedef void (*CHECKNEW_ReduceAction155_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction155_parser___ReduceAction155___init "new ReduceAction155 parser::ReduceAction155::init"
+val_t NEW_ReduceAction155_parser___ReduceAction155___init(void);
+typedef val_t (*NEW_ReduceAction155_parser___ReduceAction155___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction156 "init var of ReduceAction156"
+void INIT_ATTRIBUTES__ReduceAction156(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction156_t)(val_t p0);
+val_t NEW_ReduceAction156(void);
+#define LOCATE_CHECKNEW_ReduceAction156 "check new ReduceAction156"
+void CHECKNEW_ReduceAction156(val_t p0);
+typedef void (*CHECKNEW_ReduceAction156_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction156_parser___ReduceAction156___init "new ReduceAction156 parser::ReduceAction156::init"
+val_t NEW_ReduceAction156_parser___ReduceAction156___init(void);
+typedef val_t (*NEW_ReduceAction156_parser___ReduceAction156___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction157 "init var of ReduceAction157"
+void INIT_ATTRIBUTES__ReduceAction157(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction157_t)(val_t p0);
+val_t NEW_ReduceAction157(void);
+#define LOCATE_CHECKNEW_ReduceAction157 "check new ReduceAction157"
+void CHECKNEW_ReduceAction157(val_t p0);
+typedef void (*CHECKNEW_ReduceAction157_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction157_parser___ReduceAction157___init "new ReduceAction157 parser::ReduceAction157::init"
+val_t NEW_ReduceAction157_parser___ReduceAction157___init(void);
+typedef val_t (*NEW_ReduceAction157_parser___ReduceAction157___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction158 "init var of ReduceAction158"
+void INIT_ATTRIBUTES__ReduceAction158(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction158_t)(val_t p0);
+val_t NEW_ReduceAction158(void);
+#define LOCATE_CHECKNEW_ReduceAction158 "check new ReduceAction158"
+void CHECKNEW_ReduceAction158(val_t p0);
+typedef void (*CHECKNEW_ReduceAction158_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction158_parser___ReduceAction158___init "new ReduceAction158 parser::ReduceAction158::init"
+val_t NEW_ReduceAction158_parser___ReduceAction158___init(void);
+typedef val_t (*NEW_ReduceAction158_parser___ReduceAction158___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction159 "init var of ReduceAction159"
+void INIT_ATTRIBUTES__ReduceAction159(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction159_t)(val_t p0);
+val_t NEW_ReduceAction159(void);
+#define LOCATE_CHECKNEW_ReduceAction159 "check new ReduceAction159"
+void CHECKNEW_ReduceAction159(val_t p0);
+typedef void (*CHECKNEW_ReduceAction159_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction159_parser___ReduceAction159___init "new ReduceAction159 parser::ReduceAction159::init"
+val_t NEW_ReduceAction159_parser___ReduceAction159___init(void);
+typedef val_t (*NEW_ReduceAction159_parser___ReduceAction159___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction160 "init var of ReduceAction160"
+void INIT_ATTRIBUTES__ReduceAction160(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction160_t)(val_t p0);
+val_t NEW_ReduceAction160(void);
+#define LOCATE_CHECKNEW_ReduceAction160 "check new ReduceAction160"
+void CHECKNEW_ReduceAction160(val_t p0);
+typedef void (*CHECKNEW_ReduceAction160_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction160_parser___ReduceAction160___init "new ReduceAction160 parser::ReduceAction160::init"
+val_t NEW_ReduceAction160_parser___ReduceAction160___init(void);
+typedef val_t (*NEW_ReduceAction160_parser___ReduceAction160___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction161 "init var of ReduceAction161"
+void INIT_ATTRIBUTES__ReduceAction161(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction161_t)(val_t p0);
+val_t NEW_ReduceAction161(void);
+#define LOCATE_CHECKNEW_ReduceAction161 "check new ReduceAction161"
+void CHECKNEW_ReduceAction161(val_t p0);
+typedef void (*CHECKNEW_ReduceAction161_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction161_parser___ReduceAction161___init "new ReduceAction161 parser::ReduceAction161::init"
+val_t NEW_ReduceAction161_parser___ReduceAction161___init(void);
+typedef val_t (*NEW_ReduceAction161_parser___ReduceAction161___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction162 "init var of ReduceAction162"
+void INIT_ATTRIBUTES__ReduceAction162(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction162_t)(val_t p0);
+val_t NEW_ReduceAction162(void);
+#define LOCATE_CHECKNEW_ReduceAction162 "check new ReduceAction162"
+void CHECKNEW_ReduceAction162(val_t p0);
+typedef void (*CHECKNEW_ReduceAction162_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction162_parser___ReduceAction162___init "new ReduceAction162 parser::ReduceAction162::init"
+val_t NEW_ReduceAction162_parser___ReduceAction162___init(void);
+typedef val_t (*NEW_ReduceAction162_parser___ReduceAction162___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction163 "init var of ReduceAction163"
+void INIT_ATTRIBUTES__ReduceAction163(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction163_t)(val_t p0);
+val_t NEW_ReduceAction163(void);
+#define LOCATE_CHECKNEW_ReduceAction163 "check new ReduceAction163"
+void CHECKNEW_ReduceAction163(val_t p0);
+typedef void (*CHECKNEW_ReduceAction163_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction163_parser___ReduceAction163___init "new ReduceAction163 parser::ReduceAction163::init"
+val_t NEW_ReduceAction163_parser___ReduceAction163___init(void);
+typedef val_t (*NEW_ReduceAction163_parser___ReduceAction163___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction164 "init var of ReduceAction164"
+void INIT_ATTRIBUTES__ReduceAction164(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction164_t)(val_t p0);
+val_t NEW_ReduceAction164(void);
+#define LOCATE_CHECKNEW_ReduceAction164 "check new ReduceAction164"
+void CHECKNEW_ReduceAction164(val_t p0);
+typedef void (*CHECKNEW_ReduceAction164_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction164_parser___ReduceAction164___init "new ReduceAction164 parser::ReduceAction164::init"
+val_t NEW_ReduceAction164_parser___ReduceAction164___init(void);
+typedef val_t (*NEW_ReduceAction164_parser___ReduceAction164___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction165 "init var of ReduceAction165"
+void INIT_ATTRIBUTES__ReduceAction165(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction165_t)(val_t p0);
+val_t NEW_ReduceAction165(void);
+#define LOCATE_CHECKNEW_ReduceAction165 "check new ReduceAction165"
+void CHECKNEW_ReduceAction165(val_t p0);
+typedef void (*CHECKNEW_ReduceAction165_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction165_parser___ReduceAction165___init "new ReduceAction165 parser::ReduceAction165::init"
+val_t NEW_ReduceAction165_parser___ReduceAction165___init(void);
+typedef val_t (*NEW_ReduceAction165_parser___ReduceAction165___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction166 "init var of ReduceAction166"
+void INIT_ATTRIBUTES__ReduceAction166(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction166_t)(val_t p0);
+val_t NEW_ReduceAction166(void);
+#define LOCATE_CHECKNEW_ReduceAction166 "check new ReduceAction166"
+void CHECKNEW_ReduceAction166(val_t p0);
+typedef void (*CHECKNEW_ReduceAction166_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction166_parser___ReduceAction166___init "new ReduceAction166 parser::ReduceAction166::init"
+val_t NEW_ReduceAction166_parser___ReduceAction166___init(void);
+typedef val_t (*NEW_ReduceAction166_parser___ReduceAction166___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction167 "init var of ReduceAction167"
+void INIT_ATTRIBUTES__ReduceAction167(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction167_t)(val_t p0);
+val_t NEW_ReduceAction167(void);
+#define LOCATE_CHECKNEW_ReduceAction167 "check new ReduceAction167"
+void CHECKNEW_ReduceAction167(val_t p0);
+typedef void (*CHECKNEW_ReduceAction167_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction167_parser___ReduceAction167___init "new ReduceAction167 parser::ReduceAction167::init"
+val_t NEW_ReduceAction167_parser___ReduceAction167___init(void);
+typedef val_t (*NEW_ReduceAction167_parser___ReduceAction167___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction168 "init var of ReduceAction168"
+void INIT_ATTRIBUTES__ReduceAction168(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction168_t)(val_t p0);
+val_t NEW_ReduceAction168(void);
+#define LOCATE_CHECKNEW_ReduceAction168 "check new ReduceAction168"
+void CHECKNEW_ReduceAction168(val_t p0);
+typedef void (*CHECKNEW_ReduceAction168_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction168_parser___ReduceAction168___init "new ReduceAction168 parser::ReduceAction168::init"
+val_t NEW_ReduceAction168_parser___ReduceAction168___init(void);
+typedef val_t (*NEW_ReduceAction168_parser___ReduceAction168___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction169 "init var of ReduceAction169"
+void INIT_ATTRIBUTES__ReduceAction169(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction169_t)(val_t p0);
+val_t NEW_ReduceAction169(void);
+#define LOCATE_CHECKNEW_ReduceAction169 "check new ReduceAction169"
+void CHECKNEW_ReduceAction169(val_t p0);
+typedef void (*CHECKNEW_ReduceAction169_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction169_parser___ReduceAction169___init "new ReduceAction169 parser::ReduceAction169::init"
+val_t NEW_ReduceAction169_parser___ReduceAction169___init(void);
+typedef val_t (*NEW_ReduceAction169_parser___ReduceAction169___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction170 "init var of ReduceAction170"
+void INIT_ATTRIBUTES__ReduceAction170(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction170_t)(val_t p0);
+val_t NEW_ReduceAction170(void);
+#define LOCATE_CHECKNEW_ReduceAction170 "check new ReduceAction170"
+void CHECKNEW_ReduceAction170(val_t p0);
+typedef void (*CHECKNEW_ReduceAction170_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction170_parser___ReduceAction170___init "new ReduceAction170 parser::ReduceAction170::init"
+val_t NEW_ReduceAction170_parser___ReduceAction170___init(void);
+typedef val_t (*NEW_ReduceAction170_parser___ReduceAction170___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction171 "init var of ReduceAction171"
+void INIT_ATTRIBUTES__ReduceAction171(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction171_t)(val_t p0);
+val_t NEW_ReduceAction171(void);
+#define LOCATE_CHECKNEW_ReduceAction171 "check new ReduceAction171"
+void CHECKNEW_ReduceAction171(val_t p0);
+typedef void (*CHECKNEW_ReduceAction171_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction171_parser___ReduceAction171___init "new ReduceAction171 parser::ReduceAction171::init"
+val_t NEW_ReduceAction171_parser___ReduceAction171___init(void);
+typedef val_t (*NEW_ReduceAction171_parser___ReduceAction171___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction172 "init var of ReduceAction172"
+void INIT_ATTRIBUTES__ReduceAction172(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction172_t)(val_t p0);
+val_t NEW_ReduceAction172(void);
+#define LOCATE_CHECKNEW_ReduceAction172 "check new ReduceAction172"
+void CHECKNEW_ReduceAction172(val_t p0);
+typedef void (*CHECKNEW_ReduceAction172_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction172_parser___ReduceAction172___init "new ReduceAction172 parser::ReduceAction172::init"
+val_t NEW_ReduceAction172_parser___ReduceAction172___init(void);
+typedef val_t (*NEW_ReduceAction172_parser___ReduceAction172___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction173 "init var of ReduceAction173"
+void INIT_ATTRIBUTES__ReduceAction173(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction173_t)(val_t p0);
+val_t NEW_ReduceAction173(void);
+#define LOCATE_CHECKNEW_ReduceAction173 "check new ReduceAction173"
+void CHECKNEW_ReduceAction173(val_t p0);
+typedef void (*CHECKNEW_ReduceAction173_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction173_parser___ReduceAction173___init "new ReduceAction173 parser::ReduceAction173::init"
+val_t NEW_ReduceAction173_parser___ReduceAction173___init(void);
+typedef val_t (*NEW_ReduceAction173_parser___ReduceAction173___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction174 "init var of ReduceAction174"
+void INIT_ATTRIBUTES__ReduceAction174(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction174_t)(val_t p0);
+val_t NEW_ReduceAction174(void);
+#define LOCATE_CHECKNEW_ReduceAction174 "check new ReduceAction174"
+void CHECKNEW_ReduceAction174(val_t p0);
+typedef void (*CHECKNEW_ReduceAction174_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction174_parser___ReduceAction174___init "new ReduceAction174 parser::ReduceAction174::init"
+val_t NEW_ReduceAction174_parser___ReduceAction174___init(void);
+typedef val_t (*NEW_ReduceAction174_parser___ReduceAction174___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction175 "init var of ReduceAction175"
+void INIT_ATTRIBUTES__ReduceAction175(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction175_t)(val_t p0);
+val_t NEW_ReduceAction175(void);
+#define LOCATE_CHECKNEW_ReduceAction175 "check new ReduceAction175"
+void CHECKNEW_ReduceAction175(val_t p0);
+typedef void (*CHECKNEW_ReduceAction175_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction175_parser___ReduceAction175___init "new ReduceAction175 parser::ReduceAction175::init"
+val_t NEW_ReduceAction175_parser___ReduceAction175___init(void);
+typedef val_t (*NEW_ReduceAction175_parser___ReduceAction175___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction176 "init var of ReduceAction176"
+void INIT_ATTRIBUTES__ReduceAction176(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction176_t)(val_t p0);
+val_t NEW_ReduceAction176(void);
+#define LOCATE_CHECKNEW_ReduceAction176 "check new ReduceAction176"
+void CHECKNEW_ReduceAction176(val_t p0);
+typedef void (*CHECKNEW_ReduceAction176_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction176_parser___ReduceAction176___init "new ReduceAction176 parser::ReduceAction176::init"
+val_t NEW_ReduceAction176_parser___ReduceAction176___init(void);
+typedef val_t (*NEW_ReduceAction176_parser___ReduceAction176___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction177 "init var of ReduceAction177"
+void INIT_ATTRIBUTES__ReduceAction177(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction177_t)(val_t p0);
+val_t NEW_ReduceAction177(void);
+#define LOCATE_CHECKNEW_ReduceAction177 "check new ReduceAction177"
+void CHECKNEW_ReduceAction177(val_t p0);
+typedef void (*CHECKNEW_ReduceAction177_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction177_parser___ReduceAction177___init "new ReduceAction177 parser::ReduceAction177::init"
+val_t NEW_ReduceAction177_parser___ReduceAction177___init(void);
+typedef val_t (*NEW_ReduceAction177_parser___ReduceAction177___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction178 "init var of ReduceAction178"
+void INIT_ATTRIBUTES__ReduceAction178(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction178_t)(val_t p0);
+val_t NEW_ReduceAction178(void);
+#define LOCATE_CHECKNEW_ReduceAction178 "check new ReduceAction178"
+void CHECKNEW_ReduceAction178(val_t p0);
+typedef void (*CHECKNEW_ReduceAction178_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction178_parser___ReduceAction178___init "new ReduceAction178 parser::ReduceAction178::init"
+val_t NEW_ReduceAction178_parser___ReduceAction178___init(void);
+typedef val_t (*NEW_ReduceAction178_parser___ReduceAction178___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction179 "init var of ReduceAction179"
+void INIT_ATTRIBUTES__ReduceAction179(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction179_t)(val_t p0);
+val_t NEW_ReduceAction179(void);
+#define LOCATE_CHECKNEW_ReduceAction179 "check new ReduceAction179"
+void CHECKNEW_ReduceAction179(val_t p0);
+typedef void (*CHECKNEW_ReduceAction179_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction179_parser___ReduceAction179___init "new ReduceAction179 parser::ReduceAction179::init"
+val_t NEW_ReduceAction179_parser___ReduceAction179___init(void);
+typedef val_t (*NEW_ReduceAction179_parser___ReduceAction179___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction180 "init var of ReduceAction180"
+void INIT_ATTRIBUTES__ReduceAction180(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction180_t)(val_t p0);
+val_t NEW_ReduceAction180(void);
+#define LOCATE_CHECKNEW_ReduceAction180 "check new ReduceAction180"
+void CHECKNEW_ReduceAction180(val_t p0);
+typedef void (*CHECKNEW_ReduceAction180_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction180_parser___ReduceAction180___init "new ReduceAction180 parser::ReduceAction180::init"
+val_t NEW_ReduceAction180_parser___ReduceAction180___init(void);
+typedef val_t (*NEW_ReduceAction180_parser___ReduceAction180___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction181 "init var of ReduceAction181"
+void INIT_ATTRIBUTES__ReduceAction181(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction181_t)(val_t p0);
+val_t NEW_ReduceAction181(void);
+#define LOCATE_CHECKNEW_ReduceAction181 "check new ReduceAction181"
+void CHECKNEW_ReduceAction181(val_t p0);
+typedef void (*CHECKNEW_ReduceAction181_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction181_parser___ReduceAction181___init "new ReduceAction181 parser::ReduceAction181::init"
+val_t NEW_ReduceAction181_parser___ReduceAction181___init(void);
+typedef val_t (*NEW_ReduceAction181_parser___ReduceAction181___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction182 "init var of ReduceAction182"
+void INIT_ATTRIBUTES__ReduceAction182(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction182_t)(val_t p0);
+val_t NEW_ReduceAction182(void);
+#define LOCATE_CHECKNEW_ReduceAction182 "check new ReduceAction182"
+void CHECKNEW_ReduceAction182(val_t p0);
+typedef void (*CHECKNEW_ReduceAction182_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction182_parser___ReduceAction182___init "new ReduceAction182 parser::ReduceAction182::init"
+val_t NEW_ReduceAction182_parser___ReduceAction182___init(void);
+typedef val_t (*NEW_ReduceAction182_parser___ReduceAction182___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction183 "init var of ReduceAction183"
+void INIT_ATTRIBUTES__ReduceAction183(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction183_t)(val_t p0);
+val_t NEW_ReduceAction183(void);
+#define LOCATE_CHECKNEW_ReduceAction183 "check new ReduceAction183"
+void CHECKNEW_ReduceAction183(val_t p0);
+typedef void (*CHECKNEW_ReduceAction183_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction183_parser___ReduceAction183___init "new ReduceAction183 parser::ReduceAction183::init"
+val_t NEW_ReduceAction183_parser___ReduceAction183___init(void);
+typedef val_t (*NEW_ReduceAction183_parser___ReduceAction183___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction184 "init var of ReduceAction184"
+void INIT_ATTRIBUTES__ReduceAction184(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction184_t)(val_t p0);
+val_t NEW_ReduceAction184(void);
+#define LOCATE_CHECKNEW_ReduceAction184 "check new ReduceAction184"
+void CHECKNEW_ReduceAction184(val_t p0);
+typedef void (*CHECKNEW_ReduceAction184_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction184_parser___ReduceAction184___init "new ReduceAction184 parser::ReduceAction184::init"
+val_t NEW_ReduceAction184_parser___ReduceAction184___init(void);
+typedef val_t (*NEW_ReduceAction184_parser___ReduceAction184___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction185 "init var of ReduceAction185"
+void INIT_ATTRIBUTES__ReduceAction185(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction185_t)(val_t p0);
+val_t NEW_ReduceAction185(void);
+#define LOCATE_CHECKNEW_ReduceAction185 "check new ReduceAction185"
+void CHECKNEW_ReduceAction185(val_t p0);
+typedef void (*CHECKNEW_ReduceAction185_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction185_parser___ReduceAction185___init "new ReduceAction185 parser::ReduceAction185::init"
+val_t NEW_ReduceAction185_parser___ReduceAction185___init(void);
+typedef val_t (*NEW_ReduceAction185_parser___ReduceAction185___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction186 "init var of ReduceAction186"
+void INIT_ATTRIBUTES__ReduceAction186(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction186_t)(val_t p0);
+val_t NEW_ReduceAction186(void);
+#define LOCATE_CHECKNEW_ReduceAction186 "check new ReduceAction186"
+void CHECKNEW_ReduceAction186(val_t p0);
+typedef void (*CHECKNEW_ReduceAction186_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction186_parser___ReduceAction186___init "new ReduceAction186 parser::ReduceAction186::init"
+val_t NEW_ReduceAction186_parser___ReduceAction186___init(void);
+typedef val_t (*NEW_ReduceAction186_parser___ReduceAction186___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction187 "init var of ReduceAction187"
+void INIT_ATTRIBUTES__ReduceAction187(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction187_t)(val_t p0);
+val_t NEW_ReduceAction187(void);
+#define LOCATE_CHECKNEW_ReduceAction187 "check new ReduceAction187"
+void CHECKNEW_ReduceAction187(val_t p0);
+typedef void (*CHECKNEW_ReduceAction187_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction187_parser___ReduceAction187___init "new ReduceAction187 parser::ReduceAction187::init"
+val_t NEW_ReduceAction187_parser___ReduceAction187___init(void);
+typedef val_t (*NEW_ReduceAction187_parser___ReduceAction187___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction188 "init var of ReduceAction188"
+void INIT_ATTRIBUTES__ReduceAction188(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction188_t)(val_t p0);
+val_t NEW_ReduceAction188(void);
+#define LOCATE_CHECKNEW_ReduceAction188 "check new ReduceAction188"
+void CHECKNEW_ReduceAction188(val_t p0);
+typedef void (*CHECKNEW_ReduceAction188_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction188_parser___ReduceAction188___init "new ReduceAction188 parser::ReduceAction188::init"
+val_t NEW_ReduceAction188_parser___ReduceAction188___init(void);
+typedef val_t (*NEW_ReduceAction188_parser___ReduceAction188___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction189 "init var of ReduceAction189"
+void INIT_ATTRIBUTES__ReduceAction189(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction189_t)(val_t p0);
+val_t NEW_ReduceAction189(void);
+#define LOCATE_CHECKNEW_ReduceAction189 "check new ReduceAction189"
+void CHECKNEW_ReduceAction189(val_t p0);
+typedef void (*CHECKNEW_ReduceAction189_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction189_parser___ReduceAction189___init "new ReduceAction189 parser::ReduceAction189::init"
+val_t NEW_ReduceAction189_parser___ReduceAction189___init(void);
+typedef val_t (*NEW_ReduceAction189_parser___ReduceAction189___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction190 "init var of ReduceAction190"
+void INIT_ATTRIBUTES__ReduceAction190(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction190_t)(val_t p0);
+val_t NEW_ReduceAction190(void);
+#define LOCATE_CHECKNEW_ReduceAction190 "check new ReduceAction190"
+void CHECKNEW_ReduceAction190(val_t p0);
+typedef void (*CHECKNEW_ReduceAction190_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction190_parser___ReduceAction190___init "new ReduceAction190 parser::ReduceAction190::init"
+val_t NEW_ReduceAction190_parser___ReduceAction190___init(void);
+typedef val_t (*NEW_ReduceAction190_parser___ReduceAction190___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction191 "init var of ReduceAction191"
+void INIT_ATTRIBUTES__ReduceAction191(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction191_t)(val_t p0);
+val_t NEW_ReduceAction191(void);
+#define LOCATE_CHECKNEW_ReduceAction191 "check new ReduceAction191"
+void CHECKNEW_ReduceAction191(val_t p0);
+typedef void (*CHECKNEW_ReduceAction191_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction191_parser___ReduceAction191___init "new ReduceAction191 parser::ReduceAction191::init"
+val_t NEW_ReduceAction191_parser___ReduceAction191___init(void);
+typedef val_t (*NEW_ReduceAction191_parser___ReduceAction191___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction192 "init var of ReduceAction192"
+void INIT_ATTRIBUTES__ReduceAction192(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction192_t)(val_t p0);
+val_t NEW_ReduceAction192(void);
+#define LOCATE_CHECKNEW_ReduceAction192 "check new ReduceAction192"
+void CHECKNEW_ReduceAction192(val_t p0);
+typedef void (*CHECKNEW_ReduceAction192_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction192_parser___ReduceAction192___init "new ReduceAction192 parser::ReduceAction192::init"
+val_t NEW_ReduceAction192_parser___ReduceAction192___init(void);
+typedef val_t (*NEW_ReduceAction192_parser___ReduceAction192___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction193 "init var of ReduceAction193"
+void INIT_ATTRIBUTES__ReduceAction193(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction193_t)(val_t p0);
+val_t NEW_ReduceAction193(void);
+#define LOCATE_CHECKNEW_ReduceAction193 "check new ReduceAction193"
+void CHECKNEW_ReduceAction193(val_t p0);
+typedef void (*CHECKNEW_ReduceAction193_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction193_parser___ReduceAction193___init "new ReduceAction193 parser::ReduceAction193::init"
+val_t NEW_ReduceAction193_parser___ReduceAction193___init(void);
+typedef val_t (*NEW_ReduceAction193_parser___ReduceAction193___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction194 "init var of ReduceAction194"
+void INIT_ATTRIBUTES__ReduceAction194(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction194_t)(val_t p0);
+val_t NEW_ReduceAction194(void);
+#define LOCATE_CHECKNEW_ReduceAction194 "check new ReduceAction194"
+void CHECKNEW_ReduceAction194(val_t p0);
+typedef void (*CHECKNEW_ReduceAction194_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction194_parser___ReduceAction194___init "new ReduceAction194 parser::ReduceAction194::init"
+val_t NEW_ReduceAction194_parser___ReduceAction194___init(void);
+typedef val_t (*NEW_ReduceAction194_parser___ReduceAction194___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction195 "init var of ReduceAction195"
+void INIT_ATTRIBUTES__ReduceAction195(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction195_t)(val_t p0);
+val_t NEW_ReduceAction195(void);
+#define LOCATE_CHECKNEW_ReduceAction195 "check new ReduceAction195"
+void CHECKNEW_ReduceAction195(val_t p0);
+typedef void (*CHECKNEW_ReduceAction195_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction195_parser___ReduceAction195___init "new ReduceAction195 parser::ReduceAction195::init"
+val_t NEW_ReduceAction195_parser___ReduceAction195___init(void);
+typedef val_t (*NEW_ReduceAction195_parser___ReduceAction195___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction196 "init var of ReduceAction196"
+void INIT_ATTRIBUTES__ReduceAction196(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction196_t)(val_t p0);
+val_t NEW_ReduceAction196(void);
+#define LOCATE_CHECKNEW_ReduceAction196 "check new ReduceAction196"
+void CHECKNEW_ReduceAction196(val_t p0);
+typedef void (*CHECKNEW_ReduceAction196_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction196_parser___ReduceAction196___init "new ReduceAction196 parser::ReduceAction196::init"
+val_t NEW_ReduceAction196_parser___ReduceAction196___init(void);
+typedef val_t (*NEW_ReduceAction196_parser___ReduceAction196___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction197 "init var of ReduceAction197"
+void INIT_ATTRIBUTES__ReduceAction197(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction197_t)(val_t p0);
+val_t NEW_ReduceAction197(void);
+#define LOCATE_CHECKNEW_ReduceAction197 "check new ReduceAction197"
+void CHECKNEW_ReduceAction197(val_t p0);
+typedef void (*CHECKNEW_ReduceAction197_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction197_parser___ReduceAction197___init "new ReduceAction197 parser::ReduceAction197::init"
+val_t NEW_ReduceAction197_parser___ReduceAction197___init(void);
+typedef val_t (*NEW_ReduceAction197_parser___ReduceAction197___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction198 "init var of ReduceAction198"
+void INIT_ATTRIBUTES__ReduceAction198(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction198_t)(val_t p0);
+val_t NEW_ReduceAction198(void);
+#define LOCATE_CHECKNEW_ReduceAction198 "check new ReduceAction198"
+void CHECKNEW_ReduceAction198(val_t p0);
+typedef void (*CHECKNEW_ReduceAction198_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction198_parser___ReduceAction198___init "new ReduceAction198 parser::ReduceAction198::init"
+val_t NEW_ReduceAction198_parser___ReduceAction198___init(void);
+typedef val_t (*NEW_ReduceAction198_parser___ReduceAction198___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction199 "init var of ReduceAction199"
+void INIT_ATTRIBUTES__ReduceAction199(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction199_t)(val_t p0);
+val_t NEW_ReduceAction199(void);
+#define LOCATE_CHECKNEW_ReduceAction199 "check new ReduceAction199"
+void CHECKNEW_ReduceAction199(val_t p0);
+typedef void (*CHECKNEW_ReduceAction199_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction199_parser___ReduceAction199___init "new ReduceAction199 parser::ReduceAction199::init"
+val_t NEW_ReduceAction199_parser___ReduceAction199___init(void);
+typedef val_t (*NEW_ReduceAction199_parser___ReduceAction199___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction200 "init var of ReduceAction200"
+void INIT_ATTRIBUTES__ReduceAction200(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction200_t)(val_t p0);
+val_t NEW_ReduceAction200(void);
+#define LOCATE_CHECKNEW_ReduceAction200 "check new ReduceAction200"
+void CHECKNEW_ReduceAction200(val_t p0);
+typedef void (*CHECKNEW_ReduceAction200_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction200_parser___ReduceAction200___init "new ReduceAction200 parser::ReduceAction200::init"
+val_t NEW_ReduceAction200_parser___ReduceAction200___init(void);
+typedef val_t (*NEW_ReduceAction200_parser___ReduceAction200___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction201 "init var of ReduceAction201"
+void INIT_ATTRIBUTES__ReduceAction201(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction201_t)(val_t p0);
+val_t NEW_ReduceAction201(void);
+#define LOCATE_CHECKNEW_ReduceAction201 "check new ReduceAction201"
+void CHECKNEW_ReduceAction201(val_t p0);
+typedef void (*CHECKNEW_ReduceAction201_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction201_parser___ReduceAction201___init "new ReduceAction201 parser::ReduceAction201::init"
+val_t NEW_ReduceAction201_parser___ReduceAction201___init(void);
+typedef val_t (*NEW_ReduceAction201_parser___ReduceAction201___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction202 "init var of ReduceAction202"
+void INIT_ATTRIBUTES__ReduceAction202(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction202_t)(val_t p0);
+val_t NEW_ReduceAction202(void);
+#define LOCATE_CHECKNEW_ReduceAction202 "check new ReduceAction202"
+void CHECKNEW_ReduceAction202(val_t p0);
+typedef void (*CHECKNEW_ReduceAction202_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction202_parser___ReduceAction202___init "new ReduceAction202 parser::ReduceAction202::init"
+val_t NEW_ReduceAction202_parser___ReduceAction202___init(void);
+typedef val_t (*NEW_ReduceAction202_parser___ReduceAction202___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction203 "init var of ReduceAction203"
+void INIT_ATTRIBUTES__ReduceAction203(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction203_t)(val_t p0);
+val_t NEW_ReduceAction203(void);
+#define LOCATE_CHECKNEW_ReduceAction203 "check new ReduceAction203"
+void CHECKNEW_ReduceAction203(val_t p0);
+typedef void (*CHECKNEW_ReduceAction203_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction203_parser___ReduceAction203___init "new ReduceAction203 parser::ReduceAction203::init"
+val_t NEW_ReduceAction203_parser___ReduceAction203___init(void);
+typedef val_t (*NEW_ReduceAction203_parser___ReduceAction203___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction204 "init var of ReduceAction204"
+void INIT_ATTRIBUTES__ReduceAction204(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction204_t)(val_t p0);
+val_t NEW_ReduceAction204(void);
+#define LOCATE_CHECKNEW_ReduceAction204 "check new ReduceAction204"
+void CHECKNEW_ReduceAction204(val_t p0);
+typedef void (*CHECKNEW_ReduceAction204_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction204_parser___ReduceAction204___init "new ReduceAction204 parser::ReduceAction204::init"
+val_t NEW_ReduceAction204_parser___ReduceAction204___init(void);
+typedef val_t (*NEW_ReduceAction204_parser___ReduceAction204___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction205 "init var of ReduceAction205"
+void INIT_ATTRIBUTES__ReduceAction205(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction205_t)(val_t p0);
+val_t NEW_ReduceAction205(void);
+#define LOCATE_CHECKNEW_ReduceAction205 "check new ReduceAction205"
+void CHECKNEW_ReduceAction205(val_t p0);
+typedef void (*CHECKNEW_ReduceAction205_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction205_parser___ReduceAction205___init "new ReduceAction205 parser::ReduceAction205::init"
+val_t NEW_ReduceAction205_parser___ReduceAction205___init(void);
+typedef val_t (*NEW_ReduceAction205_parser___ReduceAction205___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction206 "init var of ReduceAction206"
+void INIT_ATTRIBUTES__ReduceAction206(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction206_t)(val_t p0);
+val_t NEW_ReduceAction206(void);
+#define LOCATE_CHECKNEW_ReduceAction206 "check new ReduceAction206"
+void CHECKNEW_ReduceAction206(val_t p0);
+typedef void (*CHECKNEW_ReduceAction206_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction206_parser___ReduceAction206___init "new ReduceAction206 parser::ReduceAction206::init"
+val_t NEW_ReduceAction206_parser___ReduceAction206___init(void);
+typedef val_t (*NEW_ReduceAction206_parser___ReduceAction206___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction207 "init var of ReduceAction207"
+void INIT_ATTRIBUTES__ReduceAction207(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction207_t)(val_t p0);
+val_t NEW_ReduceAction207(void);
+#define LOCATE_CHECKNEW_ReduceAction207 "check new ReduceAction207"
+void CHECKNEW_ReduceAction207(val_t p0);
+typedef void (*CHECKNEW_ReduceAction207_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction207_parser___ReduceAction207___init "new ReduceAction207 parser::ReduceAction207::init"
+val_t NEW_ReduceAction207_parser___ReduceAction207___init(void);
+typedef val_t (*NEW_ReduceAction207_parser___ReduceAction207___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction208 "init var of ReduceAction208"
+void INIT_ATTRIBUTES__ReduceAction208(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction208_t)(val_t p0);
+val_t NEW_ReduceAction208(void);
+#define LOCATE_CHECKNEW_ReduceAction208 "check new ReduceAction208"
+void CHECKNEW_ReduceAction208(val_t p0);
+typedef void (*CHECKNEW_ReduceAction208_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction208_parser___ReduceAction208___init "new ReduceAction208 parser::ReduceAction208::init"
+val_t NEW_ReduceAction208_parser___ReduceAction208___init(void);
+typedef val_t (*NEW_ReduceAction208_parser___ReduceAction208___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction209 "init var of ReduceAction209"
+void INIT_ATTRIBUTES__ReduceAction209(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction209_t)(val_t p0);
+val_t NEW_ReduceAction209(void);
+#define LOCATE_CHECKNEW_ReduceAction209 "check new ReduceAction209"
+void CHECKNEW_ReduceAction209(val_t p0);
+typedef void (*CHECKNEW_ReduceAction209_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction209_parser___ReduceAction209___init "new ReduceAction209 parser::ReduceAction209::init"
+val_t NEW_ReduceAction209_parser___ReduceAction209___init(void);
+typedef val_t (*NEW_ReduceAction209_parser___ReduceAction209___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction210 "init var of ReduceAction210"
+void INIT_ATTRIBUTES__ReduceAction210(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction210_t)(val_t p0);
+val_t NEW_ReduceAction210(void);
+#define LOCATE_CHECKNEW_ReduceAction210 "check new ReduceAction210"
+void CHECKNEW_ReduceAction210(val_t p0);
+typedef void (*CHECKNEW_ReduceAction210_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction210_parser___ReduceAction210___init "new ReduceAction210 parser::ReduceAction210::init"
+val_t NEW_ReduceAction210_parser___ReduceAction210___init(void);
+typedef val_t (*NEW_ReduceAction210_parser___ReduceAction210___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction211 "init var of ReduceAction211"
+void INIT_ATTRIBUTES__ReduceAction211(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction211_t)(val_t p0);
+val_t NEW_ReduceAction211(void);
+#define LOCATE_CHECKNEW_ReduceAction211 "check new ReduceAction211"
+void CHECKNEW_ReduceAction211(val_t p0);
+typedef void (*CHECKNEW_ReduceAction211_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction211_parser___ReduceAction211___init "new ReduceAction211 parser::ReduceAction211::init"
+val_t NEW_ReduceAction211_parser___ReduceAction211___init(void);
+typedef val_t (*NEW_ReduceAction211_parser___ReduceAction211___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction212 "init var of ReduceAction212"
+void INIT_ATTRIBUTES__ReduceAction212(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction212_t)(val_t p0);
+val_t NEW_ReduceAction212(void);
+#define LOCATE_CHECKNEW_ReduceAction212 "check new ReduceAction212"
+void CHECKNEW_ReduceAction212(val_t p0);
+typedef void (*CHECKNEW_ReduceAction212_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction212_parser___ReduceAction212___init "new ReduceAction212 parser::ReduceAction212::init"
+val_t NEW_ReduceAction212_parser___ReduceAction212___init(void);
+typedef val_t (*NEW_ReduceAction212_parser___ReduceAction212___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction213 "init var of ReduceAction213"
+void INIT_ATTRIBUTES__ReduceAction213(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction213_t)(val_t p0);
+val_t NEW_ReduceAction213(void);
+#define LOCATE_CHECKNEW_ReduceAction213 "check new ReduceAction213"
+void CHECKNEW_ReduceAction213(val_t p0);
+typedef void (*CHECKNEW_ReduceAction213_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction213_parser___ReduceAction213___init "new ReduceAction213 parser::ReduceAction213::init"
+val_t NEW_ReduceAction213_parser___ReduceAction213___init(void);
+typedef val_t (*NEW_ReduceAction213_parser___ReduceAction213___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction214 "init var of ReduceAction214"
+void INIT_ATTRIBUTES__ReduceAction214(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction214_t)(val_t p0);
+val_t NEW_ReduceAction214(void);
+#define LOCATE_CHECKNEW_ReduceAction214 "check new ReduceAction214"
+void CHECKNEW_ReduceAction214(val_t p0);
+typedef void (*CHECKNEW_ReduceAction214_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction214_parser___ReduceAction214___init "new ReduceAction214 parser::ReduceAction214::init"
+val_t NEW_ReduceAction214_parser___ReduceAction214___init(void);
+typedef val_t (*NEW_ReduceAction214_parser___ReduceAction214___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction215 "init var of ReduceAction215"
+void INIT_ATTRIBUTES__ReduceAction215(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction215_t)(val_t p0);
+val_t NEW_ReduceAction215(void);
+#define LOCATE_CHECKNEW_ReduceAction215 "check new ReduceAction215"
+void CHECKNEW_ReduceAction215(val_t p0);
+typedef void (*CHECKNEW_ReduceAction215_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction215_parser___ReduceAction215___init "new ReduceAction215 parser::ReduceAction215::init"
+val_t NEW_ReduceAction215_parser___ReduceAction215___init(void);
+typedef val_t (*NEW_ReduceAction215_parser___ReduceAction215___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction216 "init var of ReduceAction216"
+void INIT_ATTRIBUTES__ReduceAction216(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction216_t)(val_t p0);
+val_t NEW_ReduceAction216(void);
+#define LOCATE_CHECKNEW_ReduceAction216 "check new ReduceAction216"
+void CHECKNEW_ReduceAction216(val_t p0);
+typedef void (*CHECKNEW_ReduceAction216_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction216_parser___ReduceAction216___init "new ReduceAction216 parser::ReduceAction216::init"
+val_t NEW_ReduceAction216_parser___ReduceAction216___init(void);
+typedef val_t (*NEW_ReduceAction216_parser___ReduceAction216___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction217 "init var of ReduceAction217"
+void INIT_ATTRIBUTES__ReduceAction217(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction217_t)(val_t p0);
+val_t NEW_ReduceAction217(void);
+#define LOCATE_CHECKNEW_ReduceAction217 "check new ReduceAction217"
+void CHECKNEW_ReduceAction217(val_t p0);
+typedef void (*CHECKNEW_ReduceAction217_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction217_parser___ReduceAction217___init "new ReduceAction217 parser::ReduceAction217::init"
+val_t NEW_ReduceAction217_parser___ReduceAction217___init(void);
+typedef val_t (*NEW_ReduceAction217_parser___ReduceAction217___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction218 "init var of ReduceAction218"
+void INIT_ATTRIBUTES__ReduceAction218(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction218_t)(val_t p0);
+val_t NEW_ReduceAction218(void);
+#define LOCATE_CHECKNEW_ReduceAction218 "check new ReduceAction218"
+void CHECKNEW_ReduceAction218(val_t p0);
+typedef void (*CHECKNEW_ReduceAction218_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction218_parser___ReduceAction218___init "new ReduceAction218 parser::ReduceAction218::init"
+val_t NEW_ReduceAction218_parser___ReduceAction218___init(void);
+typedef val_t (*NEW_ReduceAction218_parser___ReduceAction218___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction219 "init var of ReduceAction219"
+void INIT_ATTRIBUTES__ReduceAction219(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction219_t)(val_t p0);
+val_t NEW_ReduceAction219(void);
+#define LOCATE_CHECKNEW_ReduceAction219 "check new ReduceAction219"
+void CHECKNEW_ReduceAction219(val_t p0);
+typedef void (*CHECKNEW_ReduceAction219_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction219_parser___ReduceAction219___init "new ReduceAction219 parser::ReduceAction219::init"
+val_t NEW_ReduceAction219_parser___ReduceAction219___init(void);
+typedef val_t (*NEW_ReduceAction219_parser___ReduceAction219___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction220 "init var of ReduceAction220"
+void INIT_ATTRIBUTES__ReduceAction220(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction220_t)(val_t p0);
+val_t NEW_ReduceAction220(void);
+#define LOCATE_CHECKNEW_ReduceAction220 "check new ReduceAction220"
+void CHECKNEW_ReduceAction220(val_t p0);
+typedef void (*CHECKNEW_ReduceAction220_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction220_parser___ReduceAction220___init "new ReduceAction220 parser::ReduceAction220::init"
+val_t NEW_ReduceAction220_parser___ReduceAction220___init(void);
+typedef val_t (*NEW_ReduceAction220_parser___ReduceAction220___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction221 "init var of ReduceAction221"
+void INIT_ATTRIBUTES__ReduceAction221(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction221_t)(val_t p0);
+val_t NEW_ReduceAction221(void);
+#define LOCATE_CHECKNEW_ReduceAction221 "check new ReduceAction221"
+void CHECKNEW_ReduceAction221(val_t p0);
+typedef void (*CHECKNEW_ReduceAction221_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction221_parser___ReduceAction221___init "new ReduceAction221 parser::ReduceAction221::init"
+val_t NEW_ReduceAction221_parser___ReduceAction221___init(void);
+typedef val_t (*NEW_ReduceAction221_parser___ReduceAction221___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction222 "init var of ReduceAction222"
+void INIT_ATTRIBUTES__ReduceAction222(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction222_t)(val_t p0);
+val_t NEW_ReduceAction222(void);
+#define LOCATE_CHECKNEW_ReduceAction222 "check new ReduceAction222"
+void CHECKNEW_ReduceAction222(val_t p0);
+typedef void (*CHECKNEW_ReduceAction222_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction222_parser___ReduceAction222___init "new ReduceAction222 parser::ReduceAction222::init"
+val_t NEW_ReduceAction222_parser___ReduceAction222___init(void);
+typedef val_t (*NEW_ReduceAction222_parser___ReduceAction222___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction223 "init var of ReduceAction223"
+void INIT_ATTRIBUTES__ReduceAction223(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction223_t)(val_t p0);
+val_t NEW_ReduceAction223(void);
+#define LOCATE_CHECKNEW_ReduceAction223 "check new ReduceAction223"
+void CHECKNEW_ReduceAction223(val_t p0);
+typedef void (*CHECKNEW_ReduceAction223_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction223_parser___ReduceAction223___init "new ReduceAction223 parser::ReduceAction223::init"
+val_t NEW_ReduceAction223_parser___ReduceAction223___init(void);
+typedef val_t (*NEW_ReduceAction223_parser___ReduceAction223___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction224 "init var of ReduceAction224"
+void INIT_ATTRIBUTES__ReduceAction224(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction224_t)(val_t p0);
+val_t NEW_ReduceAction224(void);
+#define LOCATE_CHECKNEW_ReduceAction224 "check new ReduceAction224"
+void CHECKNEW_ReduceAction224(val_t p0);
+typedef void (*CHECKNEW_ReduceAction224_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction224_parser___ReduceAction224___init "new ReduceAction224 parser::ReduceAction224::init"
+val_t NEW_ReduceAction224_parser___ReduceAction224___init(void);
+typedef val_t (*NEW_ReduceAction224_parser___ReduceAction224___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction225 "init var of ReduceAction225"
+void INIT_ATTRIBUTES__ReduceAction225(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction225_t)(val_t p0);
+val_t NEW_ReduceAction225(void);
+#define LOCATE_CHECKNEW_ReduceAction225 "check new ReduceAction225"
+void CHECKNEW_ReduceAction225(val_t p0);
+typedef void (*CHECKNEW_ReduceAction225_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction225_parser___ReduceAction225___init "new ReduceAction225 parser::ReduceAction225::init"
+val_t NEW_ReduceAction225_parser___ReduceAction225___init(void);
+typedef val_t (*NEW_ReduceAction225_parser___ReduceAction225___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction226 "init var of ReduceAction226"
+void INIT_ATTRIBUTES__ReduceAction226(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction226_t)(val_t p0);
+val_t NEW_ReduceAction226(void);
+#define LOCATE_CHECKNEW_ReduceAction226 "check new ReduceAction226"
+void CHECKNEW_ReduceAction226(val_t p0);
+typedef void (*CHECKNEW_ReduceAction226_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction226_parser___ReduceAction226___init "new ReduceAction226 parser::ReduceAction226::init"
+val_t NEW_ReduceAction226_parser___ReduceAction226___init(void);
+typedef val_t (*NEW_ReduceAction226_parser___ReduceAction226___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction227 "init var of ReduceAction227"
+void INIT_ATTRIBUTES__ReduceAction227(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction227_t)(val_t p0);
+val_t NEW_ReduceAction227(void);
+#define LOCATE_CHECKNEW_ReduceAction227 "check new ReduceAction227"
+void CHECKNEW_ReduceAction227(val_t p0);
+typedef void (*CHECKNEW_ReduceAction227_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction227_parser___ReduceAction227___init "new ReduceAction227 parser::ReduceAction227::init"
+val_t NEW_ReduceAction227_parser___ReduceAction227___init(void);
+typedef val_t (*NEW_ReduceAction227_parser___ReduceAction227___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction228 "init var of ReduceAction228"
+void INIT_ATTRIBUTES__ReduceAction228(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction228_t)(val_t p0);
+val_t NEW_ReduceAction228(void);
+#define LOCATE_CHECKNEW_ReduceAction228 "check new ReduceAction228"
+void CHECKNEW_ReduceAction228(val_t p0);
+typedef void (*CHECKNEW_ReduceAction228_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction228_parser___ReduceAction228___init "new ReduceAction228 parser::ReduceAction228::init"
+val_t NEW_ReduceAction228_parser___ReduceAction228___init(void);
+typedef val_t (*NEW_ReduceAction228_parser___ReduceAction228___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction229 "init var of ReduceAction229"
+void INIT_ATTRIBUTES__ReduceAction229(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction229_t)(val_t p0);
+val_t NEW_ReduceAction229(void);
+#define LOCATE_CHECKNEW_ReduceAction229 "check new ReduceAction229"
+void CHECKNEW_ReduceAction229(val_t p0);
+typedef void (*CHECKNEW_ReduceAction229_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction229_parser___ReduceAction229___init "new ReduceAction229 parser::ReduceAction229::init"
+val_t NEW_ReduceAction229_parser___ReduceAction229___init(void);
+typedef val_t (*NEW_ReduceAction229_parser___ReduceAction229___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction230 "init var of ReduceAction230"
+void INIT_ATTRIBUTES__ReduceAction230(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction230_t)(val_t p0);
+val_t NEW_ReduceAction230(void);
+#define LOCATE_CHECKNEW_ReduceAction230 "check new ReduceAction230"
+void CHECKNEW_ReduceAction230(val_t p0);
+typedef void (*CHECKNEW_ReduceAction230_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction230_parser___ReduceAction230___init "new ReduceAction230 parser::ReduceAction230::init"
+val_t NEW_ReduceAction230_parser___ReduceAction230___init(void);
+typedef val_t (*NEW_ReduceAction230_parser___ReduceAction230___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction231 "init var of ReduceAction231"
+void INIT_ATTRIBUTES__ReduceAction231(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction231_t)(val_t p0);
+val_t NEW_ReduceAction231(void);
+#define LOCATE_CHECKNEW_ReduceAction231 "check new ReduceAction231"
+void CHECKNEW_ReduceAction231(val_t p0);
+typedef void (*CHECKNEW_ReduceAction231_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction231_parser___ReduceAction231___init "new ReduceAction231 parser::ReduceAction231::init"
+val_t NEW_ReduceAction231_parser___ReduceAction231___init(void);
+typedef val_t (*NEW_ReduceAction231_parser___ReduceAction231___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction232 "init var of ReduceAction232"
+void INIT_ATTRIBUTES__ReduceAction232(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction232_t)(val_t p0);
+val_t NEW_ReduceAction232(void);
+#define LOCATE_CHECKNEW_ReduceAction232 "check new ReduceAction232"
+void CHECKNEW_ReduceAction232(val_t p0);
+typedef void (*CHECKNEW_ReduceAction232_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction232_parser___ReduceAction232___init "new ReduceAction232 parser::ReduceAction232::init"
+val_t NEW_ReduceAction232_parser___ReduceAction232___init(void);
+typedef val_t (*NEW_ReduceAction232_parser___ReduceAction232___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction233 "init var of ReduceAction233"
+void INIT_ATTRIBUTES__ReduceAction233(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction233_t)(val_t p0);
+val_t NEW_ReduceAction233(void);
+#define LOCATE_CHECKNEW_ReduceAction233 "check new ReduceAction233"
+void CHECKNEW_ReduceAction233(val_t p0);
+typedef void (*CHECKNEW_ReduceAction233_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction233_parser___ReduceAction233___init "new ReduceAction233 parser::ReduceAction233::init"
+val_t NEW_ReduceAction233_parser___ReduceAction233___init(void);
+typedef val_t (*NEW_ReduceAction233_parser___ReduceAction233___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction234 "init var of ReduceAction234"
+void INIT_ATTRIBUTES__ReduceAction234(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction234_t)(val_t p0);
+val_t NEW_ReduceAction234(void);
+#define LOCATE_CHECKNEW_ReduceAction234 "check new ReduceAction234"
+void CHECKNEW_ReduceAction234(val_t p0);
+typedef void (*CHECKNEW_ReduceAction234_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction234_parser___ReduceAction234___init "new ReduceAction234 parser::ReduceAction234::init"
+val_t NEW_ReduceAction234_parser___ReduceAction234___init(void);
+typedef val_t (*NEW_ReduceAction234_parser___ReduceAction234___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction235 "init var of ReduceAction235"
+void INIT_ATTRIBUTES__ReduceAction235(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction235_t)(val_t p0);
+val_t NEW_ReduceAction235(void);
+#define LOCATE_CHECKNEW_ReduceAction235 "check new ReduceAction235"
+void CHECKNEW_ReduceAction235(val_t p0);
+typedef void (*CHECKNEW_ReduceAction235_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction235_parser___ReduceAction235___init "new ReduceAction235 parser::ReduceAction235::init"
+val_t NEW_ReduceAction235_parser___ReduceAction235___init(void);
+typedef val_t (*NEW_ReduceAction235_parser___ReduceAction235___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction236 "init var of ReduceAction236"
+void INIT_ATTRIBUTES__ReduceAction236(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction236_t)(val_t p0);
+val_t NEW_ReduceAction236(void);
+#define LOCATE_CHECKNEW_ReduceAction236 "check new ReduceAction236"
+void CHECKNEW_ReduceAction236(val_t p0);
+typedef void (*CHECKNEW_ReduceAction236_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction236_parser___ReduceAction236___init "new ReduceAction236 parser::ReduceAction236::init"
+val_t NEW_ReduceAction236_parser___ReduceAction236___init(void);
+typedef val_t (*NEW_ReduceAction236_parser___ReduceAction236___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction237 "init var of ReduceAction237"
+void INIT_ATTRIBUTES__ReduceAction237(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction237_t)(val_t p0);
+val_t NEW_ReduceAction237(void);
+#define LOCATE_CHECKNEW_ReduceAction237 "check new ReduceAction237"
+void CHECKNEW_ReduceAction237(val_t p0);
+typedef void (*CHECKNEW_ReduceAction237_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction237_parser___ReduceAction237___init "new ReduceAction237 parser::ReduceAction237::init"
+val_t NEW_ReduceAction237_parser___ReduceAction237___init(void);
+typedef val_t (*NEW_ReduceAction237_parser___ReduceAction237___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction238 "init var of ReduceAction238"
+void INIT_ATTRIBUTES__ReduceAction238(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction238_t)(val_t p0);
+val_t NEW_ReduceAction238(void);
+#define LOCATE_CHECKNEW_ReduceAction238 "check new ReduceAction238"
+void CHECKNEW_ReduceAction238(val_t p0);
+typedef void (*CHECKNEW_ReduceAction238_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction238_parser___ReduceAction238___init "new ReduceAction238 parser::ReduceAction238::init"
+val_t NEW_ReduceAction238_parser___ReduceAction238___init(void);
+typedef val_t (*NEW_ReduceAction238_parser___ReduceAction238___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction239 "init var of ReduceAction239"
+void INIT_ATTRIBUTES__ReduceAction239(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction239_t)(val_t p0);
+val_t NEW_ReduceAction239(void);
+#define LOCATE_CHECKNEW_ReduceAction239 "check new ReduceAction239"
+void CHECKNEW_ReduceAction239(val_t p0);
+typedef void (*CHECKNEW_ReduceAction239_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction239_parser___ReduceAction239___init "new ReduceAction239 parser::ReduceAction239::init"
+val_t NEW_ReduceAction239_parser___ReduceAction239___init(void);
+typedef val_t (*NEW_ReduceAction239_parser___ReduceAction239___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction240 "init var of ReduceAction240"
+void INIT_ATTRIBUTES__ReduceAction240(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction240_t)(val_t p0);
+val_t NEW_ReduceAction240(void);
+#define LOCATE_CHECKNEW_ReduceAction240 "check new ReduceAction240"
+void CHECKNEW_ReduceAction240(val_t p0);
+typedef void (*CHECKNEW_ReduceAction240_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction240_parser___ReduceAction240___init "new ReduceAction240 parser::ReduceAction240::init"
+val_t NEW_ReduceAction240_parser___ReduceAction240___init(void);
+typedef val_t (*NEW_ReduceAction240_parser___ReduceAction240___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction241 "init var of ReduceAction241"
+void INIT_ATTRIBUTES__ReduceAction241(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction241_t)(val_t p0);
+val_t NEW_ReduceAction241(void);
+#define LOCATE_CHECKNEW_ReduceAction241 "check new ReduceAction241"
+void CHECKNEW_ReduceAction241(val_t p0);
+typedef void (*CHECKNEW_ReduceAction241_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction241_parser___ReduceAction241___init "new ReduceAction241 parser::ReduceAction241::init"
+val_t NEW_ReduceAction241_parser___ReduceAction241___init(void);
+typedef val_t (*NEW_ReduceAction241_parser___ReduceAction241___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction242 "init var of ReduceAction242"
+void INIT_ATTRIBUTES__ReduceAction242(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction242_t)(val_t p0);
+val_t NEW_ReduceAction242(void);
+#define LOCATE_CHECKNEW_ReduceAction242 "check new ReduceAction242"
+void CHECKNEW_ReduceAction242(val_t p0);
+typedef void (*CHECKNEW_ReduceAction242_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction242_parser___ReduceAction242___init "new ReduceAction242 parser::ReduceAction242::init"
+val_t NEW_ReduceAction242_parser___ReduceAction242___init(void);
+typedef val_t (*NEW_ReduceAction242_parser___ReduceAction242___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction243 "init var of ReduceAction243"
+void INIT_ATTRIBUTES__ReduceAction243(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction243_t)(val_t p0);
+val_t NEW_ReduceAction243(void);
+#define LOCATE_CHECKNEW_ReduceAction243 "check new ReduceAction243"
+void CHECKNEW_ReduceAction243(val_t p0);
+typedef void (*CHECKNEW_ReduceAction243_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction243_parser___ReduceAction243___init "new ReduceAction243 parser::ReduceAction243::init"
+val_t NEW_ReduceAction243_parser___ReduceAction243___init(void);
+typedef val_t (*NEW_ReduceAction243_parser___ReduceAction243___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction244 "init var of ReduceAction244"
+void INIT_ATTRIBUTES__ReduceAction244(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction244_t)(val_t p0);
+val_t NEW_ReduceAction244(void);
+#define LOCATE_CHECKNEW_ReduceAction244 "check new ReduceAction244"
+void CHECKNEW_ReduceAction244(val_t p0);
+typedef void (*CHECKNEW_ReduceAction244_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction244_parser___ReduceAction244___init "new ReduceAction244 parser::ReduceAction244::init"
+val_t NEW_ReduceAction244_parser___ReduceAction244___init(void);
+typedef val_t (*NEW_ReduceAction244_parser___ReduceAction244___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction245 "init var of ReduceAction245"
+void INIT_ATTRIBUTES__ReduceAction245(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction245_t)(val_t p0);
+val_t NEW_ReduceAction245(void);
+#define LOCATE_CHECKNEW_ReduceAction245 "check new ReduceAction245"
+void CHECKNEW_ReduceAction245(val_t p0);
+typedef void (*CHECKNEW_ReduceAction245_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction245_parser___ReduceAction245___init "new ReduceAction245 parser::ReduceAction245::init"
+val_t NEW_ReduceAction245_parser___ReduceAction245___init(void);
+typedef val_t (*NEW_ReduceAction245_parser___ReduceAction245___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction246 "init var of ReduceAction246"
+void INIT_ATTRIBUTES__ReduceAction246(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction246_t)(val_t p0);
+val_t NEW_ReduceAction246(void);
+#define LOCATE_CHECKNEW_ReduceAction246 "check new ReduceAction246"
+void CHECKNEW_ReduceAction246(val_t p0);
+typedef void (*CHECKNEW_ReduceAction246_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction246_parser___ReduceAction246___init "new ReduceAction246 parser::ReduceAction246::init"
+val_t NEW_ReduceAction246_parser___ReduceAction246___init(void);
+typedef val_t (*NEW_ReduceAction246_parser___ReduceAction246___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction247 "init var of ReduceAction247"
+void INIT_ATTRIBUTES__ReduceAction247(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction247_t)(val_t p0);
+val_t NEW_ReduceAction247(void);
+#define LOCATE_CHECKNEW_ReduceAction247 "check new ReduceAction247"
+void CHECKNEW_ReduceAction247(val_t p0);
+typedef void (*CHECKNEW_ReduceAction247_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction247_parser___ReduceAction247___init "new ReduceAction247 parser::ReduceAction247::init"
+val_t NEW_ReduceAction247_parser___ReduceAction247___init(void);
+typedef val_t (*NEW_ReduceAction247_parser___ReduceAction247___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction248 "init var of ReduceAction248"
+void INIT_ATTRIBUTES__ReduceAction248(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction248_t)(val_t p0);
+val_t NEW_ReduceAction248(void);
+#define LOCATE_CHECKNEW_ReduceAction248 "check new ReduceAction248"
+void CHECKNEW_ReduceAction248(val_t p0);
+typedef void (*CHECKNEW_ReduceAction248_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction248_parser___ReduceAction248___init "new ReduceAction248 parser::ReduceAction248::init"
+val_t NEW_ReduceAction248_parser___ReduceAction248___init(void);
+typedef val_t (*NEW_ReduceAction248_parser___ReduceAction248___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction249 "init var of ReduceAction249"
+void INIT_ATTRIBUTES__ReduceAction249(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction249_t)(val_t p0);
+val_t NEW_ReduceAction249(void);
+#define LOCATE_CHECKNEW_ReduceAction249 "check new ReduceAction249"
+void CHECKNEW_ReduceAction249(val_t p0);
+typedef void (*CHECKNEW_ReduceAction249_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction249_parser___ReduceAction249___init "new ReduceAction249 parser::ReduceAction249::init"
+val_t NEW_ReduceAction249_parser___ReduceAction249___init(void);
+typedef val_t (*NEW_ReduceAction249_parser___ReduceAction249___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction250 "init var of ReduceAction250"
+void INIT_ATTRIBUTES__ReduceAction250(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction250_t)(val_t p0);
+val_t NEW_ReduceAction250(void);
+#define LOCATE_CHECKNEW_ReduceAction250 "check new ReduceAction250"
+void CHECKNEW_ReduceAction250(val_t p0);
+typedef void (*CHECKNEW_ReduceAction250_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction250_parser___ReduceAction250___init "new ReduceAction250 parser::ReduceAction250::init"
+val_t NEW_ReduceAction250_parser___ReduceAction250___init(void);
+typedef val_t (*NEW_ReduceAction250_parser___ReduceAction250___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction251 "init var of ReduceAction251"
+void INIT_ATTRIBUTES__ReduceAction251(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction251_t)(val_t p0);
+val_t NEW_ReduceAction251(void);
+#define LOCATE_CHECKNEW_ReduceAction251 "check new ReduceAction251"
+void CHECKNEW_ReduceAction251(val_t p0);
+typedef void (*CHECKNEW_ReduceAction251_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction251_parser___ReduceAction251___init "new ReduceAction251 parser::ReduceAction251::init"
+val_t NEW_ReduceAction251_parser___ReduceAction251___init(void);
+typedef val_t (*NEW_ReduceAction251_parser___ReduceAction251___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction252 "init var of ReduceAction252"
+void INIT_ATTRIBUTES__ReduceAction252(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction252_t)(val_t p0);
+val_t NEW_ReduceAction252(void);
+#define LOCATE_CHECKNEW_ReduceAction252 "check new ReduceAction252"
+void CHECKNEW_ReduceAction252(val_t p0);
+typedef void (*CHECKNEW_ReduceAction252_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction252_parser___ReduceAction252___init "new ReduceAction252 parser::ReduceAction252::init"
+val_t NEW_ReduceAction252_parser___ReduceAction252___init(void);
+typedef val_t (*NEW_ReduceAction252_parser___ReduceAction252___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction253 "init var of ReduceAction253"
+void INIT_ATTRIBUTES__ReduceAction253(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction253_t)(val_t p0);
+val_t NEW_ReduceAction253(void);
+#define LOCATE_CHECKNEW_ReduceAction253 "check new ReduceAction253"
+void CHECKNEW_ReduceAction253(val_t p0);
+typedef void (*CHECKNEW_ReduceAction253_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction253_parser___ReduceAction253___init "new ReduceAction253 parser::ReduceAction253::init"
+val_t NEW_ReduceAction253_parser___ReduceAction253___init(void);
+typedef val_t (*NEW_ReduceAction253_parser___ReduceAction253___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction254 "init var of ReduceAction254"
+void INIT_ATTRIBUTES__ReduceAction254(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction254_t)(val_t p0);
+val_t NEW_ReduceAction254(void);
+#define LOCATE_CHECKNEW_ReduceAction254 "check new ReduceAction254"
+void CHECKNEW_ReduceAction254(val_t p0);
+typedef void (*CHECKNEW_ReduceAction254_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction254_parser___ReduceAction254___init "new ReduceAction254 parser::ReduceAction254::init"
+val_t NEW_ReduceAction254_parser___ReduceAction254___init(void);
+typedef val_t (*NEW_ReduceAction254_parser___ReduceAction254___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction255 "init var of ReduceAction255"
+void INIT_ATTRIBUTES__ReduceAction255(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction255_t)(val_t p0);
+val_t NEW_ReduceAction255(void);
+#define LOCATE_CHECKNEW_ReduceAction255 "check new ReduceAction255"
+void CHECKNEW_ReduceAction255(val_t p0);
+typedef void (*CHECKNEW_ReduceAction255_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction255_parser___ReduceAction255___init "new ReduceAction255 parser::ReduceAction255::init"
+val_t NEW_ReduceAction255_parser___ReduceAction255___init(void);
+typedef val_t (*NEW_ReduceAction255_parser___ReduceAction255___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction256 "init var of ReduceAction256"
+void INIT_ATTRIBUTES__ReduceAction256(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction256_t)(val_t p0);
+val_t NEW_ReduceAction256(void);
+#define LOCATE_CHECKNEW_ReduceAction256 "check new ReduceAction256"
+void CHECKNEW_ReduceAction256(val_t p0);
+typedef void (*CHECKNEW_ReduceAction256_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction256_parser___ReduceAction256___init "new ReduceAction256 parser::ReduceAction256::init"
+val_t NEW_ReduceAction256_parser___ReduceAction256___init(void);
+typedef val_t (*NEW_ReduceAction256_parser___ReduceAction256___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction257 "init var of ReduceAction257"
+void INIT_ATTRIBUTES__ReduceAction257(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction257_t)(val_t p0);
+val_t NEW_ReduceAction257(void);
+#define LOCATE_CHECKNEW_ReduceAction257 "check new ReduceAction257"
+void CHECKNEW_ReduceAction257(val_t p0);
+typedef void (*CHECKNEW_ReduceAction257_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction257_parser___ReduceAction257___init "new ReduceAction257 parser::ReduceAction257::init"
+val_t NEW_ReduceAction257_parser___ReduceAction257___init(void);
+typedef val_t (*NEW_ReduceAction257_parser___ReduceAction257___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction258 "init var of ReduceAction258"
+void INIT_ATTRIBUTES__ReduceAction258(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction258_t)(val_t p0);
+val_t NEW_ReduceAction258(void);
+#define LOCATE_CHECKNEW_ReduceAction258 "check new ReduceAction258"
+void CHECKNEW_ReduceAction258(val_t p0);
+typedef void (*CHECKNEW_ReduceAction258_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction258_parser___ReduceAction258___init "new ReduceAction258 parser::ReduceAction258::init"
+val_t NEW_ReduceAction258_parser___ReduceAction258___init(void);
+typedef val_t (*NEW_ReduceAction258_parser___ReduceAction258___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction259 "init var of ReduceAction259"
+void INIT_ATTRIBUTES__ReduceAction259(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction259_t)(val_t p0);
+val_t NEW_ReduceAction259(void);
+#define LOCATE_CHECKNEW_ReduceAction259 "check new ReduceAction259"
+void CHECKNEW_ReduceAction259(val_t p0);
+typedef void (*CHECKNEW_ReduceAction259_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction259_parser___ReduceAction259___init "new ReduceAction259 parser::ReduceAction259::init"
+val_t NEW_ReduceAction259_parser___ReduceAction259___init(void);
+typedef val_t (*NEW_ReduceAction259_parser___ReduceAction259___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction260 "init var of ReduceAction260"
+void INIT_ATTRIBUTES__ReduceAction260(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction260_t)(val_t p0);
+val_t NEW_ReduceAction260(void);
+#define LOCATE_CHECKNEW_ReduceAction260 "check new ReduceAction260"
+void CHECKNEW_ReduceAction260(val_t p0);
+typedef void (*CHECKNEW_ReduceAction260_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction260_parser___ReduceAction260___init "new ReduceAction260 parser::ReduceAction260::init"
+val_t NEW_ReduceAction260_parser___ReduceAction260___init(void);
+typedef val_t (*NEW_ReduceAction260_parser___ReduceAction260___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction261 "init var of ReduceAction261"
+void INIT_ATTRIBUTES__ReduceAction261(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction261_t)(val_t p0);
+val_t NEW_ReduceAction261(void);
+#define LOCATE_CHECKNEW_ReduceAction261 "check new ReduceAction261"
+void CHECKNEW_ReduceAction261(val_t p0);
+typedef void (*CHECKNEW_ReduceAction261_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction261_parser___ReduceAction261___init "new ReduceAction261 parser::ReduceAction261::init"
+val_t NEW_ReduceAction261_parser___ReduceAction261___init(void);
+typedef val_t (*NEW_ReduceAction261_parser___ReduceAction261___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction262 "init var of ReduceAction262"
+void INIT_ATTRIBUTES__ReduceAction262(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction262_t)(val_t p0);
+val_t NEW_ReduceAction262(void);
+#define LOCATE_CHECKNEW_ReduceAction262 "check new ReduceAction262"
+void CHECKNEW_ReduceAction262(val_t p0);
+typedef void (*CHECKNEW_ReduceAction262_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction262_parser___ReduceAction262___init "new ReduceAction262 parser::ReduceAction262::init"
+val_t NEW_ReduceAction262_parser___ReduceAction262___init(void);
+typedef val_t (*NEW_ReduceAction262_parser___ReduceAction262___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction263 "init var of ReduceAction263"
+void INIT_ATTRIBUTES__ReduceAction263(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction263_t)(val_t p0);
+val_t NEW_ReduceAction263(void);
+#define LOCATE_CHECKNEW_ReduceAction263 "check new ReduceAction263"
+void CHECKNEW_ReduceAction263(val_t p0);
+typedef void (*CHECKNEW_ReduceAction263_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction263_parser___ReduceAction263___init "new ReduceAction263 parser::ReduceAction263::init"
+val_t NEW_ReduceAction263_parser___ReduceAction263___init(void);
+typedef val_t (*NEW_ReduceAction263_parser___ReduceAction263___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction264 "init var of ReduceAction264"
+void INIT_ATTRIBUTES__ReduceAction264(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction264_t)(val_t p0);
+val_t NEW_ReduceAction264(void);
+#define LOCATE_CHECKNEW_ReduceAction264 "check new ReduceAction264"
+void CHECKNEW_ReduceAction264(val_t p0);
+typedef void (*CHECKNEW_ReduceAction264_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction264_parser___ReduceAction264___init "new ReduceAction264 parser::ReduceAction264::init"
+val_t NEW_ReduceAction264_parser___ReduceAction264___init(void);
+typedef val_t (*NEW_ReduceAction264_parser___ReduceAction264___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction265 "init var of ReduceAction265"
+void INIT_ATTRIBUTES__ReduceAction265(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction265_t)(val_t p0);
+val_t NEW_ReduceAction265(void);
+#define LOCATE_CHECKNEW_ReduceAction265 "check new ReduceAction265"
+void CHECKNEW_ReduceAction265(val_t p0);
+typedef void (*CHECKNEW_ReduceAction265_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction265_parser___ReduceAction265___init "new ReduceAction265 parser::ReduceAction265::init"
+val_t NEW_ReduceAction265_parser___ReduceAction265___init(void);
+typedef val_t (*NEW_ReduceAction265_parser___ReduceAction265___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction266 "init var of ReduceAction266"
+void INIT_ATTRIBUTES__ReduceAction266(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction266_t)(val_t p0);
+val_t NEW_ReduceAction266(void);
+#define LOCATE_CHECKNEW_ReduceAction266 "check new ReduceAction266"
+void CHECKNEW_ReduceAction266(val_t p0);
+typedef void (*CHECKNEW_ReduceAction266_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction266_parser___ReduceAction266___init "new ReduceAction266 parser::ReduceAction266::init"
+val_t NEW_ReduceAction266_parser___ReduceAction266___init(void);
+typedef val_t (*NEW_ReduceAction266_parser___ReduceAction266___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction267 "init var of ReduceAction267"
+void INIT_ATTRIBUTES__ReduceAction267(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction267_t)(val_t p0);
+val_t NEW_ReduceAction267(void);
+#define LOCATE_CHECKNEW_ReduceAction267 "check new ReduceAction267"
+void CHECKNEW_ReduceAction267(val_t p0);
+typedef void (*CHECKNEW_ReduceAction267_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction267_parser___ReduceAction267___init "new ReduceAction267 parser::ReduceAction267::init"
+val_t NEW_ReduceAction267_parser___ReduceAction267___init(void);
+typedef val_t (*NEW_ReduceAction267_parser___ReduceAction267___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction268 "init var of ReduceAction268"
+void INIT_ATTRIBUTES__ReduceAction268(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction268_t)(val_t p0);
+val_t NEW_ReduceAction268(void);
+#define LOCATE_CHECKNEW_ReduceAction268 "check new ReduceAction268"
+void CHECKNEW_ReduceAction268(val_t p0);
+typedef void (*CHECKNEW_ReduceAction268_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction268_parser___ReduceAction268___init "new ReduceAction268 parser::ReduceAction268::init"
+val_t NEW_ReduceAction268_parser___ReduceAction268___init(void);
+typedef val_t (*NEW_ReduceAction268_parser___ReduceAction268___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction269 "init var of ReduceAction269"
+void INIT_ATTRIBUTES__ReduceAction269(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction269_t)(val_t p0);
+val_t NEW_ReduceAction269(void);
+#define LOCATE_CHECKNEW_ReduceAction269 "check new ReduceAction269"
+void CHECKNEW_ReduceAction269(val_t p0);
+typedef void (*CHECKNEW_ReduceAction269_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction269_parser___ReduceAction269___init "new ReduceAction269 parser::ReduceAction269::init"
+val_t NEW_ReduceAction269_parser___ReduceAction269___init(void);
+typedef val_t (*NEW_ReduceAction269_parser___ReduceAction269___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction270 "init var of ReduceAction270"
+void INIT_ATTRIBUTES__ReduceAction270(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction270_t)(val_t p0);
+val_t NEW_ReduceAction270(void);
+#define LOCATE_CHECKNEW_ReduceAction270 "check new ReduceAction270"
+void CHECKNEW_ReduceAction270(val_t p0);
+typedef void (*CHECKNEW_ReduceAction270_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction270_parser___ReduceAction270___init "new ReduceAction270 parser::ReduceAction270::init"
+val_t NEW_ReduceAction270_parser___ReduceAction270___init(void);
+typedef val_t (*NEW_ReduceAction270_parser___ReduceAction270___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction271 "init var of ReduceAction271"
+void INIT_ATTRIBUTES__ReduceAction271(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction271_t)(val_t p0);
+val_t NEW_ReduceAction271(void);
+#define LOCATE_CHECKNEW_ReduceAction271 "check new ReduceAction271"
+void CHECKNEW_ReduceAction271(val_t p0);
+typedef void (*CHECKNEW_ReduceAction271_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction271_parser___ReduceAction271___init "new ReduceAction271 parser::ReduceAction271::init"
+val_t NEW_ReduceAction271_parser___ReduceAction271___init(void);
+typedef val_t (*NEW_ReduceAction271_parser___ReduceAction271___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction272 "init var of ReduceAction272"
+void INIT_ATTRIBUTES__ReduceAction272(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction272_t)(val_t p0);
+val_t NEW_ReduceAction272(void);
+#define LOCATE_CHECKNEW_ReduceAction272 "check new ReduceAction272"
+void CHECKNEW_ReduceAction272(val_t p0);
+typedef void (*CHECKNEW_ReduceAction272_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction272_parser___ReduceAction272___init "new ReduceAction272 parser::ReduceAction272::init"
+val_t NEW_ReduceAction272_parser___ReduceAction272___init(void);
+typedef val_t (*NEW_ReduceAction272_parser___ReduceAction272___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction273 "init var of ReduceAction273"
+void INIT_ATTRIBUTES__ReduceAction273(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction273_t)(val_t p0);
+val_t NEW_ReduceAction273(void);
+#define LOCATE_CHECKNEW_ReduceAction273 "check new ReduceAction273"
+void CHECKNEW_ReduceAction273(val_t p0);
+typedef void (*CHECKNEW_ReduceAction273_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction273_parser___ReduceAction273___init "new ReduceAction273 parser::ReduceAction273::init"
+val_t NEW_ReduceAction273_parser___ReduceAction273___init(void);
+typedef val_t (*NEW_ReduceAction273_parser___ReduceAction273___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction274 "init var of ReduceAction274"
+void INIT_ATTRIBUTES__ReduceAction274(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction274_t)(val_t p0);
+val_t NEW_ReduceAction274(void);
+#define LOCATE_CHECKNEW_ReduceAction274 "check new ReduceAction274"
+void CHECKNEW_ReduceAction274(val_t p0);
+typedef void (*CHECKNEW_ReduceAction274_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction274_parser___ReduceAction274___init "new ReduceAction274 parser::ReduceAction274::init"
+val_t NEW_ReduceAction274_parser___ReduceAction274___init(void);
+typedef val_t (*NEW_ReduceAction274_parser___ReduceAction274___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction275 "init var of ReduceAction275"
+void INIT_ATTRIBUTES__ReduceAction275(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction275_t)(val_t p0);
+val_t NEW_ReduceAction275(void);
+#define LOCATE_CHECKNEW_ReduceAction275 "check new ReduceAction275"
+void CHECKNEW_ReduceAction275(val_t p0);
+typedef void (*CHECKNEW_ReduceAction275_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction275_parser___ReduceAction275___init "new ReduceAction275 parser::ReduceAction275::init"
+val_t NEW_ReduceAction275_parser___ReduceAction275___init(void);
+typedef val_t (*NEW_ReduceAction275_parser___ReduceAction275___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction276 "init var of ReduceAction276"
+void INIT_ATTRIBUTES__ReduceAction276(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction276_t)(val_t p0);
+val_t NEW_ReduceAction276(void);
+#define LOCATE_CHECKNEW_ReduceAction276 "check new ReduceAction276"
+void CHECKNEW_ReduceAction276(val_t p0);
+typedef void (*CHECKNEW_ReduceAction276_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction276_parser___ReduceAction276___init "new ReduceAction276 parser::ReduceAction276::init"
+val_t NEW_ReduceAction276_parser___ReduceAction276___init(void);
+typedef val_t (*NEW_ReduceAction276_parser___ReduceAction276___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction277 "init var of ReduceAction277"
+void INIT_ATTRIBUTES__ReduceAction277(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction277_t)(val_t p0);
+val_t NEW_ReduceAction277(void);
+#define LOCATE_CHECKNEW_ReduceAction277 "check new ReduceAction277"
+void CHECKNEW_ReduceAction277(val_t p0);
+typedef void (*CHECKNEW_ReduceAction277_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction277_parser___ReduceAction277___init "new ReduceAction277 parser::ReduceAction277::init"
+val_t NEW_ReduceAction277_parser___ReduceAction277___init(void);
+typedef val_t (*NEW_ReduceAction277_parser___ReduceAction277___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction278 "init var of ReduceAction278"
+void INIT_ATTRIBUTES__ReduceAction278(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction278_t)(val_t p0);
+val_t NEW_ReduceAction278(void);
+#define LOCATE_CHECKNEW_ReduceAction278 "check new ReduceAction278"
+void CHECKNEW_ReduceAction278(val_t p0);
+typedef void (*CHECKNEW_ReduceAction278_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction278_parser___ReduceAction278___init "new ReduceAction278 parser::ReduceAction278::init"
+val_t NEW_ReduceAction278_parser___ReduceAction278___init(void);
+typedef val_t (*NEW_ReduceAction278_parser___ReduceAction278___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction279 "init var of ReduceAction279"
+void INIT_ATTRIBUTES__ReduceAction279(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction279_t)(val_t p0);
+val_t NEW_ReduceAction279(void);
+#define LOCATE_CHECKNEW_ReduceAction279 "check new ReduceAction279"
+void CHECKNEW_ReduceAction279(val_t p0);
+typedef void (*CHECKNEW_ReduceAction279_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction279_parser___ReduceAction279___init "new ReduceAction279 parser::ReduceAction279::init"
+val_t NEW_ReduceAction279_parser___ReduceAction279___init(void);
+typedef val_t (*NEW_ReduceAction279_parser___ReduceAction279___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction280 "init var of ReduceAction280"
+void INIT_ATTRIBUTES__ReduceAction280(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction280_t)(val_t p0);
+val_t NEW_ReduceAction280(void);
+#define LOCATE_CHECKNEW_ReduceAction280 "check new ReduceAction280"
+void CHECKNEW_ReduceAction280(val_t p0);
+typedef void (*CHECKNEW_ReduceAction280_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction280_parser___ReduceAction280___init "new ReduceAction280 parser::ReduceAction280::init"
+val_t NEW_ReduceAction280_parser___ReduceAction280___init(void);
+typedef val_t (*NEW_ReduceAction280_parser___ReduceAction280___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction281 "init var of ReduceAction281"
+void INIT_ATTRIBUTES__ReduceAction281(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction281_t)(val_t p0);
+val_t NEW_ReduceAction281(void);
+#define LOCATE_CHECKNEW_ReduceAction281 "check new ReduceAction281"
+void CHECKNEW_ReduceAction281(val_t p0);
+typedef void (*CHECKNEW_ReduceAction281_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction281_parser___ReduceAction281___init "new ReduceAction281 parser::ReduceAction281::init"
+val_t NEW_ReduceAction281_parser___ReduceAction281___init(void);
+typedef val_t (*NEW_ReduceAction281_parser___ReduceAction281___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction282 "init var of ReduceAction282"
+void INIT_ATTRIBUTES__ReduceAction282(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction282_t)(val_t p0);
+val_t NEW_ReduceAction282(void);
+#define LOCATE_CHECKNEW_ReduceAction282 "check new ReduceAction282"
+void CHECKNEW_ReduceAction282(val_t p0);
+typedef void (*CHECKNEW_ReduceAction282_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction282_parser___ReduceAction282___init "new ReduceAction282 parser::ReduceAction282::init"
+val_t NEW_ReduceAction282_parser___ReduceAction282___init(void);
+typedef val_t (*NEW_ReduceAction282_parser___ReduceAction282___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction283 "init var of ReduceAction283"
+void INIT_ATTRIBUTES__ReduceAction283(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction283_t)(val_t p0);
+val_t NEW_ReduceAction283(void);
+#define LOCATE_CHECKNEW_ReduceAction283 "check new ReduceAction283"
+void CHECKNEW_ReduceAction283(val_t p0);
+typedef void (*CHECKNEW_ReduceAction283_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction283_parser___ReduceAction283___init "new ReduceAction283 parser::ReduceAction283::init"
+val_t NEW_ReduceAction283_parser___ReduceAction283___init(void);
+typedef val_t (*NEW_ReduceAction283_parser___ReduceAction283___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction284 "init var of ReduceAction284"
+void INIT_ATTRIBUTES__ReduceAction284(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction284_t)(val_t p0);
+val_t NEW_ReduceAction284(void);
+#define LOCATE_CHECKNEW_ReduceAction284 "check new ReduceAction284"
+void CHECKNEW_ReduceAction284(val_t p0);
+typedef void (*CHECKNEW_ReduceAction284_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction284_parser___ReduceAction284___init "new ReduceAction284 parser::ReduceAction284::init"
+val_t NEW_ReduceAction284_parser___ReduceAction284___init(void);
+typedef val_t (*NEW_ReduceAction284_parser___ReduceAction284___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction285 "init var of ReduceAction285"
+void INIT_ATTRIBUTES__ReduceAction285(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction285_t)(val_t p0);
+val_t NEW_ReduceAction285(void);
+#define LOCATE_CHECKNEW_ReduceAction285 "check new ReduceAction285"
+void CHECKNEW_ReduceAction285(val_t p0);
+typedef void (*CHECKNEW_ReduceAction285_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction285_parser___ReduceAction285___init "new ReduceAction285 parser::ReduceAction285::init"
+val_t NEW_ReduceAction285_parser___ReduceAction285___init(void);
+typedef val_t (*NEW_ReduceAction285_parser___ReduceAction285___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction286 "init var of ReduceAction286"
+void INIT_ATTRIBUTES__ReduceAction286(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction286_t)(val_t p0);
+val_t NEW_ReduceAction286(void);
+#define LOCATE_CHECKNEW_ReduceAction286 "check new ReduceAction286"
+void CHECKNEW_ReduceAction286(val_t p0);
+typedef void (*CHECKNEW_ReduceAction286_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction286_parser___ReduceAction286___init "new ReduceAction286 parser::ReduceAction286::init"
+val_t NEW_ReduceAction286_parser___ReduceAction286___init(void);
+typedef val_t (*NEW_ReduceAction286_parser___ReduceAction286___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction287 "init var of ReduceAction287"
+void INIT_ATTRIBUTES__ReduceAction287(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction287_t)(val_t p0);
+val_t NEW_ReduceAction287(void);
+#define LOCATE_CHECKNEW_ReduceAction287 "check new ReduceAction287"
+void CHECKNEW_ReduceAction287(val_t p0);
+typedef void (*CHECKNEW_ReduceAction287_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction287_parser___ReduceAction287___init "new ReduceAction287 parser::ReduceAction287::init"
+val_t NEW_ReduceAction287_parser___ReduceAction287___init(void);
+typedef val_t (*NEW_ReduceAction287_parser___ReduceAction287___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction288 "init var of ReduceAction288"
+void INIT_ATTRIBUTES__ReduceAction288(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction288_t)(val_t p0);
+val_t NEW_ReduceAction288(void);
+#define LOCATE_CHECKNEW_ReduceAction288 "check new ReduceAction288"
+void CHECKNEW_ReduceAction288(val_t p0);
+typedef void (*CHECKNEW_ReduceAction288_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction288_parser___ReduceAction288___init "new ReduceAction288 parser::ReduceAction288::init"
+val_t NEW_ReduceAction288_parser___ReduceAction288___init(void);
+typedef val_t (*NEW_ReduceAction288_parser___ReduceAction288___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction289 "init var of ReduceAction289"
+void INIT_ATTRIBUTES__ReduceAction289(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction289_t)(val_t p0);
+val_t NEW_ReduceAction289(void);
+#define LOCATE_CHECKNEW_ReduceAction289 "check new ReduceAction289"
+void CHECKNEW_ReduceAction289(val_t p0);
+typedef void (*CHECKNEW_ReduceAction289_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction289_parser___ReduceAction289___init "new ReduceAction289 parser::ReduceAction289::init"
+val_t NEW_ReduceAction289_parser___ReduceAction289___init(void);
+typedef val_t (*NEW_ReduceAction289_parser___ReduceAction289___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction290 "init var of ReduceAction290"
+void INIT_ATTRIBUTES__ReduceAction290(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction290_t)(val_t p0);
+val_t NEW_ReduceAction290(void);
+#define LOCATE_CHECKNEW_ReduceAction290 "check new ReduceAction290"
+void CHECKNEW_ReduceAction290(val_t p0);
+typedef void (*CHECKNEW_ReduceAction290_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction290_parser___ReduceAction290___init "new ReduceAction290 parser::ReduceAction290::init"
+val_t NEW_ReduceAction290_parser___ReduceAction290___init(void);
+typedef val_t (*NEW_ReduceAction290_parser___ReduceAction290___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction291 "init var of ReduceAction291"
+void INIT_ATTRIBUTES__ReduceAction291(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction291_t)(val_t p0);
+val_t NEW_ReduceAction291(void);
+#define LOCATE_CHECKNEW_ReduceAction291 "check new ReduceAction291"
+void CHECKNEW_ReduceAction291(val_t p0);
+typedef void (*CHECKNEW_ReduceAction291_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction291_parser___ReduceAction291___init "new ReduceAction291 parser::ReduceAction291::init"
+val_t NEW_ReduceAction291_parser___ReduceAction291___init(void);
+typedef val_t (*NEW_ReduceAction291_parser___ReduceAction291___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction292 "init var of ReduceAction292"
+void INIT_ATTRIBUTES__ReduceAction292(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction292_t)(val_t p0);
+val_t NEW_ReduceAction292(void);
+#define LOCATE_CHECKNEW_ReduceAction292 "check new ReduceAction292"
+void CHECKNEW_ReduceAction292(val_t p0);
+typedef void (*CHECKNEW_ReduceAction292_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction292_parser___ReduceAction292___init "new ReduceAction292 parser::ReduceAction292::init"
+val_t NEW_ReduceAction292_parser___ReduceAction292___init(void);
+typedef val_t (*NEW_ReduceAction292_parser___ReduceAction292___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction293 "init var of ReduceAction293"
+void INIT_ATTRIBUTES__ReduceAction293(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction293_t)(val_t p0);
+val_t NEW_ReduceAction293(void);
+#define LOCATE_CHECKNEW_ReduceAction293 "check new ReduceAction293"
+void CHECKNEW_ReduceAction293(val_t p0);
+typedef void (*CHECKNEW_ReduceAction293_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction293_parser___ReduceAction293___init "new ReduceAction293 parser::ReduceAction293::init"
+val_t NEW_ReduceAction293_parser___ReduceAction293___init(void);
+typedef val_t (*NEW_ReduceAction293_parser___ReduceAction293___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction294 "init var of ReduceAction294"
+void INIT_ATTRIBUTES__ReduceAction294(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction294_t)(val_t p0);
+val_t NEW_ReduceAction294(void);
+#define LOCATE_CHECKNEW_ReduceAction294 "check new ReduceAction294"
+void CHECKNEW_ReduceAction294(val_t p0);
+typedef void (*CHECKNEW_ReduceAction294_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction294_parser___ReduceAction294___init "new ReduceAction294 parser::ReduceAction294::init"
+val_t NEW_ReduceAction294_parser___ReduceAction294___init(void);
+typedef val_t (*NEW_ReduceAction294_parser___ReduceAction294___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction295 "init var of ReduceAction295"
+void INIT_ATTRIBUTES__ReduceAction295(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction295_t)(val_t p0);
+val_t NEW_ReduceAction295(void);
+#define LOCATE_CHECKNEW_ReduceAction295 "check new ReduceAction295"
+void CHECKNEW_ReduceAction295(val_t p0);
+typedef void (*CHECKNEW_ReduceAction295_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction295_parser___ReduceAction295___init "new ReduceAction295 parser::ReduceAction295::init"
+val_t NEW_ReduceAction295_parser___ReduceAction295___init(void);
+typedef val_t (*NEW_ReduceAction295_parser___ReduceAction295___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction296 "init var of ReduceAction296"
+void INIT_ATTRIBUTES__ReduceAction296(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction296_t)(val_t p0);
+val_t NEW_ReduceAction296(void);
+#define LOCATE_CHECKNEW_ReduceAction296 "check new ReduceAction296"
+void CHECKNEW_ReduceAction296(val_t p0);
+typedef void (*CHECKNEW_ReduceAction296_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction296_parser___ReduceAction296___init "new ReduceAction296 parser::ReduceAction296::init"
+val_t NEW_ReduceAction296_parser___ReduceAction296___init(void);
+typedef val_t (*NEW_ReduceAction296_parser___ReduceAction296___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction297 "init var of ReduceAction297"
+void INIT_ATTRIBUTES__ReduceAction297(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction297_t)(val_t p0);
+val_t NEW_ReduceAction297(void);
+#define LOCATE_CHECKNEW_ReduceAction297 "check new ReduceAction297"
+void CHECKNEW_ReduceAction297(val_t p0);
+typedef void (*CHECKNEW_ReduceAction297_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction297_parser___ReduceAction297___init "new ReduceAction297 parser::ReduceAction297::init"
+val_t NEW_ReduceAction297_parser___ReduceAction297___init(void);
+typedef val_t (*NEW_ReduceAction297_parser___ReduceAction297___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction298 "init var of ReduceAction298"
+void INIT_ATTRIBUTES__ReduceAction298(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction298_t)(val_t p0);
+val_t NEW_ReduceAction298(void);
+#define LOCATE_CHECKNEW_ReduceAction298 "check new ReduceAction298"
+void CHECKNEW_ReduceAction298(val_t p0);
+typedef void (*CHECKNEW_ReduceAction298_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction298_parser___ReduceAction298___init "new ReduceAction298 parser::ReduceAction298::init"
+val_t NEW_ReduceAction298_parser___ReduceAction298___init(void);
+typedef val_t (*NEW_ReduceAction298_parser___ReduceAction298___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction299 "init var of ReduceAction299"
+void INIT_ATTRIBUTES__ReduceAction299(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction299_t)(val_t p0);
+val_t NEW_ReduceAction299(void);
+#define LOCATE_CHECKNEW_ReduceAction299 "check new ReduceAction299"
+void CHECKNEW_ReduceAction299(val_t p0);
+typedef void (*CHECKNEW_ReduceAction299_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction299_parser___ReduceAction299___init "new ReduceAction299 parser::ReduceAction299::init"
+val_t NEW_ReduceAction299_parser___ReduceAction299___init(void);
+typedef val_t (*NEW_ReduceAction299_parser___ReduceAction299___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction300 "init var of ReduceAction300"
+void INIT_ATTRIBUTES__ReduceAction300(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction300_t)(val_t p0);
+val_t NEW_ReduceAction300(void);
+#define LOCATE_CHECKNEW_ReduceAction300 "check new ReduceAction300"
+void CHECKNEW_ReduceAction300(val_t p0);
+typedef void (*CHECKNEW_ReduceAction300_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction300_parser___ReduceAction300___init "new ReduceAction300 parser::ReduceAction300::init"
+val_t NEW_ReduceAction300_parser___ReduceAction300___init(void);
+typedef val_t (*NEW_ReduceAction300_parser___ReduceAction300___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction301 "init var of ReduceAction301"
+void INIT_ATTRIBUTES__ReduceAction301(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction301_t)(val_t p0);
+val_t NEW_ReduceAction301(void);
+#define LOCATE_CHECKNEW_ReduceAction301 "check new ReduceAction301"
+void CHECKNEW_ReduceAction301(val_t p0);
+typedef void (*CHECKNEW_ReduceAction301_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction301_parser___ReduceAction301___init "new ReduceAction301 parser::ReduceAction301::init"
+val_t NEW_ReduceAction301_parser___ReduceAction301___init(void);
+typedef val_t (*NEW_ReduceAction301_parser___ReduceAction301___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction302 "init var of ReduceAction302"
+void INIT_ATTRIBUTES__ReduceAction302(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction302_t)(val_t p0);
+val_t NEW_ReduceAction302(void);
+#define LOCATE_CHECKNEW_ReduceAction302 "check new ReduceAction302"
+void CHECKNEW_ReduceAction302(val_t p0);
+typedef void (*CHECKNEW_ReduceAction302_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction302_parser___ReduceAction302___init "new ReduceAction302 parser::ReduceAction302::init"
+val_t NEW_ReduceAction302_parser___ReduceAction302___init(void);
+typedef val_t (*NEW_ReduceAction302_parser___ReduceAction302___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction303 "init var of ReduceAction303"
+void INIT_ATTRIBUTES__ReduceAction303(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction303_t)(val_t p0);
+val_t NEW_ReduceAction303(void);
+#define LOCATE_CHECKNEW_ReduceAction303 "check new ReduceAction303"
+void CHECKNEW_ReduceAction303(val_t p0);
+typedef void (*CHECKNEW_ReduceAction303_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction303_parser___ReduceAction303___init "new ReduceAction303 parser::ReduceAction303::init"
+val_t NEW_ReduceAction303_parser___ReduceAction303___init(void);
+typedef val_t (*NEW_ReduceAction303_parser___ReduceAction303___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction304 "init var of ReduceAction304"
+void INIT_ATTRIBUTES__ReduceAction304(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction304_t)(val_t p0);
+val_t NEW_ReduceAction304(void);
+#define LOCATE_CHECKNEW_ReduceAction304 "check new ReduceAction304"
+void CHECKNEW_ReduceAction304(val_t p0);
+typedef void (*CHECKNEW_ReduceAction304_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction304_parser___ReduceAction304___init "new ReduceAction304 parser::ReduceAction304::init"
+val_t NEW_ReduceAction304_parser___ReduceAction304___init(void);
+typedef val_t (*NEW_ReduceAction304_parser___ReduceAction304___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction305 "init var of ReduceAction305"
+void INIT_ATTRIBUTES__ReduceAction305(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction305_t)(val_t p0);
+val_t NEW_ReduceAction305(void);
+#define LOCATE_CHECKNEW_ReduceAction305 "check new ReduceAction305"
+void CHECKNEW_ReduceAction305(val_t p0);
+typedef void (*CHECKNEW_ReduceAction305_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction305_parser___ReduceAction305___init "new ReduceAction305 parser::ReduceAction305::init"
+val_t NEW_ReduceAction305_parser___ReduceAction305___init(void);
+typedef val_t (*NEW_ReduceAction305_parser___ReduceAction305___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction306 "init var of ReduceAction306"
+void INIT_ATTRIBUTES__ReduceAction306(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction306_t)(val_t p0);
+val_t NEW_ReduceAction306(void);
+#define LOCATE_CHECKNEW_ReduceAction306 "check new ReduceAction306"
+void CHECKNEW_ReduceAction306(val_t p0);
+typedef void (*CHECKNEW_ReduceAction306_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction306_parser___ReduceAction306___init "new ReduceAction306 parser::ReduceAction306::init"
+val_t NEW_ReduceAction306_parser___ReduceAction306___init(void);
+typedef val_t (*NEW_ReduceAction306_parser___ReduceAction306___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction307 "init var of ReduceAction307"
+void INIT_ATTRIBUTES__ReduceAction307(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction307_t)(val_t p0);
+val_t NEW_ReduceAction307(void);
+#define LOCATE_CHECKNEW_ReduceAction307 "check new ReduceAction307"
+void CHECKNEW_ReduceAction307(val_t p0);
+typedef void (*CHECKNEW_ReduceAction307_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction307_parser___ReduceAction307___init "new ReduceAction307 parser::ReduceAction307::init"
+val_t NEW_ReduceAction307_parser___ReduceAction307___init(void);
+typedef val_t (*NEW_ReduceAction307_parser___ReduceAction307___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction308 "init var of ReduceAction308"
+void INIT_ATTRIBUTES__ReduceAction308(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction308_t)(val_t p0);
+val_t NEW_ReduceAction308(void);
+#define LOCATE_CHECKNEW_ReduceAction308 "check new ReduceAction308"
+void CHECKNEW_ReduceAction308(val_t p0);
+typedef void (*CHECKNEW_ReduceAction308_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction308_parser___ReduceAction308___init "new ReduceAction308 parser::ReduceAction308::init"
+val_t NEW_ReduceAction308_parser___ReduceAction308___init(void);
+typedef val_t (*NEW_ReduceAction308_parser___ReduceAction308___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction309 "init var of ReduceAction309"
+void INIT_ATTRIBUTES__ReduceAction309(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction309_t)(val_t p0);
+val_t NEW_ReduceAction309(void);
+#define LOCATE_CHECKNEW_ReduceAction309 "check new ReduceAction309"
+void CHECKNEW_ReduceAction309(val_t p0);
+typedef void (*CHECKNEW_ReduceAction309_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction309_parser___ReduceAction309___init "new ReduceAction309 parser::ReduceAction309::init"
+val_t NEW_ReduceAction309_parser___ReduceAction309___init(void);
+typedef val_t (*NEW_ReduceAction309_parser___ReduceAction309___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction310 "init var of ReduceAction310"
+void INIT_ATTRIBUTES__ReduceAction310(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction310_t)(val_t p0);
+val_t NEW_ReduceAction310(void);
+#define LOCATE_CHECKNEW_ReduceAction310 "check new ReduceAction310"
+void CHECKNEW_ReduceAction310(val_t p0);
+typedef void (*CHECKNEW_ReduceAction310_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction310_parser___ReduceAction310___init "new ReduceAction310 parser::ReduceAction310::init"
+val_t NEW_ReduceAction310_parser___ReduceAction310___init(void);
+typedef val_t (*NEW_ReduceAction310_parser___ReduceAction310___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction311 "init var of ReduceAction311"
+void INIT_ATTRIBUTES__ReduceAction311(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction311_t)(val_t p0);
+val_t NEW_ReduceAction311(void);
+#define LOCATE_CHECKNEW_ReduceAction311 "check new ReduceAction311"
+void CHECKNEW_ReduceAction311(val_t p0);
+typedef void (*CHECKNEW_ReduceAction311_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction311_parser___ReduceAction311___init "new ReduceAction311 parser::ReduceAction311::init"
+val_t NEW_ReduceAction311_parser___ReduceAction311___init(void);
+typedef val_t (*NEW_ReduceAction311_parser___ReduceAction311___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction312 "init var of ReduceAction312"
+void INIT_ATTRIBUTES__ReduceAction312(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction312_t)(val_t p0);
+val_t NEW_ReduceAction312(void);
+#define LOCATE_CHECKNEW_ReduceAction312 "check new ReduceAction312"
+void CHECKNEW_ReduceAction312(val_t p0);
+typedef void (*CHECKNEW_ReduceAction312_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction312_parser___ReduceAction312___init "new ReduceAction312 parser::ReduceAction312::init"
+val_t NEW_ReduceAction312_parser___ReduceAction312___init(void);
+typedef val_t (*NEW_ReduceAction312_parser___ReduceAction312___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction313 "init var of ReduceAction313"
+void INIT_ATTRIBUTES__ReduceAction313(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction313_t)(val_t p0);
+val_t NEW_ReduceAction313(void);
+#define LOCATE_CHECKNEW_ReduceAction313 "check new ReduceAction313"
+void CHECKNEW_ReduceAction313(val_t p0);
+typedef void (*CHECKNEW_ReduceAction313_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction313_parser___ReduceAction313___init "new ReduceAction313 parser::ReduceAction313::init"
+val_t NEW_ReduceAction313_parser___ReduceAction313___init(void);
+typedef val_t (*NEW_ReduceAction313_parser___ReduceAction313___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction314 "init var of ReduceAction314"
+void INIT_ATTRIBUTES__ReduceAction314(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction314_t)(val_t p0);
+val_t NEW_ReduceAction314(void);
+#define LOCATE_CHECKNEW_ReduceAction314 "check new ReduceAction314"
+void CHECKNEW_ReduceAction314(val_t p0);
+typedef void (*CHECKNEW_ReduceAction314_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction314_parser___ReduceAction314___init "new ReduceAction314 parser::ReduceAction314::init"
+val_t NEW_ReduceAction314_parser___ReduceAction314___init(void);
+typedef val_t (*NEW_ReduceAction314_parser___ReduceAction314___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction315 "init var of ReduceAction315"
+void INIT_ATTRIBUTES__ReduceAction315(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction315_t)(val_t p0);
+val_t NEW_ReduceAction315(void);
+#define LOCATE_CHECKNEW_ReduceAction315 "check new ReduceAction315"
+void CHECKNEW_ReduceAction315(val_t p0);
+typedef void (*CHECKNEW_ReduceAction315_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction315_parser___ReduceAction315___init "new ReduceAction315 parser::ReduceAction315::init"
+val_t NEW_ReduceAction315_parser___ReduceAction315___init(void);
+typedef val_t (*NEW_ReduceAction315_parser___ReduceAction315___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction316 "init var of ReduceAction316"
+void INIT_ATTRIBUTES__ReduceAction316(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction316_t)(val_t p0);
+val_t NEW_ReduceAction316(void);
+#define LOCATE_CHECKNEW_ReduceAction316 "check new ReduceAction316"
+void CHECKNEW_ReduceAction316(val_t p0);
+typedef void (*CHECKNEW_ReduceAction316_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction316_parser___ReduceAction316___init "new ReduceAction316 parser::ReduceAction316::init"
+val_t NEW_ReduceAction316_parser___ReduceAction316___init(void);
+typedef val_t (*NEW_ReduceAction316_parser___ReduceAction316___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction317 "init var of ReduceAction317"
+void INIT_ATTRIBUTES__ReduceAction317(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction317_t)(val_t p0);
+val_t NEW_ReduceAction317(void);
+#define LOCATE_CHECKNEW_ReduceAction317 "check new ReduceAction317"
+void CHECKNEW_ReduceAction317(val_t p0);
+typedef void (*CHECKNEW_ReduceAction317_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction317_parser___ReduceAction317___init "new ReduceAction317 parser::ReduceAction317::init"
+val_t NEW_ReduceAction317_parser___ReduceAction317___init(void);
+typedef val_t (*NEW_ReduceAction317_parser___ReduceAction317___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction318 "init var of ReduceAction318"
+void INIT_ATTRIBUTES__ReduceAction318(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction318_t)(val_t p0);
+val_t NEW_ReduceAction318(void);
+#define LOCATE_CHECKNEW_ReduceAction318 "check new ReduceAction318"
+void CHECKNEW_ReduceAction318(val_t p0);
+typedef void (*CHECKNEW_ReduceAction318_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction318_parser___ReduceAction318___init "new ReduceAction318 parser::ReduceAction318::init"
+val_t NEW_ReduceAction318_parser___ReduceAction318___init(void);
+typedef val_t (*NEW_ReduceAction318_parser___ReduceAction318___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction319 "init var of ReduceAction319"
+void INIT_ATTRIBUTES__ReduceAction319(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction319_t)(val_t p0);
+val_t NEW_ReduceAction319(void);
+#define LOCATE_CHECKNEW_ReduceAction319 "check new ReduceAction319"
+void CHECKNEW_ReduceAction319(val_t p0);
+typedef void (*CHECKNEW_ReduceAction319_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction319_parser___ReduceAction319___init "new ReduceAction319 parser::ReduceAction319::init"
+val_t NEW_ReduceAction319_parser___ReduceAction319___init(void);
+typedef val_t (*NEW_ReduceAction319_parser___ReduceAction319___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction320 "init var of ReduceAction320"
+void INIT_ATTRIBUTES__ReduceAction320(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction320_t)(val_t p0);
+val_t NEW_ReduceAction320(void);
+#define LOCATE_CHECKNEW_ReduceAction320 "check new ReduceAction320"
+void CHECKNEW_ReduceAction320(val_t p0);
+typedef void (*CHECKNEW_ReduceAction320_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction320_parser___ReduceAction320___init "new ReduceAction320 parser::ReduceAction320::init"
+val_t NEW_ReduceAction320_parser___ReduceAction320___init(void);
+typedef val_t (*NEW_ReduceAction320_parser___ReduceAction320___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction321 "init var of ReduceAction321"
+void INIT_ATTRIBUTES__ReduceAction321(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction321_t)(val_t p0);
+val_t NEW_ReduceAction321(void);
+#define LOCATE_CHECKNEW_ReduceAction321 "check new ReduceAction321"
+void CHECKNEW_ReduceAction321(val_t p0);
+typedef void (*CHECKNEW_ReduceAction321_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction321_parser___ReduceAction321___init "new ReduceAction321 parser::ReduceAction321::init"
+val_t NEW_ReduceAction321_parser___ReduceAction321___init(void);
+typedef val_t (*NEW_ReduceAction321_parser___ReduceAction321___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction322 "init var of ReduceAction322"
+void INIT_ATTRIBUTES__ReduceAction322(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction322_t)(val_t p0);
+val_t NEW_ReduceAction322(void);
+#define LOCATE_CHECKNEW_ReduceAction322 "check new ReduceAction322"
+void CHECKNEW_ReduceAction322(val_t p0);
+typedef void (*CHECKNEW_ReduceAction322_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction322_parser___ReduceAction322___init "new ReduceAction322 parser::ReduceAction322::init"
+val_t NEW_ReduceAction322_parser___ReduceAction322___init(void);
+typedef val_t (*NEW_ReduceAction322_parser___ReduceAction322___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction323 "init var of ReduceAction323"
+void INIT_ATTRIBUTES__ReduceAction323(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction323_t)(val_t p0);
+val_t NEW_ReduceAction323(void);
+#define LOCATE_CHECKNEW_ReduceAction323 "check new ReduceAction323"
+void CHECKNEW_ReduceAction323(val_t p0);
+typedef void (*CHECKNEW_ReduceAction323_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction323_parser___ReduceAction323___init "new ReduceAction323 parser::ReduceAction323::init"
+val_t NEW_ReduceAction323_parser___ReduceAction323___init(void);
+typedef val_t (*NEW_ReduceAction323_parser___ReduceAction323___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction324 "init var of ReduceAction324"
+void INIT_ATTRIBUTES__ReduceAction324(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction324_t)(val_t p0);
+val_t NEW_ReduceAction324(void);
+#define LOCATE_CHECKNEW_ReduceAction324 "check new ReduceAction324"
+void CHECKNEW_ReduceAction324(val_t p0);
+typedef void (*CHECKNEW_ReduceAction324_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction324_parser___ReduceAction324___init "new ReduceAction324 parser::ReduceAction324::init"
+val_t NEW_ReduceAction324_parser___ReduceAction324___init(void);
+typedef val_t (*NEW_ReduceAction324_parser___ReduceAction324___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction325 "init var of ReduceAction325"
+void INIT_ATTRIBUTES__ReduceAction325(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction325_t)(val_t p0);
+val_t NEW_ReduceAction325(void);
+#define LOCATE_CHECKNEW_ReduceAction325 "check new ReduceAction325"
+void CHECKNEW_ReduceAction325(val_t p0);
+typedef void (*CHECKNEW_ReduceAction325_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction325_parser___ReduceAction325___init "new ReduceAction325 parser::ReduceAction325::init"
+val_t NEW_ReduceAction325_parser___ReduceAction325___init(void);
+typedef val_t (*NEW_ReduceAction325_parser___ReduceAction325___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction326 "init var of ReduceAction326"
+void INIT_ATTRIBUTES__ReduceAction326(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction326_t)(val_t p0);
+val_t NEW_ReduceAction326(void);
+#define LOCATE_CHECKNEW_ReduceAction326 "check new ReduceAction326"
+void CHECKNEW_ReduceAction326(val_t p0);
+typedef void (*CHECKNEW_ReduceAction326_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction326_parser___ReduceAction326___init "new ReduceAction326 parser::ReduceAction326::init"
+val_t NEW_ReduceAction326_parser___ReduceAction326___init(void);
+typedef val_t (*NEW_ReduceAction326_parser___ReduceAction326___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction327 "init var of ReduceAction327"
+void INIT_ATTRIBUTES__ReduceAction327(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction327_t)(val_t p0);
+val_t NEW_ReduceAction327(void);
+#define LOCATE_CHECKNEW_ReduceAction327 "check new ReduceAction327"
+void CHECKNEW_ReduceAction327(val_t p0);
+typedef void (*CHECKNEW_ReduceAction327_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction327_parser___ReduceAction327___init "new ReduceAction327 parser::ReduceAction327::init"
+val_t NEW_ReduceAction327_parser___ReduceAction327___init(void);
+typedef val_t (*NEW_ReduceAction327_parser___ReduceAction327___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction328 "init var of ReduceAction328"
+void INIT_ATTRIBUTES__ReduceAction328(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction328_t)(val_t p0);
+val_t NEW_ReduceAction328(void);
+#define LOCATE_CHECKNEW_ReduceAction328 "check new ReduceAction328"
+void CHECKNEW_ReduceAction328(val_t p0);
+typedef void (*CHECKNEW_ReduceAction328_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction328_parser___ReduceAction328___init "new ReduceAction328 parser::ReduceAction328::init"
+val_t NEW_ReduceAction328_parser___ReduceAction328___init(void);
+typedef val_t (*NEW_ReduceAction328_parser___ReduceAction328___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction329 "init var of ReduceAction329"
+void INIT_ATTRIBUTES__ReduceAction329(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction329_t)(val_t p0);
+val_t NEW_ReduceAction329(void);
+#define LOCATE_CHECKNEW_ReduceAction329 "check new ReduceAction329"
+void CHECKNEW_ReduceAction329(val_t p0);
+typedef void (*CHECKNEW_ReduceAction329_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction329_parser___ReduceAction329___init "new ReduceAction329 parser::ReduceAction329::init"
+val_t NEW_ReduceAction329_parser___ReduceAction329___init(void);
+typedef val_t (*NEW_ReduceAction329_parser___ReduceAction329___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction330 "init var of ReduceAction330"
+void INIT_ATTRIBUTES__ReduceAction330(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction330_t)(val_t p0);
+val_t NEW_ReduceAction330(void);
+#define LOCATE_CHECKNEW_ReduceAction330 "check new ReduceAction330"
+void CHECKNEW_ReduceAction330(val_t p0);
+typedef void (*CHECKNEW_ReduceAction330_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction330_parser___ReduceAction330___init "new ReduceAction330 parser::ReduceAction330::init"
+val_t NEW_ReduceAction330_parser___ReduceAction330___init(void);
+typedef val_t (*NEW_ReduceAction330_parser___ReduceAction330___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction331 "init var of ReduceAction331"
+void INIT_ATTRIBUTES__ReduceAction331(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction331_t)(val_t p0);
+val_t NEW_ReduceAction331(void);
+#define LOCATE_CHECKNEW_ReduceAction331 "check new ReduceAction331"
+void CHECKNEW_ReduceAction331(val_t p0);
+typedef void (*CHECKNEW_ReduceAction331_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction331_parser___ReduceAction331___init "new ReduceAction331 parser::ReduceAction331::init"
+val_t NEW_ReduceAction331_parser___ReduceAction331___init(void);
+typedef val_t (*NEW_ReduceAction331_parser___ReduceAction331___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction332 "init var of ReduceAction332"
+void INIT_ATTRIBUTES__ReduceAction332(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction332_t)(val_t p0);
+val_t NEW_ReduceAction332(void);
+#define LOCATE_CHECKNEW_ReduceAction332 "check new ReduceAction332"
+void CHECKNEW_ReduceAction332(val_t p0);
+typedef void (*CHECKNEW_ReduceAction332_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction332_parser___ReduceAction332___init "new ReduceAction332 parser::ReduceAction332::init"
+val_t NEW_ReduceAction332_parser___ReduceAction332___init(void);
+typedef val_t (*NEW_ReduceAction332_parser___ReduceAction332___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction333 "init var of ReduceAction333"
+void INIT_ATTRIBUTES__ReduceAction333(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction333_t)(val_t p0);
+val_t NEW_ReduceAction333(void);
+#define LOCATE_CHECKNEW_ReduceAction333 "check new ReduceAction333"
+void CHECKNEW_ReduceAction333(val_t p0);
+typedef void (*CHECKNEW_ReduceAction333_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction333_parser___ReduceAction333___init "new ReduceAction333 parser::ReduceAction333::init"
+val_t NEW_ReduceAction333_parser___ReduceAction333___init(void);
+typedef val_t (*NEW_ReduceAction333_parser___ReduceAction333___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction334 "init var of ReduceAction334"
+void INIT_ATTRIBUTES__ReduceAction334(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction334_t)(val_t p0);
+val_t NEW_ReduceAction334(void);
+#define LOCATE_CHECKNEW_ReduceAction334 "check new ReduceAction334"
+void CHECKNEW_ReduceAction334(val_t p0);
+typedef void (*CHECKNEW_ReduceAction334_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction334_parser___ReduceAction334___init "new ReduceAction334 parser::ReduceAction334::init"
+val_t NEW_ReduceAction334_parser___ReduceAction334___init(void);
+typedef val_t (*NEW_ReduceAction334_parser___ReduceAction334___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction335 "init var of ReduceAction335"
+void INIT_ATTRIBUTES__ReduceAction335(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction335_t)(val_t p0);
+val_t NEW_ReduceAction335(void);
+#define LOCATE_CHECKNEW_ReduceAction335 "check new ReduceAction335"
+void CHECKNEW_ReduceAction335(val_t p0);
+typedef void (*CHECKNEW_ReduceAction335_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction335_parser___ReduceAction335___init "new ReduceAction335 parser::ReduceAction335::init"
+val_t NEW_ReduceAction335_parser___ReduceAction335___init(void);
+typedef val_t (*NEW_ReduceAction335_parser___ReduceAction335___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction336 "init var of ReduceAction336"
+void INIT_ATTRIBUTES__ReduceAction336(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction336_t)(val_t p0);
+val_t NEW_ReduceAction336(void);
+#define LOCATE_CHECKNEW_ReduceAction336 "check new ReduceAction336"
+void CHECKNEW_ReduceAction336(val_t p0);
+typedef void (*CHECKNEW_ReduceAction336_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction336_parser___ReduceAction336___init "new ReduceAction336 parser::ReduceAction336::init"
+val_t NEW_ReduceAction336_parser___ReduceAction336___init(void);
+typedef val_t (*NEW_ReduceAction336_parser___ReduceAction336___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction337 "init var of ReduceAction337"
+void INIT_ATTRIBUTES__ReduceAction337(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction337_t)(val_t p0);
+val_t NEW_ReduceAction337(void);
+#define LOCATE_CHECKNEW_ReduceAction337 "check new ReduceAction337"
+void CHECKNEW_ReduceAction337(val_t p0);
+typedef void (*CHECKNEW_ReduceAction337_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction337_parser___ReduceAction337___init "new ReduceAction337 parser::ReduceAction337::init"
+val_t NEW_ReduceAction337_parser___ReduceAction337___init(void);
+typedef val_t (*NEW_ReduceAction337_parser___ReduceAction337___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction338 "init var of ReduceAction338"
+void INIT_ATTRIBUTES__ReduceAction338(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction338_t)(val_t p0);
+val_t NEW_ReduceAction338(void);
+#define LOCATE_CHECKNEW_ReduceAction338 "check new ReduceAction338"
+void CHECKNEW_ReduceAction338(val_t p0);
+typedef void (*CHECKNEW_ReduceAction338_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction338_parser___ReduceAction338___init "new ReduceAction338 parser::ReduceAction338::init"
+val_t NEW_ReduceAction338_parser___ReduceAction338___init(void);
+typedef val_t (*NEW_ReduceAction338_parser___ReduceAction338___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction339 "init var of ReduceAction339"
+void INIT_ATTRIBUTES__ReduceAction339(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction339_t)(val_t p0);
+val_t NEW_ReduceAction339(void);
+#define LOCATE_CHECKNEW_ReduceAction339 "check new ReduceAction339"
+void CHECKNEW_ReduceAction339(val_t p0);
+typedef void (*CHECKNEW_ReduceAction339_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction339_parser___ReduceAction339___init "new ReduceAction339 parser::ReduceAction339::init"
+val_t NEW_ReduceAction339_parser___ReduceAction339___init(void);
+typedef val_t (*NEW_ReduceAction339_parser___ReduceAction339___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction340 "init var of ReduceAction340"
+void INIT_ATTRIBUTES__ReduceAction340(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction340_t)(val_t p0);
+val_t NEW_ReduceAction340(void);
+#define LOCATE_CHECKNEW_ReduceAction340 "check new ReduceAction340"
+void CHECKNEW_ReduceAction340(val_t p0);
+typedef void (*CHECKNEW_ReduceAction340_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction340_parser___ReduceAction340___init "new ReduceAction340 parser::ReduceAction340::init"
+val_t NEW_ReduceAction340_parser___ReduceAction340___init(void);
+typedef val_t (*NEW_ReduceAction340_parser___ReduceAction340___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction341 "init var of ReduceAction341"
+void INIT_ATTRIBUTES__ReduceAction341(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction341_t)(val_t p0);
+val_t NEW_ReduceAction341(void);
+#define LOCATE_CHECKNEW_ReduceAction341 "check new ReduceAction341"
+void CHECKNEW_ReduceAction341(val_t p0);
+typedef void (*CHECKNEW_ReduceAction341_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction341_parser___ReduceAction341___init "new ReduceAction341 parser::ReduceAction341::init"
+val_t NEW_ReduceAction341_parser___ReduceAction341___init(void);
+typedef val_t (*NEW_ReduceAction341_parser___ReduceAction341___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction342 "init var of ReduceAction342"
+void INIT_ATTRIBUTES__ReduceAction342(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction342_t)(val_t p0);
+val_t NEW_ReduceAction342(void);
+#define LOCATE_CHECKNEW_ReduceAction342 "check new ReduceAction342"
+void CHECKNEW_ReduceAction342(val_t p0);
+typedef void (*CHECKNEW_ReduceAction342_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction342_parser___ReduceAction342___init "new ReduceAction342 parser::ReduceAction342::init"
+val_t NEW_ReduceAction342_parser___ReduceAction342___init(void);
+typedef val_t (*NEW_ReduceAction342_parser___ReduceAction342___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction343 "init var of ReduceAction343"
+void INIT_ATTRIBUTES__ReduceAction343(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction343_t)(val_t p0);
+val_t NEW_ReduceAction343(void);
+#define LOCATE_CHECKNEW_ReduceAction343 "check new ReduceAction343"
+void CHECKNEW_ReduceAction343(val_t p0);
+typedef void (*CHECKNEW_ReduceAction343_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction343_parser___ReduceAction343___init "new ReduceAction343 parser::ReduceAction343::init"
+val_t NEW_ReduceAction343_parser___ReduceAction343___init(void);
+typedef val_t (*NEW_ReduceAction343_parser___ReduceAction343___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction344 "init var of ReduceAction344"
+void INIT_ATTRIBUTES__ReduceAction344(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction344_t)(val_t p0);
+val_t NEW_ReduceAction344(void);
+#define LOCATE_CHECKNEW_ReduceAction344 "check new ReduceAction344"
+void CHECKNEW_ReduceAction344(val_t p0);
+typedef void (*CHECKNEW_ReduceAction344_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction344_parser___ReduceAction344___init "new ReduceAction344 parser::ReduceAction344::init"
+val_t NEW_ReduceAction344_parser___ReduceAction344___init(void);
+typedef val_t (*NEW_ReduceAction344_parser___ReduceAction344___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction345 "init var of ReduceAction345"
+void INIT_ATTRIBUTES__ReduceAction345(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction345_t)(val_t p0);
+val_t NEW_ReduceAction345(void);
+#define LOCATE_CHECKNEW_ReduceAction345 "check new ReduceAction345"
+void CHECKNEW_ReduceAction345(val_t p0);
+typedef void (*CHECKNEW_ReduceAction345_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction345_parser___ReduceAction345___init "new ReduceAction345 parser::ReduceAction345::init"
+val_t NEW_ReduceAction345_parser___ReduceAction345___init(void);
+typedef val_t (*NEW_ReduceAction345_parser___ReduceAction345___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction346 "init var of ReduceAction346"
+void INIT_ATTRIBUTES__ReduceAction346(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction346_t)(val_t p0);
+val_t NEW_ReduceAction346(void);
+#define LOCATE_CHECKNEW_ReduceAction346 "check new ReduceAction346"
+void CHECKNEW_ReduceAction346(val_t p0);
+typedef void (*CHECKNEW_ReduceAction346_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction346_parser___ReduceAction346___init "new ReduceAction346 parser::ReduceAction346::init"
+val_t NEW_ReduceAction346_parser___ReduceAction346___init(void);
+typedef val_t (*NEW_ReduceAction346_parser___ReduceAction346___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction347 "init var of ReduceAction347"
+void INIT_ATTRIBUTES__ReduceAction347(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction347_t)(val_t p0);
+val_t NEW_ReduceAction347(void);
+#define LOCATE_CHECKNEW_ReduceAction347 "check new ReduceAction347"
+void CHECKNEW_ReduceAction347(val_t p0);
+typedef void (*CHECKNEW_ReduceAction347_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction347_parser___ReduceAction347___init "new ReduceAction347 parser::ReduceAction347::init"
+val_t NEW_ReduceAction347_parser___ReduceAction347___init(void);
+typedef val_t (*NEW_ReduceAction347_parser___ReduceAction347___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction348 "init var of ReduceAction348"
+void INIT_ATTRIBUTES__ReduceAction348(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction348_t)(val_t p0);
+val_t NEW_ReduceAction348(void);
+#define LOCATE_CHECKNEW_ReduceAction348 "check new ReduceAction348"
+void CHECKNEW_ReduceAction348(val_t p0);
+typedef void (*CHECKNEW_ReduceAction348_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction348_parser___ReduceAction348___init "new ReduceAction348 parser::ReduceAction348::init"
+val_t NEW_ReduceAction348_parser___ReduceAction348___init(void);
+typedef val_t (*NEW_ReduceAction348_parser___ReduceAction348___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction349 "init var of ReduceAction349"
+void INIT_ATTRIBUTES__ReduceAction349(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction349_t)(val_t p0);
+val_t NEW_ReduceAction349(void);
+#define LOCATE_CHECKNEW_ReduceAction349 "check new ReduceAction349"
+void CHECKNEW_ReduceAction349(val_t p0);
+typedef void (*CHECKNEW_ReduceAction349_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction349_parser___ReduceAction349___init "new ReduceAction349 parser::ReduceAction349::init"
+val_t NEW_ReduceAction349_parser___ReduceAction349___init(void);
+typedef val_t (*NEW_ReduceAction349_parser___ReduceAction349___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction350 "init var of ReduceAction350"
+void INIT_ATTRIBUTES__ReduceAction350(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction350_t)(val_t p0);
+val_t NEW_ReduceAction350(void);
+#define LOCATE_CHECKNEW_ReduceAction350 "check new ReduceAction350"
+void CHECKNEW_ReduceAction350(val_t p0);
+typedef void (*CHECKNEW_ReduceAction350_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction350_parser___ReduceAction350___init "new ReduceAction350 parser::ReduceAction350::init"
+val_t NEW_ReduceAction350_parser___ReduceAction350___init(void);
+typedef val_t (*NEW_ReduceAction350_parser___ReduceAction350___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction351 "init var of ReduceAction351"
+void INIT_ATTRIBUTES__ReduceAction351(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction351_t)(val_t p0);
+val_t NEW_ReduceAction351(void);
+#define LOCATE_CHECKNEW_ReduceAction351 "check new ReduceAction351"
+void CHECKNEW_ReduceAction351(val_t p0);
+typedef void (*CHECKNEW_ReduceAction351_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction351_parser___ReduceAction351___init "new ReduceAction351 parser::ReduceAction351::init"
+val_t NEW_ReduceAction351_parser___ReduceAction351___init(void);
+typedef val_t (*NEW_ReduceAction351_parser___ReduceAction351___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction352 "init var of ReduceAction352"
+void INIT_ATTRIBUTES__ReduceAction352(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction352_t)(val_t p0);
+val_t NEW_ReduceAction352(void);
+#define LOCATE_CHECKNEW_ReduceAction352 "check new ReduceAction352"
+void CHECKNEW_ReduceAction352(val_t p0);
+typedef void (*CHECKNEW_ReduceAction352_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction352_parser___ReduceAction352___init "new ReduceAction352 parser::ReduceAction352::init"
+val_t NEW_ReduceAction352_parser___ReduceAction352___init(void);
+typedef val_t (*NEW_ReduceAction352_parser___ReduceAction352___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction353 "init var of ReduceAction353"
+void INIT_ATTRIBUTES__ReduceAction353(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction353_t)(val_t p0);
+val_t NEW_ReduceAction353(void);
+#define LOCATE_CHECKNEW_ReduceAction353 "check new ReduceAction353"
+void CHECKNEW_ReduceAction353(val_t p0);
+typedef void (*CHECKNEW_ReduceAction353_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction353_parser___ReduceAction353___init "new ReduceAction353 parser::ReduceAction353::init"
+val_t NEW_ReduceAction353_parser___ReduceAction353___init(void);
+typedef val_t (*NEW_ReduceAction353_parser___ReduceAction353___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction354 "init var of ReduceAction354"
+void INIT_ATTRIBUTES__ReduceAction354(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction354_t)(val_t p0);
+val_t NEW_ReduceAction354(void);
+#define LOCATE_CHECKNEW_ReduceAction354 "check new ReduceAction354"
+void CHECKNEW_ReduceAction354(val_t p0);
+typedef void (*CHECKNEW_ReduceAction354_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction354_parser___ReduceAction354___init "new ReduceAction354 parser::ReduceAction354::init"
+val_t NEW_ReduceAction354_parser___ReduceAction354___init(void);
+typedef val_t (*NEW_ReduceAction354_parser___ReduceAction354___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction355 "init var of ReduceAction355"
+void INIT_ATTRIBUTES__ReduceAction355(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction355_t)(val_t p0);
+val_t NEW_ReduceAction355(void);
+#define LOCATE_CHECKNEW_ReduceAction355 "check new ReduceAction355"
+void CHECKNEW_ReduceAction355(val_t p0);
+typedef void (*CHECKNEW_ReduceAction355_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction355_parser___ReduceAction355___init "new ReduceAction355 parser::ReduceAction355::init"
+val_t NEW_ReduceAction355_parser___ReduceAction355___init(void);
+typedef val_t (*NEW_ReduceAction355_parser___ReduceAction355___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction356 "init var of ReduceAction356"
+void INIT_ATTRIBUTES__ReduceAction356(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction356_t)(val_t p0);
+val_t NEW_ReduceAction356(void);
+#define LOCATE_CHECKNEW_ReduceAction356 "check new ReduceAction356"
+void CHECKNEW_ReduceAction356(val_t p0);
+typedef void (*CHECKNEW_ReduceAction356_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction356_parser___ReduceAction356___init "new ReduceAction356 parser::ReduceAction356::init"
+val_t NEW_ReduceAction356_parser___ReduceAction356___init(void);
+typedef val_t (*NEW_ReduceAction356_parser___ReduceAction356___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction357 "init var of ReduceAction357"
+void INIT_ATTRIBUTES__ReduceAction357(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction357_t)(val_t p0);
+val_t NEW_ReduceAction357(void);
+#define LOCATE_CHECKNEW_ReduceAction357 "check new ReduceAction357"
+void CHECKNEW_ReduceAction357(val_t p0);
+typedef void (*CHECKNEW_ReduceAction357_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction357_parser___ReduceAction357___init "new ReduceAction357 parser::ReduceAction357::init"
+val_t NEW_ReduceAction357_parser___ReduceAction357___init(void);
+typedef val_t (*NEW_ReduceAction357_parser___ReduceAction357___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction358 "init var of ReduceAction358"
+void INIT_ATTRIBUTES__ReduceAction358(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction358_t)(val_t p0);
+val_t NEW_ReduceAction358(void);
+#define LOCATE_CHECKNEW_ReduceAction358 "check new ReduceAction358"
+void CHECKNEW_ReduceAction358(val_t p0);
+typedef void (*CHECKNEW_ReduceAction358_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction358_parser___ReduceAction358___init "new ReduceAction358 parser::ReduceAction358::init"
+val_t NEW_ReduceAction358_parser___ReduceAction358___init(void);
+typedef val_t (*NEW_ReduceAction358_parser___ReduceAction358___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction359 "init var of ReduceAction359"
+void INIT_ATTRIBUTES__ReduceAction359(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction359_t)(val_t p0);
+val_t NEW_ReduceAction359(void);
+#define LOCATE_CHECKNEW_ReduceAction359 "check new ReduceAction359"
+void CHECKNEW_ReduceAction359(val_t p0);
+typedef void (*CHECKNEW_ReduceAction359_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction359_parser___ReduceAction359___init "new ReduceAction359 parser::ReduceAction359::init"
+val_t NEW_ReduceAction359_parser___ReduceAction359___init(void);
+typedef val_t (*NEW_ReduceAction359_parser___ReduceAction359___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction360 "init var of ReduceAction360"
+void INIT_ATTRIBUTES__ReduceAction360(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction360_t)(val_t p0);
+val_t NEW_ReduceAction360(void);
+#define LOCATE_CHECKNEW_ReduceAction360 "check new ReduceAction360"
+void CHECKNEW_ReduceAction360(val_t p0);
+typedef void (*CHECKNEW_ReduceAction360_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction360_parser___ReduceAction360___init "new ReduceAction360 parser::ReduceAction360::init"
+val_t NEW_ReduceAction360_parser___ReduceAction360___init(void);
+typedef val_t (*NEW_ReduceAction360_parser___ReduceAction360___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction361 "init var of ReduceAction361"
+void INIT_ATTRIBUTES__ReduceAction361(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction361_t)(val_t p0);
+val_t NEW_ReduceAction361(void);
+#define LOCATE_CHECKNEW_ReduceAction361 "check new ReduceAction361"
+void CHECKNEW_ReduceAction361(val_t p0);
+typedef void (*CHECKNEW_ReduceAction361_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction361_parser___ReduceAction361___init "new ReduceAction361 parser::ReduceAction361::init"
+val_t NEW_ReduceAction361_parser___ReduceAction361___init(void);
+typedef val_t (*NEW_ReduceAction361_parser___ReduceAction361___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction362 "init var of ReduceAction362"
+void INIT_ATTRIBUTES__ReduceAction362(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction362_t)(val_t p0);
+val_t NEW_ReduceAction362(void);
+#define LOCATE_CHECKNEW_ReduceAction362 "check new ReduceAction362"
+void CHECKNEW_ReduceAction362(val_t p0);
+typedef void (*CHECKNEW_ReduceAction362_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction362_parser___ReduceAction362___init "new ReduceAction362 parser::ReduceAction362::init"
+val_t NEW_ReduceAction362_parser___ReduceAction362___init(void);
+typedef val_t (*NEW_ReduceAction362_parser___ReduceAction362___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction363 "init var of ReduceAction363"
+void INIT_ATTRIBUTES__ReduceAction363(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction363_t)(val_t p0);
+val_t NEW_ReduceAction363(void);
+#define LOCATE_CHECKNEW_ReduceAction363 "check new ReduceAction363"
+void CHECKNEW_ReduceAction363(val_t p0);
+typedef void (*CHECKNEW_ReduceAction363_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction363_parser___ReduceAction363___init "new ReduceAction363 parser::ReduceAction363::init"
+val_t NEW_ReduceAction363_parser___ReduceAction363___init(void);
+typedef val_t (*NEW_ReduceAction363_parser___ReduceAction363___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction364 "init var of ReduceAction364"
+void INIT_ATTRIBUTES__ReduceAction364(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction364_t)(val_t p0);
+val_t NEW_ReduceAction364(void);
+#define LOCATE_CHECKNEW_ReduceAction364 "check new ReduceAction364"
+void CHECKNEW_ReduceAction364(val_t p0);
+typedef void (*CHECKNEW_ReduceAction364_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction364_parser___ReduceAction364___init "new ReduceAction364 parser::ReduceAction364::init"
+val_t NEW_ReduceAction364_parser___ReduceAction364___init(void);
+typedef val_t (*NEW_ReduceAction364_parser___ReduceAction364___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction365 "init var of ReduceAction365"
+void INIT_ATTRIBUTES__ReduceAction365(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction365_t)(val_t p0);
+val_t NEW_ReduceAction365(void);
+#define LOCATE_CHECKNEW_ReduceAction365 "check new ReduceAction365"
+void CHECKNEW_ReduceAction365(val_t p0);
+typedef void (*CHECKNEW_ReduceAction365_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction365_parser___ReduceAction365___init "new ReduceAction365 parser::ReduceAction365::init"
+val_t NEW_ReduceAction365_parser___ReduceAction365___init(void);
+typedef val_t (*NEW_ReduceAction365_parser___ReduceAction365___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction366 "init var of ReduceAction366"
+void INIT_ATTRIBUTES__ReduceAction366(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction366_t)(val_t p0);
+val_t NEW_ReduceAction366(void);
+#define LOCATE_CHECKNEW_ReduceAction366 "check new ReduceAction366"
+void CHECKNEW_ReduceAction366(val_t p0);
+typedef void (*CHECKNEW_ReduceAction366_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction366_parser___ReduceAction366___init "new ReduceAction366 parser::ReduceAction366::init"
+val_t NEW_ReduceAction366_parser___ReduceAction366___init(void);
+typedef val_t (*NEW_ReduceAction366_parser___ReduceAction366___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction367 "init var of ReduceAction367"
+void INIT_ATTRIBUTES__ReduceAction367(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction367_t)(val_t p0);
+val_t NEW_ReduceAction367(void);
+#define LOCATE_CHECKNEW_ReduceAction367 "check new ReduceAction367"
+void CHECKNEW_ReduceAction367(val_t p0);
+typedef void (*CHECKNEW_ReduceAction367_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction367_parser___ReduceAction367___init "new ReduceAction367 parser::ReduceAction367::init"
+val_t NEW_ReduceAction367_parser___ReduceAction367___init(void);
+typedef val_t (*NEW_ReduceAction367_parser___ReduceAction367___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction368 "init var of ReduceAction368"
+void INIT_ATTRIBUTES__ReduceAction368(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction368_t)(val_t p0);
+val_t NEW_ReduceAction368(void);
+#define LOCATE_CHECKNEW_ReduceAction368 "check new ReduceAction368"
+void CHECKNEW_ReduceAction368(val_t p0);
+typedef void (*CHECKNEW_ReduceAction368_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction368_parser___ReduceAction368___init "new ReduceAction368 parser::ReduceAction368::init"
+val_t NEW_ReduceAction368_parser___ReduceAction368___init(void);
+typedef val_t (*NEW_ReduceAction368_parser___ReduceAction368___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction369 "init var of ReduceAction369"
+void INIT_ATTRIBUTES__ReduceAction369(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction369_t)(val_t p0);
+val_t NEW_ReduceAction369(void);
+#define LOCATE_CHECKNEW_ReduceAction369 "check new ReduceAction369"
+void CHECKNEW_ReduceAction369(val_t p0);
+typedef void (*CHECKNEW_ReduceAction369_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction369_parser___ReduceAction369___init "new ReduceAction369 parser::ReduceAction369::init"
+val_t NEW_ReduceAction369_parser___ReduceAction369___init(void);
+typedef val_t (*NEW_ReduceAction369_parser___ReduceAction369___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction370 "init var of ReduceAction370"
+void INIT_ATTRIBUTES__ReduceAction370(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction370_t)(val_t p0);
+val_t NEW_ReduceAction370(void);
+#define LOCATE_CHECKNEW_ReduceAction370 "check new ReduceAction370"
+void CHECKNEW_ReduceAction370(val_t p0);
+typedef void (*CHECKNEW_ReduceAction370_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction370_parser___ReduceAction370___init "new ReduceAction370 parser::ReduceAction370::init"
+val_t NEW_ReduceAction370_parser___ReduceAction370___init(void);
+typedef val_t (*NEW_ReduceAction370_parser___ReduceAction370___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction371 "init var of ReduceAction371"
+void INIT_ATTRIBUTES__ReduceAction371(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction371_t)(val_t p0);
+val_t NEW_ReduceAction371(void);
+#define LOCATE_CHECKNEW_ReduceAction371 "check new ReduceAction371"
+void CHECKNEW_ReduceAction371(val_t p0);
+typedef void (*CHECKNEW_ReduceAction371_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction371_parser___ReduceAction371___init "new ReduceAction371 parser::ReduceAction371::init"
+val_t NEW_ReduceAction371_parser___ReduceAction371___init(void);
+typedef val_t (*NEW_ReduceAction371_parser___ReduceAction371___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction372 "init var of ReduceAction372"
+void INIT_ATTRIBUTES__ReduceAction372(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction372_t)(val_t p0);
+val_t NEW_ReduceAction372(void);
+#define LOCATE_CHECKNEW_ReduceAction372 "check new ReduceAction372"
+void CHECKNEW_ReduceAction372(val_t p0);
+typedef void (*CHECKNEW_ReduceAction372_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction372_parser___ReduceAction372___init "new ReduceAction372 parser::ReduceAction372::init"
+val_t NEW_ReduceAction372_parser___ReduceAction372___init(void);
+typedef val_t (*NEW_ReduceAction372_parser___ReduceAction372___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction373 "init var of ReduceAction373"
+void INIT_ATTRIBUTES__ReduceAction373(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction373_t)(val_t p0);
+val_t NEW_ReduceAction373(void);
+#define LOCATE_CHECKNEW_ReduceAction373 "check new ReduceAction373"
+void CHECKNEW_ReduceAction373(val_t p0);
+typedef void (*CHECKNEW_ReduceAction373_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction373_parser___ReduceAction373___init "new ReduceAction373 parser::ReduceAction373::init"
+val_t NEW_ReduceAction373_parser___ReduceAction373___init(void);
+typedef val_t (*NEW_ReduceAction373_parser___ReduceAction373___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction374 "init var of ReduceAction374"
+void INIT_ATTRIBUTES__ReduceAction374(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction374_t)(val_t p0);
+val_t NEW_ReduceAction374(void);
+#define LOCATE_CHECKNEW_ReduceAction374 "check new ReduceAction374"
+void CHECKNEW_ReduceAction374(val_t p0);
+typedef void (*CHECKNEW_ReduceAction374_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction374_parser___ReduceAction374___init "new ReduceAction374 parser::ReduceAction374::init"
+val_t NEW_ReduceAction374_parser___ReduceAction374___init(void);
+typedef val_t (*NEW_ReduceAction374_parser___ReduceAction374___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction375 "init var of ReduceAction375"
+void INIT_ATTRIBUTES__ReduceAction375(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction375_t)(val_t p0);
+val_t NEW_ReduceAction375(void);
+#define LOCATE_CHECKNEW_ReduceAction375 "check new ReduceAction375"
+void CHECKNEW_ReduceAction375(val_t p0);
+typedef void (*CHECKNEW_ReduceAction375_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction375_parser___ReduceAction375___init "new ReduceAction375 parser::ReduceAction375::init"
+val_t NEW_ReduceAction375_parser___ReduceAction375___init(void);
+typedef val_t (*NEW_ReduceAction375_parser___ReduceAction375___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction376 "init var of ReduceAction376"
+void INIT_ATTRIBUTES__ReduceAction376(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction376_t)(val_t p0);
+val_t NEW_ReduceAction376(void);
+#define LOCATE_CHECKNEW_ReduceAction376 "check new ReduceAction376"
+void CHECKNEW_ReduceAction376(val_t p0);
+typedef void (*CHECKNEW_ReduceAction376_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction376_parser___ReduceAction376___init "new ReduceAction376 parser::ReduceAction376::init"
+val_t NEW_ReduceAction376_parser___ReduceAction376___init(void);
+typedef val_t (*NEW_ReduceAction376_parser___ReduceAction376___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction377 "init var of ReduceAction377"
+void INIT_ATTRIBUTES__ReduceAction377(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction377_t)(val_t p0);
+val_t NEW_ReduceAction377(void);
+#define LOCATE_CHECKNEW_ReduceAction377 "check new ReduceAction377"
+void CHECKNEW_ReduceAction377(val_t p0);
+typedef void (*CHECKNEW_ReduceAction377_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction377_parser___ReduceAction377___init "new ReduceAction377 parser::ReduceAction377::init"
+val_t NEW_ReduceAction377_parser___ReduceAction377___init(void);
+typedef val_t (*NEW_ReduceAction377_parser___ReduceAction377___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction378 "init var of ReduceAction378"
+void INIT_ATTRIBUTES__ReduceAction378(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction378_t)(val_t p0);
+val_t NEW_ReduceAction378(void);
+#define LOCATE_CHECKNEW_ReduceAction378 "check new ReduceAction378"
+void CHECKNEW_ReduceAction378(val_t p0);
+typedef void (*CHECKNEW_ReduceAction378_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction378_parser___ReduceAction378___init "new ReduceAction378 parser::ReduceAction378::init"
+val_t NEW_ReduceAction378_parser___ReduceAction378___init(void);
+typedef val_t (*NEW_ReduceAction378_parser___ReduceAction378___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction379 "init var of ReduceAction379"
+void INIT_ATTRIBUTES__ReduceAction379(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction379_t)(val_t p0);
+val_t NEW_ReduceAction379(void);
+#define LOCATE_CHECKNEW_ReduceAction379 "check new ReduceAction379"
+void CHECKNEW_ReduceAction379(val_t p0);
+typedef void (*CHECKNEW_ReduceAction379_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction379_parser___ReduceAction379___init "new ReduceAction379 parser::ReduceAction379::init"
+val_t NEW_ReduceAction379_parser___ReduceAction379___init(void);
+typedef val_t (*NEW_ReduceAction379_parser___ReduceAction379___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction380 "init var of ReduceAction380"
+void INIT_ATTRIBUTES__ReduceAction380(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction380_t)(val_t p0);
+val_t NEW_ReduceAction380(void);
+#define LOCATE_CHECKNEW_ReduceAction380 "check new ReduceAction380"
+void CHECKNEW_ReduceAction380(val_t p0);
+typedef void (*CHECKNEW_ReduceAction380_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction380_parser___ReduceAction380___init "new ReduceAction380 parser::ReduceAction380::init"
+val_t NEW_ReduceAction380_parser___ReduceAction380___init(void);
+typedef val_t (*NEW_ReduceAction380_parser___ReduceAction380___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction381 "init var of ReduceAction381"
+void INIT_ATTRIBUTES__ReduceAction381(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction381_t)(val_t p0);
+val_t NEW_ReduceAction381(void);
+#define LOCATE_CHECKNEW_ReduceAction381 "check new ReduceAction381"
+void CHECKNEW_ReduceAction381(val_t p0);
+typedef void (*CHECKNEW_ReduceAction381_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction381_parser___ReduceAction381___init "new ReduceAction381 parser::ReduceAction381::init"
+val_t NEW_ReduceAction381_parser___ReduceAction381___init(void);
+typedef val_t (*NEW_ReduceAction381_parser___ReduceAction381___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction382 "init var of ReduceAction382"
+void INIT_ATTRIBUTES__ReduceAction382(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction382_t)(val_t p0);
+val_t NEW_ReduceAction382(void);
+#define LOCATE_CHECKNEW_ReduceAction382 "check new ReduceAction382"
+void CHECKNEW_ReduceAction382(val_t p0);
+typedef void (*CHECKNEW_ReduceAction382_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction382_parser___ReduceAction382___init "new ReduceAction382 parser::ReduceAction382::init"
+val_t NEW_ReduceAction382_parser___ReduceAction382___init(void);
+typedef val_t (*NEW_ReduceAction382_parser___ReduceAction382___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction383 "init var of ReduceAction383"
+void INIT_ATTRIBUTES__ReduceAction383(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction383_t)(val_t p0);
+val_t NEW_ReduceAction383(void);
+#define LOCATE_CHECKNEW_ReduceAction383 "check new ReduceAction383"
+void CHECKNEW_ReduceAction383(val_t p0);
+typedef void (*CHECKNEW_ReduceAction383_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction383_parser___ReduceAction383___init "new ReduceAction383 parser::ReduceAction383::init"
+val_t NEW_ReduceAction383_parser___ReduceAction383___init(void);
+typedef val_t (*NEW_ReduceAction383_parser___ReduceAction383___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction384 "init var of ReduceAction384"
+void INIT_ATTRIBUTES__ReduceAction384(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction384_t)(val_t p0);
+val_t NEW_ReduceAction384(void);
+#define LOCATE_CHECKNEW_ReduceAction384 "check new ReduceAction384"
+void CHECKNEW_ReduceAction384(val_t p0);
+typedef void (*CHECKNEW_ReduceAction384_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction384_parser___ReduceAction384___init "new ReduceAction384 parser::ReduceAction384::init"
+val_t NEW_ReduceAction384_parser___ReduceAction384___init(void);
+typedef val_t (*NEW_ReduceAction384_parser___ReduceAction384___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction385 "init var of ReduceAction385"
+void INIT_ATTRIBUTES__ReduceAction385(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction385_t)(val_t p0);
+val_t NEW_ReduceAction385(void);
+#define LOCATE_CHECKNEW_ReduceAction385 "check new ReduceAction385"
+void CHECKNEW_ReduceAction385(val_t p0);
+typedef void (*CHECKNEW_ReduceAction385_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction385_parser___ReduceAction385___init "new ReduceAction385 parser::ReduceAction385::init"
+val_t NEW_ReduceAction385_parser___ReduceAction385___init(void);
+typedef val_t (*NEW_ReduceAction385_parser___ReduceAction385___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction386 "init var of ReduceAction386"
+void INIT_ATTRIBUTES__ReduceAction386(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction386_t)(val_t p0);
+val_t NEW_ReduceAction386(void);
+#define LOCATE_CHECKNEW_ReduceAction386 "check new ReduceAction386"
+void CHECKNEW_ReduceAction386(val_t p0);
+typedef void (*CHECKNEW_ReduceAction386_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction386_parser___ReduceAction386___init "new ReduceAction386 parser::ReduceAction386::init"
+val_t NEW_ReduceAction386_parser___ReduceAction386___init(void);
+typedef val_t (*NEW_ReduceAction386_parser___ReduceAction386___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction387 "init var of ReduceAction387"
+void INIT_ATTRIBUTES__ReduceAction387(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction387_t)(val_t p0);
+val_t NEW_ReduceAction387(void);
+#define LOCATE_CHECKNEW_ReduceAction387 "check new ReduceAction387"
+void CHECKNEW_ReduceAction387(val_t p0);
+typedef void (*CHECKNEW_ReduceAction387_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction387_parser___ReduceAction387___init "new ReduceAction387 parser::ReduceAction387::init"
+val_t NEW_ReduceAction387_parser___ReduceAction387___init(void);
+typedef val_t (*NEW_ReduceAction387_parser___ReduceAction387___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction388 "init var of ReduceAction388"
+void INIT_ATTRIBUTES__ReduceAction388(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction388_t)(val_t p0);
+val_t NEW_ReduceAction388(void);
+#define LOCATE_CHECKNEW_ReduceAction388 "check new ReduceAction388"
+void CHECKNEW_ReduceAction388(val_t p0);
+typedef void (*CHECKNEW_ReduceAction388_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction388_parser___ReduceAction388___init "new ReduceAction388 parser::ReduceAction388::init"
+val_t NEW_ReduceAction388_parser___ReduceAction388___init(void);
+typedef val_t (*NEW_ReduceAction388_parser___ReduceAction388___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction389 "init var of ReduceAction389"
+void INIT_ATTRIBUTES__ReduceAction389(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction389_t)(val_t p0);
+val_t NEW_ReduceAction389(void);
+#define LOCATE_CHECKNEW_ReduceAction389 "check new ReduceAction389"
+void CHECKNEW_ReduceAction389(val_t p0);
+typedef void (*CHECKNEW_ReduceAction389_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction389_parser___ReduceAction389___init "new ReduceAction389 parser::ReduceAction389::init"
+val_t NEW_ReduceAction389_parser___ReduceAction389___init(void);
+typedef val_t (*NEW_ReduceAction389_parser___ReduceAction389___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction390 "init var of ReduceAction390"
+void INIT_ATTRIBUTES__ReduceAction390(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction390_t)(val_t p0);
+val_t NEW_ReduceAction390(void);
+#define LOCATE_CHECKNEW_ReduceAction390 "check new ReduceAction390"
+void CHECKNEW_ReduceAction390(val_t p0);
+typedef void (*CHECKNEW_ReduceAction390_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction390_parser___ReduceAction390___init "new ReduceAction390 parser::ReduceAction390::init"
+val_t NEW_ReduceAction390_parser___ReduceAction390___init(void);
+typedef val_t (*NEW_ReduceAction390_parser___ReduceAction390___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction391 "init var of ReduceAction391"
+void INIT_ATTRIBUTES__ReduceAction391(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction391_t)(val_t p0);
+val_t NEW_ReduceAction391(void);
+#define LOCATE_CHECKNEW_ReduceAction391 "check new ReduceAction391"
+void CHECKNEW_ReduceAction391(val_t p0);
+typedef void (*CHECKNEW_ReduceAction391_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction391_parser___ReduceAction391___init "new ReduceAction391 parser::ReduceAction391::init"
+val_t NEW_ReduceAction391_parser___ReduceAction391___init(void);
+typedef val_t (*NEW_ReduceAction391_parser___ReduceAction391___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction392 "init var of ReduceAction392"
+void INIT_ATTRIBUTES__ReduceAction392(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction392_t)(val_t p0);
+val_t NEW_ReduceAction392(void);
+#define LOCATE_CHECKNEW_ReduceAction392 "check new ReduceAction392"
+void CHECKNEW_ReduceAction392(val_t p0);
+typedef void (*CHECKNEW_ReduceAction392_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction392_parser___ReduceAction392___init "new ReduceAction392 parser::ReduceAction392::init"
+val_t NEW_ReduceAction392_parser___ReduceAction392___init(void);
+typedef val_t (*NEW_ReduceAction392_parser___ReduceAction392___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction393 "init var of ReduceAction393"
+void INIT_ATTRIBUTES__ReduceAction393(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction393_t)(val_t p0);
+val_t NEW_ReduceAction393(void);
+#define LOCATE_CHECKNEW_ReduceAction393 "check new ReduceAction393"
+void CHECKNEW_ReduceAction393(val_t p0);
+typedef void (*CHECKNEW_ReduceAction393_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction393_parser___ReduceAction393___init "new ReduceAction393 parser::ReduceAction393::init"
+val_t NEW_ReduceAction393_parser___ReduceAction393___init(void);
+typedef val_t (*NEW_ReduceAction393_parser___ReduceAction393___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction394 "init var of ReduceAction394"
+void INIT_ATTRIBUTES__ReduceAction394(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction394_t)(val_t p0);
+val_t NEW_ReduceAction394(void);
+#define LOCATE_CHECKNEW_ReduceAction394 "check new ReduceAction394"
+void CHECKNEW_ReduceAction394(val_t p0);
+typedef void (*CHECKNEW_ReduceAction394_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction394_parser___ReduceAction394___init "new ReduceAction394 parser::ReduceAction394::init"
+val_t NEW_ReduceAction394_parser___ReduceAction394___init(void);
+typedef val_t (*NEW_ReduceAction394_parser___ReduceAction394___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction395 "init var of ReduceAction395"
+void INIT_ATTRIBUTES__ReduceAction395(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction395_t)(val_t p0);
+val_t NEW_ReduceAction395(void);
+#define LOCATE_CHECKNEW_ReduceAction395 "check new ReduceAction395"
+void CHECKNEW_ReduceAction395(val_t p0);
+typedef void (*CHECKNEW_ReduceAction395_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction395_parser___ReduceAction395___init "new ReduceAction395 parser::ReduceAction395::init"
+val_t NEW_ReduceAction395_parser___ReduceAction395___init(void);
+typedef val_t (*NEW_ReduceAction395_parser___ReduceAction395___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction396 "init var of ReduceAction396"
+void INIT_ATTRIBUTES__ReduceAction396(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction396_t)(val_t p0);
+val_t NEW_ReduceAction396(void);
+#define LOCATE_CHECKNEW_ReduceAction396 "check new ReduceAction396"
+void CHECKNEW_ReduceAction396(val_t p0);
+typedef void (*CHECKNEW_ReduceAction396_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction396_parser___ReduceAction396___init "new ReduceAction396 parser::ReduceAction396::init"
+val_t NEW_ReduceAction396_parser___ReduceAction396___init(void);
+typedef val_t (*NEW_ReduceAction396_parser___ReduceAction396___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction397 "init var of ReduceAction397"
+void INIT_ATTRIBUTES__ReduceAction397(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction397_t)(val_t p0);
+val_t NEW_ReduceAction397(void);
+#define LOCATE_CHECKNEW_ReduceAction397 "check new ReduceAction397"
+void CHECKNEW_ReduceAction397(val_t p0);
+typedef void (*CHECKNEW_ReduceAction397_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction397_parser___ReduceAction397___init "new ReduceAction397 parser::ReduceAction397::init"
+val_t NEW_ReduceAction397_parser___ReduceAction397___init(void);
+typedef val_t (*NEW_ReduceAction397_parser___ReduceAction397___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction398 "init var of ReduceAction398"
+void INIT_ATTRIBUTES__ReduceAction398(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction398_t)(val_t p0);
+val_t NEW_ReduceAction398(void);
+#define LOCATE_CHECKNEW_ReduceAction398 "check new ReduceAction398"
+void CHECKNEW_ReduceAction398(val_t p0);
+typedef void (*CHECKNEW_ReduceAction398_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction398_parser___ReduceAction398___init "new ReduceAction398 parser::ReduceAction398::init"
+val_t NEW_ReduceAction398_parser___ReduceAction398___init(void);
+typedef val_t (*NEW_ReduceAction398_parser___ReduceAction398___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction399 "init var of ReduceAction399"
+void INIT_ATTRIBUTES__ReduceAction399(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction399_t)(val_t p0);
+val_t NEW_ReduceAction399(void);
+#define LOCATE_CHECKNEW_ReduceAction399 "check new ReduceAction399"
+void CHECKNEW_ReduceAction399(val_t p0);
+typedef void (*CHECKNEW_ReduceAction399_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction399_parser___ReduceAction399___init "new ReduceAction399 parser::ReduceAction399::init"
+val_t NEW_ReduceAction399_parser___ReduceAction399___init(void);
+typedef val_t (*NEW_ReduceAction399_parser___ReduceAction399___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction400 "init var of ReduceAction400"
+void INIT_ATTRIBUTES__ReduceAction400(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction400_t)(val_t p0);
+val_t NEW_ReduceAction400(void);
+#define LOCATE_CHECKNEW_ReduceAction400 "check new ReduceAction400"
+void CHECKNEW_ReduceAction400(val_t p0);
+typedef void (*CHECKNEW_ReduceAction400_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction400_parser___ReduceAction400___init "new ReduceAction400 parser::ReduceAction400::init"
+val_t NEW_ReduceAction400_parser___ReduceAction400___init(void);
+typedef val_t (*NEW_ReduceAction400_parser___ReduceAction400___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction401 "init var of ReduceAction401"
+void INIT_ATTRIBUTES__ReduceAction401(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction401_t)(val_t p0);
+val_t NEW_ReduceAction401(void);
+#define LOCATE_CHECKNEW_ReduceAction401 "check new ReduceAction401"
+void CHECKNEW_ReduceAction401(val_t p0);
+typedef void (*CHECKNEW_ReduceAction401_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction401_parser___ReduceAction401___init "new ReduceAction401 parser::ReduceAction401::init"
+val_t NEW_ReduceAction401_parser___ReduceAction401___init(void);
+typedef val_t (*NEW_ReduceAction401_parser___ReduceAction401___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction402 "init var of ReduceAction402"
+void INIT_ATTRIBUTES__ReduceAction402(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction402_t)(val_t p0);
+val_t NEW_ReduceAction402(void);
+#define LOCATE_CHECKNEW_ReduceAction402 "check new ReduceAction402"
+void CHECKNEW_ReduceAction402(val_t p0);
+typedef void (*CHECKNEW_ReduceAction402_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction402_parser___ReduceAction402___init "new ReduceAction402 parser::ReduceAction402::init"
+val_t NEW_ReduceAction402_parser___ReduceAction402___init(void);
+typedef val_t (*NEW_ReduceAction402_parser___ReduceAction402___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction403 "init var of ReduceAction403"
+void INIT_ATTRIBUTES__ReduceAction403(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction403_t)(val_t p0);
+val_t NEW_ReduceAction403(void);
+#define LOCATE_CHECKNEW_ReduceAction403 "check new ReduceAction403"
+void CHECKNEW_ReduceAction403(val_t p0);
+typedef void (*CHECKNEW_ReduceAction403_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction403_parser___ReduceAction403___init "new ReduceAction403 parser::ReduceAction403::init"
+val_t NEW_ReduceAction403_parser___ReduceAction403___init(void);
+typedef val_t (*NEW_ReduceAction403_parser___ReduceAction403___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction404 "init var of ReduceAction404"
+void INIT_ATTRIBUTES__ReduceAction404(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction404_t)(val_t p0);
+val_t NEW_ReduceAction404(void);
+#define LOCATE_CHECKNEW_ReduceAction404 "check new ReduceAction404"
+void CHECKNEW_ReduceAction404(val_t p0);
+typedef void (*CHECKNEW_ReduceAction404_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction404_parser___ReduceAction404___init "new ReduceAction404 parser::ReduceAction404::init"
+val_t NEW_ReduceAction404_parser___ReduceAction404___init(void);
+typedef val_t (*NEW_ReduceAction404_parser___ReduceAction404___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction405 "init var of ReduceAction405"
+void INIT_ATTRIBUTES__ReduceAction405(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction405_t)(val_t p0);
+val_t NEW_ReduceAction405(void);
+#define LOCATE_CHECKNEW_ReduceAction405 "check new ReduceAction405"
+void CHECKNEW_ReduceAction405(val_t p0);
+typedef void (*CHECKNEW_ReduceAction405_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction405_parser___ReduceAction405___init "new ReduceAction405 parser::ReduceAction405::init"
+val_t NEW_ReduceAction405_parser___ReduceAction405___init(void);
+typedef val_t (*NEW_ReduceAction405_parser___ReduceAction405___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction406 "init var of ReduceAction406"
+void INIT_ATTRIBUTES__ReduceAction406(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction406_t)(val_t p0);
+val_t NEW_ReduceAction406(void);
+#define LOCATE_CHECKNEW_ReduceAction406 "check new ReduceAction406"
+void CHECKNEW_ReduceAction406(val_t p0);
+typedef void (*CHECKNEW_ReduceAction406_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction406_parser___ReduceAction406___init "new ReduceAction406 parser::ReduceAction406::init"
+val_t NEW_ReduceAction406_parser___ReduceAction406___init(void);
+typedef val_t (*NEW_ReduceAction406_parser___ReduceAction406___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction407 "init var of ReduceAction407"
+void INIT_ATTRIBUTES__ReduceAction407(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction407_t)(val_t p0);
+val_t NEW_ReduceAction407(void);
+#define LOCATE_CHECKNEW_ReduceAction407 "check new ReduceAction407"
+void CHECKNEW_ReduceAction407(val_t p0);
+typedef void (*CHECKNEW_ReduceAction407_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction407_parser___ReduceAction407___init "new ReduceAction407 parser::ReduceAction407::init"
+val_t NEW_ReduceAction407_parser___ReduceAction407___init(void);
+typedef val_t (*NEW_ReduceAction407_parser___ReduceAction407___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction408 "init var of ReduceAction408"
+void INIT_ATTRIBUTES__ReduceAction408(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction408_t)(val_t p0);
+val_t NEW_ReduceAction408(void);
+#define LOCATE_CHECKNEW_ReduceAction408 "check new ReduceAction408"
+void CHECKNEW_ReduceAction408(val_t p0);
+typedef void (*CHECKNEW_ReduceAction408_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction408_parser___ReduceAction408___init "new ReduceAction408 parser::ReduceAction408::init"
+val_t NEW_ReduceAction408_parser___ReduceAction408___init(void);
+typedef val_t (*NEW_ReduceAction408_parser___ReduceAction408___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction409 "init var of ReduceAction409"
+void INIT_ATTRIBUTES__ReduceAction409(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction409_t)(val_t p0);
+val_t NEW_ReduceAction409(void);
+#define LOCATE_CHECKNEW_ReduceAction409 "check new ReduceAction409"
+void CHECKNEW_ReduceAction409(val_t p0);
+typedef void (*CHECKNEW_ReduceAction409_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction409_parser___ReduceAction409___init "new ReduceAction409 parser::ReduceAction409::init"
+val_t NEW_ReduceAction409_parser___ReduceAction409___init(void);
+typedef val_t (*NEW_ReduceAction409_parser___ReduceAction409___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction410 "init var of ReduceAction410"
+void INIT_ATTRIBUTES__ReduceAction410(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction410_t)(val_t p0);
+val_t NEW_ReduceAction410(void);
+#define LOCATE_CHECKNEW_ReduceAction410 "check new ReduceAction410"
+void CHECKNEW_ReduceAction410(val_t p0);
+typedef void (*CHECKNEW_ReduceAction410_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction410_parser___ReduceAction410___init "new ReduceAction410 parser::ReduceAction410::init"
+val_t NEW_ReduceAction410_parser___ReduceAction410___init(void);
+typedef val_t (*NEW_ReduceAction410_parser___ReduceAction410___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction411 "init var of ReduceAction411"
+void INIT_ATTRIBUTES__ReduceAction411(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction411_t)(val_t p0);
+val_t NEW_ReduceAction411(void);
+#define LOCATE_CHECKNEW_ReduceAction411 "check new ReduceAction411"
+void CHECKNEW_ReduceAction411(val_t p0);
+typedef void (*CHECKNEW_ReduceAction411_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction411_parser___ReduceAction411___init "new ReduceAction411 parser::ReduceAction411::init"
+val_t NEW_ReduceAction411_parser___ReduceAction411___init(void);
+typedef val_t (*NEW_ReduceAction411_parser___ReduceAction411___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction412 "init var of ReduceAction412"
+void INIT_ATTRIBUTES__ReduceAction412(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction412_t)(val_t p0);
+val_t NEW_ReduceAction412(void);
+#define LOCATE_CHECKNEW_ReduceAction412 "check new ReduceAction412"
+void CHECKNEW_ReduceAction412(val_t p0);
+typedef void (*CHECKNEW_ReduceAction412_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction412_parser___ReduceAction412___init "new ReduceAction412 parser::ReduceAction412::init"
+val_t NEW_ReduceAction412_parser___ReduceAction412___init(void);
+typedef val_t (*NEW_ReduceAction412_parser___ReduceAction412___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction413 "init var of ReduceAction413"
+void INIT_ATTRIBUTES__ReduceAction413(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction413_t)(val_t p0);
+val_t NEW_ReduceAction413(void);
+#define LOCATE_CHECKNEW_ReduceAction413 "check new ReduceAction413"
+void CHECKNEW_ReduceAction413(val_t p0);
+typedef void (*CHECKNEW_ReduceAction413_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction413_parser___ReduceAction413___init "new ReduceAction413 parser::ReduceAction413::init"
+val_t NEW_ReduceAction413_parser___ReduceAction413___init(void);
+typedef val_t (*NEW_ReduceAction413_parser___ReduceAction413___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction414 "init var of ReduceAction414"
+void INIT_ATTRIBUTES__ReduceAction414(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction414_t)(val_t p0);
+val_t NEW_ReduceAction414(void);
+#define LOCATE_CHECKNEW_ReduceAction414 "check new ReduceAction414"
+void CHECKNEW_ReduceAction414(val_t p0);
+typedef void (*CHECKNEW_ReduceAction414_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction414_parser___ReduceAction414___init "new ReduceAction414 parser::ReduceAction414::init"
+val_t NEW_ReduceAction414_parser___ReduceAction414___init(void);
+typedef val_t (*NEW_ReduceAction414_parser___ReduceAction414___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction415 "init var of ReduceAction415"
+void INIT_ATTRIBUTES__ReduceAction415(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction415_t)(val_t p0);
+val_t NEW_ReduceAction415(void);
+#define LOCATE_CHECKNEW_ReduceAction415 "check new ReduceAction415"
+void CHECKNEW_ReduceAction415(val_t p0);
+typedef void (*CHECKNEW_ReduceAction415_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction415_parser___ReduceAction415___init "new ReduceAction415 parser::ReduceAction415::init"
+val_t NEW_ReduceAction415_parser___ReduceAction415___init(void);
+typedef val_t (*NEW_ReduceAction415_parser___ReduceAction415___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction416 "init var of ReduceAction416"
+void INIT_ATTRIBUTES__ReduceAction416(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction416_t)(val_t p0);
+val_t NEW_ReduceAction416(void);
+#define LOCATE_CHECKNEW_ReduceAction416 "check new ReduceAction416"
+void CHECKNEW_ReduceAction416(val_t p0);
+typedef void (*CHECKNEW_ReduceAction416_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction416_parser___ReduceAction416___init "new ReduceAction416 parser::ReduceAction416::init"
+val_t NEW_ReduceAction416_parser___ReduceAction416___init(void);
+typedef val_t (*NEW_ReduceAction416_parser___ReduceAction416___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction417 "init var of ReduceAction417"
+void INIT_ATTRIBUTES__ReduceAction417(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction417_t)(val_t p0);
+val_t NEW_ReduceAction417(void);
+#define LOCATE_CHECKNEW_ReduceAction417 "check new ReduceAction417"
+void CHECKNEW_ReduceAction417(val_t p0);
+typedef void (*CHECKNEW_ReduceAction417_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction417_parser___ReduceAction417___init "new ReduceAction417 parser::ReduceAction417::init"
+val_t NEW_ReduceAction417_parser___ReduceAction417___init(void);
+typedef val_t (*NEW_ReduceAction417_parser___ReduceAction417___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction418 "init var of ReduceAction418"
+void INIT_ATTRIBUTES__ReduceAction418(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction418_t)(val_t p0);
+val_t NEW_ReduceAction418(void);
+#define LOCATE_CHECKNEW_ReduceAction418 "check new ReduceAction418"
+void CHECKNEW_ReduceAction418(val_t p0);
+typedef void (*CHECKNEW_ReduceAction418_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction418_parser___ReduceAction418___init "new ReduceAction418 parser::ReduceAction418::init"
+val_t NEW_ReduceAction418_parser___ReduceAction418___init(void);
+typedef val_t (*NEW_ReduceAction418_parser___ReduceAction418___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction419 "init var of ReduceAction419"
+void INIT_ATTRIBUTES__ReduceAction419(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction419_t)(val_t p0);
+val_t NEW_ReduceAction419(void);
+#define LOCATE_CHECKNEW_ReduceAction419 "check new ReduceAction419"
+void CHECKNEW_ReduceAction419(val_t p0);
+typedef void (*CHECKNEW_ReduceAction419_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction419_parser___ReduceAction419___init "new ReduceAction419 parser::ReduceAction419::init"
+val_t NEW_ReduceAction419_parser___ReduceAction419___init(void);
+typedef val_t (*NEW_ReduceAction419_parser___ReduceAction419___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction420 "init var of ReduceAction420"
+void INIT_ATTRIBUTES__ReduceAction420(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction420_t)(val_t p0);
+val_t NEW_ReduceAction420(void);
+#define LOCATE_CHECKNEW_ReduceAction420 "check new ReduceAction420"
+void CHECKNEW_ReduceAction420(val_t p0);
+typedef void (*CHECKNEW_ReduceAction420_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction420_parser___ReduceAction420___init "new ReduceAction420 parser::ReduceAction420::init"
+val_t NEW_ReduceAction420_parser___ReduceAction420___init(void);
+typedef val_t (*NEW_ReduceAction420_parser___ReduceAction420___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction421 "init var of ReduceAction421"
+void INIT_ATTRIBUTES__ReduceAction421(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction421_t)(val_t p0);
+val_t NEW_ReduceAction421(void);
+#define LOCATE_CHECKNEW_ReduceAction421 "check new ReduceAction421"
+void CHECKNEW_ReduceAction421(val_t p0);
+typedef void (*CHECKNEW_ReduceAction421_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction421_parser___ReduceAction421___init "new ReduceAction421 parser::ReduceAction421::init"
+val_t NEW_ReduceAction421_parser___ReduceAction421___init(void);
+typedef val_t (*NEW_ReduceAction421_parser___ReduceAction421___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction422 "init var of ReduceAction422"
+void INIT_ATTRIBUTES__ReduceAction422(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction422_t)(val_t p0);
+val_t NEW_ReduceAction422(void);
+#define LOCATE_CHECKNEW_ReduceAction422 "check new ReduceAction422"
+void CHECKNEW_ReduceAction422(val_t p0);
+typedef void (*CHECKNEW_ReduceAction422_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction422_parser___ReduceAction422___init "new ReduceAction422 parser::ReduceAction422::init"
+val_t NEW_ReduceAction422_parser___ReduceAction422___init(void);
+typedef val_t (*NEW_ReduceAction422_parser___ReduceAction422___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction423 "init var of ReduceAction423"
+void INIT_ATTRIBUTES__ReduceAction423(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction423_t)(val_t p0);
+val_t NEW_ReduceAction423(void);
+#define LOCATE_CHECKNEW_ReduceAction423 "check new ReduceAction423"
+void CHECKNEW_ReduceAction423(val_t p0);
+typedef void (*CHECKNEW_ReduceAction423_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction423_parser___ReduceAction423___init "new ReduceAction423 parser::ReduceAction423::init"
+val_t NEW_ReduceAction423_parser___ReduceAction423___init(void);
+typedef val_t (*NEW_ReduceAction423_parser___ReduceAction423___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction424 "init var of ReduceAction424"
+void INIT_ATTRIBUTES__ReduceAction424(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction424_t)(val_t p0);
+val_t NEW_ReduceAction424(void);
+#define LOCATE_CHECKNEW_ReduceAction424 "check new ReduceAction424"
+void CHECKNEW_ReduceAction424(val_t p0);
+typedef void (*CHECKNEW_ReduceAction424_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction424_parser___ReduceAction424___init "new ReduceAction424 parser::ReduceAction424::init"
+val_t NEW_ReduceAction424_parser___ReduceAction424___init(void);
+typedef val_t (*NEW_ReduceAction424_parser___ReduceAction424___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction425 "init var of ReduceAction425"
+void INIT_ATTRIBUTES__ReduceAction425(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction425_t)(val_t p0);
+val_t NEW_ReduceAction425(void);
+#define LOCATE_CHECKNEW_ReduceAction425 "check new ReduceAction425"
+void CHECKNEW_ReduceAction425(val_t p0);
+typedef void (*CHECKNEW_ReduceAction425_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction425_parser___ReduceAction425___init "new ReduceAction425 parser::ReduceAction425::init"
+val_t NEW_ReduceAction425_parser___ReduceAction425___init(void);
+typedef val_t (*NEW_ReduceAction425_parser___ReduceAction425___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction426 "init var of ReduceAction426"
+void INIT_ATTRIBUTES__ReduceAction426(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction426_t)(val_t p0);
+val_t NEW_ReduceAction426(void);
+#define LOCATE_CHECKNEW_ReduceAction426 "check new ReduceAction426"
+void CHECKNEW_ReduceAction426(val_t p0);
+typedef void (*CHECKNEW_ReduceAction426_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction426_parser___ReduceAction426___init "new ReduceAction426 parser::ReduceAction426::init"
+val_t NEW_ReduceAction426_parser___ReduceAction426___init(void);
+typedef val_t (*NEW_ReduceAction426_parser___ReduceAction426___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction427 "init var of ReduceAction427"
+void INIT_ATTRIBUTES__ReduceAction427(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction427_t)(val_t p0);
+val_t NEW_ReduceAction427(void);
+#define LOCATE_CHECKNEW_ReduceAction427 "check new ReduceAction427"
+void CHECKNEW_ReduceAction427(val_t p0);
+typedef void (*CHECKNEW_ReduceAction427_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction427_parser___ReduceAction427___init "new ReduceAction427 parser::ReduceAction427::init"
+val_t NEW_ReduceAction427_parser___ReduceAction427___init(void);
+typedef val_t (*NEW_ReduceAction427_parser___ReduceAction427___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction428 "init var of ReduceAction428"
+void INIT_ATTRIBUTES__ReduceAction428(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction428_t)(val_t p0);
+val_t NEW_ReduceAction428(void);
+#define LOCATE_CHECKNEW_ReduceAction428 "check new ReduceAction428"
+void CHECKNEW_ReduceAction428(val_t p0);
+typedef void (*CHECKNEW_ReduceAction428_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction428_parser___ReduceAction428___init "new ReduceAction428 parser::ReduceAction428::init"
+val_t NEW_ReduceAction428_parser___ReduceAction428___init(void);
+typedef val_t (*NEW_ReduceAction428_parser___ReduceAction428___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction429 "init var of ReduceAction429"
+void INIT_ATTRIBUTES__ReduceAction429(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction429_t)(val_t p0);
+val_t NEW_ReduceAction429(void);
+#define LOCATE_CHECKNEW_ReduceAction429 "check new ReduceAction429"
+void CHECKNEW_ReduceAction429(val_t p0);
+typedef void (*CHECKNEW_ReduceAction429_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction429_parser___ReduceAction429___init "new ReduceAction429 parser::ReduceAction429::init"
+val_t NEW_ReduceAction429_parser___ReduceAction429___init(void);
+typedef val_t (*NEW_ReduceAction429_parser___ReduceAction429___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction430 "init var of ReduceAction430"
+void INIT_ATTRIBUTES__ReduceAction430(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction430_t)(val_t p0);
+val_t NEW_ReduceAction430(void);
+#define LOCATE_CHECKNEW_ReduceAction430 "check new ReduceAction430"
+void CHECKNEW_ReduceAction430(val_t p0);
+typedef void (*CHECKNEW_ReduceAction430_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction430_parser___ReduceAction430___init "new ReduceAction430 parser::ReduceAction430::init"
+val_t NEW_ReduceAction430_parser___ReduceAction430___init(void);
+typedef val_t (*NEW_ReduceAction430_parser___ReduceAction430___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction431 "init var of ReduceAction431"
+void INIT_ATTRIBUTES__ReduceAction431(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction431_t)(val_t p0);
+val_t NEW_ReduceAction431(void);
+#define LOCATE_CHECKNEW_ReduceAction431 "check new ReduceAction431"
+void CHECKNEW_ReduceAction431(val_t p0);
+typedef void (*CHECKNEW_ReduceAction431_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction431_parser___ReduceAction431___init "new ReduceAction431 parser::ReduceAction431::init"
+val_t NEW_ReduceAction431_parser___ReduceAction431___init(void);
+typedef val_t (*NEW_ReduceAction431_parser___ReduceAction431___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction432 "init var of ReduceAction432"
+void INIT_ATTRIBUTES__ReduceAction432(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction432_t)(val_t p0);
+val_t NEW_ReduceAction432(void);
+#define LOCATE_CHECKNEW_ReduceAction432 "check new ReduceAction432"
+void CHECKNEW_ReduceAction432(val_t p0);
+typedef void (*CHECKNEW_ReduceAction432_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction432_parser___ReduceAction432___init "new ReduceAction432 parser::ReduceAction432::init"
+val_t NEW_ReduceAction432_parser___ReduceAction432___init(void);
+typedef val_t (*NEW_ReduceAction432_parser___ReduceAction432___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction433 "init var of ReduceAction433"
+void INIT_ATTRIBUTES__ReduceAction433(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction433_t)(val_t p0);
+val_t NEW_ReduceAction433(void);
+#define LOCATE_CHECKNEW_ReduceAction433 "check new ReduceAction433"
+void CHECKNEW_ReduceAction433(val_t p0);
+typedef void (*CHECKNEW_ReduceAction433_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction433_parser___ReduceAction433___init "new ReduceAction433 parser::ReduceAction433::init"
+val_t NEW_ReduceAction433_parser___ReduceAction433___init(void);
+typedef val_t (*NEW_ReduceAction433_parser___ReduceAction433___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction434 "init var of ReduceAction434"
+void INIT_ATTRIBUTES__ReduceAction434(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction434_t)(val_t p0);
+val_t NEW_ReduceAction434(void);
+#define LOCATE_CHECKNEW_ReduceAction434 "check new ReduceAction434"
+void CHECKNEW_ReduceAction434(val_t p0);
+typedef void (*CHECKNEW_ReduceAction434_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction434_parser___ReduceAction434___init "new ReduceAction434 parser::ReduceAction434::init"
+val_t NEW_ReduceAction434_parser___ReduceAction434___init(void);
+typedef val_t (*NEW_ReduceAction434_parser___ReduceAction434___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction435 "init var of ReduceAction435"
+void INIT_ATTRIBUTES__ReduceAction435(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction435_t)(val_t p0);
+val_t NEW_ReduceAction435(void);
+#define LOCATE_CHECKNEW_ReduceAction435 "check new ReduceAction435"
+void CHECKNEW_ReduceAction435(val_t p0);
+typedef void (*CHECKNEW_ReduceAction435_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction435_parser___ReduceAction435___init "new ReduceAction435 parser::ReduceAction435::init"
+val_t NEW_ReduceAction435_parser___ReduceAction435___init(void);
+typedef val_t (*NEW_ReduceAction435_parser___ReduceAction435___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction436 "init var of ReduceAction436"
+void INIT_ATTRIBUTES__ReduceAction436(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction436_t)(val_t p0);
+val_t NEW_ReduceAction436(void);
+#define LOCATE_CHECKNEW_ReduceAction436 "check new ReduceAction436"
+void CHECKNEW_ReduceAction436(val_t p0);
+typedef void (*CHECKNEW_ReduceAction436_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction436_parser___ReduceAction436___init "new ReduceAction436 parser::ReduceAction436::init"
+val_t NEW_ReduceAction436_parser___ReduceAction436___init(void);
+typedef val_t (*NEW_ReduceAction436_parser___ReduceAction436___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction437 "init var of ReduceAction437"
+void INIT_ATTRIBUTES__ReduceAction437(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction437_t)(val_t p0);
+val_t NEW_ReduceAction437(void);
+#define LOCATE_CHECKNEW_ReduceAction437 "check new ReduceAction437"
+void CHECKNEW_ReduceAction437(val_t p0);
+typedef void (*CHECKNEW_ReduceAction437_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction437_parser___ReduceAction437___init "new ReduceAction437 parser::ReduceAction437::init"
+val_t NEW_ReduceAction437_parser___ReduceAction437___init(void);
+typedef val_t (*NEW_ReduceAction437_parser___ReduceAction437___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction438 "init var of ReduceAction438"
+void INIT_ATTRIBUTES__ReduceAction438(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction438_t)(val_t p0);
+val_t NEW_ReduceAction438(void);
+#define LOCATE_CHECKNEW_ReduceAction438 "check new ReduceAction438"
+void CHECKNEW_ReduceAction438(val_t p0);
+typedef void (*CHECKNEW_ReduceAction438_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction438_parser___ReduceAction438___init "new ReduceAction438 parser::ReduceAction438::init"
+val_t NEW_ReduceAction438_parser___ReduceAction438___init(void);
+typedef val_t (*NEW_ReduceAction438_parser___ReduceAction438___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction439 "init var of ReduceAction439"
+void INIT_ATTRIBUTES__ReduceAction439(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction439_t)(val_t p0);
+val_t NEW_ReduceAction439(void);
+#define LOCATE_CHECKNEW_ReduceAction439 "check new ReduceAction439"
+void CHECKNEW_ReduceAction439(val_t p0);
+typedef void (*CHECKNEW_ReduceAction439_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction439_parser___ReduceAction439___init "new ReduceAction439 parser::ReduceAction439::init"
+val_t NEW_ReduceAction439_parser___ReduceAction439___init(void);
+typedef val_t (*NEW_ReduceAction439_parser___ReduceAction439___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction440 "init var of ReduceAction440"
+void INIT_ATTRIBUTES__ReduceAction440(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction440_t)(val_t p0);
+val_t NEW_ReduceAction440(void);
+#define LOCATE_CHECKNEW_ReduceAction440 "check new ReduceAction440"
+void CHECKNEW_ReduceAction440(val_t p0);
+typedef void (*CHECKNEW_ReduceAction440_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction440_parser___ReduceAction440___init "new ReduceAction440 parser::ReduceAction440::init"
+val_t NEW_ReduceAction440_parser___ReduceAction440___init(void);
+typedef val_t (*NEW_ReduceAction440_parser___ReduceAction440___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction441 "init var of ReduceAction441"
+void INIT_ATTRIBUTES__ReduceAction441(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction441_t)(val_t p0);
+val_t NEW_ReduceAction441(void);
+#define LOCATE_CHECKNEW_ReduceAction441 "check new ReduceAction441"
+void CHECKNEW_ReduceAction441(val_t p0);
+typedef void (*CHECKNEW_ReduceAction441_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction441_parser___ReduceAction441___init "new ReduceAction441 parser::ReduceAction441::init"
+val_t NEW_ReduceAction441_parser___ReduceAction441___init(void);
+typedef val_t (*NEW_ReduceAction441_parser___ReduceAction441___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction442 "init var of ReduceAction442"
+void INIT_ATTRIBUTES__ReduceAction442(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction442_t)(val_t p0);
+val_t NEW_ReduceAction442(void);
+#define LOCATE_CHECKNEW_ReduceAction442 "check new ReduceAction442"
+void CHECKNEW_ReduceAction442(val_t p0);
+typedef void (*CHECKNEW_ReduceAction442_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction442_parser___ReduceAction442___init "new ReduceAction442 parser::ReduceAction442::init"
+val_t NEW_ReduceAction442_parser___ReduceAction442___init(void);
+typedef val_t (*NEW_ReduceAction442_parser___ReduceAction442___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction443 "init var of ReduceAction443"
+void INIT_ATTRIBUTES__ReduceAction443(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction443_t)(val_t p0);
+val_t NEW_ReduceAction443(void);
+#define LOCATE_CHECKNEW_ReduceAction443 "check new ReduceAction443"
+void CHECKNEW_ReduceAction443(val_t p0);
+typedef void (*CHECKNEW_ReduceAction443_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction443_parser___ReduceAction443___init "new ReduceAction443 parser::ReduceAction443::init"
+val_t NEW_ReduceAction443_parser___ReduceAction443___init(void);
+typedef val_t (*NEW_ReduceAction443_parser___ReduceAction443___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction444 "init var of ReduceAction444"
+void INIT_ATTRIBUTES__ReduceAction444(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction444_t)(val_t p0);
+val_t NEW_ReduceAction444(void);
+#define LOCATE_CHECKNEW_ReduceAction444 "check new ReduceAction444"
+void CHECKNEW_ReduceAction444(val_t p0);
+typedef void (*CHECKNEW_ReduceAction444_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction444_parser___ReduceAction444___init "new ReduceAction444 parser::ReduceAction444::init"
+val_t NEW_ReduceAction444_parser___ReduceAction444___init(void);
+typedef val_t (*NEW_ReduceAction444_parser___ReduceAction444___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction445 "init var of ReduceAction445"
+void INIT_ATTRIBUTES__ReduceAction445(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction445_t)(val_t p0);
+val_t NEW_ReduceAction445(void);
+#define LOCATE_CHECKNEW_ReduceAction445 "check new ReduceAction445"
+void CHECKNEW_ReduceAction445(val_t p0);
+typedef void (*CHECKNEW_ReduceAction445_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction445_parser___ReduceAction445___init "new ReduceAction445 parser::ReduceAction445::init"
+val_t NEW_ReduceAction445_parser___ReduceAction445___init(void);
+typedef val_t (*NEW_ReduceAction445_parser___ReduceAction445___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction446 "init var of ReduceAction446"
+void INIT_ATTRIBUTES__ReduceAction446(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction446_t)(val_t p0);
+val_t NEW_ReduceAction446(void);
+#define LOCATE_CHECKNEW_ReduceAction446 "check new ReduceAction446"
+void CHECKNEW_ReduceAction446(val_t p0);
+typedef void (*CHECKNEW_ReduceAction446_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction446_parser___ReduceAction446___init "new ReduceAction446 parser::ReduceAction446::init"
+val_t NEW_ReduceAction446_parser___ReduceAction446___init(void);
+typedef val_t (*NEW_ReduceAction446_parser___ReduceAction446___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction447 "init var of ReduceAction447"
+void INIT_ATTRIBUTES__ReduceAction447(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction447_t)(val_t p0);
+val_t NEW_ReduceAction447(void);
+#define LOCATE_CHECKNEW_ReduceAction447 "check new ReduceAction447"
+void CHECKNEW_ReduceAction447(val_t p0);
+typedef void (*CHECKNEW_ReduceAction447_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction447_parser___ReduceAction447___init "new ReduceAction447 parser::ReduceAction447::init"
+val_t NEW_ReduceAction447_parser___ReduceAction447___init(void);
+typedef val_t (*NEW_ReduceAction447_parser___ReduceAction447___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction448 "init var of ReduceAction448"
+void INIT_ATTRIBUTES__ReduceAction448(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction448_t)(val_t p0);
+val_t NEW_ReduceAction448(void);
+#define LOCATE_CHECKNEW_ReduceAction448 "check new ReduceAction448"
+void CHECKNEW_ReduceAction448(val_t p0);
+typedef void (*CHECKNEW_ReduceAction448_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction448_parser___ReduceAction448___init "new ReduceAction448 parser::ReduceAction448::init"
+val_t NEW_ReduceAction448_parser___ReduceAction448___init(void);
+typedef val_t (*NEW_ReduceAction448_parser___ReduceAction448___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction449 "init var of ReduceAction449"
+void INIT_ATTRIBUTES__ReduceAction449(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction449_t)(val_t p0);
+val_t NEW_ReduceAction449(void);
+#define LOCATE_CHECKNEW_ReduceAction449 "check new ReduceAction449"
+void CHECKNEW_ReduceAction449(val_t p0);
+typedef void (*CHECKNEW_ReduceAction449_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction449_parser___ReduceAction449___init "new ReduceAction449 parser::ReduceAction449::init"
+val_t NEW_ReduceAction449_parser___ReduceAction449___init(void);
+typedef val_t (*NEW_ReduceAction449_parser___ReduceAction449___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction450 "init var of ReduceAction450"
+void INIT_ATTRIBUTES__ReduceAction450(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction450_t)(val_t p0);
+val_t NEW_ReduceAction450(void);
+#define LOCATE_CHECKNEW_ReduceAction450 "check new ReduceAction450"
+void CHECKNEW_ReduceAction450(val_t p0);
+typedef void (*CHECKNEW_ReduceAction450_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction450_parser___ReduceAction450___init "new ReduceAction450 parser::ReduceAction450::init"
+val_t NEW_ReduceAction450_parser___ReduceAction450___init(void);
+typedef val_t (*NEW_ReduceAction450_parser___ReduceAction450___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction451 "init var of ReduceAction451"
+void INIT_ATTRIBUTES__ReduceAction451(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction451_t)(val_t p0);
+val_t NEW_ReduceAction451(void);
+#define LOCATE_CHECKNEW_ReduceAction451 "check new ReduceAction451"
+void CHECKNEW_ReduceAction451(val_t p0);
+typedef void (*CHECKNEW_ReduceAction451_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction451_parser___ReduceAction451___init "new ReduceAction451 parser::ReduceAction451::init"
+val_t NEW_ReduceAction451_parser___ReduceAction451___init(void);
+typedef val_t (*NEW_ReduceAction451_parser___ReduceAction451___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction452 "init var of ReduceAction452"
+void INIT_ATTRIBUTES__ReduceAction452(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction452_t)(val_t p0);
+val_t NEW_ReduceAction452(void);
+#define LOCATE_CHECKNEW_ReduceAction452 "check new ReduceAction452"
+void CHECKNEW_ReduceAction452(val_t p0);
+typedef void (*CHECKNEW_ReduceAction452_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction452_parser___ReduceAction452___init "new ReduceAction452 parser::ReduceAction452::init"
+val_t NEW_ReduceAction452_parser___ReduceAction452___init(void);
+typedef val_t (*NEW_ReduceAction452_parser___ReduceAction452___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction453 "init var of ReduceAction453"
+void INIT_ATTRIBUTES__ReduceAction453(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction453_t)(val_t p0);
+val_t NEW_ReduceAction453(void);
+#define LOCATE_CHECKNEW_ReduceAction453 "check new ReduceAction453"
+void CHECKNEW_ReduceAction453(val_t p0);
+typedef void (*CHECKNEW_ReduceAction453_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction453_parser___ReduceAction453___init "new ReduceAction453 parser::ReduceAction453::init"
+val_t NEW_ReduceAction453_parser___ReduceAction453___init(void);
+typedef val_t (*NEW_ReduceAction453_parser___ReduceAction453___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction454 "init var of ReduceAction454"
+void INIT_ATTRIBUTES__ReduceAction454(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction454_t)(val_t p0);
+val_t NEW_ReduceAction454(void);
+#define LOCATE_CHECKNEW_ReduceAction454 "check new ReduceAction454"
+void CHECKNEW_ReduceAction454(val_t p0);
+typedef void (*CHECKNEW_ReduceAction454_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction454_parser___ReduceAction454___init "new ReduceAction454 parser::ReduceAction454::init"
+val_t NEW_ReduceAction454_parser___ReduceAction454___init(void);
+typedef val_t (*NEW_ReduceAction454_parser___ReduceAction454___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction455 "init var of ReduceAction455"
+void INIT_ATTRIBUTES__ReduceAction455(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction455_t)(val_t p0);
+val_t NEW_ReduceAction455(void);
+#define LOCATE_CHECKNEW_ReduceAction455 "check new ReduceAction455"
+void CHECKNEW_ReduceAction455(val_t p0);
+typedef void (*CHECKNEW_ReduceAction455_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction455_parser___ReduceAction455___init "new ReduceAction455 parser::ReduceAction455::init"
+val_t NEW_ReduceAction455_parser___ReduceAction455___init(void);
+typedef val_t (*NEW_ReduceAction455_parser___ReduceAction455___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction456 "init var of ReduceAction456"
+void INIT_ATTRIBUTES__ReduceAction456(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction456_t)(val_t p0);
+val_t NEW_ReduceAction456(void);
+#define LOCATE_CHECKNEW_ReduceAction456 "check new ReduceAction456"
+void CHECKNEW_ReduceAction456(val_t p0);
+typedef void (*CHECKNEW_ReduceAction456_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction456_parser___ReduceAction456___init "new ReduceAction456 parser::ReduceAction456::init"
+val_t NEW_ReduceAction456_parser___ReduceAction456___init(void);
+typedef val_t (*NEW_ReduceAction456_parser___ReduceAction456___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction457 "init var of ReduceAction457"
+void INIT_ATTRIBUTES__ReduceAction457(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction457_t)(val_t p0);
+val_t NEW_ReduceAction457(void);
+#define LOCATE_CHECKNEW_ReduceAction457 "check new ReduceAction457"
+void CHECKNEW_ReduceAction457(val_t p0);
+typedef void (*CHECKNEW_ReduceAction457_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction457_parser___ReduceAction457___init "new ReduceAction457 parser::ReduceAction457::init"
+val_t NEW_ReduceAction457_parser___ReduceAction457___init(void);
+typedef val_t (*NEW_ReduceAction457_parser___ReduceAction457___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction458 "init var of ReduceAction458"
+void INIT_ATTRIBUTES__ReduceAction458(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction458_t)(val_t p0);
+val_t NEW_ReduceAction458(void);
+#define LOCATE_CHECKNEW_ReduceAction458 "check new ReduceAction458"
+void CHECKNEW_ReduceAction458(val_t p0);
+typedef void (*CHECKNEW_ReduceAction458_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction458_parser___ReduceAction458___init "new ReduceAction458 parser::ReduceAction458::init"
+val_t NEW_ReduceAction458_parser___ReduceAction458___init(void);
+typedef val_t (*NEW_ReduceAction458_parser___ReduceAction458___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction459 "init var of ReduceAction459"
+void INIT_ATTRIBUTES__ReduceAction459(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction459_t)(val_t p0);
+val_t NEW_ReduceAction459(void);
+#define LOCATE_CHECKNEW_ReduceAction459 "check new ReduceAction459"
+void CHECKNEW_ReduceAction459(val_t p0);
+typedef void (*CHECKNEW_ReduceAction459_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction459_parser___ReduceAction459___init "new ReduceAction459 parser::ReduceAction459::init"
+val_t NEW_ReduceAction459_parser___ReduceAction459___init(void);
+typedef val_t (*NEW_ReduceAction459_parser___ReduceAction459___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction460 "init var of ReduceAction460"
+void INIT_ATTRIBUTES__ReduceAction460(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction460_t)(val_t p0);
+val_t NEW_ReduceAction460(void);
+#define LOCATE_CHECKNEW_ReduceAction460 "check new ReduceAction460"
+void CHECKNEW_ReduceAction460(val_t p0);
+typedef void (*CHECKNEW_ReduceAction460_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction460_parser___ReduceAction460___init "new ReduceAction460 parser::ReduceAction460::init"
+val_t NEW_ReduceAction460_parser___ReduceAction460___init(void);
+typedef val_t (*NEW_ReduceAction460_parser___ReduceAction460___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction461 "init var of ReduceAction461"
+void INIT_ATTRIBUTES__ReduceAction461(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction461_t)(val_t p0);
+val_t NEW_ReduceAction461(void);
+#define LOCATE_CHECKNEW_ReduceAction461 "check new ReduceAction461"
+void CHECKNEW_ReduceAction461(val_t p0);
+typedef void (*CHECKNEW_ReduceAction461_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction461_parser___ReduceAction461___init "new ReduceAction461 parser::ReduceAction461::init"
+val_t NEW_ReduceAction461_parser___ReduceAction461___init(void);
+typedef val_t (*NEW_ReduceAction461_parser___ReduceAction461___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction462 "init var of ReduceAction462"
+void INIT_ATTRIBUTES__ReduceAction462(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction462_t)(val_t p0);
+val_t NEW_ReduceAction462(void);
+#define LOCATE_CHECKNEW_ReduceAction462 "check new ReduceAction462"
+void CHECKNEW_ReduceAction462(val_t p0);
+typedef void (*CHECKNEW_ReduceAction462_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction462_parser___ReduceAction462___init "new ReduceAction462 parser::ReduceAction462::init"
+val_t NEW_ReduceAction462_parser___ReduceAction462___init(void);
+typedef val_t (*NEW_ReduceAction462_parser___ReduceAction462___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction463 "init var of ReduceAction463"
+void INIT_ATTRIBUTES__ReduceAction463(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction463_t)(val_t p0);
+val_t NEW_ReduceAction463(void);
+#define LOCATE_CHECKNEW_ReduceAction463 "check new ReduceAction463"
+void CHECKNEW_ReduceAction463(val_t p0);
+typedef void (*CHECKNEW_ReduceAction463_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction463_parser___ReduceAction463___init "new ReduceAction463 parser::ReduceAction463::init"
+val_t NEW_ReduceAction463_parser___ReduceAction463___init(void);
+typedef val_t (*NEW_ReduceAction463_parser___ReduceAction463___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction464 "init var of ReduceAction464"
+void INIT_ATTRIBUTES__ReduceAction464(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction464_t)(val_t p0);
+val_t NEW_ReduceAction464(void);
+#define LOCATE_CHECKNEW_ReduceAction464 "check new ReduceAction464"
+void CHECKNEW_ReduceAction464(val_t p0);
+typedef void (*CHECKNEW_ReduceAction464_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction464_parser___ReduceAction464___init "new ReduceAction464 parser::ReduceAction464::init"
+val_t NEW_ReduceAction464_parser___ReduceAction464___init(void);
+typedef val_t (*NEW_ReduceAction464_parser___ReduceAction464___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction465 "init var of ReduceAction465"
+void INIT_ATTRIBUTES__ReduceAction465(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction465_t)(val_t p0);
+val_t NEW_ReduceAction465(void);
+#define LOCATE_CHECKNEW_ReduceAction465 "check new ReduceAction465"
+void CHECKNEW_ReduceAction465(val_t p0);
+typedef void (*CHECKNEW_ReduceAction465_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction465_parser___ReduceAction465___init "new ReduceAction465 parser::ReduceAction465::init"
+val_t NEW_ReduceAction465_parser___ReduceAction465___init(void);
+typedef val_t (*NEW_ReduceAction465_parser___ReduceAction465___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction466 "init var of ReduceAction466"
+void INIT_ATTRIBUTES__ReduceAction466(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction466_t)(val_t p0);
+val_t NEW_ReduceAction466(void);
+#define LOCATE_CHECKNEW_ReduceAction466 "check new ReduceAction466"
+void CHECKNEW_ReduceAction466(val_t p0);
+typedef void (*CHECKNEW_ReduceAction466_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction466_parser___ReduceAction466___init "new ReduceAction466 parser::ReduceAction466::init"
+val_t NEW_ReduceAction466_parser___ReduceAction466___init(void);
+typedef val_t (*NEW_ReduceAction466_parser___ReduceAction466___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction467 "init var of ReduceAction467"
+void INIT_ATTRIBUTES__ReduceAction467(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction467_t)(val_t p0);
+val_t NEW_ReduceAction467(void);
+#define LOCATE_CHECKNEW_ReduceAction467 "check new ReduceAction467"
+void CHECKNEW_ReduceAction467(val_t p0);
+typedef void (*CHECKNEW_ReduceAction467_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction467_parser___ReduceAction467___init "new ReduceAction467 parser::ReduceAction467::init"
+val_t NEW_ReduceAction467_parser___ReduceAction467___init(void);
+typedef val_t (*NEW_ReduceAction467_parser___ReduceAction467___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction468 "init var of ReduceAction468"
+void INIT_ATTRIBUTES__ReduceAction468(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction468_t)(val_t p0);
+val_t NEW_ReduceAction468(void);
+#define LOCATE_CHECKNEW_ReduceAction468 "check new ReduceAction468"
+void CHECKNEW_ReduceAction468(val_t p0);
+typedef void (*CHECKNEW_ReduceAction468_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction468_parser___ReduceAction468___init "new ReduceAction468 parser::ReduceAction468::init"
+val_t NEW_ReduceAction468_parser___ReduceAction468___init(void);
+typedef val_t (*NEW_ReduceAction468_parser___ReduceAction468___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction469 "init var of ReduceAction469"
+void INIT_ATTRIBUTES__ReduceAction469(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction469_t)(val_t p0);
+val_t NEW_ReduceAction469(void);
+#define LOCATE_CHECKNEW_ReduceAction469 "check new ReduceAction469"
+void CHECKNEW_ReduceAction469(val_t p0);
+typedef void (*CHECKNEW_ReduceAction469_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction469_parser___ReduceAction469___init "new ReduceAction469 parser::ReduceAction469::init"
+val_t NEW_ReduceAction469_parser___ReduceAction469___init(void);
+typedef val_t (*NEW_ReduceAction469_parser___ReduceAction469___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction470 "init var of ReduceAction470"
+void INIT_ATTRIBUTES__ReduceAction470(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction470_t)(val_t p0);
+val_t NEW_ReduceAction470(void);
+#define LOCATE_CHECKNEW_ReduceAction470 "check new ReduceAction470"
+void CHECKNEW_ReduceAction470(val_t p0);
+typedef void (*CHECKNEW_ReduceAction470_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction470_parser___ReduceAction470___init "new ReduceAction470 parser::ReduceAction470::init"
+val_t NEW_ReduceAction470_parser___ReduceAction470___init(void);
+typedef val_t (*NEW_ReduceAction470_parser___ReduceAction470___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction471 "init var of ReduceAction471"
+void INIT_ATTRIBUTES__ReduceAction471(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction471_t)(val_t p0);
+val_t NEW_ReduceAction471(void);
+#define LOCATE_CHECKNEW_ReduceAction471 "check new ReduceAction471"
+void CHECKNEW_ReduceAction471(val_t p0);
+typedef void (*CHECKNEW_ReduceAction471_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction471_parser___ReduceAction471___init "new ReduceAction471 parser::ReduceAction471::init"
+val_t NEW_ReduceAction471_parser___ReduceAction471___init(void);
+typedef val_t (*NEW_ReduceAction471_parser___ReduceAction471___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction472 "init var of ReduceAction472"
+void INIT_ATTRIBUTES__ReduceAction472(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction472_t)(val_t p0);
+val_t NEW_ReduceAction472(void);
+#define LOCATE_CHECKNEW_ReduceAction472 "check new ReduceAction472"
+void CHECKNEW_ReduceAction472(val_t p0);
+typedef void (*CHECKNEW_ReduceAction472_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction472_parser___ReduceAction472___init "new ReduceAction472 parser::ReduceAction472::init"
+val_t NEW_ReduceAction472_parser___ReduceAction472___init(void);
+typedef val_t (*NEW_ReduceAction472_parser___ReduceAction472___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction473 "init var of ReduceAction473"
+void INIT_ATTRIBUTES__ReduceAction473(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction473_t)(val_t p0);
+val_t NEW_ReduceAction473(void);
+#define LOCATE_CHECKNEW_ReduceAction473 "check new ReduceAction473"
+void CHECKNEW_ReduceAction473(val_t p0);
+typedef void (*CHECKNEW_ReduceAction473_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction473_parser___ReduceAction473___init "new ReduceAction473 parser::ReduceAction473::init"
+val_t NEW_ReduceAction473_parser___ReduceAction473___init(void);
+typedef val_t (*NEW_ReduceAction473_parser___ReduceAction473___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction474 "init var of ReduceAction474"
+void INIT_ATTRIBUTES__ReduceAction474(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction474_t)(val_t p0);
+val_t NEW_ReduceAction474(void);
+#define LOCATE_CHECKNEW_ReduceAction474 "check new ReduceAction474"
+void CHECKNEW_ReduceAction474(val_t p0);
+typedef void (*CHECKNEW_ReduceAction474_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction474_parser___ReduceAction474___init "new ReduceAction474 parser::ReduceAction474::init"
+val_t NEW_ReduceAction474_parser___ReduceAction474___init(void);
+typedef val_t (*NEW_ReduceAction474_parser___ReduceAction474___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction475 "init var of ReduceAction475"
+void INIT_ATTRIBUTES__ReduceAction475(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction475_t)(val_t p0);
+val_t NEW_ReduceAction475(void);
+#define LOCATE_CHECKNEW_ReduceAction475 "check new ReduceAction475"
+void CHECKNEW_ReduceAction475(val_t p0);
+typedef void (*CHECKNEW_ReduceAction475_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction475_parser___ReduceAction475___init "new ReduceAction475 parser::ReduceAction475::init"
+val_t NEW_ReduceAction475_parser___ReduceAction475___init(void);
+typedef val_t (*NEW_ReduceAction475_parser___ReduceAction475___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction476 "init var of ReduceAction476"
+void INIT_ATTRIBUTES__ReduceAction476(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction476_t)(val_t p0);
+val_t NEW_ReduceAction476(void);
+#define LOCATE_CHECKNEW_ReduceAction476 "check new ReduceAction476"
+void CHECKNEW_ReduceAction476(val_t p0);
+typedef void (*CHECKNEW_ReduceAction476_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction476_parser___ReduceAction476___init "new ReduceAction476 parser::ReduceAction476::init"
+val_t NEW_ReduceAction476_parser___ReduceAction476___init(void);
+typedef val_t (*NEW_ReduceAction476_parser___ReduceAction476___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction477 "init var of ReduceAction477"
+void INIT_ATTRIBUTES__ReduceAction477(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction477_t)(val_t p0);
+val_t NEW_ReduceAction477(void);
+#define LOCATE_CHECKNEW_ReduceAction477 "check new ReduceAction477"
+void CHECKNEW_ReduceAction477(val_t p0);
+typedef void (*CHECKNEW_ReduceAction477_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction477_parser___ReduceAction477___init "new ReduceAction477 parser::ReduceAction477::init"
+val_t NEW_ReduceAction477_parser___ReduceAction477___init(void);
+typedef val_t (*NEW_ReduceAction477_parser___ReduceAction477___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction478 "init var of ReduceAction478"
+void INIT_ATTRIBUTES__ReduceAction478(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction478_t)(val_t p0);
+val_t NEW_ReduceAction478(void);
+#define LOCATE_CHECKNEW_ReduceAction478 "check new ReduceAction478"
+void CHECKNEW_ReduceAction478(val_t p0);
+typedef void (*CHECKNEW_ReduceAction478_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction478_parser___ReduceAction478___init "new ReduceAction478 parser::ReduceAction478::init"
+val_t NEW_ReduceAction478_parser___ReduceAction478___init(void);
+typedef val_t (*NEW_ReduceAction478_parser___ReduceAction478___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction479 "init var of ReduceAction479"
+void INIT_ATTRIBUTES__ReduceAction479(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction479_t)(val_t p0);
+val_t NEW_ReduceAction479(void);
+#define LOCATE_CHECKNEW_ReduceAction479 "check new ReduceAction479"
+void CHECKNEW_ReduceAction479(val_t p0);
+typedef void (*CHECKNEW_ReduceAction479_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction479_parser___ReduceAction479___init "new ReduceAction479 parser::ReduceAction479::init"
+val_t NEW_ReduceAction479_parser___ReduceAction479___init(void);
+typedef val_t (*NEW_ReduceAction479_parser___ReduceAction479___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction480 "init var of ReduceAction480"
+void INIT_ATTRIBUTES__ReduceAction480(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction480_t)(val_t p0);
+val_t NEW_ReduceAction480(void);
+#define LOCATE_CHECKNEW_ReduceAction480 "check new ReduceAction480"
+void CHECKNEW_ReduceAction480(val_t p0);
+typedef void (*CHECKNEW_ReduceAction480_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction480_parser___ReduceAction480___init "new ReduceAction480 parser::ReduceAction480::init"
+val_t NEW_ReduceAction480_parser___ReduceAction480___init(void);
+typedef val_t (*NEW_ReduceAction480_parser___ReduceAction480___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction481 "init var of ReduceAction481"
+void INIT_ATTRIBUTES__ReduceAction481(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction481_t)(val_t p0);
+val_t NEW_ReduceAction481(void);
+#define LOCATE_CHECKNEW_ReduceAction481 "check new ReduceAction481"
+void CHECKNEW_ReduceAction481(val_t p0);
+typedef void (*CHECKNEW_ReduceAction481_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction481_parser___ReduceAction481___init "new ReduceAction481 parser::ReduceAction481::init"
+val_t NEW_ReduceAction481_parser___ReduceAction481___init(void);
+typedef val_t (*NEW_ReduceAction481_parser___ReduceAction481___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction482 "init var of ReduceAction482"
+void INIT_ATTRIBUTES__ReduceAction482(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction482_t)(val_t p0);
+val_t NEW_ReduceAction482(void);
+#define LOCATE_CHECKNEW_ReduceAction482 "check new ReduceAction482"
+void CHECKNEW_ReduceAction482(val_t p0);
+typedef void (*CHECKNEW_ReduceAction482_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction482_parser___ReduceAction482___init "new ReduceAction482 parser::ReduceAction482::init"
+val_t NEW_ReduceAction482_parser___ReduceAction482___init(void);
+typedef val_t (*NEW_ReduceAction482_parser___ReduceAction482___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction483 "init var of ReduceAction483"
+void INIT_ATTRIBUTES__ReduceAction483(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction483_t)(val_t p0);
+val_t NEW_ReduceAction483(void);
+#define LOCATE_CHECKNEW_ReduceAction483 "check new ReduceAction483"
+void CHECKNEW_ReduceAction483(val_t p0);
+typedef void (*CHECKNEW_ReduceAction483_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction483_parser___ReduceAction483___init "new ReduceAction483 parser::ReduceAction483::init"
+val_t NEW_ReduceAction483_parser___ReduceAction483___init(void);
+typedef val_t (*NEW_ReduceAction483_parser___ReduceAction483___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction484 "init var of ReduceAction484"
+void INIT_ATTRIBUTES__ReduceAction484(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction484_t)(val_t p0);
+val_t NEW_ReduceAction484(void);
+#define LOCATE_CHECKNEW_ReduceAction484 "check new ReduceAction484"
+void CHECKNEW_ReduceAction484(val_t p0);
+typedef void (*CHECKNEW_ReduceAction484_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction484_parser___ReduceAction484___init "new ReduceAction484 parser::ReduceAction484::init"
+val_t NEW_ReduceAction484_parser___ReduceAction484___init(void);
+typedef val_t (*NEW_ReduceAction484_parser___ReduceAction484___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction485 "init var of ReduceAction485"
+void INIT_ATTRIBUTES__ReduceAction485(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction485_t)(val_t p0);
+val_t NEW_ReduceAction485(void);
+#define LOCATE_CHECKNEW_ReduceAction485 "check new ReduceAction485"
+void CHECKNEW_ReduceAction485(val_t p0);
+typedef void (*CHECKNEW_ReduceAction485_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction485_parser___ReduceAction485___init "new ReduceAction485 parser::ReduceAction485::init"
+val_t NEW_ReduceAction485_parser___ReduceAction485___init(void);
+typedef val_t (*NEW_ReduceAction485_parser___ReduceAction485___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction486 "init var of ReduceAction486"
+void INIT_ATTRIBUTES__ReduceAction486(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction486_t)(val_t p0);
+val_t NEW_ReduceAction486(void);
+#define LOCATE_CHECKNEW_ReduceAction486 "check new ReduceAction486"
+void CHECKNEW_ReduceAction486(val_t p0);
+typedef void (*CHECKNEW_ReduceAction486_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction486_parser___ReduceAction486___init "new ReduceAction486 parser::ReduceAction486::init"
+val_t NEW_ReduceAction486_parser___ReduceAction486___init(void);
+typedef val_t (*NEW_ReduceAction486_parser___ReduceAction486___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction487 "init var of ReduceAction487"
+void INIT_ATTRIBUTES__ReduceAction487(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction487_t)(val_t p0);
+val_t NEW_ReduceAction487(void);
+#define LOCATE_CHECKNEW_ReduceAction487 "check new ReduceAction487"
+void CHECKNEW_ReduceAction487(val_t p0);
+typedef void (*CHECKNEW_ReduceAction487_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction487_parser___ReduceAction487___init "new ReduceAction487 parser::ReduceAction487::init"
+val_t NEW_ReduceAction487_parser___ReduceAction487___init(void);
+typedef val_t (*NEW_ReduceAction487_parser___ReduceAction487___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction488 "init var of ReduceAction488"
+void INIT_ATTRIBUTES__ReduceAction488(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction488_t)(val_t p0);
+val_t NEW_ReduceAction488(void);
+#define LOCATE_CHECKNEW_ReduceAction488 "check new ReduceAction488"
+void CHECKNEW_ReduceAction488(val_t p0);
+typedef void (*CHECKNEW_ReduceAction488_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction488_parser___ReduceAction488___init "new ReduceAction488 parser::ReduceAction488::init"
+val_t NEW_ReduceAction488_parser___ReduceAction488___init(void);
+typedef val_t (*NEW_ReduceAction488_parser___ReduceAction488___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction489 "init var of ReduceAction489"
+void INIT_ATTRIBUTES__ReduceAction489(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction489_t)(val_t p0);
+val_t NEW_ReduceAction489(void);
+#define LOCATE_CHECKNEW_ReduceAction489 "check new ReduceAction489"
+void CHECKNEW_ReduceAction489(val_t p0);
+typedef void (*CHECKNEW_ReduceAction489_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction489_parser___ReduceAction489___init "new ReduceAction489 parser::ReduceAction489::init"
+val_t NEW_ReduceAction489_parser___ReduceAction489___init(void);
+typedef val_t (*NEW_ReduceAction489_parser___ReduceAction489___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction490 "init var of ReduceAction490"
+void INIT_ATTRIBUTES__ReduceAction490(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction490_t)(val_t p0);
+val_t NEW_ReduceAction490(void);
+#define LOCATE_CHECKNEW_ReduceAction490 "check new ReduceAction490"
+void CHECKNEW_ReduceAction490(val_t p0);
+typedef void (*CHECKNEW_ReduceAction490_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction490_parser___ReduceAction490___init "new ReduceAction490 parser::ReduceAction490::init"
+val_t NEW_ReduceAction490_parser___ReduceAction490___init(void);
+typedef val_t (*NEW_ReduceAction490_parser___ReduceAction490___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction491 "init var of ReduceAction491"
+void INIT_ATTRIBUTES__ReduceAction491(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction491_t)(val_t p0);
+val_t NEW_ReduceAction491(void);
+#define LOCATE_CHECKNEW_ReduceAction491 "check new ReduceAction491"
+void CHECKNEW_ReduceAction491(val_t p0);
+typedef void (*CHECKNEW_ReduceAction491_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction491_parser___ReduceAction491___init "new ReduceAction491 parser::ReduceAction491::init"
+val_t NEW_ReduceAction491_parser___ReduceAction491___init(void);
+typedef val_t (*NEW_ReduceAction491_parser___ReduceAction491___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction492 "init var of ReduceAction492"
+void INIT_ATTRIBUTES__ReduceAction492(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction492_t)(val_t p0);
+val_t NEW_ReduceAction492(void);
+#define LOCATE_CHECKNEW_ReduceAction492 "check new ReduceAction492"
+void CHECKNEW_ReduceAction492(val_t p0);
+typedef void (*CHECKNEW_ReduceAction492_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction492_parser___ReduceAction492___init "new ReduceAction492 parser::ReduceAction492::init"
+val_t NEW_ReduceAction492_parser___ReduceAction492___init(void);
+typedef val_t (*NEW_ReduceAction492_parser___ReduceAction492___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction493 "init var of ReduceAction493"
+void INIT_ATTRIBUTES__ReduceAction493(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction493_t)(val_t p0);
+val_t NEW_ReduceAction493(void);
+#define LOCATE_CHECKNEW_ReduceAction493 "check new ReduceAction493"
+void CHECKNEW_ReduceAction493(val_t p0);
+typedef void (*CHECKNEW_ReduceAction493_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction493_parser___ReduceAction493___init "new ReduceAction493 parser::ReduceAction493::init"
+val_t NEW_ReduceAction493_parser___ReduceAction493___init(void);
+typedef val_t (*NEW_ReduceAction493_parser___ReduceAction493___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction494 "init var of ReduceAction494"
+void INIT_ATTRIBUTES__ReduceAction494(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction494_t)(val_t p0);
+val_t NEW_ReduceAction494(void);
+#define LOCATE_CHECKNEW_ReduceAction494 "check new ReduceAction494"
+void CHECKNEW_ReduceAction494(val_t p0);
+typedef void (*CHECKNEW_ReduceAction494_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction494_parser___ReduceAction494___init "new ReduceAction494 parser::ReduceAction494::init"
+val_t NEW_ReduceAction494_parser___ReduceAction494___init(void);
+typedef val_t (*NEW_ReduceAction494_parser___ReduceAction494___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction495 "init var of ReduceAction495"
+void INIT_ATTRIBUTES__ReduceAction495(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction495_t)(val_t p0);
+val_t NEW_ReduceAction495(void);
+#define LOCATE_CHECKNEW_ReduceAction495 "check new ReduceAction495"
+void CHECKNEW_ReduceAction495(val_t p0);
+typedef void (*CHECKNEW_ReduceAction495_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction495_parser___ReduceAction495___init "new ReduceAction495 parser::ReduceAction495::init"
+val_t NEW_ReduceAction495_parser___ReduceAction495___init(void);
+typedef val_t (*NEW_ReduceAction495_parser___ReduceAction495___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction496 "init var of ReduceAction496"
+void INIT_ATTRIBUTES__ReduceAction496(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction496_t)(val_t p0);
+val_t NEW_ReduceAction496(void);
+#define LOCATE_CHECKNEW_ReduceAction496 "check new ReduceAction496"
+void CHECKNEW_ReduceAction496(val_t p0);
+typedef void (*CHECKNEW_ReduceAction496_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction496_parser___ReduceAction496___init "new ReduceAction496 parser::ReduceAction496::init"
+val_t NEW_ReduceAction496_parser___ReduceAction496___init(void);
+typedef val_t (*NEW_ReduceAction496_parser___ReduceAction496___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction497 "init var of ReduceAction497"
+void INIT_ATTRIBUTES__ReduceAction497(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction497_t)(val_t p0);
+val_t NEW_ReduceAction497(void);
+#define LOCATE_CHECKNEW_ReduceAction497 "check new ReduceAction497"
+void CHECKNEW_ReduceAction497(val_t p0);
+typedef void (*CHECKNEW_ReduceAction497_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction497_parser___ReduceAction497___init "new ReduceAction497 parser::ReduceAction497::init"
+val_t NEW_ReduceAction497_parser___ReduceAction497___init(void);
+typedef val_t (*NEW_ReduceAction497_parser___ReduceAction497___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction498 "init var of ReduceAction498"
+void INIT_ATTRIBUTES__ReduceAction498(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction498_t)(val_t p0);
+val_t NEW_ReduceAction498(void);
+#define LOCATE_CHECKNEW_ReduceAction498 "check new ReduceAction498"
+void CHECKNEW_ReduceAction498(val_t p0);
+typedef void (*CHECKNEW_ReduceAction498_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction498_parser___ReduceAction498___init "new ReduceAction498 parser::ReduceAction498::init"
+val_t NEW_ReduceAction498_parser___ReduceAction498___init(void);
+typedef val_t (*NEW_ReduceAction498_parser___ReduceAction498___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction499 "init var of ReduceAction499"
+void INIT_ATTRIBUTES__ReduceAction499(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction499_t)(val_t p0);
+val_t NEW_ReduceAction499(void);
+#define LOCATE_CHECKNEW_ReduceAction499 "check new ReduceAction499"
+void CHECKNEW_ReduceAction499(val_t p0);
+typedef void (*CHECKNEW_ReduceAction499_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction499_parser___ReduceAction499___init "new ReduceAction499 parser::ReduceAction499::init"
+val_t NEW_ReduceAction499_parser___ReduceAction499___init(void);
+typedef val_t (*NEW_ReduceAction499_parser___ReduceAction499___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction500 "init var of ReduceAction500"
+void INIT_ATTRIBUTES__ReduceAction500(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction500_t)(val_t p0);
+val_t NEW_ReduceAction500(void);
+#define LOCATE_CHECKNEW_ReduceAction500 "check new ReduceAction500"
+void CHECKNEW_ReduceAction500(val_t p0);
+typedef void (*CHECKNEW_ReduceAction500_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction500_parser___ReduceAction500___init "new ReduceAction500 parser::ReduceAction500::init"
+val_t NEW_ReduceAction500_parser___ReduceAction500___init(void);
+typedef val_t (*NEW_ReduceAction500_parser___ReduceAction500___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction501 "init var of ReduceAction501"
+void INIT_ATTRIBUTES__ReduceAction501(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction501_t)(val_t p0);
+val_t NEW_ReduceAction501(void);
+#define LOCATE_CHECKNEW_ReduceAction501 "check new ReduceAction501"
+void CHECKNEW_ReduceAction501(val_t p0);
+typedef void (*CHECKNEW_ReduceAction501_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction501_parser___ReduceAction501___init "new ReduceAction501 parser::ReduceAction501::init"
+val_t NEW_ReduceAction501_parser___ReduceAction501___init(void);
+typedef val_t (*NEW_ReduceAction501_parser___ReduceAction501___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction502 "init var of ReduceAction502"
+void INIT_ATTRIBUTES__ReduceAction502(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction502_t)(val_t p0);
+val_t NEW_ReduceAction502(void);
+#define LOCATE_CHECKNEW_ReduceAction502 "check new ReduceAction502"
+void CHECKNEW_ReduceAction502(val_t p0);
+typedef void (*CHECKNEW_ReduceAction502_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction502_parser___ReduceAction502___init "new ReduceAction502 parser::ReduceAction502::init"
+val_t NEW_ReduceAction502_parser___ReduceAction502___init(void);
+typedef val_t (*NEW_ReduceAction502_parser___ReduceAction502___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction503 "init var of ReduceAction503"
+void INIT_ATTRIBUTES__ReduceAction503(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction503_t)(val_t p0);
+val_t NEW_ReduceAction503(void);
+#define LOCATE_CHECKNEW_ReduceAction503 "check new ReduceAction503"
+void CHECKNEW_ReduceAction503(val_t p0);
+typedef void (*CHECKNEW_ReduceAction503_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction503_parser___ReduceAction503___init "new ReduceAction503 parser::ReduceAction503::init"
+val_t NEW_ReduceAction503_parser___ReduceAction503___init(void);
+typedef val_t (*NEW_ReduceAction503_parser___ReduceAction503___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction504 "init var of ReduceAction504"
+void INIT_ATTRIBUTES__ReduceAction504(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction504_t)(val_t p0);
+val_t NEW_ReduceAction504(void);
+#define LOCATE_CHECKNEW_ReduceAction504 "check new ReduceAction504"
+void CHECKNEW_ReduceAction504(val_t p0);
+typedef void (*CHECKNEW_ReduceAction504_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction504_parser___ReduceAction504___init "new ReduceAction504 parser::ReduceAction504::init"
+val_t NEW_ReduceAction504_parser___ReduceAction504___init(void);
+typedef val_t (*NEW_ReduceAction504_parser___ReduceAction504___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction505 "init var of ReduceAction505"
+void INIT_ATTRIBUTES__ReduceAction505(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction505_t)(val_t p0);
+val_t NEW_ReduceAction505(void);
+#define LOCATE_CHECKNEW_ReduceAction505 "check new ReduceAction505"
+void CHECKNEW_ReduceAction505(val_t p0);
+typedef void (*CHECKNEW_ReduceAction505_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction505_parser___ReduceAction505___init "new ReduceAction505 parser::ReduceAction505::init"
+val_t NEW_ReduceAction505_parser___ReduceAction505___init(void);
+typedef val_t (*NEW_ReduceAction505_parser___ReduceAction505___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction506 "init var of ReduceAction506"
+void INIT_ATTRIBUTES__ReduceAction506(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction506_t)(val_t p0);
+val_t NEW_ReduceAction506(void);
+#define LOCATE_CHECKNEW_ReduceAction506 "check new ReduceAction506"
+void CHECKNEW_ReduceAction506(val_t p0);
+typedef void (*CHECKNEW_ReduceAction506_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction506_parser___ReduceAction506___init "new ReduceAction506 parser::ReduceAction506::init"
+val_t NEW_ReduceAction506_parser___ReduceAction506___init(void);
+typedef val_t (*NEW_ReduceAction506_parser___ReduceAction506___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction507 "init var of ReduceAction507"
+void INIT_ATTRIBUTES__ReduceAction507(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction507_t)(val_t p0);
+val_t NEW_ReduceAction507(void);
+#define LOCATE_CHECKNEW_ReduceAction507 "check new ReduceAction507"
+void CHECKNEW_ReduceAction507(val_t p0);
+typedef void (*CHECKNEW_ReduceAction507_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction507_parser___ReduceAction507___init "new ReduceAction507 parser::ReduceAction507::init"
+val_t NEW_ReduceAction507_parser___ReduceAction507___init(void);
+typedef val_t (*NEW_ReduceAction507_parser___ReduceAction507___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction508 "init var of ReduceAction508"
+void INIT_ATTRIBUTES__ReduceAction508(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction508_t)(val_t p0);
+val_t NEW_ReduceAction508(void);
+#define LOCATE_CHECKNEW_ReduceAction508 "check new ReduceAction508"
+void CHECKNEW_ReduceAction508(val_t p0);
+typedef void (*CHECKNEW_ReduceAction508_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction508_parser___ReduceAction508___init "new ReduceAction508 parser::ReduceAction508::init"
+val_t NEW_ReduceAction508_parser___ReduceAction508___init(void);
+typedef val_t (*NEW_ReduceAction508_parser___ReduceAction508___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction509 "init var of ReduceAction509"
+void INIT_ATTRIBUTES__ReduceAction509(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction509_t)(val_t p0);
+val_t NEW_ReduceAction509(void);
+#define LOCATE_CHECKNEW_ReduceAction509 "check new ReduceAction509"
+void CHECKNEW_ReduceAction509(val_t p0);
+typedef void (*CHECKNEW_ReduceAction509_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction509_parser___ReduceAction509___init "new ReduceAction509 parser::ReduceAction509::init"
+val_t NEW_ReduceAction509_parser___ReduceAction509___init(void);
+typedef val_t (*NEW_ReduceAction509_parser___ReduceAction509___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction510 "init var of ReduceAction510"
+void INIT_ATTRIBUTES__ReduceAction510(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction510_t)(val_t p0);
+val_t NEW_ReduceAction510(void);
+#define LOCATE_CHECKNEW_ReduceAction510 "check new ReduceAction510"
+void CHECKNEW_ReduceAction510(val_t p0);
+typedef void (*CHECKNEW_ReduceAction510_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction510_parser___ReduceAction510___init "new ReduceAction510 parser::ReduceAction510::init"
+val_t NEW_ReduceAction510_parser___ReduceAction510___init(void);
+typedef val_t (*NEW_ReduceAction510_parser___ReduceAction510___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction511 "init var of ReduceAction511"
+void INIT_ATTRIBUTES__ReduceAction511(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction511_t)(val_t p0);
+val_t NEW_ReduceAction511(void);
+#define LOCATE_CHECKNEW_ReduceAction511 "check new ReduceAction511"
+void CHECKNEW_ReduceAction511(val_t p0);
+typedef void (*CHECKNEW_ReduceAction511_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction511_parser___ReduceAction511___init "new ReduceAction511 parser::ReduceAction511::init"
+val_t NEW_ReduceAction511_parser___ReduceAction511___init(void);
+typedef val_t (*NEW_ReduceAction511_parser___ReduceAction511___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction512 "init var of ReduceAction512"
+void INIT_ATTRIBUTES__ReduceAction512(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction512_t)(val_t p0);
+val_t NEW_ReduceAction512(void);
+#define LOCATE_CHECKNEW_ReduceAction512 "check new ReduceAction512"
+void CHECKNEW_ReduceAction512(val_t p0);
+typedef void (*CHECKNEW_ReduceAction512_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction512_parser___ReduceAction512___init "new ReduceAction512 parser::ReduceAction512::init"
+val_t NEW_ReduceAction512_parser___ReduceAction512___init(void);
+typedef val_t (*NEW_ReduceAction512_parser___ReduceAction512___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction513 "init var of ReduceAction513"
+void INIT_ATTRIBUTES__ReduceAction513(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction513_t)(val_t p0);
+val_t NEW_ReduceAction513(void);
+#define LOCATE_CHECKNEW_ReduceAction513 "check new ReduceAction513"
+void CHECKNEW_ReduceAction513(val_t p0);
+typedef void (*CHECKNEW_ReduceAction513_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction513_parser___ReduceAction513___init "new ReduceAction513 parser::ReduceAction513::init"
+val_t NEW_ReduceAction513_parser___ReduceAction513___init(void);
+typedef val_t (*NEW_ReduceAction513_parser___ReduceAction513___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction514 "init var of ReduceAction514"
+void INIT_ATTRIBUTES__ReduceAction514(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction514_t)(val_t p0);
+val_t NEW_ReduceAction514(void);
+#define LOCATE_CHECKNEW_ReduceAction514 "check new ReduceAction514"
+void CHECKNEW_ReduceAction514(val_t p0);
+typedef void (*CHECKNEW_ReduceAction514_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction514_parser___ReduceAction514___init "new ReduceAction514 parser::ReduceAction514::init"
+val_t NEW_ReduceAction514_parser___ReduceAction514___init(void);
+typedef val_t (*NEW_ReduceAction514_parser___ReduceAction514___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction515 "init var of ReduceAction515"
+void INIT_ATTRIBUTES__ReduceAction515(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction515_t)(val_t p0);
+val_t NEW_ReduceAction515(void);
+#define LOCATE_CHECKNEW_ReduceAction515 "check new ReduceAction515"
+void CHECKNEW_ReduceAction515(val_t p0);
+typedef void (*CHECKNEW_ReduceAction515_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction515_parser___ReduceAction515___init "new ReduceAction515 parser::ReduceAction515::init"
+val_t NEW_ReduceAction515_parser___ReduceAction515___init(void);
+typedef val_t (*NEW_ReduceAction515_parser___ReduceAction515___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction516 "init var of ReduceAction516"
+void INIT_ATTRIBUTES__ReduceAction516(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction516_t)(val_t p0);
+val_t NEW_ReduceAction516(void);
+#define LOCATE_CHECKNEW_ReduceAction516 "check new ReduceAction516"
+void CHECKNEW_ReduceAction516(val_t p0);
+typedef void (*CHECKNEW_ReduceAction516_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction516_parser___ReduceAction516___init "new ReduceAction516 parser::ReduceAction516::init"
+val_t NEW_ReduceAction516_parser___ReduceAction516___init(void);
+typedef val_t (*NEW_ReduceAction516_parser___ReduceAction516___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction517 "init var of ReduceAction517"
+void INIT_ATTRIBUTES__ReduceAction517(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction517_t)(val_t p0);
+val_t NEW_ReduceAction517(void);
+#define LOCATE_CHECKNEW_ReduceAction517 "check new ReduceAction517"
+void CHECKNEW_ReduceAction517(val_t p0);
+typedef void (*CHECKNEW_ReduceAction517_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction517_parser___ReduceAction517___init "new ReduceAction517 parser::ReduceAction517::init"
+val_t NEW_ReduceAction517_parser___ReduceAction517___init(void);
+typedef val_t (*NEW_ReduceAction517_parser___ReduceAction517___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction518 "init var of ReduceAction518"
+void INIT_ATTRIBUTES__ReduceAction518(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction518_t)(val_t p0);
+val_t NEW_ReduceAction518(void);
+#define LOCATE_CHECKNEW_ReduceAction518 "check new ReduceAction518"
+void CHECKNEW_ReduceAction518(val_t p0);
+typedef void (*CHECKNEW_ReduceAction518_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction518_parser___ReduceAction518___init "new ReduceAction518 parser::ReduceAction518::init"
+val_t NEW_ReduceAction518_parser___ReduceAction518___init(void);
+typedef val_t (*NEW_ReduceAction518_parser___ReduceAction518___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction519 "init var of ReduceAction519"
+void INIT_ATTRIBUTES__ReduceAction519(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction519_t)(val_t p0);
+val_t NEW_ReduceAction519(void);
+#define LOCATE_CHECKNEW_ReduceAction519 "check new ReduceAction519"
+void CHECKNEW_ReduceAction519(val_t p0);
+typedef void (*CHECKNEW_ReduceAction519_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction519_parser___ReduceAction519___init "new ReduceAction519 parser::ReduceAction519::init"
+val_t NEW_ReduceAction519_parser___ReduceAction519___init(void);
+typedef val_t (*NEW_ReduceAction519_parser___ReduceAction519___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction520 "init var of ReduceAction520"
+void INIT_ATTRIBUTES__ReduceAction520(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction520_t)(val_t p0);
+val_t NEW_ReduceAction520(void);
+#define LOCATE_CHECKNEW_ReduceAction520 "check new ReduceAction520"
+void CHECKNEW_ReduceAction520(val_t p0);
+typedef void (*CHECKNEW_ReduceAction520_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction520_parser___ReduceAction520___init "new ReduceAction520 parser::ReduceAction520::init"
+val_t NEW_ReduceAction520_parser___ReduceAction520___init(void);
+typedef val_t (*NEW_ReduceAction520_parser___ReduceAction520___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction521 "init var of ReduceAction521"
+void INIT_ATTRIBUTES__ReduceAction521(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction521_t)(val_t p0);
+val_t NEW_ReduceAction521(void);
+#define LOCATE_CHECKNEW_ReduceAction521 "check new ReduceAction521"
+void CHECKNEW_ReduceAction521(val_t p0);
+typedef void (*CHECKNEW_ReduceAction521_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction521_parser___ReduceAction521___init "new ReduceAction521 parser::ReduceAction521::init"
+val_t NEW_ReduceAction521_parser___ReduceAction521___init(void);
+typedef val_t (*NEW_ReduceAction521_parser___ReduceAction521___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction522 "init var of ReduceAction522"
+void INIT_ATTRIBUTES__ReduceAction522(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction522_t)(val_t p0);
+val_t NEW_ReduceAction522(void);
+#define LOCATE_CHECKNEW_ReduceAction522 "check new ReduceAction522"
+void CHECKNEW_ReduceAction522(val_t p0);
+typedef void (*CHECKNEW_ReduceAction522_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction522_parser___ReduceAction522___init "new ReduceAction522 parser::ReduceAction522::init"
+val_t NEW_ReduceAction522_parser___ReduceAction522___init(void);
+typedef val_t (*NEW_ReduceAction522_parser___ReduceAction522___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction523 "init var of ReduceAction523"
+void INIT_ATTRIBUTES__ReduceAction523(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction523_t)(val_t p0);
+val_t NEW_ReduceAction523(void);
+#define LOCATE_CHECKNEW_ReduceAction523 "check new ReduceAction523"
+void CHECKNEW_ReduceAction523(val_t p0);
+typedef void (*CHECKNEW_ReduceAction523_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction523_parser___ReduceAction523___init "new ReduceAction523 parser::ReduceAction523::init"
+val_t NEW_ReduceAction523_parser___ReduceAction523___init(void);
+typedef val_t (*NEW_ReduceAction523_parser___ReduceAction523___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction524 "init var of ReduceAction524"
+void INIT_ATTRIBUTES__ReduceAction524(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction524_t)(val_t p0);
+val_t NEW_ReduceAction524(void);
+#define LOCATE_CHECKNEW_ReduceAction524 "check new ReduceAction524"
+void CHECKNEW_ReduceAction524(val_t p0);
+typedef void (*CHECKNEW_ReduceAction524_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction524_parser___ReduceAction524___init "new ReduceAction524 parser::ReduceAction524::init"
+val_t NEW_ReduceAction524_parser___ReduceAction524___init(void);
+typedef val_t (*NEW_ReduceAction524_parser___ReduceAction524___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction525 "init var of ReduceAction525"
+void INIT_ATTRIBUTES__ReduceAction525(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction525_t)(val_t p0);
+val_t NEW_ReduceAction525(void);
+#define LOCATE_CHECKNEW_ReduceAction525 "check new ReduceAction525"
+void CHECKNEW_ReduceAction525(val_t p0);
+typedef void (*CHECKNEW_ReduceAction525_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction525_parser___ReduceAction525___init "new ReduceAction525 parser::ReduceAction525::init"
+val_t NEW_ReduceAction525_parser___ReduceAction525___init(void);
+typedef val_t (*NEW_ReduceAction525_parser___ReduceAction525___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction526 "init var of ReduceAction526"
+void INIT_ATTRIBUTES__ReduceAction526(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction526_t)(val_t p0);
+val_t NEW_ReduceAction526(void);
+#define LOCATE_CHECKNEW_ReduceAction526 "check new ReduceAction526"
+void CHECKNEW_ReduceAction526(val_t p0);
+typedef void (*CHECKNEW_ReduceAction526_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction526_parser___ReduceAction526___init "new ReduceAction526 parser::ReduceAction526::init"
+val_t NEW_ReduceAction526_parser___ReduceAction526___init(void);
+typedef val_t (*NEW_ReduceAction526_parser___ReduceAction526___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction527 "init var of ReduceAction527"
+void INIT_ATTRIBUTES__ReduceAction527(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction527_t)(val_t p0);
+val_t NEW_ReduceAction527(void);
+#define LOCATE_CHECKNEW_ReduceAction527 "check new ReduceAction527"
+void CHECKNEW_ReduceAction527(val_t p0);
+typedef void (*CHECKNEW_ReduceAction527_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction527_parser___ReduceAction527___init "new ReduceAction527 parser::ReduceAction527::init"
+val_t NEW_ReduceAction527_parser___ReduceAction527___init(void);
+typedef val_t (*NEW_ReduceAction527_parser___ReduceAction527___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction528 "init var of ReduceAction528"
+void INIT_ATTRIBUTES__ReduceAction528(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction528_t)(val_t p0);
+val_t NEW_ReduceAction528(void);
+#define LOCATE_CHECKNEW_ReduceAction528 "check new ReduceAction528"
+void CHECKNEW_ReduceAction528(val_t p0);
+typedef void (*CHECKNEW_ReduceAction528_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction528_parser___ReduceAction528___init "new ReduceAction528 parser::ReduceAction528::init"
+val_t NEW_ReduceAction528_parser___ReduceAction528___init(void);
+typedef val_t (*NEW_ReduceAction528_parser___ReduceAction528___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction529 "init var of ReduceAction529"
+void INIT_ATTRIBUTES__ReduceAction529(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction529_t)(val_t p0);
+val_t NEW_ReduceAction529(void);
+#define LOCATE_CHECKNEW_ReduceAction529 "check new ReduceAction529"
+void CHECKNEW_ReduceAction529(val_t p0);
+typedef void (*CHECKNEW_ReduceAction529_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction529_parser___ReduceAction529___init "new ReduceAction529 parser::ReduceAction529::init"
+val_t NEW_ReduceAction529_parser___ReduceAction529___init(void);
+typedef val_t (*NEW_ReduceAction529_parser___ReduceAction529___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction530 "init var of ReduceAction530"
+void INIT_ATTRIBUTES__ReduceAction530(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction530_t)(val_t p0);
+val_t NEW_ReduceAction530(void);
+#define LOCATE_CHECKNEW_ReduceAction530 "check new ReduceAction530"
+void CHECKNEW_ReduceAction530(val_t p0);
+typedef void (*CHECKNEW_ReduceAction530_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction530_parser___ReduceAction530___init "new ReduceAction530 parser::ReduceAction530::init"
+val_t NEW_ReduceAction530_parser___ReduceAction530___init(void);
+typedef val_t (*NEW_ReduceAction530_parser___ReduceAction530___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction531 "init var of ReduceAction531"
+void INIT_ATTRIBUTES__ReduceAction531(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction531_t)(val_t p0);
+val_t NEW_ReduceAction531(void);
+#define LOCATE_CHECKNEW_ReduceAction531 "check new ReduceAction531"
+void CHECKNEW_ReduceAction531(val_t p0);
+typedef void (*CHECKNEW_ReduceAction531_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction531_parser___ReduceAction531___init "new ReduceAction531 parser::ReduceAction531::init"
+val_t NEW_ReduceAction531_parser___ReduceAction531___init(void);
+typedef val_t (*NEW_ReduceAction531_parser___ReduceAction531___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction532 "init var of ReduceAction532"
+void INIT_ATTRIBUTES__ReduceAction532(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction532_t)(val_t p0);
+val_t NEW_ReduceAction532(void);
+#define LOCATE_CHECKNEW_ReduceAction532 "check new ReduceAction532"
+void CHECKNEW_ReduceAction532(val_t p0);
+typedef void (*CHECKNEW_ReduceAction532_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction532_parser___ReduceAction532___init "new ReduceAction532 parser::ReduceAction532::init"
+val_t NEW_ReduceAction532_parser___ReduceAction532___init(void);
+typedef val_t (*NEW_ReduceAction532_parser___ReduceAction532___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction533 "init var of ReduceAction533"
+void INIT_ATTRIBUTES__ReduceAction533(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction533_t)(val_t p0);
+val_t NEW_ReduceAction533(void);
+#define LOCATE_CHECKNEW_ReduceAction533 "check new ReduceAction533"
+void CHECKNEW_ReduceAction533(val_t p0);
+typedef void (*CHECKNEW_ReduceAction533_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction533_parser___ReduceAction533___init "new ReduceAction533 parser::ReduceAction533::init"
+val_t NEW_ReduceAction533_parser___ReduceAction533___init(void);
+typedef val_t (*NEW_ReduceAction533_parser___ReduceAction533___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction534 "init var of ReduceAction534"
+void INIT_ATTRIBUTES__ReduceAction534(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction534_t)(val_t p0);
+val_t NEW_ReduceAction534(void);
+#define LOCATE_CHECKNEW_ReduceAction534 "check new ReduceAction534"
+void CHECKNEW_ReduceAction534(val_t p0);
+typedef void (*CHECKNEW_ReduceAction534_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction534_parser___ReduceAction534___init "new ReduceAction534 parser::ReduceAction534::init"
+val_t NEW_ReduceAction534_parser___ReduceAction534___init(void);
+typedef val_t (*NEW_ReduceAction534_parser___ReduceAction534___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction535 "init var of ReduceAction535"
+void INIT_ATTRIBUTES__ReduceAction535(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction535_t)(val_t p0);
+val_t NEW_ReduceAction535(void);
+#define LOCATE_CHECKNEW_ReduceAction535 "check new ReduceAction535"
+void CHECKNEW_ReduceAction535(val_t p0);
+typedef void (*CHECKNEW_ReduceAction535_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction535_parser___ReduceAction535___init "new ReduceAction535 parser::ReduceAction535::init"
+val_t NEW_ReduceAction535_parser___ReduceAction535___init(void);
+typedef val_t (*NEW_ReduceAction535_parser___ReduceAction535___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction536 "init var of ReduceAction536"
+void INIT_ATTRIBUTES__ReduceAction536(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction536_t)(val_t p0);
+val_t NEW_ReduceAction536(void);
+#define LOCATE_CHECKNEW_ReduceAction536 "check new ReduceAction536"
+void CHECKNEW_ReduceAction536(val_t p0);
+typedef void (*CHECKNEW_ReduceAction536_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction536_parser___ReduceAction536___init "new ReduceAction536 parser::ReduceAction536::init"
+val_t NEW_ReduceAction536_parser___ReduceAction536___init(void);
+typedef val_t (*NEW_ReduceAction536_parser___ReduceAction536___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction537 "init var of ReduceAction537"
+void INIT_ATTRIBUTES__ReduceAction537(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction537_t)(val_t p0);
+val_t NEW_ReduceAction537(void);
+#define LOCATE_CHECKNEW_ReduceAction537 "check new ReduceAction537"
+void CHECKNEW_ReduceAction537(val_t p0);
+typedef void (*CHECKNEW_ReduceAction537_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction537_parser___ReduceAction537___init "new ReduceAction537 parser::ReduceAction537::init"
+val_t NEW_ReduceAction537_parser___ReduceAction537___init(void);
+typedef val_t (*NEW_ReduceAction537_parser___ReduceAction537___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction538 "init var of ReduceAction538"
+void INIT_ATTRIBUTES__ReduceAction538(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction538_t)(val_t p0);
+val_t NEW_ReduceAction538(void);
+#define LOCATE_CHECKNEW_ReduceAction538 "check new ReduceAction538"
+void CHECKNEW_ReduceAction538(val_t p0);
+typedef void (*CHECKNEW_ReduceAction538_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction538_parser___ReduceAction538___init "new ReduceAction538 parser::ReduceAction538::init"
+val_t NEW_ReduceAction538_parser___ReduceAction538___init(void);
+typedef val_t (*NEW_ReduceAction538_parser___ReduceAction538___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction539 "init var of ReduceAction539"
+void INIT_ATTRIBUTES__ReduceAction539(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction539_t)(val_t p0);
+val_t NEW_ReduceAction539(void);
+#define LOCATE_CHECKNEW_ReduceAction539 "check new ReduceAction539"
+void CHECKNEW_ReduceAction539(val_t p0);
+typedef void (*CHECKNEW_ReduceAction539_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction539_parser___ReduceAction539___init "new ReduceAction539 parser::ReduceAction539::init"
+val_t NEW_ReduceAction539_parser___ReduceAction539___init(void);
+typedef val_t (*NEW_ReduceAction539_parser___ReduceAction539___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction540 "init var of ReduceAction540"
+void INIT_ATTRIBUTES__ReduceAction540(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction540_t)(val_t p0);
+val_t NEW_ReduceAction540(void);
+#define LOCATE_CHECKNEW_ReduceAction540 "check new ReduceAction540"
+void CHECKNEW_ReduceAction540(val_t p0);
+typedef void (*CHECKNEW_ReduceAction540_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction540_parser___ReduceAction540___init "new ReduceAction540 parser::ReduceAction540::init"
+val_t NEW_ReduceAction540_parser___ReduceAction540___init(void);
+typedef val_t (*NEW_ReduceAction540_parser___ReduceAction540___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction541 "init var of ReduceAction541"
+void INIT_ATTRIBUTES__ReduceAction541(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction541_t)(val_t p0);
+val_t NEW_ReduceAction541(void);
+#define LOCATE_CHECKNEW_ReduceAction541 "check new ReduceAction541"
+void CHECKNEW_ReduceAction541(val_t p0);
+typedef void (*CHECKNEW_ReduceAction541_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction541_parser___ReduceAction541___init "new ReduceAction541 parser::ReduceAction541::init"
+val_t NEW_ReduceAction541_parser___ReduceAction541___init(void);
+typedef val_t (*NEW_ReduceAction541_parser___ReduceAction541___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction542 "init var of ReduceAction542"
+void INIT_ATTRIBUTES__ReduceAction542(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction542_t)(val_t p0);
+val_t NEW_ReduceAction542(void);
+#define LOCATE_CHECKNEW_ReduceAction542 "check new ReduceAction542"
+void CHECKNEW_ReduceAction542(val_t p0);
+typedef void (*CHECKNEW_ReduceAction542_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction542_parser___ReduceAction542___init "new ReduceAction542 parser::ReduceAction542::init"
+val_t NEW_ReduceAction542_parser___ReduceAction542___init(void);
+typedef val_t (*NEW_ReduceAction542_parser___ReduceAction542___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction543 "init var of ReduceAction543"
+void INIT_ATTRIBUTES__ReduceAction543(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction543_t)(val_t p0);
+val_t NEW_ReduceAction543(void);
+#define LOCATE_CHECKNEW_ReduceAction543 "check new ReduceAction543"
+void CHECKNEW_ReduceAction543(val_t p0);
+typedef void (*CHECKNEW_ReduceAction543_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction543_parser___ReduceAction543___init "new ReduceAction543 parser::ReduceAction543::init"
+val_t NEW_ReduceAction543_parser___ReduceAction543___init(void);
+typedef val_t (*NEW_ReduceAction543_parser___ReduceAction543___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction544 "init var of ReduceAction544"
+void INIT_ATTRIBUTES__ReduceAction544(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction544_t)(val_t p0);
+val_t NEW_ReduceAction544(void);
+#define LOCATE_CHECKNEW_ReduceAction544 "check new ReduceAction544"
+void CHECKNEW_ReduceAction544(val_t p0);
+typedef void (*CHECKNEW_ReduceAction544_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction544_parser___ReduceAction544___init "new ReduceAction544 parser::ReduceAction544::init"
+val_t NEW_ReduceAction544_parser___ReduceAction544___init(void);
+typedef val_t (*NEW_ReduceAction544_parser___ReduceAction544___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction545 "init var of ReduceAction545"
+void INIT_ATTRIBUTES__ReduceAction545(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction545_t)(val_t p0);
+val_t NEW_ReduceAction545(void);
+#define LOCATE_CHECKNEW_ReduceAction545 "check new ReduceAction545"
+void CHECKNEW_ReduceAction545(val_t p0);
+typedef void (*CHECKNEW_ReduceAction545_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction545_parser___ReduceAction545___init "new ReduceAction545 parser::ReduceAction545::init"
+val_t NEW_ReduceAction545_parser___ReduceAction545___init(void);
+typedef val_t (*NEW_ReduceAction545_parser___ReduceAction545___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction546 "init var of ReduceAction546"
+void INIT_ATTRIBUTES__ReduceAction546(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction546_t)(val_t p0);
+val_t NEW_ReduceAction546(void);
+#define LOCATE_CHECKNEW_ReduceAction546 "check new ReduceAction546"
+void CHECKNEW_ReduceAction546(val_t p0);
+typedef void (*CHECKNEW_ReduceAction546_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction546_parser___ReduceAction546___init "new ReduceAction546 parser::ReduceAction546::init"
+val_t NEW_ReduceAction546_parser___ReduceAction546___init(void);
+typedef val_t (*NEW_ReduceAction546_parser___ReduceAction546___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction547 "init var of ReduceAction547"
+void INIT_ATTRIBUTES__ReduceAction547(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction547_t)(val_t p0);
+val_t NEW_ReduceAction547(void);
+#define LOCATE_CHECKNEW_ReduceAction547 "check new ReduceAction547"
+void CHECKNEW_ReduceAction547(val_t p0);
+typedef void (*CHECKNEW_ReduceAction547_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction547_parser___ReduceAction547___init "new ReduceAction547 parser::ReduceAction547::init"
+val_t NEW_ReduceAction547_parser___ReduceAction547___init(void);
+typedef val_t (*NEW_ReduceAction547_parser___ReduceAction547___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction548 "init var of ReduceAction548"
+void INIT_ATTRIBUTES__ReduceAction548(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction548_t)(val_t p0);
+val_t NEW_ReduceAction548(void);
+#define LOCATE_CHECKNEW_ReduceAction548 "check new ReduceAction548"
+void CHECKNEW_ReduceAction548(val_t p0);
+typedef void (*CHECKNEW_ReduceAction548_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction548_parser___ReduceAction548___init "new ReduceAction548 parser::ReduceAction548::init"
+val_t NEW_ReduceAction548_parser___ReduceAction548___init(void);
+typedef val_t (*NEW_ReduceAction548_parser___ReduceAction548___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction549 "init var of ReduceAction549"
+void INIT_ATTRIBUTES__ReduceAction549(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction549_t)(val_t p0);
+val_t NEW_ReduceAction549(void);
+#define LOCATE_CHECKNEW_ReduceAction549 "check new ReduceAction549"
+void CHECKNEW_ReduceAction549(val_t p0);
+typedef void (*CHECKNEW_ReduceAction549_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction549_parser___ReduceAction549___init "new ReduceAction549 parser::ReduceAction549::init"
+val_t NEW_ReduceAction549_parser___ReduceAction549___init(void);
+typedef val_t (*NEW_ReduceAction549_parser___ReduceAction549___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction550 "init var of ReduceAction550"
+void INIT_ATTRIBUTES__ReduceAction550(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction550_t)(val_t p0);
+val_t NEW_ReduceAction550(void);
+#define LOCATE_CHECKNEW_ReduceAction550 "check new ReduceAction550"
+void CHECKNEW_ReduceAction550(val_t p0);
+typedef void (*CHECKNEW_ReduceAction550_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction550_parser___ReduceAction550___init "new ReduceAction550 parser::ReduceAction550::init"
+val_t NEW_ReduceAction550_parser___ReduceAction550___init(void);
+typedef val_t (*NEW_ReduceAction550_parser___ReduceAction550___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction551 "init var of ReduceAction551"
+void INIT_ATTRIBUTES__ReduceAction551(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction551_t)(val_t p0);
+val_t NEW_ReduceAction551(void);
+#define LOCATE_CHECKNEW_ReduceAction551 "check new ReduceAction551"
+void CHECKNEW_ReduceAction551(val_t p0);
+typedef void (*CHECKNEW_ReduceAction551_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction551_parser___ReduceAction551___init "new ReduceAction551 parser::ReduceAction551::init"
+val_t NEW_ReduceAction551_parser___ReduceAction551___init(void);
+typedef val_t (*NEW_ReduceAction551_parser___ReduceAction551___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction552 "init var of ReduceAction552"
+void INIT_ATTRIBUTES__ReduceAction552(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction552_t)(val_t p0);
+val_t NEW_ReduceAction552(void);
+#define LOCATE_CHECKNEW_ReduceAction552 "check new ReduceAction552"
+void CHECKNEW_ReduceAction552(val_t p0);
+typedef void (*CHECKNEW_ReduceAction552_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction552_parser___ReduceAction552___init "new ReduceAction552 parser::ReduceAction552::init"
+val_t NEW_ReduceAction552_parser___ReduceAction552___init(void);
+typedef val_t (*NEW_ReduceAction552_parser___ReduceAction552___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction553 "init var of ReduceAction553"
+void INIT_ATTRIBUTES__ReduceAction553(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction553_t)(val_t p0);
+val_t NEW_ReduceAction553(void);
+#define LOCATE_CHECKNEW_ReduceAction553 "check new ReduceAction553"
+void CHECKNEW_ReduceAction553(val_t p0);
+typedef void (*CHECKNEW_ReduceAction553_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction553_parser___ReduceAction553___init "new ReduceAction553 parser::ReduceAction553::init"
+val_t NEW_ReduceAction553_parser___ReduceAction553___init(void);
+typedef val_t (*NEW_ReduceAction553_parser___ReduceAction553___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction554 "init var of ReduceAction554"
+void INIT_ATTRIBUTES__ReduceAction554(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction554_t)(val_t p0);
+val_t NEW_ReduceAction554(void);
+#define LOCATE_CHECKNEW_ReduceAction554 "check new ReduceAction554"
+void CHECKNEW_ReduceAction554(val_t p0);
+typedef void (*CHECKNEW_ReduceAction554_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction554_parser___ReduceAction554___init "new ReduceAction554 parser::ReduceAction554::init"
+val_t NEW_ReduceAction554_parser___ReduceAction554___init(void);
+typedef val_t (*NEW_ReduceAction554_parser___ReduceAction554___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction555 "init var of ReduceAction555"
+void INIT_ATTRIBUTES__ReduceAction555(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction555_t)(val_t p0);
+val_t NEW_ReduceAction555(void);
+#define LOCATE_CHECKNEW_ReduceAction555 "check new ReduceAction555"
+void CHECKNEW_ReduceAction555(val_t p0);
+typedef void (*CHECKNEW_ReduceAction555_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction555_parser___ReduceAction555___init "new ReduceAction555 parser::ReduceAction555::init"
+val_t NEW_ReduceAction555_parser___ReduceAction555___init(void);
+typedef val_t (*NEW_ReduceAction555_parser___ReduceAction555___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction556 "init var of ReduceAction556"
+void INIT_ATTRIBUTES__ReduceAction556(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction556_t)(val_t p0);
+val_t NEW_ReduceAction556(void);
+#define LOCATE_CHECKNEW_ReduceAction556 "check new ReduceAction556"
+void CHECKNEW_ReduceAction556(val_t p0);
+typedef void (*CHECKNEW_ReduceAction556_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction556_parser___ReduceAction556___init "new ReduceAction556 parser::ReduceAction556::init"
+val_t NEW_ReduceAction556_parser___ReduceAction556___init(void);
+typedef val_t (*NEW_ReduceAction556_parser___ReduceAction556___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction557 "init var of ReduceAction557"
+void INIT_ATTRIBUTES__ReduceAction557(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction557_t)(val_t p0);
+val_t NEW_ReduceAction557(void);
+#define LOCATE_CHECKNEW_ReduceAction557 "check new ReduceAction557"
+void CHECKNEW_ReduceAction557(val_t p0);
+typedef void (*CHECKNEW_ReduceAction557_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction557_parser___ReduceAction557___init "new ReduceAction557 parser::ReduceAction557::init"
+val_t NEW_ReduceAction557_parser___ReduceAction557___init(void);
+typedef val_t (*NEW_ReduceAction557_parser___ReduceAction557___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction558 "init var of ReduceAction558"
+void INIT_ATTRIBUTES__ReduceAction558(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction558_t)(val_t p0);
+val_t NEW_ReduceAction558(void);
+#define LOCATE_CHECKNEW_ReduceAction558 "check new ReduceAction558"
+void CHECKNEW_ReduceAction558(val_t p0);
+typedef void (*CHECKNEW_ReduceAction558_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction558_parser___ReduceAction558___init "new ReduceAction558 parser::ReduceAction558::init"
+val_t NEW_ReduceAction558_parser___ReduceAction558___init(void);
+typedef val_t (*NEW_ReduceAction558_parser___ReduceAction558___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction559 "init var of ReduceAction559"
+void INIT_ATTRIBUTES__ReduceAction559(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction559_t)(val_t p0);
+val_t NEW_ReduceAction559(void);
+#define LOCATE_CHECKNEW_ReduceAction559 "check new ReduceAction559"
+void CHECKNEW_ReduceAction559(val_t p0);
+typedef void (*CHECKNEW_ReduceAction559_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction559_parser___ReduceAction559___init "new ReduceAction559 parser::ReduceAction559::init"
+val_t NEW_ReduceAction559_parser___ReduceAction559___init(void);
+typedef val_t (*NEW_ReduceAction559_parser___ReduceAction559___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction560 "init var of ReduceAction560"
+void INIT_ATTRIBUTES__ReduceAction560(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction560_t)(val_t p0);
+val_t NEW_ReduceAction560(void);
+#define LOCATE_CHECKNEW_ReduceAction560 "check new ReduceAction560"
+void CHECKNEW_ReduceAction560(val_t p0);
+typedef void (*CHECKNEW_ReduceAction560_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction560_parser___ReduceAction560___init "new ReduceAction560 parser::ReduceAction560::init"
+val_t NEW_ReduceAction560_parser___ReduceAction560___init(void);
+typedef val_t (*NEW_ReduceAction560_parser___ReduceAction560___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction561 "init var of ReduceAction561"
+void INIT_ATTRIBUTES__ReduceAction561(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction561_t)(val_t p0);
+val_t NEW_ReduceAction561(void);
+#define LOCATE_CHECKNEW_ReduceAction561 "check new ReduceAction561"
+void CHECKNEW_ReduceAction561(val_t p0);
+typedef void (*CHECKNEW_ReduceAction561_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction561_parser___ReduceAction561___init "new ReduceAction561 parser::ReduceAction561::init"
+val_t NEW_ReduceAction561_parser___ReduceAction561___init(void);
+typedef val_t (*NEW_ReduceAction561_parser___ReduceAction561___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction562 "init var of ReduceAction562"
+void INIT_ATTRIBUTES__ReduceAction562(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction562_t)(val_t p0);
+val_t NEW_ReduceAction562(void);
+#define LOCATE_CHECKNEW_ReduceAction562 "check new ReduceAction562"
+void CHECKNEW_ReduceAction562(val_t p0);
+typedef void (*CHECKNEW_ReduceAction562_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction562_parser___ReduceAction562___init "new ReduceAction562 parser::ReduceAction562::init"
+val_t NEW_ReduceAction562_parser___ReduceAction562___init(void);
+typedef val_t (*NEW_ReduceAction562_parser___ReduceAction562___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction563 "init var of ReduceAction563"
+void INIT_ATTRIBUTES__ReduceAction563(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction563_t)(val_t p0);
+val_t NEW_ReduceAction563(void);
+#define LOCATE_CHECKNEW_ReduceAction563 "check new ReduceAction563"
+void CHECKNEW_ReduceAction563(val_t p0);
+typedef void (*CHECKNEW_ReduceAction563_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction563_parser___ReduceAction563___init "new ReduceAction563 parser::ReduceAction563::init"
+val_t NEW_ReduceAction563_parser___ReduceAction563___init(void);
+typedef val_t (*NEW_ReduceAction563_parser___ReduceAction563___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction564 "init var of ReduceAction564"
+void INIT_ATTRIBUTES__ReduceAction564(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction564_t)(val_t p0);
+val_t NEW_ReduceAction564(void);
+#define LOCATE_CHECKNEW_ReduceAction564 "check new ReduceAction564"
+void CHECKNEW_ReduceAction564(val_t p0);
+typedef void (*CHECKNEW_ReduceAction564_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction564_parser___ReduceAction564___init "new ReduceAction564 parser::ReduceAction564::init"
+val_t NEW_ReduceAction564_parser___ReduceAction564___init(void);
+typedef val_t (*NEW_ReduceAction564_parser___ReduceAction564___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction565 "init var of ReduceAction565"
+void INIT_ATTRIBUTES__ReduceAction565(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction565_t)(val_t p0);
+val_t NEW_ReduceAction565(void);
+#define LOCATE_CHECKNEW_ReduceAction565 "check new ReduceAction565"
+void CHECKNEW_ReduceAction565(val_t p0);
+typedef void (*CHECKNEW_ReduceAction565_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction565_parser___ReduceAction565___init "new ReduceAction565 parser::ReduceAction565::init"
+val_t NEW_ReduceAction565_parser___ReduceAction565___init(void);
+typedef val_t (*NEW_ReduceAction565_parser___ReduceAction565___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction566 "init var of ReduceAction566"
+void INIT_ATTRIBUTES__ReduceAction566(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction566_t)(val_t p0);
+val_t NEW_ReduceAction566(void);
+#define LOCATE_CHECKNEW_ReduceAction566 "check new ReduceAction566"
+void CHECKNEW_ReduceAction566(val_t p0);
+typedef void (*CHECKNEW_ReduceAction566_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction566_parser___ReduceAction566___init "new ReduceAction566 parser::ReduceAction566::init"
+val_t NEW_ReduceAction566_parser___ReduceAction566___init(void);
+typedef val_t (*NEW_ReduceAction566_parser___ReduceAction566___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction567 "init var of ReduceAction567"
+void INIT_ATTRIBUTES__ReduceAction567(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction567_t)(val_t p0);
+val_t NEW_ReduceAction567(void);
+#define LOCATE_CHECKNEW_ReduceAction567 "check new ReduceAction567"
+void CHECKNEW_ReduceAction567(val_t p0);
+typedef void (*CHECKNEW_ReduceAction567_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction567_parser___ReduceAction567___init "new ReduceAction567 parser::ReduceAction567::init"
+val_t NEW_ReduceAction567_parser___ReduceAction567___init(void);
+typedef val_t (*NEW_ReduceAction567_parser___ReduceAction567___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction568 "init var of ReduceAction568"
+void INIT_ATTRIBUTES__ReduceAction568(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction568_t)(val_t p0);
+val_t NEW_ReduceAction568(void);
+#define LOCATE_CHECKNEW_ReduceAction568 "check new ReduceAction568"
+void CHECKNEW_ReduceAction568(val_t p0);
+typedef void (*CHECKNEW_ReduceAction568_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction568_parser___ReduceAction568___init "new ReduceAction568 parser::ReduceAction568::init"
+val_t NEW_ReduceAction568_parser___ReduceAction568___init(void);
+typedef val_t (*NEW_ReduceAction568_parser___ReduceAction568___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction569 "init var of ReduceAction569"
+void INIT_ATTRIBUTES__ReduceAction569(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction569_t)(val_t p0);
+val_t NEW_ReduceAction569(void);
+#define LOCATE_CHECKNEW_ReduceAction569 "check new ReduceAction569"
+void CHECKNEW_ReduceAction569(val_t p0);
+typedef void (*CHECKNEW_ReduceAction569_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction569_parser___ReduceAction569___init "new ReduceAction569 parser::ReduceAction569::init"
+val_t NEW_ReduceAction569_parser___ReduceAction569___init(void);
+typedef val_t (*NEW_ReduceAction569_parser___ReduceAction569___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction570 "init var of ReduceAction570"
+void INIT_ATTRIBUTES__ReduceAction570(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction570_t)(val_t p0);
+val_t NEW_ReduceAction570(void);
+#define LOCATE_CHECKNEW_ReduceAction570 "check new ReduceAction570"
+void CHECKNEW_ReduceAction570(val_t p0);
+typedef void (*CHECKNEW_ReduceAction570_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction570_parser___ReduceAction570___init "new ReduceAction570 parser::ReduceAction570::init"
+val_t NEW_ReduceAction570_parser___ReduceAction570___init(void);
+typedef val_t (*NEW_ReduceAction570_parser___ReduceAction570___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction571 "init var of ReduceAction571"
+void INIT_ATTRIBUTES__ReduceAction571(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction571_t)(val_t p0);
+val_t NEW_ReduceAction571(void);
+#define LOCATE_CHECKNEW_ReduceAction571 "check new ReduceAction571"
+void CHECKNEW_ReduceAction571(val_t p0);
+typedef void (*CHECKNEW_ReduceAction571_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction571_parser___ReduceAction571___init "new ReduceAction571 parser::ReduceAction571::init"
+val_t NEW_ReduceAction571_parser___ReduceAction571___init(void);
+typedef val_t (*NEW_ReduceAction571_parser___ReduceAction571___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction572 "init var of ReduceAction572"
+void INIT_ATTRIBUTES__ReduceAction572(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction572_t)(val_t p0);
+val_t NEW_ReduceAction572(void);
+#define LOCATE_CHECKNEW_ReduceAction572 "check new ReduceAction572"
+void CHECKNEW_ReduceAction572(val_t p0);
+typedef void (*CHECKNEW_ReduceAction572_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction572_parser___ReduceAction572___init "new ReduceAction572 parser::ReduceAction572::init"
+val_t NEW_ReduceAction572_parser___ReduceAction572___init(void);
+typedef val_t (*NEW_ReduceAction572_parser___ReduceAction572___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction573 "init var of ReduceAction573"
+void INIT_ATTRIBUTES__ReduceAction573(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction573_t)(val_t p0);
+val_t NEW_ReduceAction573(void);
+#define LOCATE_CHECKNEW_ReduceAction573 "check new ReduceAction573"
+void CHECKNEW_ReduceAction573(val_t p0);
+typedef void (*CHECKNEW_ReduceAction573_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction573_parser___ReduceAction573___init "new ReduceAction573 parser::ReduceAction573::init"
+val_t NEW_ReduceAction573_parser___ReduceAction573___init(void);
+typedef val_t (*NEW_ReduceAction573_parser___ReduceAction573___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction574 "init var of ReduceAction574"
+void INIT_ATTRIBUTES__ReduceAction574(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction574_t)(val_t p0);
+val_t NEW_ReduceAction574(void);
+#define LOCATE_CHECKNEW_ReduceAction574 "check new ReduceAction574"
+void CHECKNEW_ReduceAction574(val_t p0);
+typedef void (*CHECKNEW_ReduceAction574_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction574_parser___ReduceAction574___init "new ReduceAction574 parser::ReduceAction574::init"
+val_t NEW_ReduceAction574_parser___ReduceAction574___init(void);
+typedef val_t (*NEW_ReduceAction574_parser___ReduceAction574___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction575 "init var of ReduceAction575"
+void INIT_ATTRIBUTES__ReduceAction575(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction575_t)(val_t p0);
+val_t NEW_ReduceAction575(void);
+#define LOCATE_CHECKNEW_ReduceAction575 "check new ReduceAction575"
+void CHECKNEW_ReduceAction575(val_t p0);
+typedef void (*CHECKNEW_ReduceAction575_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction575_parser___ReduceAction575___init "new ReduceAction575 parser::ReduceAction575::init"
+val_t NEW_ReduceAction575_parser___ReduceAction575___init(void);
+typedef val_t (*NEW_ReduceAction575_parser___ReduceAction575___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction576 "init var of ReduceAction576"
+void INIT_ATTRIBUTES__ReduceAction576(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction576_t)(val_t p0);
+val_t NEW_ReduceAction576(void);
+#define LOCATE_CHECKNEW_ReduceAction576 "check new ReduceAction576"
+void CHECKNEW_ReduceAction576(val_t p0);
+typedef void (*CHECKNEW_ReduceAction576_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction576_parser___ReduceAction576___init "new ReduceAction576 parser::ReduceAction576::init"
+val_t NEW_ReduceAction576_parser___ReduceAction576___init(void);
+typedef val_t (*NEW_ReduceAction576_parser___ReduceAction576___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction577 "init var of ReduceAction577"
+void INIT_ATTRIBUTES__ReduceAction577(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction577_t)(val_t p0);
+val_t NEW_ReduceAction577(void);
+#define LOCATE_CHECKNEW_ReduceAction577 "check new ReduceAction577"
+void CHECKNEW_ReduceAction577(val_t p0);
+typedef void (*CHECKNEW_ReduceAction577_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction577_parser___ReduceAction577___init "new ReduceAction577 parser::ReduceAction577::init"
+val_t NEW_ReduceAction577_parser___ReduceAction577___init(void);
+typedef val_t (*NEW_ReduceAction577_parser___ReduceAction577___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction578 "init var of ReduceAction578"
+void INIT_ATTRIBUTES__ReduceAction578(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction578_t)(val_t p0);
+val_t NEW_ReduceAction578(void);
+#define LOCATE_CHECKNEW_ReduceAction578 "check new ReduceAction578"
+void CHECKNEW_ReduceAction578(val_t p0);
+typedef void (*CHECKNEW_ReduceAction578_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction578_parser___ReduceAction578___init "new ReduceAction578 parser::ReduceAction578::init"
+val_t NEW_ReduceAction578_parser___ReduceAction578___init(void);
+typedef val_t (*NEW_ReduceAction578_parser___ReduceAction578___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction579 "init var of ReduceAction579"
+void INIT_ATTRIBUTES__ReduceAction579(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction579_t)(val_t p0);
+val_t NEW_ReduceAction579(void);
+#define LOCATE_CHECKNEW_ReduceAction579 "check new ReduceAction579"
+void CHECKNEW_ReduceAction579(val_t p0);
+typedef void (*CHECKNEW_ReduceAction579_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction579_parser___ReduceAction579___init "new ReduceAction579 parser::ReduceAction579::init"
+val_t NEW_ReduceAction579_parser___ReduceAction579___init(void);
+typedef val_t (*NEW_ReduceAction579_parser___ReduceAction579___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction580 "init var of ReduceAction580"
+void INIT_ATTRIBUTES__ReduceAction580(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction580_t)(val_t p0);
+val_t NEW_ReduceAction580(void);
+#define LOCATE_CHECKNEW_ReduceAction580 "check new ReduceAction580"
+void CHECKNEW_ReduceAction580(val_t p0);
+typedef void (*CHECKNEW_ReduceAction580_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction580_parser___ReduceAction580___init "new ReduceAction580 parser::ReduceAction580::init"
+val_t NEW_ReduceAction580_parser___ReduceAction580___init(void);
+typedef val_t (*NEW_ReduceAction580_parser___ReduceAction580___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction581 "init var of ReduceAction581"
+void INIT_ATTRIBUTES__ReduceAction581(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction581_t)(val_t p0);
+val_t NEW_ReduceAction581(void);
+#define LOCATE_CHECKNEW_ReduceAction581 "check new ReduceAction581"
+void CHECKNEW_ReduceAction581(val_t p0);
+typedef void (*CHECKNEW_ReduceAction581_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction581_parser___ReduceAction581___init "new ReduceAction581 parser::ReduceAction581::init"
+val_t NEW_ReduceAction581_parser___ReduceAction581___init(void);
+typedef val_t (*NEW_ReduceAction581_parser___ReduceAction581___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction582 "init var of ReduceAction582"
+void INIT_ATTRIBUTES__ReduceAction582(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction582_t)(val_t p0);
+val_t NEW_ReduceAction582(void);
+#define LOCATE_CHECKNEW_ReduceAction582 "check new ReduceAction582"
+void CHECKNEW_ReduceAction582(val_t p0);
+typedef void (*CHECKNEW_ReduceAction582_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction582_parser___ReduceAction582___init "new ReduceAction582 parser::ReduceAction582::init"
+val_t NEW_ReduceAction582_parser___ReduceAction582___init(void);
+typedef val_t (*NEW_ReduceAction582_parser___ReduceAction582___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction583 "init var of ReduceAction583"
+void INIT_ATTRIBUTES__ReduceAction583(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction583_t)(val_t p0);
+val_t NEW_ReduceAction583(void);
+#define LOCATE_CHECKNEW_ReduceAction583 "check new ReduceAction583"
+void CHECKNEW_ReduceAction583(val_t p0);
+typedef void (*CHECKNEW_ReduceAction583_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction583_parser___ReduceAction583___init "new ReduceAction583 parser::ReduceAction583::init"
+val_t NEW_ReduceAction583_parser___ReduceAction583___init(void);
+typedef val_t (*NEW_ReduceAction583_parser___ReduceAction583___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction584 "init var of ReduceAction584"
+void INIT_ATTRIBUTES__ReduceAction584(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction584_t)(val_t p0);
+val_t NEW_ReduceAction584(void);
+#define LOCATE_CHECKNEW_ReduceAction584 "check new ReduceAction584"
+void CHECKNEW_ReduceAction584(val_t p0);
+typedef void (*CHECKNEW_ReduceAction584_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction584_parser___ReduceAction584___init "new ReduceAction584 parser::ReduceAction584::init"
+val_t NEW_ReduceAction584_parser___ReduceAction584___init(void);
+typedef val_t (*NEW_ReduceAction584_parser___ReduceAction584___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction585 "init var of ReduceAction585"
+void INIT_ATTRIBUTES__ReduceAction585(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction585_t)(val_t p0);
+val_t NEW_ReduceAction585(void);
+#define LOCATE_CHECKNEW_ReduceAction585 "check new ReduceAction585"
+void CHECKNEW_ReduceAction585(val_t p0);
+typedef void (*CHECKNEW_ReduceAction585_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction585_parser___ReduceAction585___init "new ReduceAction585 parser::ReduceAction585::init"
+val_t NEW_ReduceAction585_parser___ReduceAction585___init(void);
+typedef val_t (*NEW_ReduceAction585_parser___ReduceAction585___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction586 "init var of ReduceAction586"
+void INIT_ATTRIBUTES__ReduceAction586(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction586_t)(val_t p0);
+val_t NEW_ReduceAction586(void);
+#define LOCATE_CHECKNEW_ReduceAction586 "check new ReduceAction586"
+void CHECKNEW_ReduceAction586(val_t p0);
+typedef void (*CHECKNEW_ReduceAction586_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction586_parser___ReduceAction586___init "new ReduceAction586 parser::ReduceAction586::init"
+val_t NEW_ReduceAction586_parser___ReduceAction586___init(void);
+typedef val_t (*NEW_ReduceAction586_parser___ReduceAction586___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction587 "init var of ReduceAction587"
+void INIT_ATTRIBUTES__ReduceAction587(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction587_t)(val_t p0);
+val_t NEW_ReduceAction587(void);
+#define LOCATE_CHECKNEW_ReduceAction587 "check new ReduceAction587"
+void CHECKNEW_ReduceAction587(val_t p0);
+typedef void (*CHECKNEW_ReduceAction587_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction587_parser___ReduceAction587___init "new ReduceAction587 parser::ReduceAction587::init"
+val_t NEW_ReduceAction587_parser___ReduceAction587___init(void);
+typedef val_t (*NEW_ReduceAction587_parser___ReduceAction587___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction588 "init var of ReduceAction588"
+void INIT_ATTRIBUTES__ReduceAction588(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction588_t)(val_t p0);
+val_t NEW_ReduceAction588(void);
+#define LOCATE_CHECKNEW_ReduceAction588 "check new ReduceAction588"
+void CHECKNEW_ReduceAction588(val_t p0);
+typedef void (*CHECKNEW_ReduceAction588_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction588_parser___ReduceAction588___init "new ReduceAction588 parser::ReduceAction588::init"
+val_t NEW_ReduceAction588_parser___ReduceAction588___init(void);
+typedef val_t (*NEW_ReduceAction588_parser___ReduceAction588___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction589 "init var of ReduceAction589"
+void INIT_ATTRIBUTES__ReduceAction589(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction589_t)(val_t p0);
+val_t NEW_ReduceAction589(void);
+#define LOCATE_CHECKNEW_ReduceAction589 "check new ReduceAction589"
+void CHECKNEW_ReduceAction589(val_t p0);
+typedef void (*CHECKNEW_ReduceAction589_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction589_parser___ReduceAction589___init "new ReduceAction589 parser::ReduceAction589::init"
+val_t NEW_ReduceAction589_parser___ReduceAction589___init(void);
+typedef val_t (*NEW_ReduceAction589_parser___ReduceAction589___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction590 "init var of ReduceAction590"
+void INIT_ATTRIBUTES__ReduceAction590(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction590_t)(val_t p0);
+val_t NEW_ReduceAction590(void);
+#define LOCATE_CHECKNEW_ReduceAction590 "check new ReduceAction590"
+void CHECKNEW_ReduceAction590(val_t p0);
+typedef void (*CHECKNEW_ReduceAction590_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction590_parser___ReduceAction590___init "new ReduceAction590 parser::ReduceAction590::init"
+val_t NEW_ReduceAction590_parser___ReduceAction590___init(void);
+typedef val_t (*NEW_ReduceAction590_parser___ReduceAction590___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction591 "init var of ReduceAction591"
+void INIT_ATTRIBUTES__ReduceAction591(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction591_t)(val_t p0);
+val_t NEW_ReduceAction591(void);
+#define LOCATE_CHECKNEW_ReduceAction591 "check new ReduceAction591"
+void CHECKNEW_ReduceAction591(val_t p0);
+typedef void (*CHECKNEW_ReduceAction591_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction591_parser___ReduceAction591___init "new ReduceAction591 parser::ReduceAction591::init"
+val_t NEW_ReduceAction591_parser___ReduceAction591___init(void);
+typedef val_t (*NEW_ReduceAction591_parser___ReduceAction591___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction592 "init var of ReduceAction592"
+void INIT_ATTRIBUTES__ReduceAction592(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction592_t)(val_t p0);
+val_t NEW_ReduceAction592(void);
+#define LOCATE_CHECKNEW_ReduceAction592 "check new ReduceAction592"
+void CHECKNEW_ReduceAction592(val_t p0);
+typedef void (*CHECKNEW_ReduceAction592_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction592_parser___ReduceAction592___init "new ReduceAction592 parser::ReduceAction592::init"
+val_t NEW_ReduceAction592_parser___ReduceAction592___init(void);
+typedef val_t (*NEW_ReduceAction592_parser___ReduceAction592___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction593 "init var of ReduceAction593"
+void INIT_ATTRIBUTES__ReduceAction593(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction593_t)(val_t p0);
+val_t NEW_ReduceAction593(void);
+#define LOCATE_CHECKNEW_ReduceAction593 "check new ReduceAction593"
+void CHECKNEW_ReduceAction593(val_t p0);
+typedef void (*CHECKNEW_ReduceAction593_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction593_parser___ReduceAction593___init "new ReduceAction593 parser::ReduceAction593::init"
+val_t NEW_ReduceAction593_parser___ReduceAction593___init(void);
+typedef val_t (*NEW_ReduceAction593_parser___ReduceAction593___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction594 "init var of ReduceAction594"
+void INIT_ATTRIBUTES__ReduceAction594(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction594_t)(val_t p0);
+val_t NEW_ReduceAction594(void);
+#define LOCATE_CHECKNEW_ReduceAction594 "check new ReduceAction594"
+void CHECKNEW_ReduceAction594(val_t p0);
+typedef void (*CHECKNEW_ReduceAction594_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction594_parser___ReduceAction594___init "new ReduceAction594 parser::ReduceAction594::init"
+val_t NEW_ReduceAction594_parser___ReduceAction594___init(void);
+typedef val_t (*NEW_ReduceAction594_parser___ReduceAction594___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction595 "init var of ReduceAction595"
+void INIT_ATTRIBUTES__ReduceAction595(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction595_t)(val_t p0);
+val_t NEW_ReduceAction595(void);
+#define LOCATE_CHECKNEW_ReduceAction595 "check new ReduceAction595"
+void CHECKNEW_ReduceAction595(val_t p0);
+typedef void (*CHECKNEW_ReduceAction595_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction595_parser___ReduceAction595___init "new ReduceAction595 parser::ReduceAction595::init"
+val_t NEW_ReduceAction595_parser___ReduceAction595___init(void);
+typedef val_t (*NEW_ReduceAction595_parser___ReduceAction595___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction596 "init var of ReduceAction596"
+void INIT_ATTRIBUTES__ReduceAction596(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction596_t)(val_t p0);
+val_t NEW_ReduceAction596(void);
+#define LOCATE_CHECKNEW_ReduceAction596 "check new ReduceAction596"
+void CHECKNEW_ReduceAction596(val_t p0);
+typedef void (*CHECKNEW_ReduceAction596_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction596_parser___ReduceAction596___init "new ReduceAction596 parser::ReduceAction596::init"
+val_t NEW_ReduceAction596_parser___ReduceAction596___init(void);
+typedef val_t (*NEW_ReduceAction596_parser___ReduceAction596___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction597 "init var of ReduceAction597"
+void INIT_ATTRIBUTES__ReduceAction597(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction597_t)(val_t p0);
+val_t NEW_ReduceAction597(void);
+#define LOCATE_CHECKNEW_ReduceAction597 "check new ReduceAction597"
+void CHECKNEW_ReduceAction597(val_t p0);
+typedef void (*CHECKNEW_ReduceAction597_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction597_parser___ReduceAction597___init "new ReduceAction597 parser::ReduceAction597::init"
+val_t NEW_ReduceAction597_parser___ReduceAction597___init(void);
+typedef val_t (*NEW_ReduceAction597_parser___ReduceAction597___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction598 "init var of ReduceAction598"
+void INIT_ATTRIBUTES__ReduceAction598(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction598_t)(val_t p0);
+val_t NEW_ReduceAction598(void);
+#define LOCATE_CHECKNEW_ReduceAction598 "check new ReduceAction598"
+void CHECKNEW_ReduceAction598(val_t p0);
+typedef void (*CHECKNEW_ReduceAction598_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction598_parser___ReduceAction598___init "new ReduceAction598 parser::ReduceAction598::init"
+val_t NEW_ReduceAction598_parser___ReduceAction598___init(void);
+typedef val_t (*NEW_ReduceAction598_parser___ReduceAction598___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction599 "init var of ReduceAction599"
+void INIT_ATTRIBUTES__ReduceAction599(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction599_t)(val_t p0);
+val_t NEW_ReduceAction599(void);
+#define LOCATE_CHECKNEW_ReduceAction599 "check new ReduceAction599"
+void CHECKNEW_ReduceAction599(val_t p0);
+typedef void (*CHECKNEW_ReduceAction599_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction599_parser___ReduceAction599___init "new ReduceAction599 parser::ReduceAction599::init"
+val_t NEW_ReduceAction599_parser___ReduceAction599___init(void);
+typedef val_t (*NEW_ReduceAction599_parser___ReduceAction599___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction600 "init var of ReduceAction600"
+void INIT_ATTRIBUTES__ReduceAction600(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction600_t)(val_t p0);
+val_t NEW_ReduceAction600(void);
+#define LOCATE_CHECKNEW_ReduceAction600 "check new ReduceAction600"
+void CHECKNEW_ReduceAction600(val_t p0);
+typedef void (*CHECKNEW_ReduceAction600_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction600_parser___ReduceAction600___init "new ReduceAction600 parser::ReduceAction600::init"
+val_t NEW_ReduceAction600_parser___ReduceAction600___init(void);
+typedef val_t (*NEW_ReduceAction600_parser___ReduceAction600___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction601 "init var of ReduceAction601"
+void INIT_ATTRIBUTES__ReduceAction601(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction601_t)(val_t p0);
+val_t NEW_ReduceAction601(void);
+#define LOCATE_CHECKNEW_ReduceAction601 "check new ReduceAction601"
+void CHECKNEW_ReduceAction601(val_t p0);
+typedef void (*CHECKNEW_ReduceAction601_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction601_parser___ReduceAction601___init "new ReduceAction601 parser::ReduceAction601::init"
+val_t NEW_ReduceAction601_parser___ReduceAction601___init(void);
+typedef val_t (*NEW_ReduceAction601_parser___ReduceAction601___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction602 "init var of ReduceAction602"
+void INIT_ATTRIBUTES__ReduceAction602(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction602_t)(val_t p0);
+val_t NEW_ReduceAction602(void);
+#define LOCATE_CHECKNEW_ReduceAction602 "check new ReduceAction602"
+void CHECKNEW_ReduceAction602(val_t p0);
+typedef void (*CHECKNEW_ReduceAction602_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction602_parser___ReduceAction602___init "new ReduceAction602 parser::ReduceAction602::init"
+val_t NEW_ReduceAction602_parser___ReduceAction602___init(void);
+typedef val_t (*NEW_ReduceAction602_parser___ReduceAction602___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction603 "init var of ReduceAction603"
+void INIT_ATTRIBUTES__ReduceAction603(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction603_t)(val_t p0);
+val_t NEW_ReduceAction603(void);
+#define LOCATE_CHECKNEW_ReduceAction603 "check new ReduceAction603"
+void CHECKNEW_ReduceAction603(val_t p0);
+typedef void (*CHECKNEW_ReduceAction603_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction603_parser___ReduceAction603___init "new ReduceAction603 parser::ReduceAction603::init"
+val_t NEW_ReduceAction603_parser___ReduceAction603___init(void);
+typedef val_t (*NEW_ReduceAction603_parser___ReduceAction603___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction604 "init var of ReduceAction604"
+void INIT_ATTRIBUTES__ReduceAction604(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction604_t)(val_t p0);
+val_t NEW_ReduceAction604(void);
+#define LOCATE_CHECKNEW_ReduceAction604 "check new ReduceAction604"
+void CHECKNEW_ReduceAction604(val_t p0);
+typedef void (*CHECKNEW_ReduceAction604_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction604_parser___ReduceAction604___init "new ReduceAction604 parser::ReduceAction604::init"
+val_t NEW_ReduceAction604_parser___ReduceAction604___init(void);
+typedef val_t (*NEW_ReduceAction604_parser___ReduceAction604___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction605 "init var of ReduceAction605"
+void INIT_ATTRIBUTES__ReduceAction605(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction605_t)(val_t p0);
+val_t NEW_ReduceAction605(void);
+#define LOCATE_CHECKNEW_ReduceAction605 "check new ReduceAction605"
+void CHECKNEW_ReduceAction605(val_t p0);
+typedef void (*CHECKNEW_ReduceAction605_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction605_parser___ReduceAction605___init "new ReduceAction605 parser::ReduceAction605::init"
+val_t NEW_ReduceAction605_parser___ReduceAction605___init(void);
+typedef val_t (*NEW_ReduceAction605_parser___ReduceAction605___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction606 "init var of ReduceAction606"
+void INIT_ATTRIBUTES__ReduceAction606(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction606_t)(val_t p0);
+val_t NEW_ReduceAction606(void);
+#define LOCATE_CHECKNEW_ReduceAction606 "check new ReduceAction606"
+void CHECKNEW_ReduceAction606(val_t p0);
+typedef void (*CHECKNEW_ReduceAction606_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction606_parser___ReduceAction606___init "new ReduceAction606 parser::ReduceAction606::init"
+val_t NEW_ReduceAction606_parser___ReduceAction606___init(void);
+typedef val_t (*NEW_ReduceAction606_parser___ReduceAction606___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction607 "init var of ReduceAction607"
+void INIT_ATTRIBUTES__ReduceAction607(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction607_t)(val_t p0);
+val_t NEW_ReduceAction607(void);
+#define LOCATE_CHECKNEW_ReduceAction607 "check new ReduceAction607"
+void CHECKNEW_ReduceAction607(val_t p0);
+typedef void (*CHECKNEW_ReduceAction607_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction607_parser___ReduceAction607___init "new ReduceAction607 parser::ReduceAction607::init"
+val_t NEW_ReduceAction607_parser___ReduceAction607___init(void);
+typedef val_t (*NEW_ReduceAction607_parser___ReduceAction607___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction608 "init var of ReduceAction608"
+void INIT_ATTRIBUTES__ReduceAction608(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction608_t)(val_t p0);
+val_t NEW_ReduceAction608(void);
+#define LOCATE_CHECKNEW_ReduceAction608 "check new ReduceAction608"
+void CHECKNEW_ReduceAction608(val_t p0);
+typedef void (*CHECKNEW_ReduceAction608_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction608_parser___ReduceAction608___init "new ReduceAction608 parser::ReduceAction608::init"
+val_t NEW_ReduceAction608_parser___ReduceAction608___init(void);
+typedef val_t (*NEW_ReduceAction608_parser___ReduceAction608___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction609 "init var of ReduceAction609"
+void INIT_ATTRIBUTES__ReduceAction609(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction609_t)(val_t p0);
+val_t NEW_ReduceAction609(void);
+#define LOCATE_CHECKNEW_ReduceAction609 "check new ReduceAction609"
+void CHECKNEW_ReduceAction609(val_t p0);
+typedef void (*CHECKNEW_ReduceAction609_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction609_parser___ReduceAction609___init "new ReduceAction609 parser::ReduceAction609::init"
+val_t NEW_ReduceAction609_parser___ReduceAction609___init(void);
+typedef val_t (*NEW_ReduceAction609_parser___ReduceAction609___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction610 "init var of ReduceAction610"
+void INIT_ATTRIBUTES__ReduceAction610(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction610_t)(val_t p0);
+val_t NEW_ReduceAction610(void);
+#define LOCATE_CHECKNEW_ReduceAction610 "check new ReduceAction610"
+void CHECKNEW_ReduceAction610(val_t p0);
+typedef void (*CHECKNEW_ReduceAction610_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction610_parser___ReduceAction610___init "new ReduceAction610 parser::ReduceAction610::init"
+val_t NEW_ReduceAction610_parser___ReduceAction610___init(void);
+typedef val_t (*NEW_ReduceAction610_parser___ReduceAction610___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction611 "init var of ReduceAction611"
+void INIT_ATTRIBUTES__ReduceAction611(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction611_t)(val_t p0);
+val_t NEW_ReduceAction611(void);
+#define LOCATE_CHECKNEW_ReduceAction611 "check new ReduceAction611"
+void CHECKNEW_ReduceAction611(val_t p0);
+typedef void (*CHECKNEW_ReduceAction611_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction611_parser___ReduceAction611___init "new ReduceAction611 parser::ReduceAction611::init"
+val_t NEW_ReduceAction611_parser___ReduceAction611___init(void);
+typedef val_t (*NEW_ReduceAction611_parser___ReduceAction611___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction612 "init var of ReduceAction612"
+void INIT_ATTRIBUTES__ReduceAction612(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction612_t)(val_t p0);
+val_t NEW_ReduceAction612(void);
+#define LOCATE_CHECKNEW_ReduceAction612 "check new ReduceAction612"
+void CHECKNEW_ReduceAction612(val_t p0);
+typedef void (*CHECKNEW_ReduceAction612_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction612_parser___ReduceAction612___init "new ReduceAction612 parser::ReduceAction612::init"
+val_t NEW_ReduceAction612_parser___ReduceAction612___init(void);
+typedef val_t (*NEW_ReduceAction612_parser___ReduceAction612___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction613 "init var of ReduceAction613"
+void INIT_ATTRIBUTES__ReduceAction613(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction613_t)(val_t p0);
+val_t NEW_ReduceAction613(void);
+#define LOCATE_CHECKNEW_ReduceAction613 "check new ReduceAction613"
+void CHECKNEW_ReduceAction613(val_t p0);
+typedef void (*CHECKNEW_ReduceAction613_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction613_parser___ReduceAction613___init "new ReduceAction613 parser::ReduceAction613::init"
+val_t NEW_ReduceAction613_parser___ReduceAction613___init(void);
+typedef val_t (*NEW_ReduceAction613_parser___ReduceAction613___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction614 "init var of ReduceAction614"
+void INIT_ATTRIBUTES__ReduceAction614(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction614_t)(val_t p0);
+val_t NEW_ReduceAction614(void);
+#define LOCATE_CHECKNEW_ReduceAction614 "check new ReduceAction614"
+void CHECKNEW_ReduceAction614(val_t p0);
+typedef void (*CHECKNEW_ReduceAction614_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction614_parser___ReduceAction614___init "new ReduceAction614 parser::ReduceAction614::init"
+val_t NEW_ReduceAction614_parser___ReduceAction614___init(void);
+typedef val_t (*NEW_ReduceAction614_parser___ReduceAction614___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction615 "init var of ReduceAction615"
+void INIT_ATTRIBUTES__ReduceAction615(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction615_t)(val_t p0);
+val_t NEW_ReduceAction615(void);
+#define LOCATE_CHECKNEW_ReduceAction615 "check new ReduceAction615"
+void CHECKNEW_ReduceAction615(val_t p0);
+typedef void (*CHECKNEW_ReduceAction615_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction615_parser___ReduceAction615___init "new ReduceAction615 parser::ReduceAction615::init"
+val_t NEW_ReduceAction615_parser___ReduceAction615___init(void);
+typedef val_t (*NEW_ReduceAction615_parser___ReduceAction615___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction616 "init var of ReduceAction616"
+void INIT_ATTRIBUTES__ReduceAction616(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction616_t)(val_t p0);
+val_t NEW_ReduceAction616(void);
+#define LOCATE_CHECKNEW_ReduceAction616 "check new ReduceAction616"
+void CHECKNEW_ReduceAction616(val_t p0);
+typedef void (*CHECKNEW_ReduceAction616_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction616_parser___ReduceAction616___init "new ReduceAction616 parser::ReduceAction616::init"
+val_t NEW_ReduceAction616_parser___ReduceAction616___init(void);
+typedef val_t (*NEW_ReduceAction616_parser___ReduceAction616___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction617 "init var of ReduceAction617"
+void INIT_ATTRIBUTES__ReduceAction617(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction617_t)(val_t p0);
+val_t NEW_ReduceAction617(void);
+#define LOCATE_CHECKNEW_ReduceAction617 "check new ReduceAction617"
+void CHECKNEW_ReduceAction617(val_t p0);
+typedef void (*CHECKNEW_ReduceAction617_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction617_parser___ReduceAction617___init "new ReduceAction617 parser::ReduceAction617::init"
+val_t NEW_ReduceAction617_parser___ReduceAction617___init(void);
+typedef val_t (*NEW_ReduceAction617_parser___ReduceAction617___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction618 "init var of ReduceAction618"
+void INIT_ATTRIBUTES__ReduceAction618(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction618_t)(val_t p0);
+val_t NEW_ReduceAction618(void);
+#define LOCATE_CHECKNEW_ReduceAction618 "check new ReduceAction618"
+void CHECKNEW_ReduceAction618(val_t p0);
+typedef void (*CHECKNEW_ReduceAction618_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction618_parser___ReduceAction618___init "new ReduceAction618 parser::ReduceAction618::init"
+val_t NEW_ReduceAction618_parser___ReduceAction618___init(void);
+typedef val_t (*NEW_ReduceAction618_parser___ReduceAction618___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction619 "init var of ReduceAction619"
+void INIT_ATTRIBUTES__ReduceAction619(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction619_t)(val_t p0);
+val_t NEW_ReduceAction619(void);
+#define LOCATE_CHECKNEW_ReduceAction619 "check new ReduceAction619"
+void CHECKNEW_ReduceAction619(val_t p0);
+typedef void (*CHECKNEW_ReduceAction619_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction619_parser___ReduceAction619___init "new ReduceAction619 parser::ReduceAction619::init"
+val_t NEW_ReduceAction619_parser___ReduceAction619___init(void);
+typedef val_t (*NEW_ReduceAction619_parser___ReduceAction619___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction620 "init var of ReduceAction620"
+void INIT_ATTRIBUTES__ReduceAction620(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction620_t)(val_t p0);
+val_t NEW_ReduceAction620(void);
+#define LOCATE_CHECKNEW_ReduceAction620 "check new ReduceAction620"
+void CHECKNEW_ReduceAction620(val_t p0);
+typedef void (*CHECKNEW_ReduceAction620_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction620_parser___ReduceAction620___init "new ReduceAction620 parser::ReduceAction620::init"
+val_t NEW_ReduceAction620_parser___ReduceAction620___init(void);
+typedef val_t (*NEW_ReduceAction620_parser___ReduceAction620___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction621 "init var of ReduceAction621"
+void INIT_ATTRIBUTES__ReduceAction621(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction621_t)(val_t p0);
+val_t NEW_ReduceAction621(void);
+#define LOCATE_CHECKNEW_ReduceAction621 "check new ReduceAction621"
+void CHECKNEW_ReduceAction621(val_t p0);
+typedef void (*CHECKNEW_ReduceAction621_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction621_parser___ReduceAction621___init "new ReduceAction621 parser::ReduceAction621::init"
+val_t NEW_ReduceAction621_parser___ReduceAction621___init(void);
+typedef val_t (*NEW_ReduceAction621_parser___ReduceAction621___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction622 "init var of ReduceAction622"
+void INIT_ATTRIBUTES__ReduceAction622(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction622_t)(val_t p0);
+val_t NEW_ReduceAction622(void);
+#define LOCATE_CHECKNEW_ReduceAction622 "check new ReduceAction622"
+void CHECKNEW_ReduceAction622(val_t p0);
+typedef void (*CHECKNEW_ReduceAction622_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction622_parser___ReduceAction622___init "new ReduceAction622 parser::ReduceAction622::init"
+val_t NEW_ReduceAction622_parser___ReduceAction622___init(void);
+typedef val_t (*NEW_ReduceAction622_parser___ReduceAction622___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction623 "init var of ReduceAction623"
+void INIT_ATTRIBUTES__ReduceAction623(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction623_t)(val_t p0);
+val_t NEW_ReduceAction623(void);
+#define LOCATE_CHECKNEW_ReduceAction623 "check new ReduceAction623"
+void CHECKNEW_ReduceAction623(val_t p0);
+typedef void (*CHECKNEW_ReduceAction623_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction623_parser___ReduceAction623___init "new ReduceAction623 parser::ReduceAction623::init"
+val_t NEW_ReduceAction623_parser___ReduceAction623___init(void);
+typedef val_t (*NEW_ReduceAction623_parser___ReduceAction623___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction624 "init var of ReduceAction624"
+void INIT_ATTRIBUTES__ReduceAction624(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction624_t)(val_t p0);
+val_t NEW_ReduceAction624(void);
+#define LOCATE_CHECKNEW_ReduceAction624 "check new ReduceAction624"
+void CHECKNEW_ReduceAction624(val_t p0);
+typedef void (*CHECKNEW_ReduceAction624_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction624_parser___ReduceAction624___init "new ReduceAction624 parser::ReduceAction624::init"
+val_t NEW_ReduceAction624_parser___ReduceAction624___init(void);
+typedef val_t (*NEW_ReduceAction624_parser___ReduceAction624___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction625 "init var of ReduceAction625"
+void INIT_ATTRIBUTES__ReduceAction625(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction625_t)(val_t p0);
+val_t NEW_ReduceAction625(void);
+#define LOCATE_CHECKNEW_ReduceAction625 "check new ReduceAction625"
+void CHECKNEW_ReduceAction625(val_t p0);
+typedef void (*CHECKNEW_ReduceAction625_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction625_parser___ReduceAction625___init "new ReduceAction625 parser::ReduceAction625::init"
+val_t NEW_ReduceAction625_parser___ReduceAction625___init(void);
+typedef val_t (*NEW_ReduceAction625_parser___ReduceAction625___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction626 "init var of ReduceAction626"
+void INIT_ATTRIBUTES__ReduceAction626(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction626_t)(val_t p0);
+val_t NEW_ReduceAction626(void);
+#define LOCATE_CHECKNEW_ReduceAction626 "check new ReduceAction626"
+void CHECKNEW_ReduceAction626(val_t p0);
+typedef void (*CHECKNEW_ReduceAction626_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction626_parser___ReduceAction626___init "new ReduceAction626 parser::ReduceAction626::init"
+val_t NEW_ReduceAction626_parser___ReduceAction626___init(void);
+typedef val_t (*NEW_ReduceAction626_parser___ReduceAction626___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction627 "init var of ReduceAction627"
+void INIT_ATTRIBUTES__ReduceAction627(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction627_t)(val_t p0);
+val_t NEW_ReduceAction627(void);
+#define LOCATE_CHECKNEW_ReduceAction627 "check new ReduceAction627"
+void CHECKNEW_ReduceAction627(val_t p0);
+typedef void (*CHECKNEW_ReduceAction627_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction627_parser___ReduceAction627___init "new ReduceAction627 parser::ReduceAction627::init"
+val_t NEW_ReduceAction627_parser___ReduceAction627___init(void);
+typedef val_t (*NEW_ReduceAction627_parser___ReduceAction627___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction628 "init var of ReduceAction628"
+void INIT_ATTRIBUTES__ReduceAction628(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction628_t)(val_t p0);
+val_t NEW_ReduceAction628(void);
+#define LOCATE_CHECKNEW_ReduceAction628 "check new ReduceAction628"
+void CHECKNEW_ReduceAction628(val_t p0);
+typedef void (*CHECKNEW_ReduceAction628_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction628_parser___ReduceAction628___init "new ReduceAction628 parser::ReduceAction628::init"
+val_t NEW_ReduceAction628_parser___ReduceAction628___init(void);
+typedef val_t (*NEW_ReduceAction628_parser___ReduceAction628___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction629 "init var of ReduceAction629"
+void INIT_ATTRIBUTES__ReduceAction629(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction629_t)(val_t p0);
+val_t NEW_ReduceAction629(void);
+#define LOCATE_CHECKNEW_ReduceAction629 "check new ReduceAction629"
+void CHECKNEW_ReduceAction629(val_t p0);
+typedef void (*CHECKNEW_ReduceAction629_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction629_parser___ReduceAction629___init "new ReduceAction629 parser::ReduceAction629::init"
+val_t NEW_ReduceAction629_parser___ReduceAction629___init(void);
+typedef val_t (*NEW_ReduceAction629_parser___ReduceAction629___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction630 "init var of ReduceAction630"
+void INIT_ATTRIBUTES__ReduceAction630(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction630_t)(val_t p0);
+val_t NEW_ReduceAction630(void);
+#define LOCATE_CHECKNEW_ReduceAction630 "check new ReduceAction630"
+void CHECKNEW_ReduceAction630(val_t p0);
+typedef void (*CHECKNEW_ReduceAction630_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction630_parser___ReduceAction630___init "new ReduceAction630 parser::ReduceAction630::init"
+val_t NEW_ReduceAction630_parser___ReduceAction630___init(void);
+typedef val_t (*NEW_ReduceAction630_parser___ReduceAction630___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction631 "init var of ReduceAction631"
+void INIT_ATTRIBUTES__ReduceAction631(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction631_t)(val_t p0);
+val_t NEW_ReduceAction631(void);
+#define LOCATE_CHECKNEW_ReduceAction631 "check new ReduceAction631"
+void CHECKNEW_ReduceAction631(val_t p0);
+typedef void (*CHECKNEW_ReduceAction631_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction631_parser___ReduceAction631___init "new ReduceAction631 parser::ReduceAction631::init"
+val_t NEW_ReduceAction631_parser___ReduceAction631___init(void);
+typedef val_t (*NEW_ReduceAction631_parser___ReduceAction631___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction632 "init var of ReduceAction632"
+void INIT_ATTRIBUTES__ReduceAction632(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction632_t)(val_t p0);
+val_t NEW_ReduceAction632(void);
+#define LOCATE_CHECKNEW_ReduceAction632 "check new ReduceAction632"
+void CHECKNEW_ReduceAction632(val_t p0);
+typedef void (*CHECKNEW_ReduceAction632_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction632_parser___ReduceAction632___init "new ReduceAction632 parser::ReduceAction632::init"
+val_t NEW_ReduceAction632_parser___ReduceAction632___init(void);
+typedef val_t (*NEW_ReduceAction632_parser___ReduceAction632___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction633 "init var of ReduceAction633"
+void INIT_ATTRIBUTES__ReduceAction633(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction633_t)(val_t p0);
+val_t NEW_ReduceAction633(void);
+#define LOCATE_CHECKNEW_ReduceAction633 "check new ReduceAction633"
+void CHECKNEW_ReduceAction633(val_t p0);
+typedef void (*CHECKNEW_ReduceAction633_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction633_parser___ReduceAction633___init "new ReduceAction633 parser::ReduceAction633::init"
+val_t NEW_ReduceAction633_parser___ReduceAction633___init(void);
+typedef val_t (*NEW_ReduceAction633_parser___ReduceAction633___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction634 "init var of ReduceAction634"
+void INIT_ATTRIBUTES__ReduceAction634(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction634_t)(val_t p0);
+val_t NEW_ReduceAction634(void);
+#define LOCATE_CHECKNEW_ReduceAction634 "check new ReduceAction634"
+void CHECKNEW_ReduceAction634(val_t p0);
+typedef void (*CHECKNEW_ReduceAction634_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction634_parser___ReduceAction634___init "new ReduceAction634 parser::ReduceAction634::init"
+val_t NEW_ReduceAction634_parser___ReduceAction634___init(void);
+typedef val_t (*NEW_ReduceAction634_parser___ReduceAction634___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction635 "init var of ReduceAction635"
+void INIT_ATTRIBUTES__ReduceAction635(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction635_t)(val_t p0);
+val_t NEW_ReduceAction635(void);
+#define LOCATE_CHECKNEW_ReduceAction635 "check new ReduceAction635"
+void CHECKNEW_ReduceAction635(val_t p0);
+typedef void (*CHECKNEW_ReduceAction635_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction635_parser___ReduceAction635___init "new ReduceAction635 parser::ReduceAction635::init"
+val_t NEW_ReduceAction635_parser___ReduceAction635___init(void);
+typedef val_t (*NEW_ReduceAction635_parser___ReduceAction635___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction636 "init var of ReduceAction636"
+void INIT_ATTRIBUTES__ReduceAction636(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction636_t)(val_t p0);
+val_t NEW_ReduceAction636(void);
+#define LOCATE_CHECKNEW_ReduceAction636 "check new ReduceAction636"
+void CHECKNEW_ReduceAction636(val_t p0);
+typedef void (*CHECKNEW_ReduceAction636_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction636_parser___ReduceAction636___init "new ReduceAction636 parser::ReduceAction636::init"
+val_t NEW_ReduceAction636_parser___ReduceAction636___init(void);
+typedef val_t (*NEW_ReduceAction636_parser___ReduceAction636___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction637 "init var of ReduceAction637"
+void INIT_ATTRIBUTES__ReduceAction637(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction637_t)(val_t p0);
+val_t NEW_ReduceAction637(void);
+#define LOCATE_CHECKNEW_ReduceAction637 "check new ReduceAction637"
+void CHECKNEW_ReduceAction637(val_t p0);
+typedef void (*CHECKNEW_ReduceAction637_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction637_parser___ReduceAction637___init "new ReduceAction637 parser::ReduceAction637::init"
+val_t NEW_ReduceAction637_parser___ReduceAction637___init(void);
+typedef val_t (*NEW_ReduceAction637_parser___ReduceAction637___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction638 "init var of ReduceAction638"
+void INIT_ATTRIBUTES__ReduceAction638(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction638_t)(val_t p0);
+val_t NEW_ReduceAction638(void);
+#define LOCATE_CHECKNEW_ReduceAction638 "check new ReduceAction638"
+void CHECKNEW_ReduceAction638(val_t p0);
+typedef void (*CHECKNEW_ReduceAction638_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction638_parser___ReduceAction638___init "new ReduceAction638 parser::ReduceAction638::init"
+val_t NEW_ReduceAction638_parser___ReduceAction638___init(void);
+typedef val_t (*NEW_ReduceAction638_parser___ReduceAction638___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction639 "init var of ReduceAction639"
+void INIT_ATTRIBUTES__ReduceAction639(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction639_t)(val_t p0);
+val_t NEW_ReduceAction639(void);
+#define LOCATE_CHECKNEW_ReduceAction639 "check new ReduceAction639"
+void CHECKNEW_ReduceAction639(val_t p0);
+typedef void (*CHECKNEW_ReduceAction639_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction639_parser___ReduceAction639___init "new ReduceAction639 parser::ReduceAction639::init"
+val_t NEW_ReduceAction639_parser___ReduceAction639___init(void);
+typedef val_t (*NEW_ReduceAction639_parser___ReduceAction639___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction640 "init var of ReduceAction640"
+void INIT_ATTRIBUTES__ReduceAction640(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction640_t)(val_t p0);
+val_t NEW_ReduceAction640(void);
+#define LOCATE_CHECKNEW_ReduceAction640 "check new ReduceAction640"
+void CHECKNEW_ReduceAction640(val_t p0);
+typedef void (*CHECKNEW_ReduceAction640_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction640_parser___ReduceAction640___init "new ReduceAction640 parser::ReduceAction640::init"
+val_t NEW_ReduceAction640_parser___ReduceAction640___init(void);
+typedef val_t (*NEW_ReduceAction640_parser___ReduceAction640___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction641 "init var of ReduceAction641"
+void INIT_ATTRIBUTES__ReduceAction641(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction641_t)(val_t p0);
+val_t NEW_ReduceAction641(void);
+#define LOCATE_CHECKNEW_ReduceAction641 "check new ReduceAction641"
+void CHECKNEW_ReduceAction641(val_t p0);
+typedef void (*CHECKNEW_ReduceAction641_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction641_parser___ReduceAction641___init "new ReduceAction641 parser::ReduceAction641::init"
+val_t NEW_ReduceAction641_parser___ReduceAction641___init(void);
+typedef val_t (*NEW_ReduceAction641_parser___ReduceAction641___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction642 "init var of ReduceAction642"
+void INIT_ATTRIBUTES__ReduceAction642(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction642_t)(val_t p0);
+val_t NEW_ReduceAction642(void);
+#define LOCATE_CHECKNEW_ReduceAction642 "check new ReduceAction642"
+void CHECKNEW_ReduceAction642(val_t p0);
+typedef void (*CHECKNEW_ReduceAction642_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction642_parser___ReduceAction642___init "new ReduceAction642 parser::ReduceAction642::init"
+val_t NEW_ReduceAction642_parser___ReduceAction642___init(void);
+typedef val_t (*NEW_ReduceAction642_parser___ReduceAction642___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction643 "init var of ReduceAction643"
+void INIT_ATTRIBUTES__ReduceAction643(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction643_t)(val_t p0);
+val_t NEW_ReduceAction643(void);
+#define LOCATE_CHECKNEW_ReduceAction643 "check new ReduceAction643"
+void CHECKNEW_ReduceAction643(val_t p0);
+typedef void (*CHECKNEW_ReduceAction643_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction643_parser___ReduceAction643___init "new ReduceAction643 parser::ReduceAction643::init"
+val_t NEW_ReduceAction643_parser___ReduceAction643___init(void);
+typedef val_t (*NEW_ReduceAction643_parser___ReduceAction643___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction644 "init var of ReduceAction644"
+void INIT_ATTRIBUTES__ReduceAction644(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction644_t)(val_t p0);
+val_t NEW_ReduceAction644(void);
+#define LOCATE_CHECKNEW_ReduceAction644 "check new ReduceAction644"
+void CHECKNEW_ReduceAction644(val_t p0);
+typedef void (*CHECKNEW_ReduceAction644_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction644_parser___ReduceAction644___init "new ReduceAction644 parser::ReduceAction644::init"
+val_t NEW_ReduceAction644_parser___ReduceAction644___init(void);
+typedef val_t (*NEW_ReduceAction644_parser___ReduceAction644___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction645 "init var of ReduceAction645"
+void INIT_ATTRIBUTES__ReduceAction645(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction645_t)(val_t p0);
+val_t NEW_ReduceAction645(void);
+#define LOCATE_CHECKNEW_ReduceAction645 "check new ReduceAction645"
+void CHECKNEW_ReduceAction645(val_t p0);
+typedef void (*CHECKNEW_ReduceAction645_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction645_parser___ReduceAction645___init "new ReduceAction645 parser::ReduceAction645::init"
+val_t NEW_ReduceAction645_parser___ReduceAction645___init(void);
+typedef val_t (*NEW_ReduceAction645_parser___ReduceAction645___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction646 "init var of ReduceAction646"
+void INIT_ATTRIBUTES__ReduceAction646(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction646_t)(val_t p0);
+val_t NEW_ReduceAction646(void);
+#define LOCATE_CHECKNEW_ReduceAction646 "check new ReduceAction646"
+void CHECKNEW_ReduceAction646(val_t p0);
+typedef void (*CHECKNEW_ReduceAction646_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction646_parser___ReduceAction646___init "new ReduceAction646 parser::ReduceAction646::init"
+val_t NEW_ReduceAction646_parser___ReduceAction646___init(void);
+typedef val_t (*NEW_ReduceAction646_parser___ReduceAction646___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction647 "init var of ReduceAction647"
+void INIT_ATTRIBUTES__ReduceAction647(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction647_t)(val_t p0);
+val_t NEW_ReduceAction647(void);
+#define LOCATE_CHECKNEW_ReduceAction647 "check new ReduceAction647"
+void CHECKNEW_ReduceAction647(val_t p0);
+typedef void (*CHECKNEW_ReduceAction647_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction647_parser___ReduceAction647___init "new ReduceAction647 parser::ReduceAction647::init"
+val_t NEW_ReduceAction647_parser___ReduceAction647___init(void);
+typedef val_t (*NEW_ReduceAction647_parser___ReduceAction647___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction648 "init var of ReduceAction648"
+void INIT_ATTRIBUTES__ReduceAction648(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction648_t)(val_t p0);
+val_t NEW_ReduceAction648(void);
+#define LOCATE_CHECKNEW_ReduceAction648 "check new ReduceAction648"
+void CHECKNEW_ReduceAction648(val_t p0);
+typedef void (*CHECKNEW_ReduceAction648_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction648_parser___ReduceAction648___init "new ReduceAction648 parser::ReduceAction648::init"
+val_t NEW_ReduceAction648_parser___ReduceAction648___init(void);
+typedef val_t (*NEW_ReduceAction648_parser___ReduceAction648___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction649 "init var of ReduceAction649"
+void INIT_ATTRIBUTES__ReduceAction649(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction649_t)(val_t p0);
+val_t NEW_ReduceAction649(void);
+#define LOCATE_CHECKNEW_ReduceAction649 "check new ReduceAction649"
+void CHECKNEW_ReduceAction649(val_t p0);
+typedef void (*CHECKNEW_ReduceAction649_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction649_parser___ReduceAction649___init "new ReduceAction649 parser::ReduceAction649::init"
+val_t NEW_ReduceAction649_parser___ReduceAction649___init(void);
+typedef val_t (*NEW_ReduceAction649_parser___ReduceAction649___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction650 "init var of ReduceAction650"
+void INIT_ATTRIBUTES__ReduceAction650(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction650_t)(val_t p0);
+val_t NEW_ReduceAction650(void);
+#define LOCATE_CHECKNEW_ReduceAction650 "check new ReduceAction650"
+void CHECKNEW_ReduceAction650(val_t p0);
+typedef void (*CHECKNEW_ReduceAction650_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction650_parser___ReduceAction650___init "new ReduceAction650 parser::ReduceAction650::init"
+val_t NEW_ReduceAction650_parser___ReduceAction650___init(void);
+typedef val_t (*NEW_ReduceAction650_parser___ReduceAction650___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction651 "init var of ReduceAction651"
+void INIT_ATTRIBUTES__ReduceAction651(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction651_t)(val_t p0);
+val_t NEW_ReduceAction651(void);
+#define LOCATE_CHECKNEW_ReduceAction651 "check new ReduceAction651"
+void CHECKNEW_ReduceAction651(val_t p0);
+typedef void (*CHECKNEW_ReduceAction651_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction651_parser___ReduceAction651___init "new ReduceAction651 parser::ReduceAction651::init"
+val_t NEW_ReduceAction651_parser___ReduceAction651___init(void);
+typedef val_t (*NEW_ReduceAction651_parser___ReduceAction651___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction652 "init var of ReduceAction652"
+void INIT_ATTRIBUTES__ReduceAction652(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction652_t)(val_t p0);
+val_t NEW_ReduceAction652(void);
+#define LOCATE_CHECKNEW_ReduceAction652 "check new ReduceAction652"
+void CHECKNEW_ReduceAction652(val_t p0);
+typedef void (*CHECKNEW_ReduceAction652_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction652_parser___ReduceAction652___init "new ReduceAction652 parser::ReduceAction652::init"
+val_t NEW_ReduceAction652_parser___ReduceAction652___init(void);
+typedef val_t (*NEW_ReduceAction652_parser___ReduceAction652___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction653 "init var of ReduceAction653"
+void INIT_ATTRIBUTES__ReduceAction653(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction653_t)(val_t p0);
+val_t NEW_ReduceAction653(void);
+#define LOCATE_CHECKNEW_ReduceAction653 "check new ReduceAction653"
+void CHECKNEW_ReduceAction653(val_t p0);
+typedef void (*CHECKNEW_ReduceAction653_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction653_parser___ReduceAction653___init "new ReduceAction653 parser::ReduceAction653::init"
+val_t NEW_ReduceAction653_parser___ReduceAction653___init(void);
+typedef val_t (*NEW_ReduceAction653_parser___ReduceAction653___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction654 "init var of ReduceAction654"
+void INIT_ATTRIBUTES__ReduceAction654(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction654_t)(val_t p0);
+val_t NEW_ReduceAction654(void);
+#define LOCATE_CHECKNEW_ReduceAction654 "check new ReduceAction654"
+void CHECKNEW_ReduceAction654(val_t p0);
+typedef void (*CHECKNEW_ReduceAction654_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction654_parser___ReduceAction654___init "new ReduceAction654 parser::ReduceAction654::init"
+val_t NEW_ReduceAction654_parser___ReduceAction654___init(void);
+typedef val_t (*NEW_ReduceAction654_parser___ReduceAction654___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction655 "init var of ReduceAction655"
+void INIT_ATTRIBUTES__ReduceAction655(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction655_t)(val_t p0);
+val_t NEW_ReduceAction655(void);
+#define LOCATE_CHECKNEW_ReduceAction655 "check new ReduceAction655"
+void CHECKNEW_ReduceAction655(val_t p0);
+typedef void (*CHECKNEW_ReduceAction655_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction655_parser___ReduceAction655___init "new ReduceAction655 parser::ReduceAction655::init"
+val_t NEW_ReduceAction655_parser___ReduceAction655___init(void);
+typedef val_t (*NEW_ReduceAction655_parser___ReduceAction655___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction656 "init var of ReduceAction656"
+void INIT_ATTRIBUTES__ReduceAction656(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction656_t)(val_t p0);
+val_t NEW_ReduceAction656(void);
+#define LOCATE_CHECKNEW_ReduceAction656 "check new ReduceAction656"
+void CHECKNEW_ReduceAction656(val_t p0);
+typedef void (*CHECKNEW_ReduceAction656_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction656_parser___ReduceAction656___init "new ReduceAction656 parser::ReduceAction656::init"
+val_t NEW_ReduceAction656_parser___ReduceAction656___init(void);
+typedef val_t (*NEW_ReduceAction656_parser___ReduceAction656___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction657 "init var of ReduceAction657"
+void INIT_ATTRIBUTES__ReduceAction657(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction657_t)(val_t p0);
+val_t NEW_ReduceAction657(void);
+#define LOCATE_CHECKNEW_ReduceAction657 "check new ReduceAction657"
+void CHECKNEW_ReduceAction657(val_t p0);
+typedef void (*CHECKNEW_ReduceAction657_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction657_parser___ReduceAction657___init "new ReduceAction657 parser::ReduceAction657::init"
+val_t NEW_ReduceAction657_parser___ReduceAction657___init(void);
+typedef val_t (*NEW_ReduceAction657_parser___ReduceAction657___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction658 "init var of ReduceAction658"
+void INIT_ATTRIBUTES__ReduceAction658(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction658_t)(val_t p0);
+val_t NEW_ReduceAction658(void);
+#define LOCATE_CHECKNEW_ReduceAction658 "check new ReduceAction658"
+void CHECKNEW_ReduceAction658(val_t p0);
+typedef void (*CHECKNEW_ReduceAction658_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction658_parser___ReduceAction658___init "new ReduceAction658 parser::ReduceAction658::init"
+val_t NEW_ReduceAction658_parser___ReduceAction658___init(void);
+typedef val_t (*NEW_ReduceAction658_parser___ReduceAction658___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction659 "init var of ReduceAction659"
+void INIT_ATTRIBUTES__ReduceAction659(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction659_t)(val_t p0);
+val_t NEW_ReduceAction659(void);
+#define LOCATE_CHECKNEW_ReduceAction659 "check new ReduceAction659"
+void CHECKNEW_ReduceAction659(val_t p0);
+typedef void (*CHECKNEW_ReduceAction659_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction659_parser___ReduceAction659___init "new ReduceAction659 parser::ReduceAction659::init"
+val_t NEW_ReduceAction659_parser___ReduceAction659___init(void);
+typedef val_t (*NEW_ReduceAction659_parser___ReduceAction659___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction660 "init var of ReduceAction660"
+void INIT_ATTRIBUTES__ReduceAction660(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction660_t)(val_t p0);
+val_t NEW_ReduceAction660(void);
+#define LOCATE_CHECKNEW_ReduceAction660 "check new ReduceAction660"
+void CHECKNEW_ReduceAction660(val_t p0);
+typedef void (*CHECKNEW_ReduceAction660_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction660_parser___ReduceAction660___init "new ReduceAction660 parser::ReduceAction660::init"
+val_t NEW_ReduceAction660_parser___ReduceAction660___init(void);
+typedef val_t (*NEW_ReduceAction660_parser___ReduceAction660___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction661 "init var of ReduceAction661"
+void INIT_ATTRIBUTES__ReduceAction661(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction661_t)(val_t p0);
+val_t NEW_ReduceAction661(void);
+#define LOCATE_CHECKNEW_ReduceAction661 "check new ReduceAction661"
+void CHECKNEW_ReduceAction661(val_t p0);
+typedef void (*CHECKNEW_ReduceAction661_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction661_parser___ReduceAction661___init "new ReduceAction661 parser::ReduceAction661::init"
+val_t NEW_ReduceAction661_parser___ReduceAction661___init(void);
+typedef val_t (*NEW_ReduceAction661_parser___ReduceAction661___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction662 "init var of ReduceAction662"
+void INIT_ATTRIBUTES__ReduceAction662(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction662_t)(val_t p0);
+val_t NEW_ReduceAction662(void);
+#define LOCATE_CHECKNEW_ReduceAction662 "check new ReduceAction662"
+void CHECKNEW_ReduceAction662(val_t p0);
+typedef void (*CHECKNEW_ReduceAction662_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction662_parser___ReduceAction662___init "new ReduceAction662 parser::ReduceAction662::init"
+val_t NEW_ReduceAction662_parser___ReduceAction662___init(void);
+typedef val_t (*NEW_ReduceAction662_parser___ReduceAction662___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction663 "init var of ReduceAction663"
+void INIT_ATTRIBUTES__ReduceAction663(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction663_t)(val_t p0);
+val_t NEW_ReduceAction663(void);
+#define LOCATE_CHECKNEW_ReduceAction663 "check new ReduceAction663"
+void CHECKNEW_ReduceAction663(val_t p0);
+typedef void (*CHECKNEW_ReduceAction663_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction663_parser___ReduceAction663___init "new ReduceAction663 parser::ReduceAction663::init"
+val_t NEW_ReduceAction663_parser___ReduceAction663___init(void);
+typedef val_t (*NEW_ReduceAction663_parser___ReduceAction663___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction664 "init var of ReduceAction664"
+void INIT_ATTRIBUTES__ReduceAction664(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction664_t)(val_t p0);
+val_t NEW_ReduceAction664(void);
+#define LOCATE_CHECKNEW_ReduceAction664 "check new ReduceAction664"
+void CHECKNEW_ReduceAction664(val_t p0);
+typedef void (*CHECKNEW_ReduceAction664_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction664_parser___ReduceAction664___init "new ReduceAction664 parser::ReduceAction664::init"
+val_t NEW_ReduceAction664_parser___ReduceAction664___init(void);
+typedef val_t (*NEW_ReduceAction664_parser___ReduceAction664___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction665 "init var of ReduceAction665"
+void INIT_ATTRIBUTES__ReduceAction665(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction665_t)(val_t p0);
+val_t NEW_ReduceAction665(void);
+#define LOCATE_CHECKNEW_ReduceAction665 "check new ReduceAction665"
+void CHECKNEW_ReduceAction665(val_t p0);
+typedef void (*CHECKNEW_ReduceAction665_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction665_parser___ReduceAction665___init "new ReduceAction665 parser::ReduceAction665::init"
+val_t NEW_ReduceAction665_parser___ReduceAction665___init(void);
+typedef val_t (*NEW_ReduceAction665_parser___ReduceAction665___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction666 "init var of ReduceAction666"
+void INIT_ATTRIBUTES__ReduceAction666(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction666_t)(val_t p0);
+val_t NEW_ReduceAction666(void);
+#define LOCATE_CHECKNEW_ReduceAction666 "check new ReduceAction666"
+void CHECKNEW_ReduceAction666(val_t p0);
+typedef void (*CHECKNEW_ReduceAction666_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction666_parser___ReduceAction666___init "new ReduceAction666 parser::ReduceAction666::init"
+val_t NEW_ReduceAction666_parser___ReduceAction666___init(void);
+typedef val_t (*NEW_ReduceAction666_parser___ReduceAction666___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction667 "init var of ReduceAction667"
+void INIT_ATTRIBUTES__ReduceAction667(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction667_t)(val_t p0);
+val_t NEW_ReduceAction667(void);
+#define LOCATE_CHECKNEW_ReduceAction667 "check new ReduceAction667"
+void CHECKNEW_ReduceAction667(val_t p0);
+typedef void (*CHECKNEW_ReduceAction667_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction667_parser___ReduceAction667___init "new ReduceAction667 parser::ReduceAction667::init"
+val_t NEW_ReduceAction667_parser___ReduceAction667___init(void);
+typedef val_t (*NEW_ReduceAction667_parser___ReduceAction667___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction668 "init var of ReduceAction668"
+void INIT_ATTRIBUTES__ReduceAction668(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction668_t)(val_t p0);
+val_t NEW_ReduceAction668(void);
+#define LOCATE_CHECKNEW_ReduceAction668 "check new ReduceAction668"
+void CHECKNEW_ReduceAction668(val_t p0);
+typedef void (*CHECKNEW_ReduceAction668_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction668_parser___ReduceAction668___init "new ReduceAction668 parser::ReduceAction668::init"
+val_t NEW_ReduceAction668_parser___ReduceAction668___init(void);
+typedef val_t (*NEW_ReduceAction668_parser___ReduceAction668___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction669 "init var of ReduceAction669"
+void INIT_ATTRIBUTES__ReduceAction669(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction669_t)(val_t p0);
+val_t NEW_ReduceAction669(void);
+#define LOCATE_CHECKNEW_ReduceAction669 "check new ReduceAction669"
+void CHECKNEW_ReduceAction669(val_t p0);
+typedef void (*CHECKNEW_ReduceAction669_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction669_parser___ReduceAction669___init "new ReduceAction669 parser::ReduceAction669::init"
+val_t NEW_ReduceAction669_parser___ReduceAction669___init(void);
+typedef val_t (*NEW_ReduceAction669_parser___ReduceAction669___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction670 "init var of ReduceAction670"
+void INIT_ATTRIBUTES__ReduceAction670(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction670_t)(val_t p0);
+val_t NEW_ReduceAction670(void);
+#define LOCATE_CHECKNEW_ReduceAction670 "check new ReduceAction670"
+void CHECKNEW_ReduceAction670(val_t p0);
+typedef void (*CHECKNEW_ReduceAction670_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction670_parser___ReduceAction670___init "new ReduceAction670 parser::ReduceAction670::init"
+val_t NEW_ReduceAction670_parser___ReduceAction670___init(void);
+typedef val_t (*NEW_ReduceAction670_parser___ReduceAction670___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction671 "init var of ReduceAction671"
+void INIT_ATTRIBUTES__ReduceAction671(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction671_t)(val_t p0);
+val_t NEW_ReduceAction671(void);
+#define LOCATE_CHECKNEW_ReduceAction671 "check new ReduceAction671"
+void CHECKNEW_ReduceAction671(val_t p0);
+typedef void (*CHECKNEW_ReduceAction671_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction671_parser___ReduceAction671___init "new ReduceAction671 parser::ReduceAction671::init"
+val_t NEW_ReduceAction671_parser___ReduceAction671___init(void);
+typedef val_t (*NEW_ReduceAction671_parser___ReduceAction671___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction672 "init var of ReduceAction672"
+void INIT_ATTRIBUTES__ReduceAction672(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction672_t)(val_t p0);
+val_t NEW_ReduceAction672(void);
+#define LOCATE_CHECKNEW_ReduceAction672 "check new ReduceAction672"
+void CHECKNEW_ReduceAction672(val_t p0);
+typedef void (*CHECKNEW_ReduceAction672_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction672_parser___ReduceAction672___init "new ReduceAction672 parser::ReduceAction672::init"
+val_t NEW_ReduceAction672_parser___ReduceAction672___init(void);
+typedef val_t (*NEW_ReduceAction672_parser___ReduceAction672___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction673 "init var of ReduceAction673"
+void INIT_ATTRIBUTES__ReduceAction673(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction673_t)(val_t p0);
+val_t NEW_ReduceAction673(void);
+#define LOCATE_CHECKNEW_ReduceAction673 "check new ReduceAction673"
+void CHECKNEW_ReduceAction673(val_t p0);
+typedef void (*CHECKNEW_ReduceAction673_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction673_parser___ReduceAction673___init "new ReduceAction673 parser::ReduceAction673::init"
+val_t NEW_ReduceAction673_parser___ReduceAction673___init(void);
+typedef val_t (*NEW_ReduceAction673_parser___ReduceAction673___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction674 "init var of ReduceAction674"
+void INIT_ATTRIBUTES__ReduceAction674(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction674_t)(val_t p0);
+val_t NEW_ReduceAction674(void);
+#define LOCATE_CHECKNEW_ReduceAction674 "check new ReduceAction674"
+void CHECKNEW_ReduceAction674(val_t p0);
+typedef void (*CHECKNEW_ReduceAction674_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction674_parser___ReduceAction674___init "new ReduceAction674 parser::ReduceAction674::init"
+val_t NEW_ReduceAction674_parser___ReduceAction674___init(void);
+typedef val_t (*NEW_ReduceAction674_parser___ReduceAction674___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction675 "init var of ReduceAction675"
+void INIT_ATTRIBUTES__ReduceAction675(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction675_t)(val_t p0);
+val_t NEW_ReduceAction675(void);
+#define LOCATE_CHECKNEW_ReduceAction675 "check new ReduceAction675"
+void CHECKNEW_ReduceAction675(val_t p0);
+typedef void (*CHECKNEW_ReduceAction675_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction675_parser___ReduceAction675___init "new ReduceAction675 parser::ReduceAction675::init"
+val_t NEW_ReduceAction675_parser___ReduceAction675___init(void);
+typedef val_t (*NEW_ReduceAction675_parser___ReduceAction675___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction676 "init var of ReduceAction676"
+void INIT_ATTRIBUTES__ReduceAction676(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction676_t)(val_t p0);
+val_t NEW_ReduceAction676(void);
+#define LOCATE_CHECKNEW_ReduceAction676 "check new ReduceAction676"
+void CHECKNEW_ReduceAction676(val_t p0);
+typedef void (*CHECKNEW_ReduceAction676_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction676_parser___ReduceAction676___init "new ReduceAction676 parser::ReduceAction676::init"
+val_t NEW_ReduceAction676_parser___ReduceAction676___init(void);
+typedef val_t (*NEW_ReduceAction676_parser___ReduceAction676___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction677 "init var of ReduceAction677"
+void INIT_ATTRIBUTES__ReduceAction677(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction677_t)(val_t p0);
+val_t NEW_ReduceAction677(void);
+#define LOCATE_CHECKNEW_ReduceAction677 "check new ReduceAction677"
+void CHECKNEW_ReduceAction677(val_t p0);
+typedef void (*CHECKNEW_ReduceAction677_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction677_parser___ReduceAction677___init "new ReduceAction677 parser::ReduceAction677::init"
+val_t NEW_ReduceAction677_parser___ReduceAction677___init(void);
+typedef val_t (*NEW_ReduceAction677_parser___ReduceAction677___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction678 "init var of ReduceAction678"
+void INIT_ATTRIBUTES__ReduceAction678(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction678_t)(val_t p0);
+val_t NEW_ReduceAction678(void);
+#define LOCATE_CHECKNEW_ReduceAction678 "check new ReduceAction678"
+void CHECKNEW_ReduceAction678(val_t p0);
+typedef void (*CHECKNEW_ReduceAction678_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction678_parser___ReduceAction678___init "new ReduceAction678 parser::ReduceAction678::init"
+val_t NEW_ReduceAction678_parser___ReduceAction678___init(void);
+typedef val_t (*NEW_ReduceAction678_parser___ReduceAction678___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction679 "init var of ReduceAction679"
+void INIT_ATTRIBUTES__ReduceAction679(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction679_t)(val_t p0);
+val_t NEW_ReduceAction679(void);
+#define LOCATE_CHECKNEW_ReduceAction679 "check new ReduceAction679"
+void CHECKNEW_ReduceAction679(val_t p0);
+typedef void (*CHECKNEW_ReduceAction679_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction679_parser___ReduceAction679___init "new ReduceAction679 parser::ReduceAction679::init"
+val_t NEW_ReduceAction679_parser___ReduceAction679___init(void);
+typedef val_t (*NEW_ReduceAction679_parser___ReduceAction679___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction680 "init var of ReduceAction680"
+void INIT_ATTRIBUTES__ReduceAction680(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction680_t)(val_t p0);
+val_t NEW_ReduceAction680(void);
+#define LOCATE_CHECKNEW_ReduceAction680 "check new ReduceAction680"
+void CHECKNEW_ReduceAction680(val_t p0);
+typedef void (*CHECKNEW_ReduceAction680_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction680_parser___ReduceAction680___init "new ReduceAction680 parser::ReduceAction680::init"
+val_t NEW_ReduceAction680_parser___ReduceAction680___init(void);
+typedef val_t (*NEW_ReduceAction680_parser___ReduceAction680___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction681 "init var of ReduceAction681"
+void INIT_ATTRIBUTES__ReduceAction681(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction681_t)(val_t p0);
+val_t NEW_ReduceAction681(void);
+#define LOCATE_CHECKNEW_ReduceAction681 "check new ReduceAction681"
+void CHECKNEW_ReduceAction681(val_t p0);
+typedef void (*CHECKNEW_ReduceAction681_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction681_parser___ReduceAction681___init "new ReduceAction681 parser::ReduceAction681::init"
+val_t NEW_ReduceAction681_parser___ReduceAction681___init(void);
+typedef val_t (*NEW_ReduceAction681_parser___ReduceAction681___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction682 "init var of ReduceAction682"
+void INIT_ATTRIBUTES__ReduceAction682(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction682_t)(val_t p0);
+val_t NEW_ReduceAction682(void);
+#define LOCATE_CHECKNEW_ReduceAction682 "check new ReduceAction682"
+void CHECKNEW_ReduceAction682(val_t p0);
+typedef void (*CHECKNEW_ReduceAction682_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction682_parser___ReduceAction682___init "new ReduceAction682 parser::ReduceAction682::init"
+val_t NEW_ReduceAction682_parser___ReduceAction682___init(void);
+typedef val_t (*NEW_ReduceAction682_parser___ReduceAction682___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction683 "init var of ReduceAction683"
+void INIT_ATTRIBUTES__ReduceAction683(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction683_t)(val_t p0);
+val_t NEW_ReduceAction683(void);
+#define LOCATE_CHECKNEW_ReduceAction683 "check new ReduceAction683"
+void CHECKNEW_ReduceAction683(val_t p0);
+typedef void (*CHECKNEW_ReduceAction683_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction683_parser___ReduceAction683___init "new ReduceAction683 parser::ReduceAction683::init"
+val_t NEW_ReduceAction683_parser___ReduceAction683___init(void);
+typedef val_t (*NEW_ReduceAction683_parser___ReduceAction683___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction684 "init var of ReduceAction684"
+void INIT_ATTRIBUTES__ReduceAction684(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction684_t)(val_t p0);
+val_t NEW_ReduceAction684(void);
+#define LOCATE_CHECKNEW_ReduceAction684 "check new ReduceAction684"
+void CHECKNEW_ReduceAction684(val_t p0);
+typedef void (*CHECKNEW_ReduceAction684_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction684_parser___ReduceAction684___init "new ReduceAction684 parser::ReduceAction684::init"
+val_t NEW_ReduceAction684_parser___ReduceAction684___init(void);
+typedef val_t (*NEW_ReduceAction684_parser___ReduceAction684___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction685 "init var of ReduceAction685"
+void INIT_ATTRIBUTES__ReduceAction685(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction685_t)(val_t p0);
+val_t NEW_ReduceAction685(void);
+#define LOCATE_CHECKNEW_ReduceAction685 "check new ReduceAction685"
+void CHECKNEW_ReduceAction685(val_t p0);
+typedef void (*CHECKNEW_ReduceAction685_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction685_parser___ReduceAction685___init "new ReduceAction685 parser::ReduceAction685::init"
+val_t NEW_ReduceAction685_parser___ReduceAction685___init(void);
+typedef val_t (*NEW_ReduceAction685_parser___ReduceAction685___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction686 "init var of ReduceAction686"
+void INIT_ATTRIBUTES__ReduceAction686(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction686_t)(val_t p0);
+val_t NEW_ReduceAction686(void);
+#define LOCATE_CHECKNEW_ReduceAction686 "check new ReduceAction686"
+void CHECKNEW_ReduceAction686(val_t p0);
+typedef void (*CHECKNEW_ReduceAction686_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction686_parser___ReduceAction686___init "new ReduceAction686 parser::ReduceAction686::init"
+val_t NEW_ReduceAction686_parser___ReduceAction686___init(void);
+typedef val_t (*NEW_ReduceAction686_parser___ReduceAction686___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction687 "init var of ReduceAction687"
+void INIT_ATTRIBUTES__ReduceAction687(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction687_t)(val_t p0);
+val_t NEW_ReduceAction687(void);
+#define LOCATE_CHECKNEW_ReduceAction687 "check new ReduceAction687"
+void CHECKNEW_ReduceAction687(val_t p0);
+typedef void (*CHECKNEW_ReduceAction687_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction687_parser___ReduceAction687___init "new ReduceAction687 parser::ReduceAction687::init"
+val_t NEW_ReduceAction687_parser___ReduceAction687___init(void);
+typedef val_t (*NEW_ReduceAction687_parser___ReduceAction687___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction688 "init var of ReduceAction688"
+void INIT_ATTRIBUTES__ReduceAction688(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction688_t)(val_t p0);
+val_t NEW_ReduceAction688(void);
+#define LOCATE_CHECKNEW_ReduceAction688 "check new ReduceAction688"
+void CHECKNEW_ReduceAction688(val_t p0);
+typedef void (*CHECKNEW_ReduceAction688_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction688_parser___ReduceAction688___init "new ReduceAction688 parser::ReduceAction688::init"
+val_t NEW_ReduceAction688_parser___ReduceAction688___init(void);
+typedef val_t (*NEW_ReduceAction688_parser___ReduceAction688___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction689 "init var of ReduceAction689"
+void INIT_ATTRIBUTES__ReduceAction689(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction689_t)(val_t p0);
+val_t NEW_ReduceAction689(void);
+#define LOCATE_CHECKNEW_ReduceAction689 "check new ReduceAction689"
+void CHECKNEW_ReduceAction689(val_t p0);
+typedef void (*CHECKNEW_ReduceAction689_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction689_parser___ReduceAction689___init "new ReduceAction689 parser::ReduceAction689::init"
+val_t NEW_ReduceAction689_parser___ReduceAction689___init(void);
+typedef val_t (*NEW_ReduceAction689_parser___ReduceAction689___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction690 "init var of ReduceAction690"
+void INIT_ATTRIBUTES__ReduceAction690(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction690_t)(val_t p0);
+val_t NEW_ReduceAction690(void);
+#define LOCATE_CHECKNEW_ReduceAction690 "check new ReduceAction690"
+void CHECKNEW_ReduceAction690(val_t p0);
+typedef void (*CHECKNEW_ReduceAction690_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction690_parser___ReduceAction690___init "new ReduceAction690 parser::ReduceAction690::init"
+val_t NEW_ReduceAction690_parser___ReduceAction690___init(void);
+typedef val_t (*NEW_ReduceAction690_parser___ReduceAction690___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction691 "init var of ReduceAction691"
+void INIT_ATTRIBUTES__ReduceAction691(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction691_t)(val_t p0);
+val_t NEW_ReduceAction691(void);
+#define LOCATE_CHECKNEW_ReduceAction691 "check new ReduceAction691"
+void CHECKNEW_ReduceAction691(val_t p0);
+typedef void (*CHECKNEW_ReduceAction691_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction691_parser___ReduceAction691___init "new ReduceAction691 parser::ReduceAction691::init"
+val_t NEW_ReduceAction691_parser___ReduceAction691___init(void);
+typedef val_t (*NEW_ReduceAction691_parser___ReduceAction691___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction692 "init var of ReduceAction692"
+void INIT_ATTRIBUTES__ReduceAction692(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction692_t)(val_t p0);
+val_t NEW_ReduceAction692(void);
+#define LOCATE_CHECKNEW_ReduceAction692 "check new ReduceAction692"
+void CHECKNEW_ReduceAction692(val_t p0);
+typedef void (*CHECKNEW_ReduceAction692_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction692_parser___ReduceAction692___init "new ReduceAction692 parser::ReduceAction692::init"
+val_t NEW_ReduceAction692_parser___ReduceAction692___init(void);
+typedef val_t (*NEW_ReduceAction692_parser___ReduceAction692___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction693 "init var of ReduceAction693"
+void INIT_ATTRIBUTES__ReduceAction693(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction693_t)(val_t p0);
+val_t NEW_ReduceAction693(void);
+#define LOCATE_CHECKNEW_ReduceAction693 "check new ReduceAction693"
+void CHECKNEW_ReduceAction693(val_t p0);
+typedef void (*CHECKNEW_ReduceAction693_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction693_parser___ReduceAction693___init "new ReduceAction693 parser::ReduceAction693::init"
+val_t NEW_ReduceAction693_parser___ReduceAction693___init(void);
+typedef val_t (*NEW_ReduceAction693_parser___ReduceAction693___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction694 "init var of ReduceAction694"
+void INIT_ATTRIBUTES__ReduceAction694(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction694_t)(val_t p0);
+val_t NEW_ReduceAction694(void);
+#define LOCATE_CHECKNEW_ReduceAction694 "check new ReduceAction694"
+void CHECKNEW_ReduceAction694(val_t p0);
+typedef void (*CHECKNEW_ReduceAction694_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction694_parser___ReduceAction694___init "new ReduceAction694 parser::ReduceAction694::init"
+val_t NEW_ReduceAction694_parser___ReduceAction694___init(void);
+typedef val_t (*NEW_ReduceAction694_parser___ReduceAction694___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction695 "init var of ReduceAction695"
+void INIT_ATTRIBUTES__ReduceAction695(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction695_t)(val_t p0);
+val_t NEW_ReduceAction695(void);
+#define LOCATE_CHECKNEW_ReduceAction695 "check new ReduceAction695"
+void CHECKNEW_ReduceAction695(val_t p0);
+typedef void (*CHECKNEW_ReduceAction695_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction695_parser___ReduceAction695___init "new ReduceAction695 parser::ReduceAction695::init"
+val_t NEW_ReduceAction695_parser___ReduceAction695___init(void);
+typedef val_t (*NEW_ReduceAction695_parser___ReduceAction695___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction696 "init var of ReduceAction696"
+void INIT_ATTRIBUTES__ReduceAction696(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction696_t)(val_t p0);
+val_t NEW_ReduceAction696(void);
+#define LOCATE_CHECKNEW_ReduceAction696 "check new ReduceAction696"
+void CHECKNEW_ReduceAction696(val_t p0);
+typedef void (*CHECKNEW_ReduceAction696_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction696_parser___ReduceAction696___init "new ReduceAction696 parser::ReduceAction696::init"
+val_t NEW_ReduceAction696_parser___ReduceAction696___init(void);
+typedef val_t (*NEW_ReduceAction696_parser___ReduceAction696___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction697 "init var of ReduceAction697"
+void INIT_ATTRIBUTES__ReduceAction697(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction697_t)(val_t p0);
+val_t NEW_ReduceAction697(void);
+#define LOCATE_CHECKNEW_ReduceAction697 "check new ReduceAction697"
+void CHECKNEW_ReduceAction697(val_t p0);
+typedef void (*CHECKNEW_ReduceAction697_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction697_parser___ReduceAction697___init "new ReduceAction697 parser::ReduceAction697::init"
+val_t NEW_ReduceAction697_parser___ReduceAction697___init(void);
+typedef val_t (*NEW_ReduceAction697_parser___ReduceAction697___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction698 "init var of ReduceAction698"
+void INIT_ATTRIBUTES__ReduceAction698(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction698_t)(val_t p0);
+val_t NEW_ReduceAction698(void);
+#define LOCATE_CHECKNEW_ReduceAction698 "check new ReduceAction698"
+void CHECKNEW_ReduceAction698(val_t p0);
+typedef void (*CHECKNEW_ReduceAction698_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction698_parser___ReduceAction698___init "new ReduceAction698 parser::ReduceAction698::init"
+val_t NEW_ReduceAction698_parser___ReduceAction698___init(void);
+typedef val_t (*NEW_ReduceAction698_parser___ReduceAction698___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction699 "init var of ReduceAction699"
+void INIT_ATTRIBUTES__ReduceAction699(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction699_t)(val_t p0);
+val_t NEW_ReduceAction699(void);
+#define LOCATE_CHECKNEW_ReduceAction699 "check new ReduceAction699"
+void CHECKNEW_ReduceAction699(val_t p0);
+typedef void (*CHECKNEW_ReduceAction699_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction699_parser___ReduceAction699___init "new ReduceAction699 parser::ReduceAction699::init"
+val_t NEW_ReduceAction699_parser___ReduceAction699___init(void);
+typedef val_t (*NEW_ReduceAction699_parser___ReduceAction699___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction700 "init var of ReduceAction700"
+void INIT_ATTRIBUTES__ReduceAction700(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction700_t)(val_t p0);
+val_t NEW_ReduceAction700(void);
+#define LOCATE_CHECKNEW_ReduceAction700 "check new ReduceAction700"
+void CHECKNEW_ReduceAction700(val_t p0);
+typedef void (*CHECKNEW_ReduceAction700_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction700_parser___ReduceAction700___init "new ReduceAction700 parser::ReduceAction700::init"
+val_t NEW_ReduceAction700_parser___ReduceAction700___init(void);
+typedef val_t (*NEW_ReduceAction700_parser___ReduceAction700___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction701 "init var of ReduceAction701"
+void INIT_ATTRIBUTES__ReduceAction701(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction701_t)(val_t p0);
+val_t NEW_ReduceAction701(void);
+#define LOCATE_CHECKNEW_ReduceAction701 "check new ReduceAction701"
+void CHECKNEW_ReduceAction701(val_t p0);
+typedef void (*CHECKNEW_ReduceAction701_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction701_parser___ReduceAction701___init "new ReduceAction701 parser::ReduceAction701::init"
+val_t NEW_ReduceAction701_parser___ReduceAction701___init(void);
+typedef val_t (*NEW_ReduceAction701_parser___ReduceAction701___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction702 "init var of ReduceAction702"
+void INIT_ATTRIBUTES__ReduceAction702(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction702_t)(val_t p0);
+val_t NEW_ReduceAction702(void);
+#define LOCATE_CHECKNEW_ReduceAction702 "check new ReduceAction702"
+void CHECKNEW_ReduceAction702(val_t p0);
+typedef void (*CHECKNEW_ReduceAction702_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction702_parser___ReduceAction702___init "new ReduceAction702 parser::ReduceAction702::init"
+val_t NEW_ReduceAction702_parser___ReduceAction702___init(void);
+typedef val_t (*NEW_ReduceAction702_parser___ReduceAction702___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction703 "init var of ReduceAction703"
+void INIT_ATTRIBUTES__ReduceAction703(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction703_t)(val_t p0);
+val_t NEW_ReduceAction703(void);
+#define LOCATE_CHECKNEW_ReduceAction703 "check new ReduceAction703"
+void CHECKNEW_ReduceAction703(val_t p0);
+typedef void (*CHECKNEW_ReduceAction703_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction703_parser___ReduceAction703___init "new ReduceAction703 parser::ReduceAction703::init"
+val_t NEW_ReduceAction703_parser___ReduceAction703___init(void);
+typedef val_t (*NEW_ReduceAction703_parser___ReduceAction703___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction704 "init var of ReduceAction704"
+void INIT_ATTRIBUTES__ReduceAction704(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction704_t)(val_t p0);
+val_t NEW_ReduceAction704(void);
+#define LOCATE_CHECKNEW_ReduceAction704 "check new ReduceAction704"
+void CHECKNEW_ReduceAction704(val_t p0);
+typedef void (*CHECKNEW_ReduceAction704_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction704_parser___ReduceAction704___init "new ReduceAction704 parser::ReduceAction704::init"
+val_t NEW_ReduceAction704_parser___ReduceAction704___init(void);
+typedef val_t (*NEW_ReduceAction704_parser___ReduceAction704___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction705 "init var of ReduceAction705"
+void INIT_ATTRIBUTES__ReduceAction705(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction705_t)(val_t p0);
+val_t NEW_ReduceAction705(void);
+#define LOCATE_CHECKNEW_ReduceAction705 "check new ReduceAction705"
+void CHECKNEW_ReduceAction705(val_t p0);
+typedef void (*CHECKNEW_ReduceAction705_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction705_parser___ReduceAction705___init "new ReduceAction705 parser::ReduceAction705::init"
+val_t NEW_ReduceAction705_parser___ReduceAction705___init(void);
+typedef val_t (*NEW_ReduceAction705_parser___ReduceAction705___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction706 "init var of ReduceAction706"
+void INIT_ATTRIBUTES__ReduceAction706(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction706_t)(val_t p0);
+val_t NEW_ReduceAction706(void);
+#define LOCATE_CHECKNEW_ReduceAction706 "check new ReduceAction706"
+void CHECKNEW_ReduceAction706(val_t p0);
+typedef void (*CHECKNEW_ReduceAction706_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction706_parser___ReduceAction706___init "new ReduceAction706 parser::ReduceAction706::init"
+val_t NEW_ReduceAction706_parser___ReduceAction706___init(void);
+typedef val_t (*NEW_ReduceAction706_parser___ReduceAction706___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction707 "init var of ReduceAction707"
+void INIT_ATTRIBUTES__ReduceAction707(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction707_t)(val_t p0);
+val_t NEW_ReduceAction707(void);
+#define LOCATE_CHECKNEW_ReduceAction707 "check new ReduceAction707"
+void CHECKNEW_ReduceAction707(val_t p0);
+typedef void (*CHECKNEW_ReduceAction707_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction707_parser___ReduceAction707___init "new ReduceAction707 parser::ReduceAction707::init"
+val_t NEW_ReduceAction707_parser___ReduceAction707___init(void);
+typedef val_t (*NEW_ReduceAction707_parser___ReduceAction707___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction708 "init var of ReduceAction708"
+void INIT_ATTRIBUTES__ReduceAction708(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction708_t)(val_t p0);
+val_t NEW_ReduceAction708(void);
+#define LOCATE_CHECKNEW_ReduceAction708 "check new ReduceAction708"
+void CHECKNEW_ReduceAction708(val_t p0);
+typedef void (*CHECKNEW_ReduceAction708_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction708_parser___ReduceAction708___init "new ReduceAction708 parser::ReduceAction708::init"
+val_t NEW_ReduceAction708_parser___ReduceAction708___init(void);
+typedef val_t (*NEW_ReduceAction708_parser___ReduceAction708___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction709 "init var of ReduceAction709"
+void INIT_ATTRIBUTES__ReduceAction709(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction709_t)(val_t p0);
+val_t NEW_ReduceAction709(void);
+#define LOCATE_CHECKNEW_ReduceAction709 "check new ReduceAction709"
+void CHECKNEW_ReduceAction709(val_t p0);
+typedef void (*CHECKNEW_ReduceAction709_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction709_parser___ReduceAction709___init "new ReduceAction709 parser::ReduceAction709::init"
+val_t NEW_ReduceAction709_parser___ReduceAction709___init(void);
+typedef val_t (*NEW_ReduceAction709_parser___ReduceAction709___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction710 "init var of ReduceAction710"
+void INIT_ATTRIBUTES__ReduceAction710(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction710_t)(val_t p0);
+val_t NEW_ReduceAction710(void);
+#define LOCATE_CHECKNEW_ReduceAction710 "check new ReduceAction710"
+void CHECKNEW_ReduceAction710(val_t p0);
+typedef void (*CHECKNEW_ReduceAction710_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction710_parser___ReduceAction710___init "new ReduceAction710 parser::ReduceAction710::init"
+val_t NEW_ReduceAction710_parser___ReduceAction710___init(void);
+typedef val_t (*NEW_ReduceAction710_parser___ReduceAction710___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction711 "init var of ReduceAction711"
+void INIT_ATTRIBUTES__ReduceAction711(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction711_t)(val_t p0);
+val_t NEW_ReduceAction711(void);
+#define LOCATE_CHECKNEW_ReduceAction711 "check new ReduceAction711"
+void CHECKNEW_ReduceAction711(val_t p0);
+typedef void (*CHECKNEW_ReduceAction711_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction711_parser___ReduceAction711___init "new ReduceAction711 parser::ReduceAction711::init"
+val_t NEW_ReduceAction711_parser___ReduceAction711___init(void);
+typedef val_t (*NEW_ReduceAction711_parser___ReduceAction711___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction712 "init var of ReduceAction712"
+void INIT_ATTRIBUTES__ReduceAction712(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction712_t)(val_t p0);
+val_t NEW_ReduceAction712(void);
+#define LOCATE_CHECKNEW_ReduceAction712 "check new ReduceAction712"
+void CHECKNEW_ReduceAction712(val_t p0);
+typedef void (*CHECKNEW_ReduceAction712_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction712_parser___ReduceAction712___init "new ReduceAction712 parser::ReduceAction712::init"
+val_t NEW_ReduceAction712_parser___ReduceAction712___init(void);
+typedef val_t (*NEW_ReduceAction712_parser___ReduceAction712___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction713 "init var of ReduceAction713"
+void INIT_ATTRIBUTES__ReduceAction713(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction713_t)(val_t p0);
+val_t NEW_ReduceAction713(void);
+#define LOCATE_CHECKNEW_ReduceAction713 "check new ReduceAction713"
+void CHECKNEW_ReduceAction713(val_t p0);
+typedef void (*CHECKNEW_ReduceAction713_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction713_parser___ReduceAction713___init "new ReduceAction713 parser::ReduceAction713::init"
+val_t NEW_ReduceAction713_parser___ReduceAction713___init(void);
+typedef val_t (*NEW_ReduceAction713_parser___ReduceAction713___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction714 "init var of ReduceAction714"
+void INIT_ATTRIBUTES__ReduceAction714(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction714_t)(val_t p0);
+val_t NEW_ReduceAction714(void);
+#define LOCATE_CHECKNEW_ReduceAction714 "check new ReduceAction714"
+void CHECKNEW_ReduceAction714(val_t p0);
+typedef void (*CHECKNEW_ReduceAction714_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction714_parser___ReduceAction714___init "new ReduceAction714 parser::ReduceAction714::init"
+val_t NEW_ReduceAction714_parser___ReduceAction714___init(void);
+typedef val_t (*NEW_ReduceAction714_parser___ReduceAction714___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction715 "init var of ReduceAction715"
+void INIT_ATTRIBUTES__ReduceAction715(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction715_t)(val_t p0);
+val_t NEW_ReduceAction715(void);
+#define LOCATE_CHECKNEW_ReduceAction715 "check new ReduceAction715"
+void CHECKNEW_ReduceAction715(val_t p0);
+typedef void (*CHECKNEW_ReduceAction715_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction715_parser___ReduceAction715___init "new ReduceAction715 parser::ReduceAction715::init"
+val_t NEW_ReduceAction715_parser___ReduceAction715___init(void);
+typedef val_t (*NEW_ReduceAction715_parser___ReduceAction715___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction716 "init var of ReduceAction716"
+void INIT_ATTRIBUTES__ReduceAction716(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction716_t)(val_t p0);
+val_t NEW_ReduceAction716(void);
+#define LOCATE_CHECKNEW_ReduceAction716 "check new ReduceAction716"
+void CHECKNEW_ReduceAction716(val_t p0);
+typedef void (*CHECKNEW_ReduceAction716_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction716_parser___ReduceAction716___init "new ReduceAction716 parser::ReduceAction716::init"
+val_t NEW_ReduceAction716_parser___ReduceAction716___init(void);
+typedef val_t (*NEW_ReduceAction716_parser___ReduceAction716___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction717 "init var of ReduceAction717"
+void INIT_ATTRIBUTES__ReduceAction717(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction717_t)(val_t p0);
+val_t NEW_ReduceAction717(void);
+#define LOCATE_CHECKNEW_ReduceAction717 "check new ReduceAction717"
+void CHECKNEW_ReduceAction717(val_t p0);
+typedef void (*CHECKNEW_ReduceAction717_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction717_parser___ReduceAction717___init "new ReduceAction717 parser::ReduceAction717::init"
+val_t NEW_ReduceAction717_parser___ReduceAction717___init(void);
+typedef val_t (*NEW_ReduceAction717_parser___ReduceAction717___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction718 "init var of ReduceAction718"
+void INIT_ATTRIBUTES__ReduceAction718(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction718_t)(val_t p0);
+val_t NEW_ReduceAction718(void);
+#define LOCATE_CHECKNEW_ReduceAction718 "check new ReduceAction718"
+void CHECKNEW_ReduceAction718(val_t p0);
+typedef void (*CHECKNEW_ReduceAction718_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction718_parser___ReduceAction718___init "new ReduceAction718 parser::ReduceAction718::init"
+val_t NEW_ReduceAction718_parser___ReduceAction718___init(void);
+typedef val_t (*NEW_ReduceAction718_parser___ReduceAction718___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction719 "init var of ReduceAction719"
+void INIT_ATTRIBUTES__ReduceAction719(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction719_t)(val_t p0);
+val_t NEW_ReduceAction719(void);
+#define LOCATE_CHECKNEW_ReduceAction719 "check new ReduceAction719"
+void CHECKNEW_ReduceAction719(val_t p0);
+typedef void (*CHECKNEW_ReduceAction719_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction719_parser___ReduceAction719___init "new ReduceAction719 parser::ReduceAction719::init"
+val_t NEW_ReduceAction719_parser___ReduceAction719___init(void);
+typedef val_t (*NEW_ReduceAction719_parser___ReduceAction719___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction720 "init var of ReduceAction720"
+void INIT_ATTRIBUTES__ReduceAction720(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction720_t)(val_t p0);
+val_t NEW_ReduceAction720(void);
+#define LOCATE_CHECKNEW_ReduceAction720 "check new ReduceAction720"
+void CHECKNEW_ReduceAction720(val_t p0);
+typedef void (*CHECKNEW_ReduceAction720_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction720_parser___ReduceAction720___init "new ReduceAction720 parser::ReduceAction720::init"
+val_t NEW_ReduceAction720_parser___ReduceAction720___init(void);
+typedef val_t (*NEW_ReduceAction720_parser___ReduceAction720___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction721 "init var of ReduceAction721"
+void INIT_ATTRIBUTES__ReduceAction721(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction721_t)(val_t p0);
+val_t NEW_ReduceAction721(void);
+#define LOCATE_CHECKNEW_ReduceAction721 "check new ReduceAction721"
+void CHECKNEW_ReduceAction721(val_t p0);
+typedef void (*CHECKNEW_ReduceAction721_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction721_parser___ReduceAction721___init "new ReduceAction721 parser::ReduceAction721::init"
+val_t NEW_ReduceAction721_parser___ReduceAction721___init(void);
+typedef val_t (*NEW_ReduceAction721_parser___ReduceAction721___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction722 "init var of ReduceAction722"
+void INIT_ATTRIBUTES__ReduceAction722(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction722_t)(val_t p0);
+val_t NEW_ReduceAction722(void);
+#define LOCATE_CHECKNEW_ReduceAction722 "check new ReduceAction722"
+void CHECKNEW_ReduceAction722(val_t p0);
+typedef void (*CHECKNEW_ReduceAction722_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction722_parser___ReduceAction722___init "new ReduceAction722 parser::ReduceAction722::init"
+val_t NEW_ReduceAction722_parser___ReduceAction722___init(void);
+typedef val_t (*NEW_ReduceAction722_parser___ReduceAction722___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction723 "init var of ReduceAction723"
+void INIT_ATTRIBUTES__ReduceAction723(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction723_t)(val_t p0);
+val_t NEW_ReduceAction723(void);
+#define LOCATE_CHECKNEW_ReduceAction723 "check new ReduceAction723"
+void CHECKNEW_ReduceAction723(val_t p0);
+typedef void (*CHECKNEW_ReduceAction723_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction723_parser___ReduceAction723___init "new ReduceAction723 parser::ReduceAction723::init"
+val_t NEW_ReduceAction723_parser___ReduceAction723___init(void);
+typedef val_t (*NEW_ReduceAction723_parser___ReduceAction723___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction724 "init var of ReduceAction724"
+void INIT_ATTRIBUTES__ReduceAction724(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction724_t)(val_t p0);
+val_t NEW_ReduceAction724(void);
+#define LOCATE_CHECKNEW_ReduceAction724 "check new ReduceAction724"
+void CHECKNEW_ReduceAction724(val_t p0);
+typedef void (*CHECKNEW_ReduceAction724_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction724_parser___ReduceAction724___init "new ReduceAction724 parser::ReduceAction724::init"
+val_t NEW_ReduceAction724_parser___ReduceAction724___init(void);
+typedef val_t (*NEW_ReduceAction724_parser___ReduceAction724___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction725 "init var of ReduceAction725"
+void INIT_ATTRIBUTES__ReduceAction725(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction725_t)(val_t p0);
+val_t NEW_ReduceAction725(void);
+#define LOCATE_CHECKNEW_ReduceAction725 "check new ReduceAction725"
+void CHECKNEW_ReduceAction725(val_t p0);
+typedef void (*CHECKNEW_ReduceAction725_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction725_parser___ReduceAction725___init "new ReduceAction725 parser::ReduceAction725::init"
+val_t NEW_ReduceAction725_parser___ReduceAction725___init(void);
+typedef val_t (*NEW_ReduceAction725_parser___ReduceAction725___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction726 "init var of ReduceAction726"
+void INIT_ATTRIBUTES__ReduceAction726(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction726_t)(val_t p0);
+val_t NEW_ReduceAction726(void);
+#define LOCATE_CHECKNEW_ReduceAction726 "check new ReduceAction726"
+void CHECKNEW_ReduceAction726(val_t p0);
+typedef void (*CHECKNEW_ReduceAction726_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction726_parser___ReduceAction726___init "new ReduceAction726 parser::ReduceAction726::init"
+val_t NEW_ReduceAction726_parser___ReduceAction726___init(void);
+typedef val_t (*NEW_ReduceAction726_parser___ReduceAction726___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction727 "init var of ReduceAction727"
+void INIT_ATTRIBUTES__ReduceAction727(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction727_t)(val_t p0);
+val_t NEW_ReduceAction727(void);
+#define LOCATE_CHECKNEW_ReduceAction727 "check new ReduceAction727"
+void CHECKNEW_ReduceAction727(val_t p0);
+typedef void (*CHECKNEW_ReduceAction727_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction727_parser___ReduceAction727___init "new ReduceAction727 parser::ReduceAction727::init"
+val_t NEW_ReduceAction727_parser___ReduceAction727___init(void);
+typedef val_t (*NEW_ReduceAction727_parser___ReduceAction727___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction728 "init var of ReduceAction728"
+void INIT_ATTRIBUTES__ReduceAction728(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction728_t)(val_t p0);
+val_t NEW_ReduceAction728(void);
+#define LOCATE_CHECKNEW_ReduceAction728 "check new ReduceAction728"
+void CHECKNEW_ReduceAction728(val_t p0);
+typedef void (*CHECKNEW_ReduceAction728_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction728_parser___ReduceAction728___init "new ReduceAction728 parser::ReduceAction728::init"
+val_t NEW_ReduceAction728_parser___ReduceAction728___init(void);
+typedef val_t (*NEW_ReduceAction728_parser___ReduceAction728___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction729 "init var of ReduceAction729"
+void INIT_ATTRIBUTES__ReduceAction729(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction729_t)(val_t p0);
+val_t NEW_ReduceAction729(void);
+#define LOCATE_CHECKNEW_ReduceAction729 "check new ReduceAction729"
+void CHECKNEW_ReduceAction729(val_t p0);
+typedef void (*CHECKNEW_ReduceAction729_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction729_parser___ReduceAction729___init "new ReduceAction729 parser::ReduceAction729::init"
+val_t NEW_ReduceAction729_parser___ReduceAction729___init(void);
+typedef val_t (*NEW_ReduceAction729_parser___ReduceAction729___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction730 "init var of ReduceAction730"
+void INIT_ATTRIBUTES__ReduceAction730(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction730_t)(val_t p0);
+val_t NEW_ReduceAction730(void);
+#define LOCATE_CHECKNEW_ReduceAction730 "check new ReduceAction730"
+void CHECKNEW_ReduceAction730(val_t p0);
+typedef void (*CHECKNEW_ReduceAction730_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction730_parser___ReduceAction730___init "new ReduceAction730 parser::ReduceAction730::init"
+val_t NEW_ReduceAction730_parser___ReduceAction730___init(void);
+typedef val_t (*NEW_ReduceAction730_parser___ReduceAction730___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction731 "init var of ReduceAction731"
+void INIT_ATTRIBUTES__ReduceAction731(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction731_t)(val_t p0);
+val_t NEW_ReduceAction731(void);
+#define LOCATE_CHECKNEW_ReduceAction731 "check new ReduceAction731"
+void CHECKNEW_ReduceAction731(val_t p0);
+typedef void (*CHECKNEW_ReduceAction731_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction731_parser___ReduceAction731___init "new ReduceAction731 parser::ReduceAction731::init"
+val_t NEW_ReduceAction731_parser___ReduceAction731___init(void);
+typedef val_t (*NEW_ReduceAction731_parser___ReduceAction731___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction732 "init var of ReduceAction732"
+void INIT_ATTRIBUTES__ReduceAction732(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction732_t)(val_t p0);
+val_t NEW_ReduceAction732(void);
+#define LOCATE_CHECKNEW_ReduceAction732 "check new ReduceAction732"
+void CHECKNEW_ReduceAction732(val_t p0);
+typedef void (*CHECKNEW_ReduceAction732_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction732_parser___ReduceAction732___init "new ReduceAction732 parser::ReduceAction732::init"
+val_t NEW_ReduceAction732_parser___ReduceAction732___init(void);
+typedef val_t (*NEW_ReduceAction732_parser___ReduceAction732___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction733 "init var of ReduceAction733"
+void INIT_ATTRIBUTES__ReduceAction733(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction733_t)(val_t p0);
+val_t NEW_ReduceAction733(void);
+#define LOCATE_CHECKNEW_ReduceAction733 "check new ReduceAction733"
+void CHECKNEW_ReduceAction733(val_t p0);
+typedef void (*CHECKNEW_ReduceAction733_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction733_parser___ReduceAction733___init "new ReduceAction733 parser::ReduceAction733::init"
+val_t NEW_ReduceAction733_parser___ReduceAction733___init(void);
+typedef val_t (*NEW_ReduceAction733_parser___ReduceAction733___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction734 "init var of ReduceAction734"
+void INIT_ATTRIBUTES__ReduceAction734(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction734_t)(val_t p0);
+val_t NEW_ReduceAction734(void);
+#define LOCATE_CHECKNEW_ReduceAction734 "check new ReduceAction734"
+void CHECKNEW_ReduceAction734(val_t p0);
+typedef void (*CHECKNEW_ReduceAction734_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction734_parser___ReduceAction734___init "new ReduceAction734 parser::ReduceAction734::init"
+val_t NEW_ReduceAction734_parser___ReduceAction734___init(void);
+typedef val_t (*NEW_ReduceAction734_parser___ReduceAction734___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction735 "init var of ReduceAction735"
+void INIT_ATTRIBUTES__ReduceAction735(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction735_t)(val_t p0);
+val_t NEW_ReduceAction735(void);
+#define LOCATE_CHECKNEW_ReduceAction735 "check new ReduceAction735"
+void CHECKNEW_ReduceAction735(val_t p0);
+typedef void (*CHECKNEW_ReduceAction735_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction735_parser___ReduceAction735___init "new ReduceAction735 parser::ReduceAction735::init"
+val_t NEW_ReduceAction735_parser___ReduceAction735___init(void);
+typedef val_t (*NEW_ReduceAction735_parser___ReduceAction735___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction736 "init var of ReduceAction736"
+void INIT_ATTRIBUTES__ReduceAction736(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction736_t)(val_t p0);
+val_t NEW_ReduceAction736(void);
+#define LOCATE_CHECKNEW_ReduceAction736 "check new ReduceAction736"
+void CHECKNEW_ReduceAction736(val_t p0);
+typedef void (*CHECKNEW_ReduceAction736_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction736_parser___ReduceAction736___init "new ReduceAction736 parser::ReduceAction736::init"
+val_t NEW_ReduceAction736_parser___ReduceAction736___init(void);
+typedef val_t (*NEW_ReduceAction736_parser___ReduceAction736___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction737 "init var of ReduceAction737"
+void INIT_ATTRIBUTES__ReduceAction737(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction737_t)(val_t p0);
+val_t NEW_ReduceAction737(void);
+#define LOCATE_CHECKNEW_ReduceAction737 "check new ReduceAction737"
+void CHECKNEW_ReduceAction737(val_t p0);
+typedef void (*CHECKNEW_ReduceAction737_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction737_parser___ReduceAction737___init "new ReduceAction737 parser::ReduceAction737::init"
+val_t NEW_ReduceAction737_parser___ReduceAction737___init(void);
+typedef val_t (*NEW_ReduceAction737_parser___ReduceAction737___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction738 "init var of ReduceAction738"
+void INIT_ATTRIBUTES__ReduceAction738(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction738_t)(val_t p0);
+val_t NEW_ReduceAction738(void);
+#define LOCATE_CHECKNEW_ReduceAction738 "check new ReduceAction738"
+void CHECKNEW_ReduceAction738(val_t p0);
+typedef void (*CHECKNEW_ReduceAction738_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction738_parser___ReduceAction738___init "new ReduceAction738 parser::ReduceAction738::init"
+val_t NEW_ReduceAction738_parser___ReduceAction738___init(void);
+typedef val_t (*NEW_ReduceAction738_parser___ReduceAction738___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction739 "init var of ReduceAction739"
+void INIT_ATTRIBUTES__ReduceAction739(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction739_t)(val_t p0);
+val_t NEW_ReduceAction739(void);
+#define LOCATE_CHECKNEW_ReduceAction739 "check new ReduceAction739"
+void CHECKNEW_ReduceAction739(val_t p0);
+typedef void (*CHECKNEW_ReduceAction739_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction739_parser___ReduceAction739___init "new ReduceAction739 parser::ReduceAction739::init"
+val_t NEW_ReduceAction739_parser___ReduceAction739___init(void);
+typedef val_t (*NEW_ReduceAction739_parser___ReduceAction739___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction740 "init var of ReduceAction740"
+void INIT_ATTRIBUTES__ReduceAction740(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction740_t)(val_t p0);
+val_t NEW_ReduceAction740(void);
+#define LOCATE_CHECKNEW_ReduceAction740 "check new ReduceAction740"
+void CHECKNEW_ReduceAction740(val_t p0);
+typedef void (*CHECKNEW_ReduceAction740_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction740_parser___ReduceAction740___init "new ReduceAction740 parser::ReduceAction740::init"
+val_t NEW_ReduceAction740_parser___ReduceAction740___init(void);
+typedef val_t (*NEW_ReduceAction740_parser___ReduceAction740___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction741 "init var of ReduceAction741"
+void INIT_ATTRIBUTES__ReduceAction741(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction741_t)(val_t p0);
+val_t NEW_ReduceAction741(void);
+#define LOCATE_CHECKNEW_ReduceAction741 "check new ReduceAction741"
+void CHECKNEW_ReduceAction741(val_t p0);
+typedef void (*CHECKNEW_ReduceAction741_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction741_parser___ReduceAction741___init "new ReduceAction741 parser::ReduceAction741::init"
+val_t NEW_ReduceAction741_parser___ReduceAction741___init(void);
+typedef val_t (*NEW_ReduceAction741_parser___ReduceAction741___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction742 "init var of ReduceAction742"
+void INIT_ATTRIBUTES__ReduceAction742(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction742_t)(val_t p0);
+val_t NEW_ReduceAction742(void);
+#define LOCATE_CHECKNEW_ReduceAction742 "check new ReduceAction742"
+void CHECKNEW_ReduceAction742(val_t p0);
+typedef void (*CHECKNEW_ReduceAction742_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction742_parser___ReduceAction742___init "new ReduceAction742 parser::ReduceAction742::init"
+val_t NEW_ReduceAction742_parser___ReduceAction742___init(void);
+typedef val_t (*NEW_ReduceAction742_parser___ReduceAction742___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction743 "init var of ReduceAction743"
+void INIT_ATTRIBUTES__ReduceAction743(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction743_t)(val_t p0);
+val_t NEW_ReduceAction743(void);
+#define LOCATE_CHECKNEW_ReduceAction743 "check new ReduceAction743"
+void CHECKNEW_ReduceAction743(val_t p0);
+typedef void (*CHECKNEW_ReduceAction743_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction743_parser___ReduceAction743___init "new ReduceAction743 parser::ReduceAction743::init"
+val_t NEW_ReduceAction743_parser___ReduceAction743___init(void);
+typedef val_t (*NEW_ReduceAction743_parser___ReduceAction743___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction744 "init var of ReduceAction744"
+void INIT_ATTRIBUTES__ReduceAction744(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction744_t)(val_t p0);
+val_t NEW_ReduceAction744(void);
+#define LOCATE_CHECKNEW_ReduceAction744 "check new ReduceAction744"
+void CHECKNEW_ReduceAction744(val_t p0);
+typedef void (*CHECKNEW_ReduceAction744_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction744_parser___ReduceAction744___init "new ReduceAction744 parser::ReduceAction744::init"
+val_t NEW_ReduceAction744_parser___ReduceAction744___init(void);
+typedef val_t (*NEW_ReduceAction744_parser___ReduceAction744___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction745 "init var of ReduceAction745"
+void INIT_ATTRIBUTES__ReduceAction745(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction745_t)(val_t p0);
+val_t NEW_ReduceAction745(void);
+#define LOCATE_CHECKNEW_ReduceAction745 "check new ReduceAction745"
+void CHECKNEW_ReduceAction745(val_t p0);
+typedef void (*CHECKNEW_ReduceAction745_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction745_parser___ReduceAction745___init "new ReduceAction745 parser::ReduceAction745::init"
+val_t NEW_ReduceAction745_parser___ReduceAction745___init(void);
+typedef val_t (*NEW_ReduceAction745_parser___ReduceAction745___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction746 "init var of ReduceAction746"
+void INIT_ATTRIBUTES__ReduceAction746(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction746_t)(val_t p0);
+val_t NEW_ReduceAction746(void);
+#define LOCATE_CHECKNEW_ReduceAction746 "check new ReduceAction746"
+void CHECKNEW_ReduceAction746(val_t p0);
+typedef void (*CHECKNEW_ReduceAction746_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction746_parser___ReduceAction746___init "new ReduceAction746 parser::ReduceAction746::init"
+val_t NEW_ReduceAction746_parser___ReduceAction746___init(void);
+typedef val_t (*NEW_ReduceAction746_parser___ReduceAction746___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction747 "init var of ReduceAction747"
+void INIT_ATTRIBUTES__ReduceAction747(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction747_t)(val_t p0);
+val_t NEW_ReduceAction747(void);
+#define LOCATE_CHECKNEW_ReduceAction747 "check new ReduceAction747"
+void CHECKNEW_ReduceAction747(val_t p0);
+typedef void (*CHECKNEW_ReduceAction747_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction747_parser___ReduceAction747___init "new ReduceAction747 parser::ReduceAction747::init"
+val_t NEW_ReduceAction747_parser___ReduceAction747___init(void);
+typedef val_t (*NEW_ReduceAction747_parser___ReduceAction747___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction748 "init var of ReduceAction748"
+void INIT_ATTRIBUTES__ReduceAction748(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction748_t)(val_t p0);
+val_t NEW_ReduceAction748(void);
+#define LOCATE_CHECKNEW_ReduceAction748 "check new ReduceAction748"
+void CHECKNEW_ReduceAction748(val_t p0);
+typedef void (*CHECKNEW_ReduceAction748_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction748_parser___ReduceAction748___init "new ReduceAction748 parser::ReduceAction748::init"
+val_t NEW_ReduceAction748_parser___ReduceAction748___init(void);
+typedef val_t (*NEW_ReduceAction748_parser___ReduceAction748___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction749 "init var of ReduceAction749"
+void INIT_ATTRIBUTES__ReduceAction749(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction749_t)(val_t p0);
+val_t NEW_ReduceAction749(void);
+#define LOCATE_CHECKNEW_ReduceAction749 "check new ReduceAction749"
+void CHECKNEW_ReduceAction749(val_t p0);
+typedef void (*CHECKNEW_ReduceAction749_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction749_parser___ReduceAction749___init "new ReduceAction749 parser::ReduceAction749::init"
+val_t NEW_ReduceAction749_parser___ReduceAction749___init(void);
+typedef val_t (*NEW_ReduceAction749_parser___ReduceAction749___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction750 "init var of ReduceAction750"
+void INIT_ATTRIBUTES__ReduceAction750(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction750_t)(val_t p0);
+val_t NEW_ReduceAction750(void);
+#define LOCATE_CHECKNEW_ReduceAction750 "check new ReduceAction750"
+void CHECKNEW_ReduceAction750(val_t p0);
+typedef void (*CHECKNEW_ReduceAction750_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction750_parser___ReduceAction750___init "new ReduceAction750 parser::ReduceAction750::init"
+val_t NEW_ReduceAction750_parser___ReduceAction750___init(void);
+typedef val_t (*NEW_ReduceAction750_parser___ReduceAction750___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction751 "init var of ReduceAction751"
+void INIT_ATTRIBUTES__ReduceAction751(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction751_t)(val_t p0);
+val_t NEW_ReduceAction751(void);
+#define LOCATE_CHECKNEW_ReduceAction751 "check new ReduceAction751"
+void CHECKNEW_ReduceAction751(val_t p0);
+typedef void (*CHECKNEW_ReduceAction751_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction751_parser___ReduceAction751___init "new ReduceAction751 parser::ReduceAction751::init"
+val_t NEW_ReduceAction751_parser___ReduceAction751___init(void);
+typedef val_t (*NEW_ReduceAction751_parser___ReduceAction751___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction752 "init var of ReduceAction752"
+void INIT_ATTRIBUTES__ReduceAction752(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction752_t)(val_t p0);
+val_t NEW_ReduceAction752(void);
+#define LOCATE_CHECKNEW_ReduceAction752 "check new ReduceAction752"
+void CHECKNEW_ReduceAction752(val_t p0);
+typedef void (*CHECKNEW_ReduceAction752_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction752_parser___ReduceAction752___init "new ReduceAction752 parser::ReduceAction752::init"
+val_t NEW_ReduceAction752_parser___ReduceAction752___init(void);
+typedef val_t (*NEW_ReduceAction752_parser___ReduceAction752___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction753 "init var of ReduceAction753"
+void INIT_ATTRIBUTES__ReduceAction753(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction753_t)(val_t p0);
+val_t NEW_ReduceAction753(void);
+#define LOCATE_CHECKNEW_ReduceAction753 "check new ReduceAction753"
+void CHECKNEW_ReduceAction753(val_t p0);
+typedef void (*CHECKNEW_ReduceAction753_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction753_parser___ReduceAction753___init "new ReduceAction753 parser::ReduceAction753::init"
+val_t NEW_ReduceAction753_parser___ReduceAction753___init(void);
+typedef val_t (*NEW_ReduceAction753_parser___ReduceAction753___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction754 "init var of ReduceAction754"
+void INIT_ATTRIBUTES__ReduceAction754(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction754_t)(val_t p0);
+val_t NEW_ReduceAction754(void);
+#define LOCATE_CHECKNEW_ReduceAction754 "check new ReduceAction754"
+void CHECKNEW_ReduceAction754(val_t p0);
+typedef void (*CHECKNEW_ReduceAction754_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction754_parser___ReduceAction754___init "new ReduceAction754 parser::ReduceAction754::init"
+val_t NEW_ReduceAction754_parser___ReduceAction754___init(void);
+typedef val_t (*NEW_ReduceAction754_parser___ReduceAction754___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction755 "init var of ReduceAction755"
+void INIT_ATTRIBUTES__ReduceAction755(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction755_t)(val_t p0);
+val_t NEW_ReduceAction755(void);
+#define LOCATE_CHECKNEW_ReduceAction755 "check new ReduceAction755"
+void CHECKNEW_ReduceAction755(val_t p0);
+typedef void (*CHECKNEW_ReduceAction755_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction755_parser___ReduceAction755___init "new ReduceAction755 parser::ReduceAction755::init"
+val_t NEW_ReduceAction755_parser___ReduceAction755___init(void);
+typedef val_t (*NEW_ReduceAction755_parser___ReduceAction755___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction756 "init var of ReduceAction756"
+void INIT_ATTRIBUTES__ReduceAction756(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction756_t)(val_t p0);
+val_t NEW_ReduceAction756(void);
+#define LOCATE_CHECKNEW_ReduceAction756 "check new ReduceAction756"
+void CHECKNEW_ReduceAction756(val_t p0);
+typedef void (*CHECKNEW_ReduceAction756_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction756_parser___ReduceAction756___init "new ReduceAction756 parser::ReduceAction756::init"
+val_t NEW_ReduceAction756_parser___ReduceAction756___init(void);
+typedef val_t (*NEW_ReduceAction756_parser___ReduceAction756___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction757 "init var of ReduceAction757"
+void INIT_ATTRIBUTES__ReduceAction757(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction757_t)(val_t p0);
+val_t NEW_ReduceAction757(void);
+#define LOCATE_CHECKNEW_ReduceAction757 "check new ReduceAction757"
+void CHECKNEW_ReduceAction757(val_t p0);
+typedef void (*CHECKNEW_ReduceAction757_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction757_parser___ReduceAction757___init "new ReduceAction757 parser::ReduceAction757::init"
+val_t NEW_ReduceAction757_parser___ReduceAction757___init(void);
+typedef val_t (*NEW_ReduceAction757_parser___ReduceAction757___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction758 "init var of ReduceAction758"
+void INIT_ATTRIBUTES__ReduceAction758(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction758_t)(val_t p0);
+val_t NEW_ReduceAction758(void);
+#define LOCATE_CHECKNEW_ReduceAction758 "check new ReduceAction758"
+void CHECKNEW_ReduceAction758(val_t p0);
+typedef void (*CHECKNEW_ReduceAction758_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction758_parser___ReduceAction758___init "new ReduceAction758 parser::ReduceAction758::init"
+val_t NEW_ReduceAction758_parser___ReduceAction758___init(void);
+typedef val_t (*NEW_ReduceAction758_parser___ReduceAction758___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction759 "init var of ReduceAction759"
+void INIT_ATTRIBUTES__ReduceAction759(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction759_t)(val_t p0);
+val_t NEW_ReduceAction759(void);
+#define LOCATE_CHECKNEW_ReduceAction759 "check new ReduceAction759"
+void CHECKNEW_ReduceAction759(val_t p0);
+typedef void (*CHECKNEW_ReduceAction759_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction759_parser___ReduceAction759___init "new ReduceAction759 parser::ReduceAction759::init"
+val_t NEW_ReduceAction759_parser___ReduceAction759___init(void);
+typedef val_t (*NEW_ReduceAction759_parser___ReduceAction759___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction760 "init var of ReduceAction760"
+void INIT_ATTRIBUTES__ReduceAction760(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction760_t)(val_t p0);
+val_t NEW_ReduceAction760(void);
+#define LOCATE_CHECKNEW_ReduceAction760 "check new ReduceAction760"
+void CHECKNEW_ReduceAction760(val_t p0);
+typedef void (*CHECKNEW_ReduceAction760_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction760_parser___ReduceAction760___init "new ReduceAction760 parser::ReduceAction760::init"
+val_t NEW_ReduceAction760_parser___ReduceAction760___init(void);
+typedef val_t (*NEW_ReduceAction760_parser___ReduceAction760___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction761 "init var of ReduceAction761"
+void INIT_ATTRIBUTES__ReduceAction761(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction761_t)(val_t p0);
+val_t NEW_ReduceAction761(void);
+#define LOCATE_CHECKNEW_ReduceAction761 "check new ReduceAction761"
+void CHECKNEW_ReduceAction761(val_t p0);
+typedef void (*CHECKNEW_ReduceAction761_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction761_parser___ReduceAction761___init "new ReduceAction761 parser::ReduceAction761::init"
+val_t NEW_ReduceAction761_parser___ReduceAction761___init(void);
+typedef val_t (*NEW_ReduceAction761_parser___ReduceAction761___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction762 "init var of ReduceAction762"
+void INIT_ATTRIBUTES__ReduceAction762(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction762_t)(val_t p0);
+val_t NEW_ReduceAction762(void);
+#define LOCATE_CHECKNEW_ReduceAction762 "check new ReduceAction762"
+void CHECKNEW_ReduceAction762(val_t p0);
+typedef void (*CHECKNEW_ReduceAction762_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction762_parser___ReduceAction762___init "new ReduceAction762 parser::ReduceAction762::init"
+val_t NEW_ReduceAction762_parser___ReduceAction762___init(void);
+typedef val_t (*NEW_ReduceAction762_parser___ReduceAction762___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction763 "init var of ReduceAction763"
+void INIT_ATTRIBUTES__ReduceAction763(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction763_t)(val_t p0);
+val_t NEW_ReduceAction763(void);
+#define LOCATE_CHECKNEW_ReduceAction763 "check new ReduceAction763"
+void CHECKNEW_ReduceAction763(val_t p0);
+typedef void (*CHECKNEW_ReduceAction763_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction763_parser___ReduceAction763___init "new ReduceAction763 parser::ReduceAction763::init"
+val_t NEW_ReduceAction763_parser___ReduceAction763___init(void);
+typedef val_t (*NEW_ReduceAction763_parser___ReduceAction763___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction764 "init var of ReduceAction764"
+void INIT_ATTRIBUTES__ReduceAction764(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction764_t)(val_t p0);
+val_t NEW_ReduceAction764(void);
+#define LOCATE_CHECKNEW_ReduceAction764 "check new ReduceAction764"
+void CHECKNEW_ReduceAction764(val_t p0);
+typedef void (*CHECKNEW_ReduceAction764_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction764_parser___ReduceAction764___init "new ReduceAction764 parser::ReduceAction764::init"
+val_t NEW_ReduceAction764_parser___ReduceAction764___init(void);
+typedef val_t (*NEW_ReduceAction764_parser___ReduceAction764___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction765 "init var of ReduceAction765"
+void INIT_ATTRIBUTES__ReduceAction765(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction765_t)(val_t p0);
+val_t NEW_ReduceAction765(void);
+#define LOCATE_CHECKNEW_ReduceAction765 "check new ReduceAction765"
+void CHECKNEW_ReduceAction765(val_t p0);
+typedef void (*CHECKNEW_ReduceAction765_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction765_parser___ReduceAction765___init "new ReduceAction765 parser::ReduceAction765::init"
+val_t NEW_ReduceAction765_parser___ReduceAction765___init(void);
+typedef val_t (*NEW_ReduceAction765_parser___ReduceAction765___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction766 "init var of ReduceAction766"
+void INIT_ATTRIBUTES__ReduceAction766(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction766_t)(val_t p0);
+val_t NEW_ReduceAction766(void);
+#define LOCATE_CHECKNEW_ReduceAction766 "check new ReduceAction766"
+void CHECKNEW_ReduceAction766(val_t p0);
+typedef void (*CHECKNEW_ReduceAction766_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction766_parser___ReduceAction766___init "new ReduceAction766 parser::ReduceAction766::init"
+val_t NEW_ReduceAction766_parser___ReduceAction766___init(void);
+typedef val_t (*NEW_ReduceAction766_parser___ReduceAction766___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction767 "init var of ReduceAction767"
+void INIT_ATTRIBUTES__ReduceAction767(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction767_t)(val_t p0);
+val_t NEW_ReduceAction767(void);
+#define LOCATE_CHECKNEW_ReduceAction767 "check new ReduceAction767"
+void CHECKNEW_ReduceAction767(val_t p0);
+typedef void (*CHECKNEW_ReduceAction767_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction767_parser___ReduceAction767___init "new ReduceAction767 parser::ReduceAction767::init"
+val_t NEW_ReduceAction767_parser___ReduceAction767___init(void);
+typedef val_t (*NEW_ReduceAction767_parser___ReduceAction767___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction768 "init var of ReduceAction768"
+void INIT_ATTRIBUTES__ReduceAction768(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction768_t)(val_t p0);
+val_t NEW_ReduceAction768(void);
+#define LOCATE_CHECKNEW_ReduceAction768 "check new ReduceAction768"
+void CHECKNEW_ReduceAction768(val_t p0);
+typedef void (*CHECKNEW_ReduceAction768_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction768_parser___ReduceAction768___init "new ReduceAction768 parser::ReduceAction768::init"
+val_t NEW_ReduceAction768_parser___ReduceAction768___init(void);
+typedef val_t (*NEW_ReduceAction768_parser___ReduceAction768___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction769 "init var of ReduceAction769"
+void INIT_ATTRIBUTES__ReduceAction769(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction769_t)(val_t p0);
+val_t NEW_ReduceAction769(void);
+#define LOCATE_CHECKNEW_ReduceAction769 "check new ReduceAction769"
+void CHECKNEW_ReduceAction769(val_t p0);
+typedef void (*CHECKNEW_ReduceAction769_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction769_parser___ReduceAction769___init "new ReduceAction769 parser::ReduceAction769::init"
+val_t NEW_ReduceAction769_parser___ReduceAction769___init(void);
+typedef val_t (*NEW_ReduceAction769_parser___ReduceAction769___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction770 "init var of ReduceAction770"
+void INIT_ATTRIBUTES__ReduceAction770(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction770_t)(val_t p0);
+val_t NEW_ReduceAction770(void);
+#define LOCATE_CHECKNEW_ReduceAction770 "check new ReduceAction770"
+void CHECKNEW_ReduceAction770(val_t p0);
+typedef void (*CHECKNEW_ReduceAction770_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction770_parser___ReduceAction770___init "new ReduceAction770 parser::ReduceAction770::init"
+val_t NEW_ReduceAction770_parser___ReduceAction770___init(void);
+typedef val_t (*NEW_ReduceAction770_parser___ReduceAction770___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction771 "init var of ReduceAction771"
+void INIT_ATTRIBUTES__ReduceAction771(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction771_t)(val_t p0);
+val_t NEW_ReduceAction771(void);
+#define LOCATE_CHECKNEW_ReduceAction771 "check new ReduceAction771"
+void CHECKNEW_ReduceAction771(val_t p0);
+typedef void (*CHECKNEW_ReduceAction771_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction771_parser___ReduceAction771___init "new ReduceAction771 parser::ReduceAction771::init"
+val_t NEW_ReduceAction771_parser___ReduceAction771___init(void);
+typedef val_t (*NEW_ReduceAction771_parser___ReduceAction771___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction772 "init var of ReduceAction772"
+void INIT_ATTRIBUTES__ReduceAction772(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction772_t)(val_t p0);
+val_t NEW_ReduceAction772(void);
+#define LOCATE_CHECKNEW_ReduceAction772 "check new ReduceAction772"
+void CHECKNEW_ReduceAction772(val_t p0);
+typedef void (*CHECKNEW_ReduceAction772_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction772_parser___ReduceAction772___init "new ReduceAction772 parser::ReduceAction772::init"
+val_t NEW_ReduceAction772_parser___ReduceAction772___init(void);
+typedef val_t (*NEW_ReduceAction772_parser___ReduceAction772___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction773 "init var of ReduceAction773"
+void INIT_ATTRIBUTES__ReduceAction773(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction773_t)(val_t p0);
+val_t NEW_ReduceAction773(void);
+#define LOCATE_CHECKNEW_ReduceAction773 "check new ReduceAction773"
+void CHECKNEW_ReduceAction773(val_t p0);
+typedef void (*CHECKNEW_ReduceAction773_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction773_parser___ReduceAction773___init "new ReduceAction773 parser::ReduceAction773::init"
+val_t NEW_ReduceAction773_parser___ReduceAction773___init(void);
+typedef val_t (*NEW_ReduceAction773_parser___ReduceAction773___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction774 "init var of ReduceAction774"
+void INIT_ATTRIBUTES__ReduceAction774(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction774_t)(val_t p0);
+val_t NEW_ReduceAction774(void);
+#define LOCATE_CHECKNEW_ReduceAction774 "check new ReduceAction774"
+void CHECKNEW_ReduceAction774(val_t p0);
+typedef void (*CHECKNEW_ReduceAction774_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction774_parser___ReduceAction774___init "new ReduceAction774 parser::ReduceAction774::init"
+val_t NEW_ReduceAction774_parser___ReduceAction774___init(void);
+typedef val_t (*NEW_ReduceAction774_parser___ReduceAction774___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction775 "init var of ReduceAction775"
+void INIT_ATTRIBUTES__ReduceAction775(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction775_t)(val_t p0);
+val_t NEW_ReduceAction775(void);
+#define LOCATE_CHECKNEW_ReduceAction775 "check new ReduceAction775"
+void CHECKNEW_ReduceAction775(val_t p0);
+typedef void (*CHECKNEW_ReduceAction775_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction775_parser___ReduceAction775___init "new ReduceAction775 parser::ReduceAction775::init"
+val_t NEW_ReduceAction775_parser___ReduceAction775___init(void);
+typedef val_t (*NEW_ReduceAction775_parser___ReduceAction775___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction776 "init var of ReduceAction776"
+void INIT_ATTRIBUTES__ReduceAction776(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction776_t)(val_t p0);
+val_t NEW_ReduceAction776(void);
+#define LOCATE_CHECKNEW_ReduceAction776 "check new ReduceAction776"
+void CHECKNEW_ReduceAction776(val_t p0);
+typedef void (*CHECKNEW_ReduceAction776_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction776_parser___ReduceAction776___init "new ReduceAction776 parser::ReduceAction776::init"
+val_t NEW_ReduceAction776_parser___ReduceAction776___init(void);
+typedef val_t (*NEW_ReduceAction776_parser___ReduceAction776___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction777 "init var of ReduceAction777"
+void INIT_ATTRIBUTES__ReduceAction777(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction777_t)(val_t p0);
+val_t NEW_ReduceAction777(void);
+#define LOCATE_CHECKNEW_ReduceAction777 "check new ReduceAction777"
+void CHECKNEW_ReduceAction777(val_t p0);
+typedef void (*CHECKNEW_ReduceAction777_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction777_parser___ReduceAction777___init "new ReduceAction777 parser::ReduceAction777::init"
+val_t NEW_ReduceAction777_parser___ReduceAction777___init(void);
+typedef val_t (*NEW_ReduceAction777_parser___ReduceAction777___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction778 "init var of ReduceAction778"
+void INIT_ATTRIBUTES__ReduceAction778(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction778_t)(val_t p0);
+val_t NEW_ReduceAction778(void);
+#define LOCATE_CHECKNEW_ReduceAction778 "check new ReduceAction778"
+void CHECKNEW_ReduceAction778(val_t p0);
+typedef void (*CHECKNEW_ReduceAction778_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction778_parser___ReduceAction778___init "new ReduceAction778 parser::ReduceAction778::init"
+val_t NEW_ReduceAction778_parser___ReduceAction778___init(void);
+typedef val_t (*NEW_ReduceAction778_parser___ReduceAction778___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction779 "init var of ReduceAction779"
+void INIT_ATTRIBUTES__ReduceAction779(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction779_t)(val_t p0);
+val_t NEW_ReduceAction779(void);
+#define LOCATE_CHECKNEW_ReduceAction779 "check new ReduceAction779"
+void CHECKNEW_ReduceAction779(val_t p0);
+typedef void (*CHECKNEW_ReduceAction779_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction779_parser___ReduceAction779___init "new ReduceAction779 parser::ReduceAction779::init"
+val_t NEW_ReduceAction779_parser___ReduceAction779___init(void);
+typedef val_t (*NEW_ReduceAction779_parser___ReduceAction779___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction780 "init var of ReduceAction780"
+void INIT_ATTRIBUTES__ReduceAction780(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction780_t)(val_t p0);
+val_t NEW_ReduceAction780(void);
+#define LOCATE_CHECKNEW_ReduceAction780 "check new ReduceAction780"
+void CHECKNEW_ReduceAction780(val_t p0);
+typedef void (*CHECKNEW_ReduceAction780_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction780_parser___ReduceAction780___init "new ReduceAction780 parser::ReduceAction780::init"
+val_t NEW_ReduceAction780_parser___ReduceAction780___init(void);
+typedef val_t (*NEW_ReduceAction780_parser___ReduceAction780___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction781 "init var of ReduceAction781"
+void INIT_ATTRIBUTES__ReduceAction781(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction781_t)(val_t p0);
+val_t NEW_ReduceAction781(void);
+#define LOCATE_CHECKNEW_ReduceAction781 "check new ReduceAction781"
+void CHECKNEW_ReduceAction781(val_t p0);
+typedef void (*CHECKNEW_ReduceAction781_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction781_parser___ReduceAction781___init "new ReduceAction781 parser::ReduceAction781::init"
+val_t NEW_ReduceAction781_parser___ReduceAction781___init(void);
+typedef val_t (*NEW_ReduceAction781_parser___ReduceAction781___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction782 "init var of ReduceAction782"
+void INIT_ATTRIBUTES__ReduceAction782(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction782_t)(val_t p0);
+val_t NEW_ReduceAction782(void);
+#define LOCATE_CHECKNEW_ReduceAction782 "check new ReduceAction782"
+void CHECKNEW_ReduceAction782(val_t p0);
+typedef void (*CHECKNEW_ReduceAction782_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction782_parser___ReduceAction782___init "new ReduceAction782 parser::ReduceAction782::init"
+val_t NEW_ReduceAction782_parser___ReduceAction782___init(void);
+typedef val_t (*NEW_ReduceAction782_parser___ReduceAction782___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction783 "init var of ReduceAction783"
+void INIT_ATTRIBUTES__ReduceAction783(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction783_t)(val_t p0);
+val_t NEW_ReduceAction783(void);
+#define LOCATE_CHECKNEW_ReduceAction783 "check new ReduceAction783"
+void CHECKNEW_ReduceAction783(val_t p0);
+typedef void (*CHECKNEW_ReduceAction783_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction783_parser___ReduceAction783___init "new ReduceAction783 parser::ReduceAction783::init"
+val_t NEW_ReduceAction783_parser___ReduceAction783___init(void);
+typedef val_t (*NEW_ReduceAction783_parser___ReduceAction783___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction784 "init var of ReduceAction784"
+void INIT_ATTRIBUTES__ReduceAction784(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction784_t)(val_t p0);
+val_t NEW_ReduceAction784(void);
+#define LOCATE_CHECKNEW_ReduceAction784 "check new ReduceAction784"
+void CHECKNEW_ReduceAction784(val_t p0);
+typedef void (*CHECKNEW_ReduceAction784_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction784_parser___ReduceAction784___init "new ReduceAction784 parser::ReduceAction784::init"
+val_t NEW_ReduceAction784_parser___ReduceAction784___init(void);
+typedef val_t (*NEW_ReduceAction784_parser___ReduceAction784___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction785 "init var of ReduceAction785"
+void INIT_ATTRIBUTES__ReduceAction785(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction785_t)(val_t p0);
+val_t NEW_ReduceAction785(void);
+#define LOCATE_CHECKNEW_ReduceAction785 "check new ReduceAction785"
+void CHECKNEW_ReduceAction785(val_t p0);
+typedef void (*CHECKNEW_ReduceAction785_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction785_parser___ReduceAction785___init "new ReduceAction785 parser::ReduceAction785::init"
+val_t NEW_ReduceAction785_parser___ReduceAction785___init(void);
+typedef val_t (*NEW_ReduceAction785_parser___ReduceAction785___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction786 "init var of ReduceAction786"
+void INIT_ATTRIBUTES__ReduceAction786(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction786_t)(val_t p0);
+val_t NEW_ReduceAction786(void);
+#define LOCATE_CHECKNEW_ReduceAction786 "check new ReduceAction786"
+void CHECKNEW_ReduceAction786(val_t p0);
+typedef void (*CHECKNEW_ReduceAction786_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction786_parser___ReduceAction786___init "new ReduceAction786 parser::ReduceAction786::init"
+val_t NEW_ReduceAction786_parser___ReduceAction786___init(void);
+typedef val_t (*NEW_ReduceAction786_parser___ReduceAction786___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction787 "init var of ReduceAction787"
+void INIT_ATTRIBUTES__ReduceAction787(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction787_t)(val_t p0);
+val_t NEW_ReduceAction787(void);
+#define LOCATE_CHECKNEW_ReduceAction787 "check new ReduceAction787"
+void CHECKNEW_ReduceAction787(val_t p0);
+typedef void (*CHECKNEW_ReduceAction787_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction787_parser___ReduceAction787___init "new ReduceAction787 parser::ReduceAction787::init"
+val_t NEW_ReduceAction787_parser___ReduceAction787___init(void);
+typedef val_t (*NEW_ReduceAction787_parser___ReduceAction787___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction788 "init var of ReduceAction788"
+void INIT_ATTRIBUTES__ReduceAction788(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction788_t)(val_t p0);
+val_t NEW_ReduceAction788(void);
+#define LOCATE_CHECKNEW_ReduceAction788 "check new ReduceAction788"
+void CHECKNEW_ReduceAction788(val_t p0);
+typedef void (*CHECKNEW_ReduceAction788_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction788_parser___ReduceAction788___init "new ReduceAction788 parser::ReduceAction788::init"
+val_t NEW_ReduceAction788_parser___ReduceAction788___init(void);
+typedef val_t (*NEW_ReduceAction788_parser___ReduceAction788___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction789 "init var of ReduceAction789"
+void INIT_ATTRIBUTES__ReduceAction789(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction789_t)(val_t p0);
+val_t NEW_ReduceAction789(void);
+#define LOCATE_CHECKNEW_ReduceAction789 "check new ReduceAction789"
+void CHECKNEW_ReduceAction789(val_t p0);
+typedef void (*CHECKNEW_ReduceAction789_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction789_parser___ReduceAction789___init "new ReduceAction789 parser::ReduceAction789::init"
+val_t NEW_ReduceAction789_parser___ReduceAction789___init(void);
+typedef val_t (*NEW_ReduceAction789_parser___ReduceAction789___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction790 "init var of ReduceAction790"
+void INIT_ATTRIBUTES__ReduceAction790(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction790_t)(val_t p0);
+val_t NEW_ReduceAction790(void);
+#define LOCATE_CHECKNEW_ReduceAction790 "check new ReduceAction790"
+void CHECKNEW_ReduceAction790(val_t p0);
+typedef void (*CHECKNEW_ReduceAction790_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction790_parser___ReduceAction790___init "new ReduceAction790 parser::ReduceAction790::init"
+val_t NEW_ReduceAction790_parser___ReduceAction790___init(void);
+typedef val_t (*NEW_ReduceAction790_parser___ReduceAction790___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction791 "init var of ReduceAction791"
+void INIT_ATTRIBUTES__ReduceAction791(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction791_t)(val_t p0);
+val_t NEW_ReduceAction791(void);
+#define LOCATE_CHECKNEW_ReduceAction791 "check new ReduceAction791"
+void CHECKNEW_ReduceAction791(val_t p0);
+typedef void (*CHECKNEW_ReduceAction791_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction791_parser___ReduceAction791___init "new ReduceAction791 parser::ReduceAction791::init"
+val_t NEW_ReduceAction791_parser___ReduceAction791___init(void);
+typedef val_t (*NEW_ReduceAction791_parser___ReduceAction791___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction792 "init var of ReduceAction792"
+void INIT_ATTRIBUTES__ReduceAction792(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction792_t)(val_t p0);
+val_t NEW_ReduceAction792(void);
+#define LOCATE_CHECKNEW_ReduceAction792 "check new ReduceAction792"
+void CHECKNEW_ReduceAction792(val_t p0);
+typedef void (*CHECKNEW_ReduceAction792_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction792_parser___ReduceAction792___init "new ReduceAction792 parser::ReduceAction792::init"
+val_t NEW_ReduceAction792_parser___ReduceAction792___init(void);
+typedef val_t (*NEW_ReduceAction792_parser___ReduceAction792___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction793 "init var of ReduceAction793"
+void INIT_ATTRIBUTES__ReduceAction793(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction793_t)(val_t p0);
+val_t NEW_ReduceAction793(void);
+#define LOCATE_CHECKNEW_ReduceAction793 "check new ReduceAction793"
+void CHECKNEW_ReduceAction793(val_t p0);
+typedef void (*CHECKNEW_ReduceAction793_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction793_parser___ReduceAction793___init "new ReduceAction793 parser::ReduceAction793::init"
+val_t NEW_ReduceAction793_parser___ReduceAction793___init(void);
+typedef val_t (*NEW_ReduceAction793_parser___ReduceAction793___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction794 "init var of ReduceAction794"
+void INIT_ATTRIBUTES__ReduceAction794(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction794_t)(val_t p0);
+val_t NEW_ReduceAction794(void);
+#define LOCATE_CHECKNEW_ReduceAction794 "check new ReduceAction794"
+void CHECKNEW_ReduceAction794(val_t p0);
+typedef void (*CHECKNEW_ReduceAction794_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction794_parser___ReduceAction794___init "new ReduceAction794 parser::ReduceAction794::init"
+val_t NEW_ReduceAction794_parser___ReduceAction794___init(void);
+typedef val_t (*NEW_ReduceAction794_parser___ReduceAction794___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction795 "init var of ReduceAction795"
+void INIT_ATTRIBUTES__ReduceAction795(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction795_t)(val_t p0);
+val_t NEW_ReduceAction795(void);
+#define LOCATE_CHECKNEW_ReduceAction795 "check new ReduceAction795"
+void CHECKNEW_ReduceAction795(val_t p0);
+typedef void (*CHECKNEW_ReduceAction795_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction795_parser___ReduceAction795___init "new ReduceAction795 parser::ReduceAction795::init"
+val_t NEW_ReduceAction795_parser___ReduceAction795___init(void);
+typedef val_t (*NEW_ReduceAction795_parser___ReduceAction795___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction796 "init var of ReduceAction796"
+void INIT_ATTRIBUTES__ReduceAction796(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction796_t)(val_t p0);
+val_t NEW_ReduceAction796(void);
+#define LOCATE_CHECKNEW_ReduceAction796 "check new ReduceAction796"
+void CHECKNEW_ReduceAction796(val_t p0);
+typedef void (*CHECKNEW_ReduceAction796_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction796_parser___ReduceAction796___init "new ReduceAction796 parser::ReduceAction796::init"
+val_t NEW_ReduceAction796_parser___ReduceAction796___init(void);
+typedef val_t (*NEW_ReduceAction796_parser___ReduceAction796___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction797 "init var of ReduceAction797"
+void INIT_ATTRIBUTES__ReduceAction797(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction797_t)(val_t p0);
+val_t NEW_ReduceAction797(void);
+#define LOCATE_CHECKNEW_ReduceAction797 "check new ReduceAction797"
+void CHECKNEW_ReduceAction797(val_t p0);
+typedef void (*CHECKNEW_ReduceAction797_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction797_parser___ReduceAction797___init "new ReduceAction797 parser::ReduceAction797::init"
+val_t NEW_ReduceAction797_parser___ReduceAction797___init(void);
+typedef val_t (*NEW_ReduceAction797_parser___ReduceAction797___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction798 "init var of ReduceAction798"
+void INIT_ATTRIBUTES__ReduceAction798(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction798_t)(val_t p0);
+val_t NEW_ReduceAction798(void);
+#define LOCATE_CHECKNEW_ReduceAction798 "check new ReduceAction798"
+void CHECKNEW_ReduceAction798(val_t p0);
+typedef void (*CHECKNEW_ReduceAction798_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction798_parser___ReduceAction798___init "new ReduceAction798 parser::ReduceAction798::init"
+val_t NEW_ReduceAction798_parser___ReduceAction798___init(void);
+typedef val_t (*NEW_ReduceAction798_parser___ReduceAction798___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction799 "init var of ReduceAction799"
+void INIT_ATTRIBUTES__ReduceAction799(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction799_t)(val_t p0);
+val_t NEW_ReduceAction799(void);
+#define LOCATE_CHECKNEW_ReduceAction799 "check new ReduceAction799"
+void CHECKNEW_ReduceAction799(val_t p0);
+typedef void (*CHECKNEW_ReduceAction799_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction799_parser___ReduceAction799___init "new ReduceAction799 parser::ReduceAction799::init"
+val_t NEW_ReduceAction799_parser___ReduceAction799___init(void);
+typedef val_t (*NEW_ReduceAction799_parser___ReduceAction799___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction800 "init var of ReduceAction800"
+void INIT_ATTRIBUTES__ReduceAction800(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction800_t)(val_t p0);
+val_t NEW_ReduceAction800(void);
+#define LOCATE_CHECKNEW_ReduceAction800 "check new ReduceAction800"
+void CHECKNEW_ReduceAction800(val_t p0);
+typedef void (*CHECKNEW_ReduceAction800_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction800_parser___ReduceAction800___init "new ReduceAction800 parser::ReduceAction800::init"
+val_t NEW_ReduceAction800_parser___ReduceAction800___init(void);
+typedef val_t (*NEW_ReduceAction800_parser___ReduceAction800___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction801 "init var of ReduceAction801"
+void INIT_ATTRIBUTES__ReduceAction801(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction801_t)(val_t p0);
+val_t NEW_ReduceAction801(void);
+#define LOCATE_CHECKNEW_ReduceAction801 "check new ReduceAction801"
+void CHECKNEW_ReduceAction801(val_t p0);
+typedef void (*CHECKNEW_ReduceAction801_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction801_parser___ReduceAction801___init "new ReduceAction801 parser::ReduceAction801::init"
+val_t NEW_ReduceAction801_parser___ReduceAction801___init(void);
+typedef val_t (*NEW_ReduceAction801_parser___ReduceAction801___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction802 "init var of ReduceAction802"
+void INIT_ATTRIBUTES__ReduceAction802(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction802_t)(val_t p0);
+val_t NEW_ReduceAction802(void);
+#define LOCATE_CHECKNEW_ReduceAction802 "check new ReduceAction802"
+void CHECKNEW_ReduceAction802(val_t p0);
+typedef void (*CHECKNEW_ReduceAction802_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction802_parser___ReduceAction802___init "new ReduceAction802 parser::ReduceAction802::init"
+val_t NEW_ReduceAction802_parser___ReduceAction802___init(void);
+typedef val_t (*NEW_ReduceAction802_parser___ReduceAction802___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction803 "init var of ReduceAction803"
+void INIT_ATTRIBUTES__ReduceAction803(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction803_t)(val_t p0);
+val_t NEW_ReduceAction803(void);
+#define LOCATE_CHECKNEW_ReduceAction803 "check new ReduceAction803"
+void CHECKNEW_ReduceAction803(val_t p0);
+typedef void (*CHECKNEW_ReduceAction803_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction803_parser___ReduceAction803___init "new ReduceAction803 parser::ReduceAction803::init"
+val_t NEW_ReduceAction803_parser___ReduceAction803___init(void);
+typedef val_t (*NEW_ReduceAction803_parser___ReduceAction803___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction804 "init var of ReduceAction804"
+void INIT_ATTRIBUTES__ReduceAction804(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction804_t)(val_t p0);
+val_t NEW_ReduceAction804(void);
+#define LOCATE_CHECKNEW_ReduceAction804 "check new ReduceAction804"
+void CHECKNEW_ReduceAction804(val_t p0);
+typedef void (*CHECKNEW_ReduceAction804_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction804_parser___ReduceAction804___init "new ReduceAction804 parser::ReduceAction804::init"
+val_t NEW_ReduceAction804_parser___ReduceAction804___init(void);
+typedef val_t (*NEW_ReduceAction804_parser___ReduceAction804___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction805 "init var of ReduceAction805"
+void INIT_ATTRIBUTES__ReduceAction805(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction805_t)(val_t p0);
+val_t NEW_ReduceAction805(void);
+#define LOCATE_CHECKNEW_ReduceAction805 "check new ReduceAction805"
+void CHECKNEW_ReduceAction805(val_t p0);
+typedef void (*CHECKNEW_ReduceAction805_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction805_parser___ReduceAction805___init "new ReduceAction805 parser::ReduceAction805::init"
+val_t NEW_ReduceAction805_parser___ReduceAction805___init(void);
+typedef val_t (*NEW_ReduceAction805_parser___ReduceAction805___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction806 "init var of ReduceAction806"
+void INIT_ATTRIBUTES__ReduceAction806(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction806_t)(val_t p0);
+val_t NEW_ReduceAction806(void);
+#define LOCATE_CHECKNEW_ReduceAction806 "check new ReduceAction806"
+void CHECKNEW_ReduceAction806(val_t p0);
+typedef void (*CHECKNEW_ReduceAction806_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction806_parser___ReduceAction806___init "new ReduceAction806 parser::ReduceAction806::init"
+val_t NEW_ReduceAction806_parser___ReduceAction806___init(void);
+typedef val_t (*NEW_ReduceAction806_parser___ReduceAction806___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction807 "init var of ReduceAction807"
+void INIT_ATTRIBUTES__ReduceAction807(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction807_t)(val_t p0);
+val_t NEW_ReduceAction807(void);
+#define LOCATE_CHECKNEW_ReduceAction807 "check new ReduceAction807"
+void CHECKNEW_ReduceAction807(val_t p0);
+typedef void (*CHECKNEW_ReduceAction807_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction807_parser___ReduceAction807___init "new ReduceAction807 parser::ReduceAction807::init"
+val_t NEW_ReduceAction807_parser___ReduceAction807___init(void);
+typedef val_t (*NEW_ReduceAction807_parser___ReduceAction807___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction808 "init var of ReduceAction808"
+void INIT_ATTRIBUTES__ReduceAction808(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction808_t)(val_t p0);
+val_t NEW_ReduceAction808(void);
+#define LOCATE_CHECKNEW_ReduceAction808 "check new ReduceAction808"
+void CHECKNEW_ReduceAction808(val_t p0);
+typedef void (*CHECKNEW_ReduceAction808_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction808_parser___ReduceAction808___init "new ReduceAction808 parser::ReduceAction808::init"
+val_t NEW_ReduceAction808_parser___ReduceAction808___init(void);
+typedef val_t (*NEW_ReduceAction808_parser___ReduceAction808___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction809 "init var of ReduceAction809"
+void INIT_ATTRIBUTES__ReduceAction809(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction809_t)(val_t p0);
+val_t NEW_ReduceAction809(void);
+#define LOCATE_CHECKNEW_ReduceAction809 "check new ReduceAction809"
+void CHECKNEW_ReduceAction809(val_t p0);
+typedef void (*CHECKNEW_ReduceAction809_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction809_parser___ReduceAction809___init "new ReduceAction809 parser::ReduceAction809::init"
+val_t NEW_ReduceAction809_parser___ReduceAction809___init(void);
+typedef val_t (*NEW_ReduceAction809_parser___ReduceAction809___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction810 "init var of ReduceAction810"
+void INIT_ATTRIBUTES__ReduceAction810(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction810_t)(val_t p0);
+val_t NEW_ReduceAction810(void);
+#define LOCATE_CHECKNEW_ReduceAction810 "check new ReduceAction810"
+void CHECKNEW_ReduceAction810(val_t p0);
+typedef void (*CHECKNEW_ReduceAction810_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction810_parser___ReduceAction810___init "new ReduceAction810 parser::ReduceAction810::init"
+val_t NEW_ReduceAction810_parser___ReduceAction810___init(void);
+typedef val_t (*NEW_ReduceAction810_parser___ReduceAction810___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction811 "init var of ReduceAction811"
+void INIT_ATTRIBUTES__ReduceAction811(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction811_t)(val_t p0);
+val_t NEW_ReduceAction811(void);
+#define LOCATE_CHECKNEW_ReduceAction811 "check new ReduceAction811"
+void CHECKNEW_ReduceAction811(val_t p0);
+typedef void (*CHECKNEW_ReduceAction811_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction811_parser___ReduceAction811___init "new ReduceAction811 parser::ReduceAction811::init"
+val_t NEW_ReduceAction811_parser___ReduceAction811___init(void);
+typedef val_t (*NEW_ReduceAction811_parser___ReduceAction811___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction812 "init var of ReduceAction812"
+void INIT_ATTRIBUTES__ReduceAction812(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction812_t)(val_t p0);
+val_t NEW_ReduceAction812(void);
+#define LOCATE_CHECKNEW_ReduceAction812 "check new ReduceAction812"
+void CHECKNEW_ReduceAction812(val_t p0);
+typedef void (*CHECKNEW_ReduceAction812_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction812_parser___ReduceAction812___init "new ReduceAction812 parser::ReduceAction812::init"
+val_t NEW_ReduceAction812_parser___ReduceAction812___init(void);
+typedef val_t (*NEW_ReduceAction812_parser___ReduceAction812___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction813 "init var of ReduceAction813"
+void INIT_ATTRIBUTES__ReduceAction813(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction813_t)(val_t p0);
+val_t NEW_ReduceAction813(void);
+#define LOCATE_CHECKNEW_ReduceAction813 "check new ReduceAction813"
+void CHECKNEW_ReduceAction813(val_t p0);
+typedef void (*CHECKNEW_ReduceAction813_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction813_parser___ReduceAction813___init "new ReduceAction813 parser::ReduceAction813::init"
+val_t NEW_ReduceAction813_parser___ReduceAction813___init(void);
+typedef val_t (*NEW_ReduceAction813_parser___ReduceAction813___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction814 "init var of ReduceAction814"
+void INIT_ATTRIBUTES__ReduceAction814(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction814_t)(val_t p0);
+val_t NEW_ReduceAction814(void);
+#define LOCATE_CHECKNEW_ReduceAction814 "check new ReduceAction814"
+void CHECKNEW_ReduceAction814(val_t p0);
+typedef void (*CHECKNEW_ReduceAction814_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction814_parser___ReduceAction814___init "new ReduceAction814 parser::ReduceAction814::init"
+val_t NEW_ReduceAction814_parser___ReduceAction814___init(void);
+typedef val_t (*NEW_ReduceAction814_parser___ReduceAction814___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction815 "init var of ReduceAction815"
+void INIT_ATTRIBUTES__ReduceAction815(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction815_t)(val_t p0);
+val_t NEW_ReduceAction815(void);
+#define LOCATE_CHECKNEW_ReduceAction815 "check new ReduceAction815"
+void CHECKNEW_ReduceAction815(val_t p0);
+typedef void (*CHECKNEW_ReduceAction815_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction815_parser___ReduceAction815___init "new ReduceAction815 parser::ReduceAction815::init"
+val_t NEW_ReduceAction815_parser___ReduceAction815___init(void);
+typedef val_t (*NEW_ReduceAction815_parser___ReduceAction815___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction816 "init var of ReduceAction816"
+void INIT_ATTRIBUTES__ReduceAction816(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction816_t)(val_t p0);
+val_t NEW_ReduceAction816(void);
+#define LOCATE_CHECKNEW_ReduceAction816 "check new ReduceAction816"
+void CHECKNEW_ReduceAction816(val_t p0);
+typedef void (*CHECKNEW_ReduceAction816_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction816_parser___ReduceAction816___init "new ReduceAction816 parser::ReduceAction816::init"
+val_t NEW_ReduceAction816_parser___ReduceAction816___init(void);
+typedef val_t (*NEW_ReduceAction816_parser___ReduceAction816___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction817 "init var of ReduceAction817"
+void INIT_ATTRIBUTES__ReduceAction817(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction817_t)(val_t p0);
+val_t NEW_ReduceAction817(void);
+#define LOCATE_CHECKNEW_ReduceAction817 "check new ReduceAction817"
+void CHECKNEW_ReduceAction817(val_t p0);
+typedef void (*CHECKNEW_ReduceAction817_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction817_parser___ReduceAction817___init "new ReduceAction817 parser::ReduceAction817::init"
+val_t NEW_ReduceAction817_parser___ReduceAction817___init(void);
+typedef val_t (*NEW_ReduceAction817_parser___ReduceAction817___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction818 "init var of ReduceAction818"
+void INIT_ATTRIBUTES__ReduceAction818(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction818_t)(val_t p0);
+val_t NEW_ReduceAction818(void);
+#define LOCATE_CHECKNEW_ReduceAction818 "check new ReduceAction818"
+void CHECKNEW_ReduceAction818(val_t p0);
+typedef void (*CHECKNEW_ReduceAction818_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction818_parser___ReduceAction818___init "new ReduceAction818 parser::ReduceAction818::init"
+val_t NEW_ReduceAction818_parser___ReduceAction818___init(void);
+typedef val_t (*NEW_ReduceAction818_parser___ReduceAction818___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction819 "init var of ReduceAction819"
+void INIT_ATTRIBUTES__ReduceAction819(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction819_t)(val_t p0);
+val_t NEW_ReduceAction819(void);
+#define LOCATE_CHECKNEW_ReduceAction819 "check new ReduceAction819"
+void CHECKNEW_ReduceAction819(val_t p0);
+typedef void (*CHECKNEW_ReduceAction819_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction819_parser___ReduceAction819___init "new ReduceAction819 parser::ReduceAction819::init"
+val_t NEW_ReduceAction819_parser___ReduceAction819___init(void);
+typedef val_t (*NEW_ReduceAction819_parser___ReduceAction819___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction820 "init var of ReduceAction820"
+void INIT_ATTRIBUTES__ReduceAction820(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction820_t)(val_t p0);
+val_t NEW_ReduceAction820(void);
+#define LOCATE_CHECKNEW_ReduceAction820 "check new ReduceAction820"
+void CHECKNEW_ReduceAction820(val_t p0);
+typedef void (*CHECKNEW_ReduceAction820_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction820_parser___ReduceAction820___init "new ReduceAction820 parser::ReduceAction820::init"
+val_t NEW_ReduceAction820_parser___ReduceAction820___init(void);
+typedef val_t (*NEW_ReduceAction820_parser___ReduceAction820___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction821 "init var of ReduceAction821"
+void INIT_ATTRIBUTES__ReduceAction821(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction821_t)(val_t p0);
+val_t NEW_ReduceAction821(void);
+#define LOCATE_CHECKNEW_ReduceAction821 "check new ReduceAction821"
+void CHECKNEW_ReduceAction821(val_t p0);
+typedef void (*CHECKNEW_ReduceAction821_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction821_parser___ReduceAction821___init "new ReduceAction821 parser::ReduceAction821::init"
+val_t NEW_ReduceAction821_parser___ReduceAction821___init(void);
+typedef val_t (*NEW_ReduceAction821_parser___ReduceAction821___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction822 "init var of ReduceAction822"
+void INIT_ATTRIBUTES__ReduceAction822(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction822_t)(val_t p0);
+val_t NEW_ReduceAction822(void);
+#define LOCATE_CHECKNEW_ReduceAction822 "check new ReduceAction822"
+void CHECKNEW_ReduceAction822(val_t p0);
+typedef void (*CHECKNEW_ReduceAction822_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction822_parser___ReduceAction822___init "new ReduceAction822 parser::ReduceAction822::init"
+val_t NEW_ReduceAction822_parser___ReduceAction822___init(void);
+typedef val_t (*NEW_ReduceAction822_parser___ReduceAction822___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction823 "init var of ReduceAction823"
+void INIT_ATTRIBUTES__ReduceAction823(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction823_t)(val_t p0);
+val_t NEW_ReduceAction823(void);
+#define LOCATE_CHECKNEW_ReduceAction823 "check new ReduceAction823"
+void CHECKNEW_ReduceAction823(val_t p0);
+typedef void (*CHECKNEW_ReduceAction823_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction823_parser___ReduceAction823___init "new ReduceAction823 parser::ReduceAction823::init"
+val_t NEW_ReduceAction823_parser___ReduceAction823___init(void);
+typedef val_t (*NEW_ReduceAction823_parser___ReduceAction823___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction824 "init var of ReduceAction824"
+void INIT_ATTRIBUTES__ReduceAction824(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction824_t)(val_t p0);
+val_t NEW_ReduceAction824(void);
+#define LOCATE_CHECKNEW_ReduceAction824 "check new ReduceAction824"
+void CHECKNEW_ReduceAction824(val_t p0);
+typedef void (*CHECKNEW_ReduceAction824_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction824_parser___ReduceAction824___init "new ReduceAction824 parser::ReduceAction824::init"
+val_t NEW_ReduceAction824_parser___ReduceAction824___init(void);
+typedef val_t (*NEW_ReduceAction824_parser___ReduceAction824___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction825 "init var of ReduceAction825"
+void INIT_ATTRIBUTES__ReduceAction825(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction825_t)(val_t p0);
+val_t NEW_ReduceAction825(void);
+#define LOCATE_CHECKNEW_ReduceAction825 "check new ReduceAction825"
+void CHECKNEW_ReduceAction825(val_t p0);
+typedef void (*CHECKNEW_ReduceAction825_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction825_parser___ReduceAction825___init "new ReduceAction825 parser::ReduceAction825::init"
+val_t NEW_ReduceAction825_parser___ReduceAction825___init(void);
+typedef val_t (*NEW_ReduceAction825_parser___ReduceAction825___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction826 "init var of ReduceAction826"
+void INIT_ATTRIBUTES__ReduceAction826(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction826_t)(val_t p0);
+val_t NEW_ReduceAction826(void);
+#define LOCATE_CHECKNEW_ReduceAction826 "check new ReduceAction826"
+void CHECKNEW_ReduceAction826(val_t p0);
+typedef void (*CHECKNEW_ReduceAction826_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction826_parser___ReduceAction826___init "new ReduceAction826 parser::ReduceAction826::init"
+val_t NEW_ReduceAction826_parser___ReduceAction826___init(void);
+typedef val_t (*NEW_ReduceAction826_parser___ReduceAction826___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction827 "init var of ReduceAction827"
+void INIT_ATTRIBUTES__ReduceAction827(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction827_t)(val_t p0);
+val_t NEW_ReduceAction827(void);
+#define LOCATE_CHECKNEW_ReduceAction827 "check new ReduceAction827"
+void CHECKNEW_ReduceAction827(val_t p0);
+typedef void (*CHECKNEW_ReduceAction827_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction827_parser___ReduceAction827___init "new ReduceAction827 parser::ReduceAction827::init"
+val_t NEW_ReduceAction827_parser___ReduceAction827___init(void);
+typedef val_t (*NEW_ReduceAction827_parser___ReduceAction827___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction828 "init var of ReduceAction828"
+void INIT_ATTRIBUTES__ReduceAction828(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction828_t)(val_t p0);
+val_t NEW_ReduceAction828(void);
+#define LOCATE_CHECKNEW_ReduceAction828 "check new ReduceAction828"
+void CHECKNEW_ReduceAction828(val_t p0);
+typedef void (*CHECKNEW_ReduceAction828_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction828_parser___ReduceAction828___init "new ReduceAction828 parser::ReduceAction828::init"
+val_t NEW_ReduceAction828_parser___ReduceAction828___init(void);
+typedef val_t (*NEW_ReduceAction828_parser___ReduceAction828___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction829 "init var of ReduceAction829"
+void INIT_ATTRIBUTES__ReduceAction829(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction829_t)(val_t p0);
+val_t NEW_ReduceAction829(void);
+#define LOCATE_CHECKNEW_ReduceAction829 "check new ReduceAction829"
+void CHECKNEW_ReduceAction829(val_t p0);
+typedef void (*CHECKNEW_ReduceAction829_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction829_parser___ReduceAction829___init "new ReduceAction829 parser::ReduceAction829::init"
+val_t NEW_ReduceAction829_parser___ReduceAction829___init(void);
+typedef val_t (*NEW_ReduceAction829_parser___ReduceAction829___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction830 "init var of ReduceAction830"
+void INIT_ATTRIBUTES__ReduceAction830(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction830_t)(val_t p0);
+val_t NEW_ReduceAction830(void);
+#define LOCATE_CHECKNEW_ReduceAction830 "check new ReduceAction830"
+void CHECKNEW_ReduceAction830(val_t p0);
+typedef void (*CHECKNEW_ReduceAction830_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction830_parser___ReduceAction830___init "new ReduceAction830 parser::ReduceAction830::init"
+val_t NEW_ReduceAction830_parser___ReduceAction830___init(void);
+typedef val_t (*NEW_ReduceAction830_parser___ReduceAction830___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction831 "init var of ReduceAction831"
+void INIT_ATTRIBUTES__ReduceAction831(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction831_t)(val_t p0);
+val_t NEW_ReduceAction831(void);
+#define LOCATE_CHECKNEW_ReduceAction831 "check new ReduceAction831"
+void CHECKNEW_ReduceAction831(val_t p0);
+typedef void (*CHECKNEW_ReduceAction831_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction831_parser___ReduceAction831___init "new ReduceAction831 parser::ReduceAction831::init"
+val_t NEW_ReduceAction831_parser___ReduceAction831___init(void);
+typedef val_t (*NEW_ReduceAction831_parser___ReduceAction831___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction832 "init var of ReduceAction832"
+void INIT_ATTRIBUTES__ReduceAction832(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction832_t)(val_t p0);
+val_t NEW_ReduceAction832(void);
+#define LOCATE_CHECKNEW_ReduceAction832 "check new ReduceAction832"
+void CHECKNEW_ReduceAction832(val_t p0);
+typedef void (*CHECKNEW_ReduceAction832_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction832_parser___ReduceAction832___init "new ReduceAction832 parser::ReduceAction832::init"
+val_t NEW_ReduceAction832_parser___ReduceAction832___init(void);
+typedef val_t (*NEW_ReduceAction832_parser___ReduceAction832___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction833 "init var of ReduceAction833"
+void INIT_ATTRIBUTES__ReduceAction833(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction833_t)(val_t p0);
+val_t NEW_ReduceAction833(void);
+#define LOCATE_CHECKNEW_ReduceAction833 "check new ReduceAction833"
+void CHECKNEW_ReduceAction833(val_t p0);
+typedef void (*CHECKNEW_ReduceAction833_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction833_parser___ReduceAction833___init "new ReduceAction833 parser::ReduceAction833::init"
+val_t NEW_ReduceAction833_parser___ReduceAction833___init(void);
+typedef val_t (*NEW_ReduceAction833_parser___ReduceAction833___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction834 "init var of ReduceAction834"
+void INIT_ATTRIBUTES__ReduceAction834(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction834_t)(val_t p0);
+val_t NEW_ReduceAction834(void);
+#define LOCATE_CHECKNEW_ReduceAction834 "check new ReduceAction834"
+void CHECKNEW_ReduceAction834(val_t p0);
+typedef void (*CHECKNEW_ReduceAction834_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction834_parser___ReduceAction834___init "new ReduceAction834 parser::ReduceAction834::init"
+val_t NEW_ReduceAction834_parser___ReduceAction834___init(void);
+typedef val_t (*NEW_ReduceAction834_parser___ReduceAction834___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction835 "init var of ReduceAction835"
+void INIT_ATTRIBUTES__ReduceAction835(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction835_t)(val_t p0);
+val_t NEW_ReduceAction835(void);
+#define LOCATE_CHECKNEW_ReduceAction835 "check new ReduceAction835"
+void CHECKNEW_ReduceAction835(val_t p0);
+typedef void (*CHECKNEW_ReduceAction835_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction835_parser___ReduceAction835___init "new ReduceAction835 parser::ReduceAction835::init"
+val_t NEW_ReduceAction835_parser___ReduceAction835___init(void);
+typedef val_t (*NEW_ReduceAction835_parser___ReduceAction835___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction836 "init var of ReduceAction836"
+void INIT_ATTRIBUTES__ReduceAction836(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction836_t)(val_t p0);
+val_t NEW_ReduceAction836(void);
+#define LOCATE_CHECKNEW_ReduceAction836 "check new ReduceAction836"
+void CHECKNEW_ReduceAction836(val_t p0);
+typedef void (*CHECKNEW_ReduceAction836_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction836_parser___ReduceAction836___init "new ReduceAction836 parser::ReduceAction836::init"
+val_t NEW_ReduceAction836_parser___ReduceAction836___init(void);
+typedef val_t (*NEW_ReduceAction836_parser___ReduceAction836___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction837 "init var of ReduceAction837"
+void INIT_ATTRIBUTES__ReduceAction837(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction837_t)(val_t p0);
+val_t NEW_ReduceAction837(void);
+#define LOCATE_CHECKNEW_ReduceAction837 "check new ReduceAction837"
+void CHECKNEW_ReduceAction837(val_t p0);
+typedef void (*CHECKNEW_ReduceAction837_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction837_parser___ReduceAction837___init "new ReduceAction837 parser::ReduceAction837::init"
+val_t NEW_ReduceAction837_parser___ReduceAction837___init(void);
+typedef val_t (*NEW_ReduceAction837_parser___ReduceAction837___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction838 "init var of ReduceAction838"
+void INIT_ATTRIBUTES__ReduceAction838(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction838_t)(val_t p0);
+val_t NEW_ReduceAction838(void);
+#define LOCATE_CHECKNEW_ReduceAction838 "check new ReduceAction838"
+void CHECKNEW_ReduceAction838(val_t p0);
+typedef void (*CHECKNEW_ReduceAction838_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction838_parser___ReduceAction838___init "new ReduceAction838 parser::ReduceAction838::init"
+val_t NEW_ReduceAction838_parser___ReduceAction838___init(void);
+typedef val_t (*NEW_ReduceAction838_parser___ReduceAction838___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction839 "init var of ReduceAction839"
+void INIT_ATTRIBUTES__ReduceAction839(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction839_t)(val_t p0);
+val_t NEW_ReduceAction839(void);
+#define LOCATE_CHECKNEW_ReduceAction839 "check new ReduceAction839"
+void CHECKNEW_ReduceAction839(val_t p0);
+typedef void (*CHECKNEW_ReduceAction839_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction839_parser___ReduceAction839___init "new ReduceAction839 parser::ReduceAction839::init"
+val_t NEW_ReduceAction839_parser___ReduceAction839___init(void);
+typedef val_t (*NEW_ReduceAction839_parser___ReduceAction839___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction840 "init var of ReduceAction840"
+void INIT_ATTRIBUTES__ReduceAction840(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction840_t)(val_t p0);
+val_t NEW_ReduceAction840(void);
+#define LOCATE_CHECKNEW_ReduceAction840 "check new ReduceAction840"
+void CHECKNEW_ReduceAction840(val_t p0);
+typedef void (*CHECKNEW_ReduceAction840_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction840_parser___ReduceAction840___init "new ReduceAction840 parser::ReduceAction840::init"
+val_t NEW_ReduceAction840_parser___ReduceAction840___init(void);
+typedef val_t (*NEW_ReduceAction840_parser___ReduceAction840___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction841 "init var of ReduceAction841"
+void INIT_ATTRIBUTES__ReduceAction841(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction841_t)(val_t p0);
+val_t NEW_ReduceAction841(void);
+#define LOCATE_CHECKNEW_ReduceAction841 "check new ReduceAction841"
+void CHECKNEW_ReduceAction841(val_t p0);
+typedef void (*CHECKNEW_ReduceAction841_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction841_parser___ReduceAction841___init "new ReduceAction841 parser::ReduceAction841::init"
+val_t NEW_ReduceAction841_parser___ReduceAction841___init(void);
+typedef val_t (*NEW_ReduceAction841_parser___ReduceAction841___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction842 "init var of ReduceAction842"
+void INIT_ATTRIBUTES__ReduceAction842(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction842_t)(val_t p0);
+val_t NEW_ReduceAction842(void);
+#define LOCATE_CHECKNEW_ReduceAction842 "check new ReduceAction842"
+void CHECKNEW_ReduceAction842(val_t p0);
+typedef void (*CHECKNEW_ReduceAction842_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction842_parser___ReduceAction842___init "new ReduceAction842 parser::ReduceAction842::init"
+val_t NEW_ReduceAction842_parser___ReduceAction842___init(void);
+typedef val_t (*NEW_ReduceAction842_parser___ReduceAction842___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction843 "init var of ReduceAction843"
+void INIT_ATTRIBUTES__ReduceAction843(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction843_t)(val_t p0);
+val_t NEW_ReduceAction843(void);
+#define LOCATE_CHECKNEW_ReduceAction843 "check new ReduceAction843"
+void CHECKNEW_ReduceAction843(val_t p0);
+typedef void (*CHECKNEW_ReduceAction843_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction843_parser___ReduceAction843___init "new ReduceAction843 parser::ReduceAction843::init"
+val_t NEW_ReduceAction843_parser___ReduceAction843___init(void);
+typedef val_t (*NEW_ReduceAction843_parser___ReduceAction843___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction844 "init var of ReduceAction844"
+void INIT_ATTRIBUTES__ReduceAction844(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction844_t)(val_t p0);
+val_t NEW_ReduceAction844(void);
+#define LOCATE_CHECKNEW_ReduceAction844 "check new ReduceAction844"
+void CHECKNEW_ReduceAction844(val_t p0);
+typedef void (*CHECKNEW_ReduceAction844_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction844_parser___ReduceAction844___init "new ReduceAction844 parser::ReduceAction844::init"
+val_t NEW_ReduceAction844_parser___ReduceAction844___init(void);
+typedef val_t (*NEW_ReduceAction844_parser___ReduceAction844___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction845 "init var of ReduceAction845"
+void INIT_ATTRIBUTES__ReduceAction845(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction845_t)(val_t p0);
+val_t NEW_ReduceAction845(void);
+#define LOCATE_CHECKNEW_ReduceAction845 "check new ReduceAction845"
+void CHECKNEW_ReduceAction845(val_t p0);
+typedef void (*CHECKNEW_ReduceAction845_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction845_parser___ReduceAction845___init "new ReduceAction845 parser::ReduceAction845::init"
+val_t NEW_ReduceAction845_parser___ReduceAction845___init(void);
+typedef val_t (*NEW_ReduceAction845_parser___ReduceAction845___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction846 "init var of ReduceAction846"
+void INIT_ATTRIBUTES__ReduceAction846(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction846_t)(val_t p0);
+val_t NEW_ReduceAction846(void);
+#define LOCATE_CHECKNEW_ReduceAction846 "check new ReduceAction846"
+void CHECKNEW_ReduceAction846(val_t p0);
+typedef void (*CHECKNEW_ReduceAction846_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction846_parser___ReduceAction846___init "new ReduceAction846 parser::ReduceAction846::init"
+val_t NEW_ReduceAction846_parser___ReduceAction846___init(void);
+typedef val_t (*NEW_ReduceAction846_parser___ReduceAction846___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction847 "init var of ReduceAction847"
+void INIT_ATTRIBUTES__ReduceAction847(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction847_t)(val_t p0);
+val_t NEW_ReduceAction847(void);
+#define LOCATE_CHECKNEW_ReduceAction847 "check new ReduceAction847"
+void CHECKNEW_ReduceAction847(val_t p0);
+typedef void (*CHECKNEW_ReduceAction847_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction847_parser___ReduceAction847___init "new ReduceAction847 parser::ReduceAction847::init"
+val_t NEW_ReduceAction847_parser___ReduceAction847___init(void);
+typedef val_t (*NEW_ReduceAction847_parser___ReduceAction847___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction848 "init var of ReduceAction848"
+void INIT_ATTRIBUTES__ReduceAction848(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction848_t)(val_t p0);
+val_t NEW_ReduceAction848(void);
+#define LOCATE_CHECKNEW_ReduceAction848 "check new ReduceAction848"
+void CHECKNEW_ReduceAction848(val_t p0);
+typedef void (*CHECKNEW_ReduceAction848_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction848_parser___ReduceAction848___init "new ReduceAction848 parser::ReduceAction848::init"
+val_t NEW_ReduceAction848_parser___ReduceAction848___init(void);
+typedef val_t (*NEW_ReduceAction848_parser___ReduceAction848___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction849 "init var of ReduceAction849"
+void INIT_ATTRIBUTES__ReduceAction849(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction849_t)(val_t p0);
+val_t NEW_ReduceAction849(void);
+#define LOCATE_CHECKNEW_ReduceAction849 "check new ReduceAction849"
+void CHECKNEW_ReduceAction849(val_t p0);
+typedef void (*CHECKNEW_ReduceAction849_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction849_parser___ReduceAction849___init "new ReduceAction849 parser::ReduceAction849::init"
+val_t NEW_ReduceAction849_parser___ReduceAction849___init(void);
+typedef val_t (*NEW_ReduceAction849_parser___ReduceAction849___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction850 "init var of ReduceAction850"
+void INIT_ATTRIBUTES__ReduceAction850(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction850_t)(val_t p0);
+val_t NEW_ReduceAction850(void);
+#define LOCATE_CHECKNEW_ReduceAction850 "check new ReduceAction850"
+void CHECKNEW_ReduceAction850(val_t p0);
+typedef void (*CHECKNEW_ReduceAction850_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction850_parser___ReduceAction850___init "new ReduceAction850 parser::ReduceAction850::init"
+val_t NEW_ReduceAction850_parser___ReduceAction850___init(void);
+typedef val_t (*NEW_ReduceAction850_parser___ReduceAction850___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction851 "init var of ReduceAction851"
+void INIT_ATTRIBUTES__ReduceAction851(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction851_t)(val_t p0);
+val_t NEW_ReduceAction851(void);
+#define LOCATE_CHECKNEW_ReduceAction851 "check new ReduceAction851"
+void CHECKNEW_ReduceAction851(val_t p0);
+typedef void (*CHECKNEW_ReduceAction851_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction851_parser___ReduceAction851___init "new ReduceAction851 parser::ReduceAction851::init"
+val_t NEW_ReduceAction851_parser___ReduceAction851___init(void);
+typedef val_t (*NEW_ReduceAction851_parser___ReduceAction851___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction852 "init var of ReduceAction852"
+void INIT_ATTRIBUTES__ReduceAction852(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction852_t)(val_t p0);
+val_t NEW_ReduceAction852(void);
+#define LOCATE_CHECKNEW_ReduceAction852 "check new ReduceAction852"
+void CHECKNEW_ReduceAction852(val_t p0);
+typedef void (*CHECKNEW_ReduceAction852_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction852_parser___ReduceAction852___init "new ReduceAction852 parser::ReduceAction852::init"
+val_t NEW_ReduceAction852_parser___ReduceAction852___init(void);
+typedef val_t (*NEW_ReduceAction852_parser___ReduceAction852___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction853 "init var of ReduceAction853"
+void INIT_ATTRIBUTES__ReduceAction853(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction853_t)(val_t p0);
+val_t NEW_ReduceAction853(void);
+#define LOCATE_CHECKNEW_ReduceAction853 "check new ReduceAction853"
+void CHECKNEW_ReduceAction853(val_t p0);
+typedef void (*CHECKNEW_ReduceAction853_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction853_parser___ReduceAction853___init "new ReduceAction853 parser::ReduceAction853::init"
+val_t NEW_ReduceAction853_parser___ReduceAction853___init(void);
+typedef val_t (*NEW_ReduceAction853_parser___ReduceAction853___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction854 "init var of ReduceAction854"
+void INIT_ATTRIBUTES__ReduceAction854(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction854_t)(val_t p0);
+val_t NEW_ReduceAction854(void);
+#define LOCATE_CHECKNEW_ReduceAction854 "check new ReduceAction854"
+void CHECKNEW_ReduceAction854(val_t p0);
+typedef void (*CHECKNEW_ReduceAction854_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction854_parser___ReduceAction854___init "new ReduceAction854 parser::ReduceAction854::init"
+val_t NEW_ReduceAction854_parser___ReduceAction854___init(void);
+typedef val_t (*NEW_ReduceAction854_parser___ReduceAction854___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction855 "init var of ReduceAction855"
+void INIT_ATTRIBUTES__ReduceAction855(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction855_t)(val_t p0);
+val_t NEW_ReduceAction855(void);
+#define LOCATE_CHECKNEW_ReduceAction855 "check new ReduceAction855"
+void CHECKNEW_ReduceAction855(val_t p0);
+typedef void (*CHECKNEW_ReduceAction855_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction855_parser___ReduceAction855___init "new ReduceAction855 parser::ReduceAction855::init"
+val_t NEW_ReduceAction855_parser___ReduceAction855___init(void);
+typedef val_t (*NEW_ReduceAction855_parser___ReduceAction855___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction856 "init var of ReduceAction856"
+void INIT_ATTRIBUTES__ReduceAction856(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction856_t)(val_t p0);
+val_t NEW_ReduceAction856(void);
+#define LOCATE_CHECKNEW_ReduceAction856 "check new ReduceAction856"
+void CHECKNEW_ReduceAction856(val_t p0);
+typedef void (*CHECKNEW_ReduceAction856_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction856_parser___ReduceAction856___init "new ReduceAction856 parser::ReduceAction856::init"
+val_t NEW_ReduceAction856_parser___ReduceAction856___init(void);
+typedef val_t (*NEW_ReduceAction856_parser___ReduceAction856___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction857 "init var of ReduceAction857"
+void INIT_ATTRIBUTES__ReduceAction857(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction857_t)(val_t p0);
+val_t NEW_ReduceAction857(void);
+#define LOCATE_CHECKNEW_ReduceAction857 "check new ReduceAction857"
+void CHECKNEW_ReduceAction857(val_t p0);
+typedef void (*CHECKNEW_ReduceAction857_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction857_parser___ReduceAction857___init "new ReduceAction857 parser::ReduceAction857::init"
+val_t NEW_ReduceAction857_parser___ReduceAction857___init(void);
+typedef val_t (*NEW_ReduceAction857_parser___ReduceAction857___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction858 "init var of ReduceAction858"
+void INIT_ATTRIBUTES__ReduceAction858(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction858_t)(val_t p0);
+val_t NEW_ReduceAction858(void);
+#define LOCATE_CHECKNEW_ReduceAction858 "check new ReduceAction858"
+void CHECKNEW_ReduceAction858(val_t p0);
+typedef void (*CHECKNEW_ReduceAction858_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction858_parser___ReduceAction858___init "new ReduceAction858 parser::ReduceAction858::init"
+val_t NEW_ReduceAction858_parser___ReduceAction858___init(void);
+typedef val_t (*NEW_ReduceAction858_parser___ReduceAction858___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction859 "init var of ReduceAction859"
+void INIT_ATTRIBUTES__ReduceAction859(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction859_t)(val_t p0);
+val_t NEW_ReduceAction859(void);
+#define LOCATE_CHECKNEW_ReduceAction859 "check new ReduceAction859"
+void CHECKNEW_ReduceAction859(val_t p0);
+typedef void (*CHECKNEW_ReduceAction859_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction859_parser___ReduceAction859___init "new ReduceAction859 parser::ReduceAction859::init"
+val_t NEW_ReduceAction859_parser___ReduceAction859___init(void);
+typedef val_t (*NEW_ReduceAction859_parser___ReduceAction859___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction860 "init var of ReduceAction860"
+void INIT_ATTRIBUTES__ReduceAction860(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction860_t)(val_t p0);
+val_t NEW_ReduceAction860(void);
+#define LOCATE_CHECKNEW_ReduceAction860 "check new ReduceAction860"
+void CHECKNEW_ReduceAction860(val_t p0);
+typedef void (*CHECKNEW_ReduceAction860_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction860_parser___ReduceAction860___init "new ReduceAction860 parser::ReduceAction860::init"
+val_t NEW_ReduceAction860_parser___ReduceAction860___init(void);
+typedef val_t (*NEW_ReduceAction860_parser___ReduceAction860___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction861 "init var of ReduceAction861"
+void INIT_ATTRIBUTES__ReduceAction861(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction861_t)(val_t p0);
+val_t NEW_ReduceAction861(void);
+#define LOCATE_CHECKNEW_ReduceAction861 "check new ReduceAction861"
+void CHECKNEW_ReduceAction861(val_t p0);
+typedef void (*CHECKNEW_ReduceAction861_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction861_parser___ReduceAction861___init "new ReduceAction861 parser::ReduceAction861::init"
+val_t NEW_ReduceAction861_parser___ReduceAction861___init(void);
+typedef val_t (*NEW_ReduceAction861_parser___ReduceAction861___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction862 "init var of ReduceAction862"
+void INIT_ATTRIBUTES__ReduceAction862(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction862_t)(val_t p0);
+val_t NEW_ReduceAction862(void);
+#define LOCATE_CHECKNEW_ReduceAction862 "check new ReduceAction862"
+void CHECKNEW_ReduceAction862(val_t p0);
+typedef void (*CHECKNEW_ReduceAction862_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction862_parser___ReduceAction862___init "new ReduceAction862 parser::ReduceAction862::init"
+val_t NEW_ReduceAction862_parser___ReduceAction862___init(void);
+typedef val_t (*NEW_ReduceAction862_parser___ReduceAction862___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction863 "init var of ReduceAction863"
+void INIT_ATTRIBUTES__ReduceAction863(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction863_t)(val_t p0);
+val_t NEW_ReduceAction863(void);
+#define LOCATE_CHECKNEW_ReduceAction863 "check new ReduceAction863"
+void CHECKNEW_ReduceAction863(val_t p0);
+typedef void (*CHECKNEW_ReduceAction863_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction863_parser___ReduceAction863___init "new ReduceAction863 parser::ReduceAction863::init"
+val_t NEW_ReduceAction863_parser___ReduceAction863___init(void);
+typedef val_t (*NEW_ReduceAction863_parser___ReduceAction863___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction864 "init var of ReduceAction864"
+void INIT_ATTRIBUTES__ReduceAction864(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction864_t)(val_t p0);
+val_t NEW_ReduceAction864(void);
+#define LOCATE_CHECKNEW_ReduceAction864 "check new ReduceAction864"
+void CHECKNEW_ReduceAction864(val_t p0);
+typedef void (*CHECKNEW_ReduceAction864_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction864_parser___ReduceAction864___init "new ReduceAction864 parser::ReduceAction864::init"
+val_t NEW_ReduceAction864_parser___ReduceAction864___init(void);
+typedef val_t (*NEW_ReduceAction864_parser___ReduceAction864___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction865 "init var of ReduceAction865"
+void INIT_ATTRIBUTES__ReduceAction865(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction865_t)(val_t p0);
+val_t NEW_ReduceAction865(void);
+#define LOCATE_CHECKNEW_ReduceAction865 "check new ReduceAction865"
+void CHECKNEW_ReduceAction865(val_t p0);
+typedef void (*CHECKNEW_ReduceAction865_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction865_parser___ReduceAction865___init "new ReduceAction865 parser::ReduceAction865::init"
+val_t NEW_ReduceAction865_parser___ReduceAction865___init(void);
+typedef val_t (*NEW_ReduceAction865_parser___ReduceAction865___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction866 "init var of ReduceAction866"
+void INIT_ATTRIBUTES__ReduceAction866(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction866_t)(val_t p0);
+val_t NEW_ReduceAction866(void);
+#define LOCATE_CHECKNEW_ReduceAction866 "check new ReduceAction866"
+void CHECKNEW_ReduceAction866(val_t p0);
+typedef void (*CHECKNEW_ReduceAction866_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction866_parser___ReduceAction866___init "new ReduceAction866 parser::ReduceAction866::init"
+val_t NEW_ReduceAction866_parser___ReduceAction866___init(void);
+typedef val_t (*NEW_ReduceAction866_parser___ReduceAction866___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction867 "init var of ReduceAction867"
+void INIT_ATTRIBUTES__ReduceAction867(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction867_t)(val_t p0);
+val_t NEW_ReduceAction867(void);
+#define LOCATE_CHECKNEW_ReduceAction867 "check new ReduceAction867"
+void CHECKNEW_ReduceAction867(val_t p0);
+typedef void (*CHECKNEW_ReduceAction867_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction867_parser___ReduceAction867___init "new ReduceAction867 parser::ReduceAction867::init"
+val_t NEW_ReduceAction867_parser___ReduceAction867___init(void);
+typedef val_t (*NEW_ReduceAction867_parser___ReduceAction867___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction868 "init var of ReduceAction868"
+void INIT_ATTRIBUTES__ReduceAction868(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction868_t)(val_t p0);
+val_t NEW_ReduceAction868(void);
+#define LOCATE_CHECKNEW_ReduceAction868 "check new ReduceAction868"
+void CHECKNEW_ReduceAction868(val_t p0);
+typedef void (*CHECKNEW_ReduceAction868_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction868_parser___ReduceAction868___init "new ReduceAction868 parser::ReduceAction868::init"
+val_t NEW_ReduceAction868_parser___ReduceAction868___init(void);
+typedef val_t (*NEW_ReduceAction868_parser___ReduceAction868___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction869 "init var of ReduceAction869"
+void INIT_ATTRIBUTES__ReduceAction869(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction869_t)(val_t p0);
+val_t NEW_ReduceAction869(void);
+#define LOCATE_CHECKNEW_ReduceAction869 "check new ReduceAction869"
+void CHECKNEW_ReduceAction869(val_t p0);
+typedef void (*CHECKNEW_ReduceAction869_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction869_parser___ReduceAction869___init "new ReduceAction869 parser::ReduceAction869::init"
+val_t NEW_ReduceAction869_parser___ReduceAction869___init(void);
+typedef val_t (*NEW_ReduceAction869_parser___ReduceAction869___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction870 "init var of ReduceAction870"
+void INIT_ATTRIBUTES__ReduceAction870(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction870_t)(val_t p0);
+val_t NEW_ReduceAction870(void);
+#define LOCATE_CHECKNEW_ReduceAction870 "check new ReduceAction870"
+void CHECKNEW_ReduceAction870(val_t p0);
+typedef void (*CHECKNEW_ReduceAction870_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction870_parser___ReduceAction870___init "new ReduceAction870 parser::ReduceAction870::init"
+val_t NEW_ReduceAction870_parser___ReduceAction870___init(void);
+typedef val_t (*NEW_ReduceAction870_parser___ReduceAction870___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction871 "init var of ReduceAction871"
+void INIT_ATTRIBUTES__ReduceAction871(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction871_t)(val_t p0);
+val_t NEW_ReduceAction871(void);
+#define LOCATE_CHECKNEW_ReduceAction871 "check new ReduceAction871"
+void CHECKNEW_ReduceAction871(val_t p0);
+typedef void (*CHECKNEW_ReduceAction871_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction871_parser___ReduceAction871___init "new ReduceAction871 parser::ReduceAction871::init"
+val_t NEW_ReduceAction871_parser___ReduceAction871___init(void);
+typedef val_t (*NEW_ReduceAction871_parser___ReduceAction871___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction872 "init var of ReduceAction872"
+void INIT_ATTRIBUTES__ReduceAction872(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction872_t)(val_t p0);
+val_t NEW_ReduceAction872(void);
+#define LOCATE_CHECKNEW_ReduceAction872 "check new ReduceAction872"
+void CHECKNEW_ReduceAction872(val_t p0);
+typedef void (*CHECKNEW_ReduceAction872_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction872_parser___ReduceAction872___init "new ReduceAction872 parser::ReduceAction872::init"
+val_t NEW_ReduceAction872_parser___ReduceAction872___init(void);
+typedef val_t (*NEW_ReduceAction872_parser___ReduceAction872___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction873 "init var of ReduceAction873"
+void INIT_ATTRIBUTES__ReduceAction873(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction873_t)(val_t p0);
+val_t NEW_ReduceAction873(void);
+#define LOCATE_CHECKNEW_ReduceAction873 "check new ReduceAction873"
+void CHECKNEW_ReduceAction873(val_t p0);
+typedef void (*CHECKNEW_ReduceAction873_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction873_parser___ReduceAction873___init "new ReduceAction873 parser::ReduceAction873::init"
+val_t NEW_ReduceAction873_parser___ReduceAction873___init(void);
+typedef val_t (*NEW_ReduceAction873_parser___ReduceAction873___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction874 "init var of ReduceAction874"
+void INIT_ATTRIBUTES__ReduceAction874(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction874_t)(val_t p0);
+val_t NEW_ReduceAction874(void);
+#define LOCATE_CHECKNEW_ReduceAction874 "check new ReduceAction874"
+void CHECKNEW_ReduceAction874(val_t p0);
+typedef void (*CHECKNEW_ReduceAction874_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction874_parser___ReduceAction874___init "new ReduceAction874 parser::ReduceAction874::init"
+val_t NEW_ReduceAction874_parser___ReduceAction874___init(void);
+typedef val_t (*NEW_ReduceAction874_parser___ReduceAction874___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction875 "init var of ReduceAction875"
+void INIT_ATTRIBUTES__ReduceAction875(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction875_t)(val_t p0);
+val_t NEW_ReduceAction875(void);
+#define LOCATE_CHECKNEW_ReduceAction875 "check new ReduceAction875"
+void CHECKNEW_ReduceAction875(val_t p0);
+typedef void (*CHECKNEW_ReduceAction875_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction875_parser___ReduceAction875___init "new ReduceAction875 parser::ReduceAction875::init"
+val_t NEW_ReduceAction875_parser___ReduceAction875___init(void);
+typedef val_t (*NEW_ReduceAction875_parser___ReduceAction875___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction876 "init var of ReduceAction876"
+void INIT_ATTRIBUTES__ReduceAction876(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction876_t)(val_t p0);
+val_t NEW_ReduceAction876(void);
+#define LOCATE_CHECKNEW_ReduceAction876 "check new ReduceAction876"
+void CHECKNEW_ReduceAction876(val_t p0);
+typedef void (*CHECKNEW_ReduceAction876_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction876_parser___ReduceAction876___init "new ReduceAction876 parser::ReduceAction876::init"
+val_t NEW_ReduceAction876_parser___ReduceAction876___init(void);
+typedef val_t (*NEW_ReduceAction876_parser___ReduceAction876___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction877 "init var of ReduceAction877"
+void INIT_ATTRIBUTES__ReduceAction877(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction877_t)(val_t p0);
+val_t NEW_ReduceAction877(void);
+#define LOCATE_CHECKNEW_ReduceAction877 "check new ReduceAction877"
+void CHECKNEW_ReduceAction877(val_t p0);
+typedef void (*CHECKNEW_ReduceAction877_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction877_parser___ReduceAction877___init "new ReduceAction877 parser::ReduceAction877::init"
+val_t NEW_ReduceAction877_parser___ReduceAction877___init(void);
+typedef val_t (*NEW_ReduceAction877_parser___ReduceAction877___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction878 "init var of ReduceAction878"
+void INIT_ATTRIBUTES__ReduceAction878(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction878_t)(val_t p0);
+val_t NEW_ReduceAction878(void);
+#define LOCATE_CHECKNEW_ReduceAction878 "check new ReduceAction878"
+void CHECKNEW_ReduceAction878(val_t p0);
+typedef void (*CHECKNEW_ReduceAction878_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction878_parser___ReduceAction878___init "new ReduceAction878 parser::ReduceAction878::init"
+val_t NEW_ReduceAction878_parser___ReduceAction878___init(void);
+typedef val_t (*NEW_ReduceAction878_parser___ReduceAction878___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction879 "init var of ReduceAction879"
+void INIT_ATTRIBUTES__ReduceAction879(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction879_t)(val_t p0);
+val_t NEW_ReduceAction879(void);
+#define LOCATE_CHECKNEW_ReduceAction879 "check new ReduceAction879"
+void CHECKNEW_ReduceAction879(val_t p0);
+typedef void (*CHECKNEW_ReduceAction879_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction879_parser___ReduceAction879___init "new ReduceAction879 parser::ReduceAction879::init"
+val_t NEW_ReduceAction879_parser___ReduceAction879___init(void);
+typedef val_t (*NEW_ReduceAction879_parser___ReduceAction879___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction880 "init var of ReduceAction880"
+void INIT_ATTRIBUTES__ReduceAction880(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction880_t)(val_t p0);
+val_t NEW_ReduceAction880(void);
+#define LOCATE_CHECKNEW_ReduceAction880 "check new ReduceAction880"
+void CHECKNEW_ReduceAction880(val_t p0);
+typedef void (*CHECKNEW_ReduceAction880_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction880_parser___ReduceAction880___init "new ReduceAction880 parser::ReduceAction880::init"
+val_t NEW_ReduceAction880_parser___ReduceAction880___init(void);
+typedef val_t (*NEW_ReduceAction880_parser___ReduceAction880___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction881 "init var of ReduceAction881"
+void INIT_ATTRIBUTES__ReduceAction881(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction881_t)(val_t p0);
+val_t NEW_ReduceAction881(void);
+#define LOCATE_CHECKNEW_ReduceAction881 "check new ReduceAction881"
+void CHECKNEW_ReduceAction881(val_t p0);
+typedef void (*CHECKNEW_ReduceAction881_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction881_parser___ReduceAction881___init "new ReduceAction881 parser::ReduceAction881::init"
+val_t NEW_ReduceAction881_parser___ReduceAction881___init(void);
+typedef val_t (*NEW_ReduceAction881_parser___ReduceAction881___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction882 "init var of ReduceAction882"
+void INIT_ATTRIBUTES__ReduceAction882(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction882_t)(val_t p0);
+val_t NEW_ReduceAction882(void);
+#define LOCATE_CHECKNEW_ReduceAction882 "check new ReduceAction882"
+void CHECKNEW_ReduceAction882(val_t p0);
+typedef void (*CHECKNEW_ReduceAction882_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction882_parser___ReduceAction882___init "new ReduceAction882 parser::ReduceAction882::init"
+val_t NEW_ReduceAction882_parser___ReduceAction882___init(void);
+typedef val_t (*NEW_ReduceAction882_parser___ReduceAction882___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction883 "init var of ReduceAction883"
+void INIT_ATTRIBUTES__ReduceAction883(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction883_t)(val_t p0);
+val_t NEW_ReduceAction883(void);
+#define LOCATE_CHECKNEW_ReduceAction883 "check new ReduceAction883"
+void CHECKNEW_ReduceAction883(val_t p0);
+typedef void (*CHECKNEW_ReduceAction883_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction883_parser___ReduceAction883___init "new ReduceAction883 parser::ReduceAction883::init"
+val_t NEW_ReduceAction883_parser___ReduceAction883___init(void);
+typedef val_t (*NEW_ReduceAction883_parser___ReduceAction883___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction884 "init var of ReduceAction884"
+void INIT_ATTRIBUTES__ReduceAction884(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction884_t)(val_t p0);
+val_t NEW_ReduceAction884(void);
+#define LOCATE_CHECKNEW_ReduceAction884 "check new ReduceAction884"
+void CHECKNEW_ReduceAction884(val_t p0);
+typedef void (*CHECKNEW_ReduceAction884_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction884_parser___ReduceAction884___init "new ReduceAction884 parser::ReduceAction884::init"
+val_t NEW_ReduceAction884_parser___ReduceAction884___init(void);
+typedef val_t (*NEW_ReduceAction884_parser___ReduceAction884___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction885 "init var of ReduceAction885"
+void INIT_ATTRIBUTES__ReduceAction885(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction885_t)(val_t p0);
+val_t NEW_ReduceAction885(void);
+#define LOCATE_CHECKNEW_ReduceAction885 "check new ReduceAction885"
+void CHECKNEW_ReduceAction885(val_t p0);
+typedef void (*CHECKNEW_ReduceAction885_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction885_parser___ReduceAction885___init "new ReduceAction885 parser::ReduceAction885::init"
+val_t NEW_ReduceAction885_parser___ReduceAction885___init(void);
+typedef val_t (*NEW_ReduceAction885_parser___ReduceAction885___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction886 "init var of ReduceAction886"
+void INIT_ATTRIBUTES__ReduceAction886(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction886_t)(val_t p0);
+val_t NEW_ReduceAction886(void);
+#define LOCATE_CHECKNEW_ReduceAction886 "check new ReduceAction886"
+void CHECKNEW_ReduceAction886(val_t p0);
+typedef void (*CHECKNEW_ReduceAction886_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction886_parser___ReduceAction886___init "new ReduceAction886 parser::ReduceAction886::init"
+val_t NEW_ReduceAction886_parser___ReduceAction886___init(void);
+typedef val_t (*NEW_ReduceAction886_parser___ReduceAction886___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction887 "init var of ReduceAction887"
+void INIT_ATTRIBUTES__ReduceAction887(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction887_t)(val_t p0);
+val_t NEW_ReduceAction887(void);
+#define LOCATE_CHECKNEW_ReduceAction887 "check new ReduceAction887"
+void CHECKNEW_ReduceAction887(val_t p0);
+typedef void (*CHECKNEW_ReduceAction887_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction887_parser___ReduceAction887___init "new ReduceAction887 parser::ReduceAction887::init"
+val_t NEW_ReduceAction887_parser___ReduceAction887___init(void);
+typedef val_t (*NEW_ReduceAction887_parser___ReduceAction887___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction888 "init var of ReduceAction888"
+void INIT_ATTRIBUTES__ReduceAction888(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction888_t)(val_t p0);
+val_t NEW_ReduceAction888(void);
+#define LOCATE_CHECKNEW_ReduceAction888 "check new ReduceAction888"
+void CHECKNEW_ReduceAction888(val_t p0);
+typedef void (*CHECKNEW_ReduceAction888_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction888_parser___ReduceAction888___init "new ReduceAction888 parser::ReduceAction888::init"
+val_t NEW_ReduceAction888_parser___ReduceAction888___init(void);
+typedef val_t (*NEW_ReduceAction888_parser___ReduceAction888___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction889 "init var of ReduceAction889"
+void INIT_ATTRIBUTES__ReduceAction889(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction889_t)(val_t p0);
+val_t NEW_ReduceAction889(void);
+#define LOCATE_CHECKNEW_ReduceAction889 "check new ReduceAction889"
+void CHECKNEW_ReduceAction889(val_t p0);
+typedef void (*CHECKNEW_ReduceAction889_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction889_parser___ReduceAction889___init "new ReduceAction889 parser::ReduceAction889::init"
+val_t NEW_ReduceAction889_parser___ReduceAction889___init(void);
+typedef val_t (*NEW_ReduceAction889_parser___ReduceAction889___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction890 "init var of ReduceAction890"
+void INIT_ATTRIBUTES__ReduceAction890(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction890_t)(val_t p0);
+val_t NEW_ReduceAction890(void);
+#define LOCATE_CHECKNEW_ReduceAction890 "check new ReduceAction890"
+void CHECKNEW_ReduceAction890(val_t p0);
+typedef void (*CHECKNEW_ReduceAction890_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction890_parser___ReduceAction890___init "new ReduceAction890 parser::ReduceAction890::init"
+val_t NEW_ReduceAction890_parser___ReduceAction890___init(void);
+typedef val_t (*NEW_ReduceAction890_parser___ReduceAction890___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction891 "init var of ReduceAction891"
+void INIT_ATTRIBUTES__ReduceAction891(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction891_t)(val_t p0);
+val_t NEW_ReduceAction891(void);
+#define LOCATE_CHECKNEW_ReduceAction891 "check new ReduceAction891"
+void CHECKNEW_ReduceAction891(val_t p0);
+typedef void (*CHECKNEW_ReduceAction891_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction891_parser___ReduceAction891___init "new ReduceAction891 parser::ReduceAction891::init"
+val_t NEW_ReduceAction891_parser___ReduceAction891___init(void);
+typedef val_t (*NEW_ReduceAction891_parser___ReduceAction891___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction892 "init var of ReduceAction892"
+void INIT_ATTRIBUTES__ReduceAction892(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction892_t)(val_t p0);
+val_t NEW_ReduceAction892(void);
+#define LOCATE_CHECKNEW_ReduceAction892 "check new ReduceAction892"
+void CHECKNEW_ReduceAction892(val_t p0);
+typedef void (*CHECKNEW_ReduceAction892_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction892_parser___ReduceAction892___init "new ReduceAction892 parser::ReduceAction892::init"
+val_t NEW_ReduceAction892_parser___ReduceAction892___init(void);
+typedef val_t (*NEW_ReduceAction892_parser___ReduceAction892___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction893 "init var of ReduceAction893"
+void INIT_ATTRIBUTES__ReduceAction893(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction893_t)(val_t p0);
+val_t NEW_ReduceAction893(void);
+#define LOCATE_CHECKNEW_ReduceAction893 "check new ReduceAction893"
+void CHECKNEW_ReduceAction893(val_t p0);
+typedef void (*CHECKNEW_ReduceAction893_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction893_parser___ReduceAction893___init "new ReduceAction893 parser::ReduceAction893::init"
+val_t NEW_ReduceAction893_parser___ReduceAction893___init(void);
+typedef val_t (*NEW_ReduceAction893_parser___ReduceAction893___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction894 "init var of ReduceAction894"
+void INIT_ATTRIBUTES__ReduceAction894(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction894_t)(val_t p0);
+val_t NEW_ReduceAction894(void);
+#define LOCATE_CHECKNEW_ReduceAction894 "check new ReduceAction894"
+void CHECKNEW_ReduceAction894(val_t p0);
+typedef void (*CHECKNEW_ReduceAction894_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction894_parser___ReduceAction894___init "new ReduceAction894 parser::ReduceAction894::init"
+val_t NEW_ReduceAction894_parser___ReduceAction894___init(void);
+typedef val_t (*NEW_ReduceAction894_parser___ReduceAction894___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction895 "init var of ReduceAction895"
+void INIT_ATTRIBUTES__ReduceAction895(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction895_t)(val_t p0);
+val_t NEW_ReduceAction895(void);
+#define LOCATE_CHECKNEW_ReduceAction895 "check new ReduceAction895"
+void CHECKNEW_ReduceAction895(val_t p0);
+typedef void (*CHECKNEW_ReduceAction895_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction895_parser___ReduceAction895___init "new ReduceAction895 parser::ReduceAction895::init"
+val_t NEW_ReduceAction895_parser___ReduceAction895___init(void);
+typedef val_t (*NEW_ReduceAction895_parser___ReduceAction895___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction896 "init var of ReduceAction896"
+void INIT_ATTRIBUTES__ReduceAction896(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction896_t)(val_t p0);
+val_t NEW_ReduceAction896(void);
+#define LOCATE_CHECKNEW_ReduceAction896 "check new ReduceAction896"
+void CHECKNEW_ReduceAction896(val_t p0);
+typedef void (*CHECKNEW_ReduceAction896_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction896_parser___ReduceAction896___init "new ReduceAction896 parser::ReduceAction896::init"
+val_t NEW_ReduceAction896_parser___ReduceAction896___init(void);
+typedef val_t (*NEW_ReduceAction896_parser___ReduceAction896___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction897 "init var of ReduceAction897"
+void INIT_ATTRIBUTES__ReduceAction897(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction897_t)(val_t p0);
+val_t NEW_ReduceAction897(void);
+#define LOCATE_CHECKNEW_ReduceAction897 "check new ReduceAction897"
+void CHECKNEW_ReduceAction897(val_t p0);
+typedef void (*CHECKNEW_ReduceAction897_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction897_parser___ReduceAction897___init "new ReduceAction897 parser::ReduceAction897::init"
+val_t NEW_ReduceAction897_parser___ReduceAction897___init(void);
+typedef val_t (*NEW_ReduceAction897_parser___ReduceAction897___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction898 "init var of ReduceAction898"
+void INIT_ATTRIBUTES__ReduceAction898(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction898_t)(val_t p0);
+val_t NEW_ReduceAction898(void);
+#define LOCATE_CHECKNEW_ReduceAction898 "check new ReduceAction898"
+void CHECKNEW_ReduceAction898(val_t p0);
+typedef void (*CHECKNEW_ReduceAction898_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction898_parser___ReduceAction898___init "new ReduceAction898 parser::ReduceAction898::init"
+val_t NEW_ReduceAction898_parser___ReduceAction898___init(void);
+typedef val_t (*NEW_ReduceAction898_parser___ReduceAction898___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction899 "init var of ReduceAction899"
+void INIT_ATTRIBUTES__ReduceAction899(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction899_t)(val_t p0);
+val_t NEW_ReduceAction899(void);
+#define LOCATE_CHECKNEW_ReduceAction899 "check new ReduceAction899"
+void CHECKNEW_ReduceAction899(val_t p0);
+typedef void (*CHECKNEW_ReduceAction899_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction899_parser___ReduceAction899___init "new ReduceAction899 parser::ReduceAction899::init"
+val_t NEW_ReduceAction899_parser___ReduceAction899___init(void);
+typedef val_t (*NEW_ReduceAction899_parser___ReduceAction899___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction900 "init var of ReduceAction900"
+void INIT_ATTRIBUTES__ReduceAction900(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction900_t)(val_t p0);
+val_t NEW_ReduceAction900(void);
+#define LOCATE_CHECKNEW_ReduceAction900 "check new ReduceAction900"
+void CHECKNEW_ReduceAction900(val_t p0);
+typedef void (*CHECKNEW_ReduceAction900_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction900_parser___ReduceAction900___init "new ReduceAction900 parser::ReduceAction900::init"
+val_t NEW_ReduceAction900_parser___ReduceAction900___init(void);
+typedef val_t (*NEW_ReduceAction900_parser___ReduceAction900___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction901 "init var of ReduceAction901"
+void INIT_ATTRIBUTES__ReduceAction901(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction901_t)(val_t p0);
+val_t NEW_ReduceAction901(void);
+#define LOCATE_CHECKNEW_ReduceAction901 "check new ReduceAction901"
+void CHECKNEW_ReduceAction901(val_t p0);
+typedef void (*CHECKNEW_ReduceAction901_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction901_parser___ReduceAction901___init "new ReduceAction901 parser::ReduceAction901::init"
+val_t NEW_ReduceAction901_parser___ReduceAction901___init(void);
+typedef val_t (*NEW_ReduceAction901_parser___ReduceAction901___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction902 "init var of ReduceAction902"
+void INIT_ATTRIBUTES__ReduceAction902(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction902_t)(val_t p0);
+val_t NEW_ReduceAction902(void);
+#define LOCATE_CHECKNEW_ReduceAction902 "check new ReduceAction902"
+void CHECKNEW_ReduceAction902(val_t p0);
+typedef void (*CHECKNEW_ReduceAction902_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction902_parser___ReduceAction902___init "new ReduceAction902 parser::ReduceAction902::init"
+val_t NEW_ReduceAction902_parser___ReduceAction902___init(void);
+typedef val_t (*NEW_ReduceAction902_parser___ReduceAction902___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction903 "init var of ReduceAction903"
+void INIT_ATTRIBUTES__ReduceAction903(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction903_t)(val_t p0);
+val_t NEW_ReduceAction903(void);
+#define LOCATE_CHECKNEW_ReduceAction903 "check new ReduceAction903"
+void CHECKNEW_ReduceAction903(val_t p0);
+typedef void (*CHECKNEW_ReduceAction903_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction903_parser___ReduceAction903___init "new ReduceAction903 parser::ReduceAction903::init"
+val_t NEW_ReduceAction903_parser___ReduceAction903___init(void);
+typedef val_t (*NEW_ReduceAction903_parser___ReduceAction903___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction904 "init var of ReduceAction904"
+void INIT_ATTRIBUTES__ReduceAction904(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction904_t)(val_t p0);
+val_t NEW_ReduceAction904(void);
+#define LOCATE_CHECKNEW_ReduceAction904 "check new ReduceAction904"
+void CHECKNEW_ReduceAction904(val_t p0);
+typedef void (*CHECKNEW_ReduceAction904_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction904_parser___ReduceAction904___init "new ReduceAction904 parser::ReduceAction904::init"
+val_t NEW_ReduceAction904_parser___ReduceAction904___init(void);
+typedef val_t (*NEW_ReduceAction904_parser___ReduceAction904___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction905 "init var of ReduceAction905"
+void INIT_ATTRIBUTES__ReduceAction905(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction905_t)(val_t p0);
+val_t NEW_ReduceAction905(void);
+#define LOCATE_CHECKNEW_ReduceAction905 "check new ReduceAction905"
+void CHECKNEW_ReduceAction905(val_t p0);
+typedef void (*CHECKNEW_ReduceAction905_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction905_parser___ReduceAction905___init "new ReduceAction905 parser::ReduceAction905::init"
+val_t NEW_ReduceAction905_parser___ReduceAction905___init(void);
+typedef val_t (*NEW_ReduceAction905_parser___ReduceAction905___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction906 "init var of ReduceAction906"
+void INIT_ATTRIBUTES__ReduceAction906(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction906_t)(val_t p0);
+val_t NEW_ReduceAction906(void);
+#define LOCATE_CHECKNEW_ReduceAction906 "check new ReduceAction906"
+void CHECKNEW_ReduceAction906(val_t p0);
+typedef void (*CHECKNEW_ReduceAction906_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction906_parser___ReduceAction906___init "new ReduceAction906 parser::ReduceAction906::init"
+val_t NEW_ReduceAction906_parser___ReduceAction906___init(void);
+typedef val_t (*NEW_ReduceAction906_parser___ReduceAction906___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction907 "init var of ReduceAction907"
+void INIT_ATTRIBUTES__ReduceAction907(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction907_t)(val_t p0);
+val_t NEW_ReduceAction907(void);
+#define LOCATE_CHECKNEW_ReduceAction907 "check new ReduceAction907"
+void CHECKNEW_ReduceAction907(val_t p0);
+typedef void (*CHECKNEW_ReduceAction907_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction907_parser___ReduceAction907___init "new ReduceAction907 parser::ReduceAction907::init"
+val_t NEW_ReduceAction907_parser___ReduceAction907___init(void);
+typedef val_t (*NEW_ReduceAction907_parser___ReduceAction907___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction908 "init var of ReduceAction908"
+void INIT_ATTRIBUTES__ReduceAction908(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction908_t)(val_t p0);
+val_t NEW_ReduceAction908(void);
+#define LOCATE_CHECKNEW_ReduceAction908 "check new ReduceAction908"
+void CHECKNEW_ReduceAction908(val_t p0);
+typedef void (*CHECKNEW_ReduceAction908_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction908_parser___ReduceAction908___init "new ReduceAction908 parser::ReduceAction908::init"
+val_t NEW_ReduceAction908_parser___ReduceAction908___init(void);
+typedef val_t (*NEW_ReduceAction908_parser___ReduceAction908___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction909 "init var of ReduceAction909"
+void INIT_ATTRIBUTES__ReduceAction909(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction909_t)(val_t p0);
+val_t NEW_ReduceAction909(void);
+#define LOCATE_CHECKNEW_ReduceAction909 "check new ReduceAction909"
+void CHECKNEW_ReduceAction909(val_t p0);
+typedef void (*CHECKNEW_ReduceAction909_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction909_parser___ReduceAction909___init "new ReduceAction909 parser::ReduceAction909::init"
+val_t NEW_ReduceAction909_parser___ReduceAction909___init(void);
+typedef val_t (*NEW_ReduceAction909_parser___ReduceAction909___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction910 "init var of ReduceAction910"
+void INIT_ATTRIBUTES__ReduceAction910(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction910_t)(val_t p0);
+val_t NEW_ReduceAction910(void);
+#define LOCATE_CHECKNEW_ReduceAction910 "check new ReduceAction910"
+void CHECKNEW_ReduceAction910(val_t p0);
+typedef void (*CHECKNEW_ReduceAction910_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction910_parser___ReduceAction910___init "new ReduceAction910 parser::ReduceAction910::init"
+val_t NEW_ReduceAction910_parser___ReduceAction910___init(void);
+typedef val_t (*NEW_ReduceAction910_parser___ReduceAction910___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction911 "init var of ReduceAction911"
+void INIT_ATTRIBUTES__ReduceAction911(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction911_t)(val_t p0);
+val_t NEW_ReduceAction911(void);
+#define LOCATE_CHECKNEW_ReduceAction911 "check new ReduceAction911"
+void CHECKNEW_ReduceAction911(val_t p0);
+typedef void (*CHECKNEW_ReduceAction911_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction911_parser___ReduceAction911___init "new ReduceAction911 parser::ReduceAction911::init"
+val_t NEW_ReduceAction911_parser___ReduceAction911___init(void);
+typedef val_t (*NEW_ReduceAction911_parser___ReduceAction911___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction912 "init var of ReduceAction912"
+void INIT_ATTRIBUTES__ReduceAction912(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction912_t)(val_t p0);
+val_t NEW_ReduceAction912(void);
+#define LOCATE_CHECKNEW_ReduceAction912 "check new ReduceAction912"
+void CHECKNEW_ReduceAction912(val_t p0);
+typedef void (*CHECKNEW_ReduceAction912_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction912_parser___ReduceAction912___init "new ReduceAction912 parser::ReduceAction912::init"
+val_t NEW_ReduceAction912_parser___ReduceAction912___init(void);
+typedef val_t (*NEW_ReduceAction912_parser___ReduceAction912___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction913 "init var of ReduceAction913"
+void INIT_ATTRIBUTES__ReduceAction913(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction913_t)(val_t p0);
+val_t NEW_ReduceAction913(void);
+#define LOCATE_CHECKNEW_ReduceAction913 "check new ReduceAction913"
+void CHECKNEW_ReduceAction913(val_t p0);
+typedef void (*CHECKNEW_ReduceAction913_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction913_parser___ReduceAction913___init "new ReduceAction913 parser::ReduceAction913::init"
+val_t NEW_ReduceAction913_parser___ReduceAction913___init(void);
+typedef val_t (*NEW_ReduceAction913_parser___ReduceAction913___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction914 "init var of ReduceAction914"
+void INIT_ATTRIBUTES__ReduceAction914(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction914_t)(val_t p0);
+val_t NEW_ReduceAction914(void);
+#define LOCATE_CHECKNEW_ReduceAction914 "check new ReduceAction914"
+void CHECKNEW_ReduceAction914(val_t p0);
+typedef void (*CHECKNEW_ReduceAction914_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction914_parser___ReduceAction914___init "new ReduceAction914 parser::ReduceAction914::init"
+val_t NEW_ReduceAction914_parser___ReduceAction914___init(void);
+typedef val_t (*NEW_ReduceAction914_parser___ReduceAction914___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction915 "init var of ReduceAction915"
+void INIT_ATTRIBUTES__ReduceAction915(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction915_t)(val_t p0);
+val_t NEW_ReduceAction915(void);
+#define LOCATE_CHECKNEW_ReduceAction915 "check new ReduceAction915"
+void CHECKNEW_ReduceAction915(val_t p0);
+typedef void (*CHECKNEW_ReduceAction915_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction915_parser___ReduceAction915___init "new ReduceAction915 parser::ReduceAction915::init"
+val_t NEW_ReduceAction915_parser___ReduceAction915___init(void);
+typedef val_t (*NEW_ReduceAction915_parser___ReduceAction915___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction916 "init var of ReduceAction916"
+void INIT_ATTRIBUTES__ReduceAction916(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction916_t)(val_t p0);
+val_t NEW_ReduceAction916(void);
+#define LOCATE_CHECKNEW_ReduceAction916 "check new ReduceAction916"
+void CHECKNEW_ReduceAction916(val_t p0);
+typedef void (*CHECKNEW_ReduceAction916_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction916_parser___ReduceAction916___init "new ReduceAction916 parser::ReduceAction916::init"
+val_t NEW_ReduceAction916_parser___ReduceAction916___init(void);
+typedef val_t (*NEW_ReduceAction916_parser___ReduceAction916___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction917 "init var of ReduceAction917"
+void INIT_ATTRIBUTES__ReduceAction917(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction917_t)(val_t p0);
+val_t NEW_ReduceAction917(void);
+#define LOCATE_CHECKNEW_ReduceAction917 "check new ReduceAction917"
+void CHECKNEW_ReduceAction917(val_t p0);
+typedef void (*CHECKNEW_ReduceAction917_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction917_parser___ReduceAction917___init "new ReduceAction917 parser::ReduceAction917::init"
+val_t NEW_ReduceAction917_parser___ReduceAction917___init(void);
+typedef val_t (*NEW_ReduceAction917_parser___ReduceAction917___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction918 "init var of ReduceAction918"
+void INIT_ATTRIBUTES__ReduceAction918(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction918_t)(val_t p0);
+val_t NEW_ReduceAction918(void);
+#define LOCATE_CHECKNEW_ReduceAction918 "check new ReduceAction918"
+void CHECKNEW_ReduceAction918(val_t p0);
+typedef void (*CHECKNEW_ReduceAction918_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction918_parser___ReduceAction918___init "new ReduceAction918 parser::ReduceAction918::init"
+val_t NEW_ReduceAction918_parser___ReduceAction918___init(void);
+typedef val_t (*NEW_ReduceAction918_parser___ReduceAction918___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction919 "init var of ReduceAction919"
+void INIT_ATTRIBUTES__ReduceAction919(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction919_t)(val_t p0);
+val_t NEW_ReduceAction919(void);
+#define LOCATE_CHECKNEW_ReduceAction919 "check new ReduceAction919"
+void CHECKNEW_ReduceAction919(val_t p0);
+typedef void (*CHECKNEW_ReduceAction919_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction919_parser___ReduceAction919___init "new ReduceAction919 parser::ReduceAction919::init"
+val_t NEW_ReduceAction919_parser___ReduceAction919___init(void);
+typedef val_t (*NEW_ReduceAction919_parser___ReduceAction919___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction920 "init var of ReduceAction920"
+void INIT_ATTRIBUTES__ReduceAction920(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction920_t)(val_t p0);
+val_t NEW_ReduceAction920(void);
+#define LOCATE_CHECKNEW_ReduceAction920 "check new ReduceAction920"
+void CHECKNEW_ReduceAction920(val_t p0);
+typedef void (*CHECKNEW_ReduceAction920_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction920_parser___ReduceAction920___init "new ReduceAction920 parser::ReduceAction920::init"
+val_t NEW_ReduceAction920_parser___ReduceAction920___init(void);
+typedef val_t (*NEW_ReduceAction920_parser___ReduceAction920___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction921 "init var of ReduceAction921"
+void INIT_ATTRIBUTES__ReduceAction921(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction921_t)(val_t p0);
+val_t NEW_ReduceAction921(void);
+#define LOCATE_CHECKNEW_ReduceAction921 "check new ReduceAction921"
+void CHECKNEW_ReduceAction921(val_t p0);
+typedef void (*CHECKNEW_ReduceAction921_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction921_parser___ReduceAction921___init "new ReduceAction921 parser::ReduceAction921::init"
+val_t NEW_ReduceAction921_parser___ReduceAction921___init(void);
+typedef val_t (*NEW_ReduceAction921_parser___ReduceAction921___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction922 "init var of ReduceAction922"
+void INIT_ATTRIBUTES__ReduceAction922(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction922_t)(val_t p0);
+val_t NEW_ReduceAction922(void);
+#define LOCATE_CHECKNEW_ReduceAction922 "check new ReduceAction922"
+void CHECKNEW_ReduceAction922(val_t p0);
+typedef void (*CHECKNEW_ReduceAction922_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction922_parser___ReduceAction922___init "new ReduceAction922 parser::ReduceAction922::init"
+val_t NEW_ReduceAction922_parser___ReduceAction922___init(void);
+typedef val_t (*NEW_ReduceAction922_parser___ReduceAction922___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction923 "init var of ReduceAction923"
+void INIT_ATTRIBUTES__ReduceAction923(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction923_t)(val_t p0);
+val_t NEW_ReduceAction923(void);
+#define LOCATE_CHECKNEW_ReduceAction923 "check new ReduceAction923"
+void CHECKNEW_ReduceAction923(val_t p0);
+typedef void (*CHECKNEW_ReduceAction923_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction923_parser___ReduceAction923___init "new ReduceAction923 parser::ReduceAction923::init"
+val_t NEW_ReduceAction923_parser___ReduceAction923___init(void);
+typedef val_t (*NEW_ReduceAction923_parser___ReduceAction923___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction924 "init var of ReduceAction924"
+void INIT_ATTRIBUTES__ReduceAction924(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction924_t)(val_t p0);
+val_t NEW_ReduceAction924(void);
+#define LOCATE_CHECKNEW_ReduceAction924 "check new ReduceAction924"
+void CHECKNEW_ReduceAction924(val_t p0);
+typedef void (*CHECKNEW_ReduceAction924_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction924_parser___ReduceAction924___init "new ReduceAction924 parser::ReduceAction924::init"
+val_t NEW_ReduceAction924_parser___ReduceAction924___init(void);
+typedef val_t (*NEW_ReduceAction924_parser___ReduceAction924___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction925 "init var of ReduceAction925"
+void INIT_ATTRIBUTES__ReduceAction925(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction925_t)(val_t p0);
+val_t NEW_ReduceAction925(void);
+#define LOCATE_CHECKNEW_ReduceAction925 "check new ReduceAction925"
+void CHECKNEW_ReduceAction925(val_t p0);
+typedef void (*CHECKNEW_ReduceAction925_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction925_parser___ReduceAction925___init "new ReduceAction925 parser::ReduceAction925::init"
+val_t NEW_ReduceAction925_parser___ReduceAction925___init(void);
+typedef val_t (*NEW_ReduceAction925_parser___ReduceAction925___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction926 "init var of ReduceAction926"
+void INIT_ATTRIBUTES__ReduceAction926(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction926_t)(val_t p0);
+val_t NEW_ReduceAction926(void);
+#define LOCATE_CHECKNEW_ReduceAction926 "check new ReduceAction926"
+void CHECKNEW_ReduceAction926(val_t p0);
+typedef void (*CHECKNEW_ReduceAction926_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction926_parser___ReduceAction926___init "new ReduceAction926 parser::ReduceAction926::init"
+val_t NEW_ReduceAction926_parser___ReduceAction926___init(void);
+typedef val_t (*NEW_ReduceAction926_parser___ReduceAction926___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction927 "init var of ReduceAction927"
+void INIT_ATTRIBUTES__ReduceAction927(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction927_t)(val_t p0);
+val_t NEW_ReduceAction927(void);
+#define LOCATE_CHECKNEW_ReduceAction927 "check new ReduceAction927"
+void CHECKNEW_ReduceAction927(val_t p0);
+typedef void (*CHECKNEW_ReduceAction927_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction927_parser___ReduceAction927___init "new ReduceAction927 parser::ReduceAction927::init"
+val_t NEW_ReduceAction927_parser___ReduceAction927___init(void);
+typedef val_t (*NEW_ReduceAction927_parser___ReduceAction927___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction928 "init var of ReduceAction928"
+void INIT_ATTRIBUTES__ReduceAction928(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction928_t)(val_t p0);
+val_t NEW_ReduceAction928(void);
+#define LOCATE_CHECKNEW_ReduceAction928 "check new ReduceAction928"
+void CHECKNEW_ReduceAction928(val_t p0);
+typedef void (*CHECKNEW_ReduceAction928_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction928_parser___ReduceAction928___init "new ReduceAction928 parser::ReduceAction928::init"
+val_t NEW_ReduceAction928_parser___ReduceAction928___init(void);
+typedef val_t (*NEW_ReduceAction928_parser___ReduceAction928___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction929 "init var of ReduceAction929"
+void INIT_ATTRIBUTES__ReduceAction929(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction929_t)(val_t p0);
+val_t NEW_ReduceAction929(void);
+#define LOCATE_CHECKNEW_ReduceAction929 "check new ReduceAction929"
+void CHECKNEW_ReduceAction929(val_t p0);
+typedef void (*CHECKNEW_ReduceAction929_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction929_parser___ReduceAction929___init "new ReduceAction929 parser::ReduceAction929::init"
+val_t NEW_ReduceAction929_parser___ReduceAction929___init(void);
+typedef val_t (*NEW_ReduceAction929_parser___ReduceAction929___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction930 "init var of ReduceAction930"
+void INIT_ATTRIBUTES__ReduceAction930(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction930_t)(val_t p0);
+val_t NEW_ReduceAction930(void);
+#define LOCATE_CHECKNEW_ReduceAction930 "check new ReduceAction930"
+void CHECKNEW_ReduceAction930(val_t p0);
+typedef void (*CHECKNEW_ReduceAction930_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction930_parser___ReduceAction930___init "new ReduceAction930 parser::ReduceAction930::init"
+val_t NEW_ReduceAction930_parser___ReduceAction930___init(void);
+typedef val_t (*NEW_ReduceAction930_parser___ReduceAction930___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction931 "init var of ReduceAction931"
+void INIT_ATTRIBUTES__ReduceAction931(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction931_t)(val_t p0);
+val_t NEW_ReduceAction931(void);
+#define LOCATE_CHECKNEW_ReduceAction931 "check new ReduceAction931"
+void CHECKNEW_ReduceAction931(val_t p0);
+typedef void (*CHECKNEW_ReduceAction931_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction931_parser___ReduceAction931___init "new ReduceAction931 parser::ReduceAction931::init"
+val_t NEW_ReduceAction931_parser___ReduceAction931___init(void);
+typedef val_t (*NEW_ReduceAction931_parser___ReduceAction931___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction932 "init var of ReduceAction932"
+void INIT_ATTRIBUTES__ReduceAction932(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction932_t)(val_t p0);
+val_t NEW_ReduceAction932(void);
+#define LOCATE_CHECKNEW_ReduceAction932 "check new ReduceAction932"
+void CHECKNEW_ReduceAction932(val_t p0);
+typedef void (*CHECKNEW_ReduceAction932_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction932_parser___ReduceAction932___init "new ReduceAction932 parser::ReduceAction932::init"
+val_t NEW_ReduceAction932_parser___ReduceAction932___init(void);
+typedef val_t (*NEW_ReduceAction932_parser___ReduceAction932___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction933 "init var of ReduceAction933"
+void INIT_ATTRIBUTES__ReduceAction933(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction933_t)(val_t p0);
+val_t NEW_ReduceAction933(void);
+#define LOCATE_CHECKNEW_ReduceAction933 "check new ReduceAction933"
+void CHECKNEW_ReduceAction933(val_t p0);
+typedef void (*CHECKNEW_ReduceAction933_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction933_parser___ReduceAction933___init "new ReduceAction933 parser::ReduceAction933::init"
+val_t NEW_ReduceAction933_parser___ReduceAction933___init(void);
+typedef val_t (*NEW_ReduceAction933_parser___ReduceAction933___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction934 "init var of ReduceAction934"
+void INIT_ATTRIBUTES__ReduceAction934(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction934_t)(val_t p0);
+val_t NEW_ReduceAction934(void);
+#define LOCATE_CHECKNEW_ReduceAction934 "check new ReduceAction934"
+void CHECKNEW_ReduceAction934(val_t p0);
+typedef void (*CHECKNEW_ReduceAction934_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction934_parser___ReduceAction934___init "new ReduceAction934 parser::ReduceAction934::init"
+val_t NEW_ReduceAction934_parser___ReduceAction934___init(void);
+typedef val_t (*NEW_ReduceAction934_parser___ReduceAction934___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction935 "init var of ReduceAction935"
+void INIT_ATTRIBUTES__ReduceAction935(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction935_t)(val_t p0);
+val_t NEW_ReduceAction935(void);
+#define LOCATE_CHECKNEW_ReduceAction935 "check new ReduceAction935"
+void CHECKNEW_ReduceAction935(val_t p0);
+typedef void (*CHECKNEW_ReduceAction935_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction935_parser___ReduceAction935___init "new ReduceAction935 parser::ReduceAction935::init"
+val_t NEW_ReduceAction935_parser___ReduceAction935___init(void);
+typedef val_t (*NEW_ReduceAction935_parser___ReduceAction935___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction936 "init var of ReduceAction936"
+void INIT_ATTRIBUTES__ReduceAction936(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction936_t)(val_t p0);
+val_t NEW_ReduceAction936(void);
+#define LOCATE_CHECKNEW_ReduceAction936 "check new ReduceAction936"
+void CHECKNEW_ReduceAction936(val_t p0);
+typedef void (*CHECKNEW_ReduceAction936_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction936_parser___ReduceAction936___init "new ReduceAction936 parser::ReduceAction936::init"
+val_t NEW_ReduceAction936_parser___ReduceAction936___init(void);
+typedef val_t (*NEW_ReduceAction936_parser___ReduceAction936___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction937 "init var of ReduceAction937"
+void INIT_ATTRIBUTES__ReduceAction937(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction937_t)(val_t p0);
+val_t NEW_ReduceAction937(void);
+#define LOCATE_CHECKNEW_ReduceAction937 "check new ReduceAction937"
+void CHECKNEW_ReduceAction937(val_t p0);
+typedef void (*CHECKNEW_ReduceAction937_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction937_parser___ReduceAction937___init "new ReduceAction937 parser::ReduceAction937::init"
+val_t NEW_ReduceAction937_parser___ReduceAction937___init(void);
+typedef val_t (*NEW_ReduceAction937_parser___ReduceAction937___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction938 "init var of ReduceAction938"
+void INIT_ATTRIBUTES__ReduceAction938(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction938_t)(val_t p0);
+val_t NEW_ReduceAction938(void);
+#define LOCATE_CHECKNEW_ReduceAction938 "check new ReduceAction938"
+void CHECKNEW_ReduceAction938(val_t p0);
+typedef void (*CHECKNEW_ReduceAction938_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction938_parser___ReduceAction938___init "new ReduceAction938 parser::ReduceAction938::init"
+val_t NEW_ReduceAction938_parser___ReduceAction938___init(void);
+typedef val_t (*NEW_ReduceAction938_parser___ReduceAction938___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction939 "init var of ReduceAction939"
+void INIT_ATTRIBUTES__ReduceAction939(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction939_t)(val_t p0);
+val_t NEW_ReduceAction939(void);
+#define LOCATE_CHECKNEW_ReduceAction939 "check new ReduceAction939"
+void CHECKNEW_ReduceAction939(val_t p0);
+typedef void (*CHECKNEW_ReduceAction939_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction939_parser___ReduceAction939___init "new ReduceAction939 parser::ReduceAction939::init"
+val_t NEW_ReduceAction939_parser___ReduceAction939___init(void);
+typedef val_t (*NEW_ReduceAction939_parser___ReduceAction939___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction940 "init var of ReduceAction940"
+void INIT_ATTRIBUTES__ReduceAction940(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction940_t)(val_t p0);
+val_t NEW_ReduceAction940(void);
+#define LOCATE_CHECKNEW_ReduceAction940 "check new ReduceAction940"
+void CHECKNEW_ReduceAction940(val_t p0);
+typedef void (*CHECKNEW_ReduceAction940_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction940_parser___ReduceAction940___init "new ReduceAction940 parser::ReduceAction940::init"
+val_t NEW_ReduceAction940_parser___ReduceAction940___init(void);
+typedef val_t (*NEW_ReduceAction940_parser___ReduceAction940___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction941 "init var of ReduceAction941"
+void INIT_ATTRIBUTES__ReduceAction941(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction941_t)(val_t p0);
+val_t NEW_ReduceAction941(void);
+#define LOCATE_CHECKNEW_ReduceAction941 "check new ReduceAction941"
+void CHECKNEW_ReduceAction941(val_t p0);
+typedef void (*CHECKNEW_ReduceAction941_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction941_parser___ReduceAction941___init "new ReduceAction941 parser::ReduceAction941::init"
+val_t NEW_ReduceAction941_parser___ReduceAction941___init(void);
+typedef val_t (*NEW_ReduceAction941_parser___ReduceAction941___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction942 "init var of ReduceAction942"
+void INIT_ATTRIBUTES__ReduceAction942(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction942_t)(val_t p0);
+val_t NEW_ReduceAction942(void);
+#define LOCATE_CHECKNEW_ReduceAction942 "check new ReduceAction942"
+void CHECKNEW_ReduceAction942(val_t p0);
+typedef void (*CHECKNEW_ReduceAction942_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction942_parser___ReduceAction942___init "new ReduceAction942 parser::ReduceAction942::init"
+val_t NEW_ReduceAction942_parser___ReduceAction942___init(void);
+typedef val_t (*NEW_ReduceAction942_parser___ReduceAction942___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction943 "init var of ReduceAction943"
+void INIT_ATTRIBUTES__ReduceAction943(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction943_t)(val_t p0);
+val_t NEW_ReduceAction943(void);
+#define LOCATE_CHECKNEW_ReduceAction943 "check new ReduceAction943"
+void CHECKNEW_ReduceAction943(val_t p0);
+typedef void (*CHECKNEW_ReduceAction943_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction943_parser___ReduceAction943___init "new ReduceAction943 parser::ReduceAction943::init"
+val_t NEW_ReduceAction943_parser___ReduceAction943___init(void);
+typedef val_t (*NEW_ReduceAction943_parser___ReduceAction943___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction944 "init var of ReduceAction944"
+void INIT_ATTRIBUTES__ReduceAction944(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction944_t)(val_t p0);
+val_t NEW_ReduceAction944(void);
+#define LOCATE_CHECKNEW_ReduceAction944 "check new ReduceAction944"
+void CHECKNEW_ReduceAction944(val_t p0);
+typedef void (*CHECKNEW_ReduceAction944_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction944_parser___ReduceAction944___init "new ReduceAction944 parser::ReduceAction944::init"
+val_t NEW_ReduceAction944_parser___ReduceAction944___init(void);
+typedef val_t (*NEW_ReduceAction944_parser___ReduceAction944___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction945 "init var of ReduceAction945"
+void INIT_ATTRIBUTES__ReduceAction945(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction945_t)(val_t p0);
+val_t NEW_ReduceAction945(void);
+#define LOCATE_CHECKNEW_ReduceAction945 "check new ReduceAction945"
+void CHECKNEW_ReduceAction945(val_t p0);
+typedef void (*CHECKNEW_ReduceAction945_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction945_parser___ReduceAction945___init "new ReduceAction945 parser::ReduceAction945::init"
+val_t NEW_ReduceAction945_parser___ReduceAction945___init(void);
+typedef val_t (*NEW_ReduceAction945_parser___ReduceAction945___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction946 "init var of ReduceAction946"
+void INIT_ATTRIBUTES__ReduceAction946(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction946_t)(val_t p0);
+val_t NEW_ReduceAction946(void);
+#define LOCATE_CHECKNEW_ReduceAction946 "check new ReduceAction946"
+void CHECKNEW_ReduceAction946(val_t p0);
+typedef void (*CHECKNEW_ReduceAction946_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction946_parser___ReduceAction946___init "new ReduceAction946 parser::ReduceAction946::init"
+val_t NEW_ReduceAction946_parser___ReduceAction946___init(void);
+typedef val_t (*NEW_ReduceAction946_parser___ReduceAction946___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction947 "init var of ReduceAction947"
+void INIT_ATTRIBUTES__ReduceAction947(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction947_t)(val_t p0);
+val_t NEW_ReduceAction947(void);
+#define LOCATE_CHECKNEW_ReduceAction947 "check new ReduceAction947"
+void CHECKNEW_ReduceAction947(val_t p0);
+typedef void (*CHECKNEW_ReduceAction947_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction947_parser___ReduceAction947___init "new ReduceAction947 parser::ReduceAction947::init"
+val_t NEW_ReduceAction947_parser___ReduceAction947___init(void);
+typedef val_t (*NEW_ReduceAction947_parser___ReduceAction947___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction948 "init var of ReduceAction948"
+void INIT_ATTRIBUTES__ReduceAction948(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction948_t)(val_t p0);
+val_t NEW_ReduceAction948(void);
+#define LOCATE_CHECKNEW_ReduceAction948 "check new ReduceAction948"
+void CHECKNEW_ReduceAction948(val_t p0);
+typedef void (*CHECKNEW_ReduceAction948_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction948_parser___ReduceAction948___init "new ReduceAction948 parser::ReduceAction948::init"
+val_t NEW_ReduceAction948_parser___ReduceAction948___init(void);
+typedef val_t (*NEW_ReduceAction948_parser___ReduceAction948___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction949 "init var of ReduceAction949"
+void INIT_ATTRIBUTES__ReduceAction949(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction949_t)(val_t p0);
+val_t NEW_ReduceAction949(void);
+#define LOCATE_CHECKNEW_ReduceAction949 "check new ReduceAction949"
+void CHECKNEW_ReduceAction949(val_t p0);
+typedef void (*CHECKNEW_ReduceAction949_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction949_parser___ReduceAction949___init "new ReduceAction949 parser::ReduceAction949::init"
+val_t NEW_ReduceAction949_parser___ReduceAction949___init(void);
+typedef val_t (*NEW_ReduceAction949_parser___ReduceAction949___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction950 "init var of ReduceAction950"
+void INIT_ATTRIBUTES__ReduceAction950(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction950_t)(val_t p0);
+val_t NEW_ReduceAction950(void);
+#define LOCATE_CHECKNEW_ReduceAction950 "check new ReduceAction950"
+void CHECKNEW_ReduceAction950(val_t p0);
+typedef void (*CHECKNEW_ReduceAction950_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction950_parser___ReduceAction950___init "new ReduceAction950 parser::ReduceAction950::init"
+val_t NEW_ReduceAction950_parser___ReduceAction950___init(void);
+typedef val_t (*NEW_ReduceAction950_parser___ReduceAction950___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction951 "init var of ReduceAction951"
+void INIT_ATTRIBUTES__ReduceAction951(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction951_t)(val_t p0);
+val_t NEW_ReduceAction951(void);
+#define LOCATE_CHECKNEW_ReduceAction951 "check new ReduceAction951"
+void CHECKNEW_ReduceAction951(val_t p0);
+typedef void (*CHECKNEW_ReduceAction951_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction951_parser___ReduceAction951___init "new ReduceAction951 parser::ReduceAction951::init"
+val_t NEW_ReduceAction951_parser___ReduceAction951___init(void);
+typedef val_t (*NEW_ReduceAction951_parser___ReduceAction951___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction952 "init var of ReduceAction952"
+void INIT_ATTRIBUTES__ReduceAction952(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction952_t)(val_t p0);
+val_t NEW_ReduceAction952(void);
+#define LOCATE_CHECKNEW_ReduceAction952 "check new ReduceAction952"
+void CHECKNEW_ReduceAction952(val_t p0);
+typedef void (*CHECKNEW_ReduceAction952_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction952_parser___ReduceAction952___init "new ReduceAction952 parser::ReduceAction952::init"
+val_t NEW_ReduceAction952_parser___ReduceAction952___init(void);
+typedef val_t (*NEW_ReduceAction952_parser___ReduceAction952___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction953 "init var of ReduceAction953"
+void INIT_ATTRIBUTES__ReduceAction953(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction953_t)(val_t p0);
+val_t NEW_ReduceAction953(void);
+#define LOCATE_CHECKNEW_ReduceAction953 "check new ReduceAction953"
+void CHECKNEW_ReduceAction953(val_t p0);
+typedef void (*CHECKNEW_ReduceAction953_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction953_parser___ReduceAction953___init "new ReduceAction953 parser::ReduceAction953::init"
+val_t NEW_ReduceAction953_parser___ReduceAction953___init(void);
+typedef val_t (*NEW_ReduceAction953_parser___ReduceAction953___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction954 "init var of ReduceAction954"
+void INIT_ATTRIBUTES__ReduceAction954(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction954_t)(val_t p0);
+val_t NEW_ReduceAction954(void);
+#define LOCATE_CHECKNEW_ReduceAction954 "check new ReduceAction954"
+void CHECKNEW_ReduceAction954(val_t p0);
+typedef void (*CHECKNEW_ReduceAction954_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction954_parser___ReduceAction954___init "new ReduceAction954 parser::ReduceAction954::init"
+val_t NEW_ReduceAction954_parser___ReduceAction954___init(void);
+typedef val_t (*NEW_ReduceAction954_parser___ReduceAction954___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction955 "init var of ReduceAction955"
+void INIT_ATTRIBUTES__ReduceAction955(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction955_t)(val_t p0);
+val_t NEW_ReduceAction955(void);
+#define LOCATE_CHECKNEW_ReduceAction955 "check new ReduceAction955"
+void CHECKNEW_ReduceAction955(val_t p0);
+typedef void (*CHECKNEW_ReduceAction955_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction955_parser___ReduceAction955___init "new ReduceAction955 parser::ReduceAction955::init"
+val_t NEW_ReduceAction955_parser___ReduceAction955___init(void);
+typedef val_t (*NEW_ReduceAction955_parser___ReduceAction955___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction956 "init var of ReduceAction956"
+void INIT_ATTRIBUTES__ReduceAction956(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction956_t)(val_t p0);
+val_t NEW_ReduceAction956(void);
+#define LOCATE_CHECKNEW_ReduceAction956 "check new ReduceAction956"
+void CHECKNEW_ReduceAction956(val_t p0);
+typedef void (*CHECKNEW_ReduceAction956_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction956_parser___ReduceAction956___init "new ReduceAction956 parser::ReduceAction956::init"
+val_t NEW_ReduceAction956_parser___ReduceAction956___init(void);
+typedef val_t (*NEW_ReduceAction956_parser___ReduceAction956___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction957 "init var of ReduceAction957"
+void INIT_ATTRIBUTES__ReduceAction957(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction957_t)(val_t p0);
+val_t NEW_ReduceAction957(void);
+#define LOCATE_CHECKNEW_ReduceAction957 "check new ReduceAction957"
+void CHECKNEW_ReduceAction957(val_t p0);
+typedef void (*CHECKNEW_ReduceAction957_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction957_parser___ReduceAction957___init "new ReduceAction957 parser::ReduceAction957::init"
+val_t NEW_ReduceAction957_parser___ReduceAction957___init(void);
+typedef val_t (*NEW_ReduceAction957_parser___ReduceAction957___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction958 "init var of ReduceAction958"
+void INIT_ATTRIBUTES__ReduceAction958(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction958_t)(val_t p0);
+val_t NEW_ReduceAction958(void);
+#define LOCATE_CHECKNEW_ReduceAction958 "check new ReduceAction958"
+void CHECKNEW_ReduceAction958(val_t p0);
+typedef void (*CHECKNEW_ReduceAction958_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction958_parser___ReduceAction958___init "new ReduceAction958 parser::ReduceAction958::init"
+val_t NEW_ReduceAction958_parser___ReduceAction958___init(void);
+typedef val_t (*NEW_ReduceAction958_parser___ReduceAction958___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction959 "init var of ReduceAction959"
+void INIT_ATTRIBUTES__ReduceAction959(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction959_t)(val_t p0);
+val_t NEW_ReduceAction959(void);
+#define LOCATE_CHECKNEW_ReduceAction959 "check new ReduceAction959"
+void CHECKNEW_ReduceAction959(val_t p0);
+typedef void (*CHECKNEW_ReduceAction959_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction959_parser___ReduceAction959___init "new ReduceAction959 parser::ReduceAction959::init"
+val_t NEW_ReduceAction959_parser___ReduceAction959___init(void);
+typedef val_t (*NEW_ReduceAction959_parser___ReduceAction959___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction960 "init var of ReduceAction960"
+void INIT_ATTRIBUTES__ReduceAction960(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction960_t)(val_t p0);
+val_t NEW_ReduceAction960(void);
+#define LOCATE_CHECKNEW_ReduceAction960 "check new ReduceAction960"
+void CHECKNEW_ReduceAction960(val_t p0);
+typedef void (*CHECKNEW_ReduceAction960_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction960_parser___ReduceAction960___init "new ReduceAction960 parser::ReduceAction960::init"
+val_t NEW_ReduceAction960_parser___ReduceAction960___init(void);
+typedef val_t (*NEW_ReduceAction960_parser___ReduceAction960___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction961 "init var of ReduceAction961"
+void INIT_ATTRIBUTES__ReduceAction961(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction961_t)(val_t p0);
+val_t NEW_ReduceAction961(void);
+#define LOCATE_CHECKNEW_ReduceAction961 "check new ReduceAction961"
+void CHECKNEW_ReduceAction961(val_t p0);
+typedef void (*CHECKNEW_ReduceAction961_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction961_parser___ReduceAction961___init "new ReduceAction961 parser::ReduceAction961::init"
+val_t NEW_ReduceAction961_parser___ReduceAction961___init(void);
+typedef val_t (*NEW_ReduceAction961_parser___ReduceAction961___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction962 "init var of ReduceAction962"
+void INIT_ATTRIBUTES__ReduceAction962(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction962_t)(val_t p0);
+val_t NEW_ReduceAction962(void);
+#define LOCATE_CHECKNEW_ReduceAction962 "check new ReduceAction962"
+void CHECKNEW_ReduceAction962(val_t p0);
+typedef void (*CHECKNEW_ReduceAction962_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction962_parser___ReduceAction962___init "new ReduceAction962 parser::ReduceAction962::init"
+val_t NEW_ReduceAction962_parser___ReduceAction962___init(void);
+typedef val_t (*NEW_ReduceAction962_parser___ReduceAction962___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction963 "init var of ReduceAction963"
+void INIT_ATTRIBUTES__ReduceAction963(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction963_t)(val_t p0);
+val_t NEW_ReduceAction963(void);
+#define LOCATE_CHECKNEW_ReduceAction963 "check new ReduceAction963"
+void CHECKNEW_ReduceAction963(val_t p0);
+typedef void (*CHECKNEW_ReduceAction963_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction963_parser___ReduceAction963___init "new ReduceAction963 parser::ReduceAction963::init"
+val_t NEW_ReduceAction963_parser___ReduceAction963___init(void);
+typedef val_t (*NEW_ReduceAction963_parser___ReduceAction963___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction964 "init var of ReduceAction964"
+void INIT_ATTRIBUTES__ReduceAction964(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction964_t)(val_t p0);
+val_t NEW_ReduceAction964(void);
+#define LOCATE_CHECKNEW_ReduceAction964 "check new ReduceAction964"
+void CHECKNEW_ReduceAction964(val_t p0);
+typedef void (*CHECKNEW_ReduceAction964_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction964_parser___ReduceAction964___init "new ReduceAction964 parser::ReduceAction964::init"
+val_t NEW_ReduceAction964_parser___ReduceAction964___init(void);
+typedef val_t (*NEW_ReduceAction964_parser___ReduceAction964___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction965 "init var of ReduceAction965"
+void INIT_ATTRIBUTES__ReduceAction965(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction965_t)(val_t p0);
+val_t NEW_ReduceAction965(void);
+#define LOCATE_CHECKNEW_ReduceAction965 "check new ReduceAction965"
+void CHECKNEW_ReduceAction965(val_t p0);
+typedef void (*CHECKNEW_ReduceAction965_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction965_parser___ReduceAction965___init "new ReduceAction965 parser::ReduceAction965::init"
+val_t NEW_ReduceAction965_parser___ReduceAction965___init(void);
+typedef val_t (*NEW_ReduceAction965_parser___ReduceAction965___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction966 "init var of ReduceAction966"
+void INIT_ATTRIBUTES__ReduceAction966(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction966_t)(val_t p0);
+val_t NEW_ReduceAction966(void);
+#define LOCATE_CHECKNEW_ReduceAction966 "check new ReduceAction966"
+void CHECKNEW_ReduceAction966(val_t p0);
+typedef void (*CHECKNEW_ReduceAction966_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction966_parser___ReduceAction966___init "new ReduceAction966 parser::ReduceAction966::init"
+val_t NEW_ReduceAction966_parser___ReduceAction966___init(void);
+typedef val_t (*NEW_ReduceAction966_parser___ReduceAction966___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction967 "init var of ReduceAction967"
+void INIT_ATTRIBUTES__ReduceAction967(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction967_t)(val_t p0);
+val_t NEW_ReduceAction967(void);
+#define LOCATE_CHECKNEW_ReduceAction967 "check new ReduceAction967"
+void CHECKNEW_ReduceAction967(val_t p0);
+typedef void (*CHECKNEW_ReduceAction967_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction967_parser___ReduceAction967___init "new ReduceAction967 parser::ReduceAction967::init"
+val_t NEW_ReduceAction967_parser___ReduceAction967___init(void);
+typedef val_t (*NEW_ReduceAction967_parser___ReduceAction967___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction968 "init var of ReduceAction968"
+void INIT_ATTRIBUTES__ReduceAction968(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction968_t)(val_t p0);
+val_t NEW_ReduceAction968(void);
+#define LOCATE_CHECKNEW_ReduceAction968 "check new ReduceAction968"
+void CHECKNEW_ReduceAction968(val_t p0);
+typedef void (*CHECKNEW_ReduceAction968_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction968_parser___ReduceAction968___init "new ReduceAction968 parser::ReduceAction968::init"
+val_t NEW_ReduceAction968_parser___ReduceAction968___init(void);
+typedef val_t (*NEW_ReduceAction968_parser___ReduceAction968___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction969 "init var of ReduceAction969"
+void INIT_ATTRIBUTES__ReduceAction969(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction969_t)(val_t p0);
+val_t NEW_ReduceAction969(void);
+#define LOCATE_CHECKNEW_ReduceAction969 "check new ReduceAction969"
+void CHECKNEW_ReduceAction969(val_t p0);
+typedef void (*CHECKNEW_ReduceAction969_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction969_parser___ReduceAction969___init "new ReduceAction969 parser::ReduceAction969::init"
+val_t NEW_ReduceAction969_parser___ReduceAction969___init(void);
+typedef val_t (*NEW_ReduceAction969_parser___ReduceAction969___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction970 "init var of ReduceAction970"
+void INIT_ATTRIBUTES__ReduceAction970(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction970_t)(val_t p0);
+val_t NEW_ReduceAction970(void);
+#define LOCATE_CHECKNEW_ReduceAction970 "check new ReduceAction970"
+void CHECKNEW_ReduceAction970(val_t p0);
+typedef void (*CHECKNEW_ReduceAction970_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction970_parser___ReduceAction970___init "new ReduceAction970 parser::ReduceAction970::init"
+val_t NEW_ReduceAction970_parser___ReduceAction970___init(void);
+typedef val_t (*NEW_ReduceAction970_parser___ReduceAction970___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction971 "init var of ReduceAction971"
+void INIT_ATTRIBUTES__ReduceAction971(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction971_t)(val_t p0);
+val_t NEW_ReduceAction971(void);
+#define LOCATE_CHECKNEW_ReduceAction971 "check new ReduceAction971"
+void CHECKNEW_ReduceAction971(val_t p0);
+typedef void (*CHECKNEW_ReduceAction971_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction971_parser___ReduceAction971___init "new ReduceAction971 parser::ReduceAction971::init"
+val_t NEW_ReduceAction971_parser___ReduceAction971___init(void);
+typedef val_t (*NEW_ReduceAction971_parser___ReduceAction971___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction972 "init var of ReduceAction972"
+void INIT_ATTRIBUTES__ReduceAction972(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction972_t)(val_t p0);
+val_t NEW_ReduceAction972(void);
+#define LOCATE_CHECKNEW_ReduceAction972 "check new ReduceAction972"
+void CHECKNEW_ReduceAction972(val_t p0);
+typedef void (*CHECKNEW_ReduceAction972_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction972_parser___ReduceAction972___init "new ReduceAction972 parser::ReduceAction972::init"
+val_t NEW_ReduceAction972_parser___ReduceAction972___init(void);
+typedef val_t (*NEW_ReduceAction972_parser___ReduceAction972___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction973 "init var of ReduceAction973"
+void INIT_ATTRIBUTES__ReduceAction973(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction973_t)(val_t p0);
+val_t NEW_ReduceAction973(void);
+#define LOCATE_CHECKNEW_ReduceAction973 "check new ReduceAction973"
+void CHECKNEW_ReduceAction973(val_t p0);
+typedef void (*CHECKNEW_ReduceAction973_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction973_parser___ReduceAction973___init "new ReduceAction973 parser::ReduceAction973::init"
+val_t NEW_ReduceAction973_parser___ReduceAction973___init(void);
+typedef val_t (*NEW_ReduceAction973_parser___ReduceAction973___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction974 "init var of ReduceAction974"
+void INIT_ATTRIBUTES__ReduceAction974(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction974_t)(val_t p0);
+val_t NEW_ReduceAction974(void);
+#define LOCATE_CHECKNEW_ReduceAction974 "check new ReduceAction974"
+void CHECKNEW_ReduceAction974(val_t p0);
+typedef void (*CHECKNEW_ReduceAction974_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction974_parser___ReduceAction974___init "new ReduceAction974 parser::ReduceAction974::init"
+val_t NEW_ReduceAction974_parser___ReduceAction974___init(void);
+typedef val_t (*NEW_ReduceAction974_parser___ReduceAction974___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction975 "init var of ReduceAction975"
+void INIT_ATTRIBUTES__ReduceAction975(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction975_t)(val_t p0);
+val_t NEW_ReduceAction975(void);
+#define LOCATE_CHECKNEW_ReduceAction975 "check new ReduceAction975"
+void CHECKNEW_ReduceAction975(val_t p0);
+typedef void (*CHECKNEW_ReduceAction975_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction975_parser___ReduceAction975___init "new ReduceAction975 parser::ReduceAction975::init"
+val_t NEW_ReduceAction975_parser___ReduceAction975___init(void);
+typedef val_t (*NEW_ReduceAction975_parser___ReduceAction975___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction976 "init var of ReduceAction976"
+void INIT_ATTRIBUTES__ReduceAction976(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction976_t)(val_t p0);
+val_t NEW_ReduceAction976(void);
+#define LOCATE_CHECKNEW_ReduceAction976 "check new ReduceAction976"
+void CHECKNEW_ReduceAction976(val_t p0);
+typedef void (*CHECKNEW_ReduceAction976_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction976_parser___ReduceAction976___init "new ReduceAction976 parser::ReduceAction976::init"
+val_t NEW_ReduceAction976_parser___ReduceAction976___init(void);
+typedef val_t (*NEW_ReduceAction976_parser___ReduceAction976___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction977 "init var of ReduceAction977"
+void INIT_ATTRIBUTES__ReduceAction977(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction977_t)(val_t p0);
+val_t NEW_ReduceAction977(void);
+#define LOCATE_CHECKNEW_ReduceAction977 "check new ReduceAction977"
+void CHECKNEW_ReduceAction977(val_t p0);
+typedef void (*CHECKNEW_ReduceAction977_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction977_parser___ReduceAction977___init "new ReduceAction977 parser::ReduceAction977::init"
+val_t NEW_ReduceAction977_parser___ReduceAction977___init(void);
+typedef val_t (*NEW_ReduceAction977_parser___ReduceAction977___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction978 "init var of ReduceAction978"
+void INIT_ATTRIBUTES__ReduceAction978(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction978_t)(val_t p0);
+val_t NEW_ReduceAction978(void);
+#define LOCATE_CHECKNEW_ReduceAction978 "check new ReduceAction978"
+void CHECKNEW_ReduceAction978(val_t p0);
+typedef void (*CHECKNEW_ReduceAction978_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction978_parser___ReduceAction978___init "new ReduceAction978 parser::ReduceAction978::init"
+val_t NEW_ReduceAction978_parser___ReduceAction978___init(void);
+typedef val_t (*NEW_ReduceAction978_parser___ReduceAction978___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction979 "init var of ReduceAction979"
+void INIT_ATTRIBUTES__ReduceAction979(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction979_t)(val_t p0);
+val_t NEW_ReduceAction979(void);
+#define LOCATE_CHECKNEW_ReduceAction979 "check new ReduceAction979"
+void CHECKNEW_ReduceAction979(val_t p0);
+typedef void (*CHECKNEW_ReduceAction979_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction979_parser___ReduceAction979___init "new ReduceAction979 parser::ReduceAction979::init"
+val_t NEW_ReduceAction979_parser___ReduceAction979___init(void);
+typedef val_t (*NEW_ReduceAction979_parser___ReduceAction979___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction980 "init var of ReduceAction980"
+void INIT_ATTRIBUTES__ReduceAction980(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction980_t)(val_t p0);
+val_t NEW_ReduceAction980(void);
+#define LOCATE_CHECKNEW_ReduceAction980 "check new ReduceAction980"
+void CHECKNEW_ReduceAction980(val_t p0);
+typedef void (*CHECKNEW_ReduceAction980_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction980_parser___ReduceAction980___init "new ReduceAction980 parser::ReduceAction980::init"
+val_t NEW_ReduceAction980_parser___ReduceAction980___init(void);
+typedef val_t (*NEW_ReduceAction980_parser___ReduceAction980___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction981 "init var of ReduceAction981"
+void INIT_ATTRIBUTES__ReduceAction981(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction981_t)(val_t p0);
+val_t NEW_ReduceAction981(void);
+#define LOCATE_CHECKNEW_ReduceAction981 "check new ReduceAction981"
+void CHECKNEW_ReduceAction981(val_t p0);
+typedef void (*CHECKNEW_ReduceAction981_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction981_parser___ReduceAction981___init "new ReduceAction981 parser::ReduceAction981::init"
+val_t NEW_ReduceAction981_parser___ReduceAction981___init(void);
+typedef val_t (*NEW_ReduceAction981_parser___ReduceAction981___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction982 "init var of ReduceAction982"
+void INIT_ATTRIBUTES__ReduceAction982(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction982_t)(val_t p0);
+val_t NEW_ReduceAction982(void);
+#define LOCATE_CHECKNEW_ReduceAction982 "check new ReduceAction982"
+void CHECKNEW_ReduceAction982(val_t p0);
+typedef void (*CHECKNEW_ReduceAction982_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction982_parser___ReduceAction982___init "new ReduceAction982 parser::ReduceAction982::init"
+val_t NEW_ReduceAction982_parser___ReduceAction982___init(void);
+typedef val_t (*NEW_ReduceAction982_parser___ReduceAction982___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction983 "init var of ReduceAction983"
+void INIT_ATTRIBUTES__ReduceAction983(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction983_t)(val_t p0);
+val_t NEW_ReduceAction983(void);
+#define LOCATE_CHECKNEW_ReduceAction983 "check new ReduceAction983"
+void CHECKNEW_ReduceAction983(val_t p0);
+typedef void (*CHECKNEW_ReduceAction983_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction983_parser___ReduceAction983___init "new ReduceAction983 parser::ReduceAction983::init"
+val_t NEW_ReduceAction983_parser___ReduceAction983___init(void);
+typedef val_t (*NEW_ReduceAction983_parser___ReduceAction983___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction984 "init var of ReduceAction984"
+void INIT_ATTRIBUTES__ReduceAction984(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction984_t)(val_t p0);
+val_t NEW_ReduceAction984(void);
+#define LOCATE_CHECKNEW_ReduceAction984 "check new ReduceAction984"
+void CHECKNEW_ReduceAction984(val_t p0);
+typedef void (*CHECKNEW_ReduceAction984_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction984_parser___ReduceAction984___init "new ReduceAction984 parser::ReduceAction984::init"
+val_t NEW_ReduceAction984_parser___ReduceAction984___init(void);
+typedef val_t (*NEW_ReduceAction984_parser___ReduceAction984___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction985 "init var of ReduceAction985"
+void INIT_ATTRIBUTES__ReduceAction985(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction985_t)(val_t p0);
+val_t NEW_ReduceAction985(void);
+#define LOCATE_CHECKNEW_ReduceAction985 "check new ReduceAction985"
+void CHECKNEW_ReduceAction985(val_t p0);
+typedef void (*CHECKNEW_ReduceAction985_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction985_parser___ReduceAction985___init "new ReduceAction985 parser::ReduceAction985::init"
+val_t NEW_ReduceAction985_parser___ReduceAction985___init(void);
+typedef val_t (*NEW_ReduceAction985_parser___ReduceAction985___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction986 "init var of ReduceAction986"
+void INIT_ATTRIBUTES__ReduceAction986(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction986_t)(val_t p0);
+val_t NEW_ReduceAction986(void);
+#define LOCATE_CHECKNEW_ReduceAction986 "check new ReduceAction986"
+void CHECKNEW_ReduceAction986(val_t p0);
+typedef void (*CHECKNEW_ReduceAction986_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction986_parser___ReduceAction986___init "new ReduceAction986 parser::ReduceAction986::init"
+val_t NEW_ReduceAction986_parser___ReduceAction986___init(void);
+typedef val_t (*NEW_ReduceAction986_parser___ReduceAction986___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction987 "init var of ReduceAction987"
+void INIT_ATTRIBUTES__ReduceAction987(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction987_t)(val_t p0);
+val_t NEW_ReduceAction987(void);
+#define LOCATE_CHECKNEW_ReduceAction987 "check new ReduceAction987"
+void CHECKNEW_ReduceAction987(val_t p0);
+typedef void (*CHECKNEW_ReduceAction987_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction987_parser___ReduceAction987___init "new ReduceAction987 parser::ReduceAction987::init"
+val_t NEW_ReduceAction987_parser___ReduceAction987___init(void);
+typedef val_t (*NEW_ReduceAction987_parser___ReduceAction987___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction988 "init var of ReduceAction988"
+void INIT_ATTRIBUTES__ReduceAction988(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction988_t)(val_t p0);
+val_t NEW_ReduceAction988(void);
+#define LOCATE_CHECKNEW_ReduceAction988 "check new ReduceAction988"
+void CHECKNEW_ReduceAction988(val_t p0);
+typedef void (*CHECKNEW_ReduceAction988_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction988_parser___ReduceAction988___init "new ReduceAction988 parser::ReduceAction988::init"
+val_t NEW_ReduceAction988_parser___ReduceAction988___init(void);
+typedef val_t (*NEW_ReduceAction988_parser___ReduceAction988___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction989 "init var of ReduceAction989"
+void INIT_ATTRIBUTES__ReduceAction989(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction989_t)(val_t p0);
+val_t NEW_ReduceAction989(void);
+#define LOCATE_CHECKNEW_ReduceAction989 "check new ReduceAction989"
+void CHECKNEW_ReduceAction989(val_t p0);
+typedef void (*CHECKNEW_ReduceAction989_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction989_parser___ReduceAction989___init "new ReduceAction989 parser::ReduceAction989::init"
+val_t NEW_ReduceAction989_parser___ReduceAction989___init(void);
+typedef val_t (*NEW_ReduceAction989_parser___ReduceAction989___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction990 "init var of ReduceAction990"
+void INIT_ATTRIBUTES__ReduceAction990(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction990_t)(val_t p0);
+val_t NEW_ReduceAction990(void);
+#define LOCATE_CHECKNEW_ReduceAction990 "check new ReduceAction990"
+void CHECKNEW_ReduceAction990(val_t p0);
+typedef void (*CHECKNEW_ReduceAction990_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction990_parser___ReduceAction990___init "new ReduceAction990 parser::ReduceAction990::init"
+val_t NEW_ReduceAction990_parser___ReduceAction990___init(void);
+typedef val_t (*NEW_ReduceAction990_parser___ReduceAction990___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction991 "init var of ReduceAction991"
+void INIT_ATTRIBUTES__ReduceAction991(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction991_t)(val_t p0);
+val_t NEW_ReduceAction991(void);
+#define LOCATE_CHECKNEW_ReduceAction991 "check new ReduceAction991"
+void CHECKNEW_ReduceAction991(val_t p0);
+typedef void (*CHECKNEW_ReduceAction991_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction991_parser___ReduceAction991___init "new ReduceAction991 parser::ReduceAction991::init"
+val_t NEW_ReduceAction991_parser___ReduceAction991___init(void);
+typedef val_t (*NEW_ReduceAction991_parser___ReduceAction991___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction992 "init var of ReduceAction992"
+void INIT_ATTRIBUTES__ReduceAction992(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction992_t)(val_t p0);
+val_t NEW_ReduceAction992(void);
+#define LOCATE_CHECKNEW_ReduceAction992 "check new ReduceAction992"
+void CHECKNEW_ReduceAction992(val_t p0);
+typedef void (*CHECKNEW_ReduceAction992_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction992_parser___ReduceAction992___init "new ReduceAction992 parser::ReduceAction992::init"
+val_t NEW_ReduceAction992_parser___ReduceAction992___init(void);
+typedef val_t (*NEW_ReduceAction992_parser___ReduceAction992___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction993 "init var of ReduceAction993"
+void INIT_ATTRIBUTES__ReduceAction993(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction993_t)(val_t p0);
+val_t NEW_ReduceAction993(void);
+#define LOCATE_CHECKNEW_ReduceAction993 "check new ReduceAction993"
+void CHECKNEW_ReduceAction993(val_t p0);
+typedef void (*CHECKNEW_ReduceAction993_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction993_parser___ReduceAction993___init "new ReduceAction993 parser::ReduceAction993::init"
+val_t NEW_ReduceAction993_parser___ReduceAction993___init(void);
+typedef val_t (*NEW_ReduceAction993_parser___ReduceAction993___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction994 "init var of ReduceAction994"
+void INIT_ATTRIBUTES__ReduceAction994(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction994_t)(val_t p0);
+val_t NEW_ReduceAction994(void);
+#define LOCATE_CHECKNEW_ReduceAction994 "check new ReduceAction994"
+void CHECKNEW_ReduceAction994(val_t p0);
+typedef void (*CHECKNEW_ReduceAction994_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction994_parser___ReduceAction994___init "new ReduceAction994 parser::ReduceAction994::init"
+val_t NEW_ReduceAction994_parser___ReduceAction994___init(void);
+typedef val_t (*NEW_ReduceAction994_parser___ReduceAction994___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction995 "init var of ReduceAction995"
+void INIT_ATTRIBUTES__ReduceAction995(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction995_t)(val_t p0);
+val_t NEW_ReduceAction995(void);
+#define LOCATE_CHECKNEW_ReduceAction995 "check new ReduceAction995"
+void CHECKNEW_ReduceAction995(val_t p0);
+typedef void (*CHECKNEW_ReduceAction995_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction995_parser___ReduceAction995___init "new ReduceAction995 parser::ReduceAction995::init"
+val_t NEW_ReduceAction995_parser___ReduceAction995___init(void);
+typedef val_t (*NEW_ReduceAction995_parser___ReduceAction995___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction996 "init var of ReduceAction996"
+void INIT_ATTRIBUTES__ReduceAction996(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction996_t)(val_t p0);
+val_t NEW_ReduceAction996(void);
+#define LOCATE_CHECKNEW_ReduceAction996 "check new ReduceAction996"
+void CHECKNEW_ReduceAction996(val_t p0);
+typedef void (*CHECKNEW_ReduceAction996_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction996_parser___ReduceAction996___init "new ReduceAction996 parser::ReduceAction996::init"
+val_t NEW_ReduceAction996_parser___ReduceAction996___init(void);
+typedef val_t (*NEW_ReduceAction996_parser___ReduceAction996___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction997 "init var of ReduceAction997"
+void INIT_ATTRIBUTES__ReduceAction997(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction997_t)(val_t p0);
+val_t NEW_ReduceAction997(void);
+#define LOCATE_CHECKNEW_ReduceAction997 "check new ReduceAction997"
+void CHECKNEW_ReduceAction997(val_t p0);
+typedef void (*CHECKNEW_ReduceAction997_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction997_parser___ReduceAction997___init "new ReduceAction997 parser::ReduceAction997::init"
+val_t NEW_ReduceAction997_parser___ReduceAction997___init(void);
+typedef val_t (*NEW_ReduceAction997_parser___ReduceAction997___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction998 "init var of ReduceAction998"
+void INIT_ATTRIBUTES__ReduceAction998(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction998_t)(val_t p0);
+val_t NEW_ReduceAction998(void);
+#define LOCATE_CHECKNEW_ReduceAction998 "check new ReduceAction998"
+void CHECKNEW_ReduceAction998(val_t p0);
+typedef void (*CHECKNEW_ReduceAction998_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction998_parser___ReduceAction998___init "new ReduceAction998 parser::ReduceAction998::init"
+val_t NEW_ReduceAction998_parser___ReduceAction998___init(void);
+typedef val_t (*NEW_ReduceAction998_parser___ReduceAction998___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction999 "init var of ReduceAction999"
+void INIT_ATTRIBUTES__ReduceAction999(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction999_t)(val_t p0);
+val_t NEW_ReduceAction999(void);
+#define LOCATE_CHECKNEW_ReduceAction999 "check new ReduceAction999"
+void CHECKNEW_ReduceAction999(val_t p0);
+typedef void (*CHECKNEW_ReduceAction999_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction999_parser___ReduceAction999___init "new ReduceAction999 parser::ReduceAction999::init"
+val_t NEW_ReduceAction999_parser___ReduceAction999___init(void);
+typedef val_t (*NEW_ReduceAction999_parser___ReduceAction999___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1000 "init var of ReduceAction1000"
+void INIT_ATTRIBUTES__ReduceAction1000(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1000_t)(val_t p0);
+val_t NEW_ReduceAction1000(void);
+#define LOCATE_CHECKNEW_ReduceAction1000 "check new ReduceAction1000"
+void CHECKNEW_ReduceAction1000(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1000_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1000_parser___ReduceAction1000___init "new ReduceAction1000 parser::ReduceAction1000::init"
+val_t NEW_ReduceAction1000_parser___ReduceAction1000___init(void);
+typedef val_t (*NEW_ReduceAction1000_parser___ReduceAction1000___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1001 "init var of ReduceAction1001"
+void INIT_ATTRIBUTES__ReduceAction1001(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1001_t)(val_t p0);
+val_t NEW_ReduceAction1001(void);
+#define LOCATE_CHECKNEW_ReduceAction1001 "check new ReduceAction1001"
+void CHECKNEW_ReduceAction1001(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1001_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1001_parser___ReduceAction1001___init "new ReduceAction1001 parser::ReduceAction1001::init"
+val_t NEW_ReduceAction1001_parser___ReduceAction1001___init(void);
+typedef val_t (*NEW_ReduceAction1001_parser___ReduceAction1001___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1002 "init var of ReduceAction1002"
+void INIT_ATTRIBUTES__ReduceAction1002(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1002_t)(val_t p0);
+val_t NEW_ReduceAction1002(void);
+#define LOCATE_CHECKNEW_ReduceAction1002 "check new ReduceAction1002"
+void CHECKNEW_ReduceAction1002(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1002_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1002_parser___ReduceAction1002___init "new ReduceAction1002 parser::ReduceAction1002::init"
+val_t NEW_ReduceAction1002_parser___ReduceAction1002___init(void);
+typedef val_t (*NEW_ReduceAction1002_parser___ReduceAction1002___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1003 "init var of ReduceAction1003"
+void INIT_ATTRIBUTES__ReduceAction1003(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1003_t)(val_t p0);
+val_t NEW_ReduceAction1003(void);
+#define LOCATE_CHECKNEW_ReduceAction1003 "check new ReduceAction1003"
+void CHECKNEW_ReduceAction1003(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1003_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1003_parser___ReduceAction1003___init "new ReduceAction1003 parser::ReduceAction1003::init"
+val_t NEW_ReduceAction1003_parser___ReduceAction1003___init(void);
+typedef val_t (*NEW_ReduceAction1003_parser___ReduceAction1003___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1004 "init var of ReduceAction1004"
+void INIT_ATTRIBUTES__ReduceAction1004(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1004_t)(val_t p0);
+val_t NEW_ReduceAction1004(void);
+#define LOCATE_CHECKNEW_ReduceAction1004 "check new ReduceAction1004"
+void CHECKNEW_ReduceAction1004(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1004_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1004_parser___ReduceAction1004___init "new ReduceAction1004 parser::ReduceAction1004::init"
+val_t NEW_ReduceAction1004_parser___ReduceAction1004___init(void);
+typedef val_t (*NEW_ReduceAction1004_parser___ReduceAction1004___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1005 "init var of ReduceAction1005"
+void INIT_ATTRIBUTES__ReduceAction1005(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1005_t)(val_t p0);
+val_t NEW_ReduceAction1005(void);
+#define LOCATE_CHECKNEW_ReduceAction1005 "check new ReduceAction1005"
+void CHECKNEW_ReduceAction1005(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1005_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1005_parser___ReduceAction1005___init "new ReduceAction1005 parser::ReduceAction1005::init"
+val_t NEW_ReduceAction1005_parser___ReduceAction1005___init(void);
+typedef val_t (*NEW_ReduceAction1005_parser___ReduceAction1005___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1006 "init var of ReduceAction1006"
+void INIT_ATTRIBUTES__ReduceAction1006(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1006_t)(val_t p0);
+val_t NEW_ReduceAction1006(void);
+#define LOCATE_CHECKNEW_ReduceAction1006 "check new ReduceAction1006"
+void CHECKNEW_ReduceAction1006(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1006_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1006_parser___ReduceAction1006___init "new ReduceAction1006 parser::ReduceAction1006::init"
+val_t NEW_ReduceAction1006_parser___ReduceAction1006___init(void);
+typedef val_t (*NEW_ReduceAction1006_parser___ReduceAction1006___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1007 "init var of ReduceAction1007"
+void INIT_ATTRIBUTES__ReduceAction1007(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1007_t)(val_t p0);
+val_t NEW_ReduceAction1007(void);
+#define LOCATE_CHECKNEW_ReduceAction1007 "check new ReduceAction1007"
+void CHECKNEW_ReduceAction1007(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1007_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1007_parser___ReduceAction1007___init "new ReduceAction1007 parser::ReduceAction1007::init"
+val_t NEW_ReduceAction1007_parser___ReduceAction1007___init(void);
+typedef val_t (*NEW_ReduceAction1007_parser___ReduceAction1007___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1008 "init var of ReduceAction1008"
+void INIT_ATTRIBUTES__ReduceAction1008(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1008_t)(val_t p0);
+val_t NEW_ReduceAction1008(void);
+#define LOCATE_CHECKNEW_ReduceAction1008 "check new ReduceAction1008"
+void CHECKNEW_ReduceAction1008(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1008_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1008_parser___ReduceAction1008___init "new ReduceAction1008 parser::ReduceAction1008::init"
+val_t NEW_ReduceAction1008_parser___ReduceAction1008___init(void);
+typedef val_t (*NEW_ReduceAction1008_parser___ReduceAction1008___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1009 "init var of ReduceAction1009"
+void INIT_ATTRIBUTES__ReduceAction1009(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1009_t)(val_t p0);
+val_t NEW_ReduceAction1009(void);
+#define LOCATE_CHECKNEW_ReduceAction1009 "check new ReduceAction1009"
+void CHECKNEW_ReduceAction1009(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1009_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1009_parser___ReduceAction1009___init "new ReduceAction1009 parser::ReduceAction1009::init"
+val_t NEW_ReduceAction1009_parser___ReduceAction1009___init(void);
+typedef val_t (*NEW_ReduceAction1009_parser___ReduceAction1009___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1010 "init var of ReduceAction1010"
+void INIT_ATTRIBUTES__ReduceAction1010(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1010_t)(val_t p0);
+val_t NEW_ReduceAction1010(void);
+#define LOCATE_CHECKNEW_ReduceAction1010 "check new ReduceAction1010"
+void CHECKNEW_ReduceAction1010(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1010_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1010_parser___ReduceAction1010___init "new ReduceAction1010 parser::ReduceAction1010::init"
+val_t NEW_ReduceAction1010_parser___ReduceAction1010___init(void);
+typedef val_t (*NEW_ReduceAction1010_parser___ReduceAction1010___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1011 "init var of ReduceAction1011"
+void INIT_ATTRIBUTES__ReduceAction1011(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1011_t)(val_t p0);
+val_t NEW_ReduceAction1011(void);
+#define LOCATE_CHECKNEW_ReduceAction1011 "check new ReduceAction1011"
+void CHECKNEW_ReduceAction1011(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1011_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1011_parser___ReduceAction1011___init "new ReduceAction1011 parser::ReduceAction1011::init"
+val_t NEW_ReduceAction1011_parser___ReduceAction1011___init(void);
+typedef val_t (*NEW_ReduceAction1011_parser___ReduceAction1011___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1012 "init var of ReduceAction1012"
+void INIT_ATTRIBUTES__ReduceAction1012(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1012_t)(val_t p0);
+val_t NEW_ReduceAction1012(void);
+#define LOCATE_CHECKNEW_ReduceAction1012 "check new ReduceAction1012"
+void CHECKNEW_ReduceAction1012(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1012_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1012_parser___ReduceAction1012___init "new ReduceAction1012 parser::ReduceAction1012::init"
+val_t NEW_ReduceAction1012_parser___ReduceAction1012___init(void);
+typedef val_t (*NEW_ReduceAction1012_parser___ReduceAction1012___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1013 "init var of ReduceAction1013"
+void INIT_ATTRIBUTES__ReduceAction1013(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1013_t)(val_t p0);
+val_t NEW_ReduceAction1013(void);
+#define LOCATE_CHECKNEW_ReduceAction1013 "check new ReduceAction1013"
+void CHECKNEW_ReduceAction1013(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1013_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1013_parser___ReduceAction1013___init "new ReduceAction1013 parser::ReduceAction1013::init"
+val_t NEW_ReduceAction1013_parser___ReduceAction1013___init(void);
+typedef val_t (*NEW_ReduceAction1013_parser___ReduceAction1013___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1014 "init var of ReduceAction1014"
+void INIT_ATTRIBUTES__ReduceAction1014(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1014_t)(val_t p0);
+val_t NEW_ReduceAction1014(void);
+#define LOCATE_CHECKNEW_ReduceAction1014 "check new ReduceAction1014"
+void CHECKNEW_ReduceAction1014(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1014_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1014_parser___ReduceAction1014___init "new ReduceAction1014 parser::ReduceAction1014::init"
+val_t NEW_ReduceAction1014_parser___ReduceAction1014___init(void);
+typedef val_t (*NEW_ReduceAction1014_parser___ReduceAction1014___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1015 "init var of ReduceAction1015"
+void INIT_ATTRIBUTES__ReduceAction1015(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1015_t)(val_t p0);
+val_t NEW_ReduceAction1015(void);
+#define LOCATE_CHECKNEW_ReduceAction1015 "check new ReduceAction1015"
+void CHECKNEW_ReduceAction1015(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1015_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1015_parser___ReduceAction1015___init "new ReduceAction1015 parser::ReduceAction1015::init"
+val_t NEW_ReduceAction1015_parser___ReduceAction1015___init(void);
+typedef val_t (*NEW_ReduceAction1015_parser___ReduceAction1015___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1016 "init var of ReduceAction1016"
+void INIT_ATTRIBUTES__ReduceAction1016(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1016_t)(val_t p0);
+val_t NEW_ReduceAction1016(void);
+#define LOCATE_CHECKNEW_ReduceAction1016 "check new ReduceAction1016"
+void CHECKNEW_ReduceAction1016(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1016_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1016_parser___ReduceAction1016___init "new ReduceAction1016 parser::ReduceAction1016::init"
+val_t NEW_ReduceAction1016_parser___ReduceAction1016___init(void);
+typedef val_t (*NEW_ReduceAction1016_parser___ReduceAction1016___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1017 "init var of ReduceAction1017"
+void INIT_ATTRIBUTES__ReduceAction1017(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1017_t)(val_t p0);
+val_t NEW_ReduceAction1017(void);
+#define LOCATE_CHECKNEW_ReduceAction1017 "check new ReduceAction1017"
+void CHECKNEW_ReduceAction1017(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1017_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1017_parser___ReduceAction1017___init "new ReduceAction1017 parser::ReduceAction1017::init"
+val_t NEW_ReduceAction1017_parser___ReduceAction1017___init(void);
+typedef val_t (*NEW_ReduceAction1017_parser___ReduceAction1017___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1018 "init var of ReduceAction1018"
+void INIT_ATTRIBUTES__ReduceAction1018(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1018_t)(val_t p0);
+val_t NEW_ReduceAction1018(void);
+#define LOCATE_CHECKNEW_ReduceAction1018 "check new ReduceAction1018"
+void CHECKNEW_ReduceAction1018(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1018_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1018_parser___ReduceAction1018___init "new ReduceAction1018 parser::ReduceAction1018::init"
+val_t NEW_ReduceAction1018_parser___ReduceAction1018___init(void);
+typedef val_t (*NEW_ReduceAction1018_parser___ReduceAction1018___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1019 "init var of ReduceAction1019"
+void INIT_ATTRIBUTES__ReduceAction1019(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1019_t)(val_t p0);
+val_t NEW_ReduceAction1019(void);
+#define LOCATE_CHECKNEW_ReduceAction1019 "check new ReduceAction1019"
+void CHECKNEW_ReduceAction1019(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1019_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1019_parser___ReduceAction1019___init "new ReduceAction1019 parser::ReduceAction1019::init"
+val_t NEW_ReduceAction1019_parser___ReduceAction1019___init(void);
+typedef val_t (*NEW_ReduceAction1019_parser___ReduceAction1019___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1020 "init var of ReduceAction1020"
+void INIT_ATTRIBUTES__ReduceAction1020(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1020_t)(val_t p0);
+val_t NEW_ReduceAction1020(void);
+#define LOCATE_CHECKNEW_ReduceAction1020 "check new ReduceAction1020"
+void CHECKNEW_ReduceAction1020(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1020_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1020_parser___ReduceAction1020___init "new ReduceAction1020 parser::ReduceAction1020::init"
+val_t NEW_ReduceAction1020_parser___ReduceAction1020___init(void);
+typedef val_t (*NEW_ReduceAction1020_parser___ReduceAction1020___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1021 "init var of ReduceAction1021"
+void INIT_ATTRIBUTES__ReduceAction1021(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1021_t)(val_t p0);
+val_t NEW_ReduceAction1021(void);
+#define LOCATE_CHECKNEW_ReduceAction1021 "check new ReduceAction1021"
+void CHECKNEW_ReduceAction1021(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1021_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1021_parser___ReduceAction1021___init "new ReduceAction1021 parser::ReduceAction1021::init"
+val_t NEW_ReduceAction1021_parser___ReduceAction1021___init(void);
+typedef val_t (*NEW_ReduceAction1021_parser___ReduceAction1021___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1022 "init var of ReduceAction1022"
+void INIT_ATTRIBUTES__ReduceAction1022(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1022_t)(val_t p0);
+val_t NEW_ReduceAction1022(void);
+#define LOCATE_CHECKNEW_ReduceAction1022 "check new ReduceAction1022"
+void CHECKNEW_ReduceAction1022(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1022_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1022_parser___ReduceAction1022___init "new ReduceAction1022 parser::ReduceAction1022::init"
+val_t NEW_ReduceAction1022_parser___ReduceAction1022___init(void);
+typedef val_t (*NEW_ReduceAction1022_parser___ReduceAction1022___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1023 "init var of ReduceAction1023"
+void INIT_ATTRIBUTES__ReduceAction1023(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1023_t)(val_t p0);
+val_t NEW_ReduceAction1023(void);
+#define LOCATE_CHECKNEW_ReduceAction1023 "check new ReduceAction1023"
+void CHECKNEW_ReduceAction1023(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1023_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1023_parser___ReduceAction1023___init "new ReduceAction1023 parser::ReduceAction1023::init"
+val_t NEW_ReduceAction1023_parser___ReduceAction1023___init(void);
+typedef val_t (*NEW_ReduceAction1023_parser___ReduceAction1023___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1024 "init var of ReduceAction1024"
+void INIT_ATTRIBUTES__ReduceAction1024(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1024_t)(val_t p0);
+val_t NEW_ReduceAction1024(void);
+#define LOCATE_CHECKNEW_ReduceAction1024 "check new ReduceAction1024"
+void CHECKNEW_ReduceAction1024(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1024_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1024_parser___ReduceAction1024___init "new ReduceAction1024 parser::ReduceAction1024::init"
+val_t NEW_ReduceAction1024_parser___ReduceAction1024___init(void);
+typedef val_t (*NEW_ReduceAction1024_parser___ReduceAction1024___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1025 "init var of ReduceAction1025"
+void INIT_ATTRIBUTES__ReduceAction1025(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1025_t)(val_t p0);
+val_t NEW_ReduceAction1025(void);
+#define LOCATE_CHECKNEW_ReduceAction1025 "check new ReduceAction1025"
+void CHECKNEW_ReduceAction1025(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1025_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1025_parser___ReduceAction1025___init "new ReduceAction1025 parser::ReduceAction1025::init"
+val_t NEW_ReduceAction1025_parser___ReduceAction1025___init(void);
+typedef val_t (*NEW_ReduceAction1025_parser___ReduceAction1025___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1026 "init var of ReduceAction1026"
+void INIT_ATTRIBUTES__ReduceAction1026(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1026_t)(val_t p0);
+val_t NEW_ReduceAction1026(void);
+#define LOCATE_CHECKNEW_ReduceAction1026 "check new ReduceAction1026"
+void CHECKNEW_ReduceAction1026(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1026_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1026_parser___ReduceAction1026___init "new ReduceAction1026 parser::ReduceAction1026::init"
+val_t NEW_ReduceAction1026_parser___ReduceAction1026___init(void);
+typedef val_t (*NEW_ReduceAction1026_parser___ReduceAction1026___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1027 "init var of ReduceAction1027"
+void INIT_ATTRIBUTES__ReduceAction1027(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1027_t)(val_t p0);
+val_t NEW_ReduceAction1027(void);
+#define LOCATE_CHECKNEW_ReduceAction1027 "check new ReduceAction1027"
+void CHECKNEW_ReduceAction1027(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1027_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1027_parser___ReduceAction1027___init "new ReduceAction1027 parser::ReduceAction1027::init"
+val_t NEW_ReduceAction1027_parser___ReduceAction1027___init(void);
+typedef val_t (*NEW_ReduceAction1027_parser___ReduceAction1027___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1028 "init var of ReduceAction1028"
+void INIT_ATTRIBUTES__ReduceAction1028(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1028_t)(val_t p0);
+val_t NEW_ReduceAction1028(void);
+#define LOCATE_CHECKNEW_ReduceAction1028 "check new ReduceAction1028"
+void CHECKNEW_ReduceAction1028(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1028_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1028_parser___ReduceAction1028___init "new ReduceAction1028 parser::ReduceAction1028::init"
+val_t NEW_ReduceAction1028_parser___ReduceAction1028___init(void);
+typedef val_t (*NEW_ReduceAction1028_parser___ReduceAction1028___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1029 "init var of ReduceAction1029"
+void INIT_ATTRIBUTES__ReduceAction1029(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1029_t)(val_t p0);
+val_t NEW_ReduceAction1029(void);
+#define LOCATE_CHECKNEW_ReduceAction1029 "check new ReduceAction1029"
+void CHECKNEW_ReduceAction1029(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1029_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1029_parser___ReduceAction1029___init "new ReduceAction1029 parser::ReduceAction1029::init"
+val_t NEW_ReduceAction1029_parser___ReduceAction1029___init(void);
+typedef val_t (*NEW_ReduceAction1029_parser___ReduceAction1029___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1030 "init var of ReduceAction1030"
+void INIT_ATTRIBUTES__ReduceAction1030(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1030_t)(val_t p0);
+val_t NEW_ReduceAction1030(void);
+#define LOCATE_CHECKNEW_ReduceAction1030 "check new ReduceAction1030"
+void CHECKNEW_ReduceAction1030(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1030_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1030_parser___ReduceAction1030___init "new ReduceAction1030 parser::ReduceAction1030::init"
+val_t NEW_ReduceAction1030_parser___ReduceAction1030___init(void);
+typedef val_t (*NEW_ReduceAction1030_parser___ReduceAction1030___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1031 "init var of ReduceAction1031"
+void INIT_ATTRIBUTES__ReduceAction1031(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1031_t)(val_t p0);
+val_t NEW_ReduceAction1031(void);
+#define LOCATE_CHECKNEW_ReduceAction1031 "check new ReduceAction1031"
+void CHECKNEW_ReduceAction1031(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1031_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1031_parser___ReduceAction1031___init "new ReduceAction1031 parser::ReduceAction1031::init"
+val_t NEW_ReduceAction1031_parser___ReduceAction1031___init(void);
+typedef val_t (*NEW_ReduceAction1031_parser___ReduceAction1031___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1032 "init var of ReduceAction1032"
+void INIT_ATTRIBUTES__ReduceAction1032(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1032_t)(val_t p0);
+val_t NEW_ReduceAction1032(void);
+#define LOCATE_CHECKNEW_ReduceAction1032 "check new ReduceAction1032"
+void CHECKNEW_ReduceAction1032(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1032_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1032_parser___ReduceAction1032___init "new ReduceAction1032 parser::ReduceAction1032::init"
+val_t NEW_ReduceAction1032_parser___ReduceAction1032___init(void);
+typedef val_t (*NEW_ReduceAction1032_parser___ReduceAction1032___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1033 "init var of ReduceAction1033"
+void INIT_ATTRIBUTES__ReduceAction1033(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1033_t)(val_t p0);
+val_t NEW_ReduceAction1033(void);
+#define LOCATE_CHECKNEW_ReduceAction1033 "check new ReduceAction1033"
+void CHECKNEW_ReduceAction1033(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1033_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1033_parser___ReduceAction1033___init "new ReduceAction1033 parser::ReduceAction1033::init"
+val_t NEW_ReduceAction1033_parser___ReduceAction1033___init(void);
+typedef val_t (*NEW_ReduceAction1033_parser___ReduceAction1033___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1034 "init var of ReduceAction1034"
+void INIT_ATTRIBUTES__ReduceAction1034(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1034_t)(val_t p0);
+val_t NEW_ReduceAction1034(void);
+#define LOCATE_CHECKNEW_ReduceAction1034 "check new ReduceAction1034"
+void CHECKNEW_ReduceAction1034(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1034_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1034_parser___ReduceAction1034___init "new ReduceAction1034 parser::ReduceAction1034::init"
+val_t NEW_ReduceAction1034_parser___ReduceAction1034___init(void);
+typedef val_t (*NEW_ReduceAction1034_parser___ReduceAction1034___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1035 "init var of ReduceAction1035"
+void INIT_ATTRIBUTES__ReduceAction1035(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1035_t)(val_t p0);
+val_t NEW_ReduceAction1035(void);
+#define LOCATE_CHECKNEW_ReduceAction1035 "check new ReduceAction1035"
+void CHECKNEW_ReduceAction1035(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1035_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1035_parser___ReduceAction1035___init "new ReduceAction1035 parser::ReduceAction1035::init"
+val_t NEW_ReduceAction1035_parser___ReduceAction1035___init(void);
+typedef val_t (*NEW_ReduceAction1035_parser___ReduceAction1035___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1036 "init var of ReduceAction1036"
+void INIT_ATTRIBUTES__ReduceAction1036(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1036_t)(val_t p0);
+val_t NEW_ReduceAction1036(void);
+#define LOCATE_CHECKNEW_ReduceAction1036 "check new ReduceAction1036"
+void CHECKNEW_ReduceAction1036(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1036_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1036_parser___ReduceAction1036___init "new ReduceAction1036 parser::ReduceAction1036::init"
+val_t NEW_ReduceAction1036_parser___ReduceAction1036___init(void);
+typedef val_t (*NEW_ReduceAction1036_parser___ReduceAction1036___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1037 "init var of ReduceAction1037"
+void INIT_ATTRIBUTES__ReduceAction1037(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1037_t)(val_t p0);
+val_t NEW_ReduceAction1037(void);
+#define LOCATE_CHECKNEW_ReduceAction1037 "check new ReduceAction1037"
+void CHECKNEW_ReduceAction1037(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1037_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1037_parser___ReduceAction1037___init "new ReduceAction1037 parser::ReduceAction1037::init"
+val_t NEW_ReduceAction1037_parser___ReduceAction1037___init(void);
+typedef val_t (*NEW_ReduceAction1037_parser___ReduceAction1037___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1038 "init var of ReduceAction1038"
+void INIT_ATTRIBUTES__ReduceAction1038(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1038_t)(val_t p0);
+val_t NEW_ReduceAction1038(void);
+#define LOCATE_CHECKNEW_ReduceAction1038 "check new ReduceAction1038"
+void CHECKNEW_ReduceAction1038(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1038_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1038_parser___ReduceAction1038___init "new ReduceAction1038 parser::ReduceAction1038::init"
+val_t NEW_ReduceAction1038_parser___ReduceAction1038___init(void);
+typedef val_t (*NEW_ReduceAction1038_parser___ReduceAction1038___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1039 "init var of ReduceAction1039"
+void INIT_ATTRIBUTES__ReduceAction1039(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1039_t)(val_t p0);
+val_t NEW_ReduceAction1039(void);
+#define LOCATE_CHECKNEW_ReduceAction1039 "check new ReduceAction1039"
+void CHECKNEW_ReduceAction1039(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1039_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1039_parser___ReduceAction1039___init "new ReduceAction1039 parser::ReduceAction1039::init"
+val_t NEW_ReduceAction1039_parser___ReduceAction1039___init(void);
+typedef val_t (*NEW_ReduceAction1039_parser___ReduceAction1039___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1040 "init var of ReduceAction1040"
+void INIT_ATTRIBUTES__ReduceAction1040(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1040_t)(val_t p0);
+val_t NEW_ReduceAction1040(void);
+#define LOCATE_CHECKNEW_ReduceAction1040 "check new ReduceAction1040"
+void CHECKNEW_ReduceAction1040(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1040_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1040_parser___ReduceAction1040___init "new ReduceAction1040 parser::ReduceAction1040::init"
+val_t NEW_ReduceAction1040_parser___ReduceAction1040___init(void);
+typedef val_t (*NEW_ReduceAction1040_parser___ReduceAction1040___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1041 "init var of ReduceAction1041"
+void INIT_ATTRIBUTES__ReduceAction1041(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1041_t)(val_t p0);
+val_t NEW_ReduceAction1041(void);
+#define LOCATE_CHECKNEW_ReduceAction1041 "check new ReduceAction1041"
+void CHECKNEW_ReduceAction1041(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1041_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1041_parser___ReduceAction1041___init "new ReduceAction1041 parser::ReduceAction1041::init"
+val_t NEW_ReduceAction1041_parser___ReduceAction1041___init(void);
+typedef val_t (*NEW_ReduceAction1041_parser___ReduceAction1041___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1042 "init var of ReduceAction1042"
+void INIT_ATTRIBUTES__ReduceAction1042(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1042_t)(val_t p0);
+val_t NEW_ReduceAction1042(void);
+#define LOCATE_CHECKNEW_ReduceAction1042 "check new ReduceAction1042"
+void CHECKNEW_ReduceAction1042(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1042_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1042_parser___ReduceAction1042___init "new ReduceAction1042 parser::ReduceAction1042::init"
+val_t NEW_ReduceAction1042_parser___ReduceAction1042___init(void);
+typedef val_t (*NEW_ReduceAction1042_parser___ReduceAction1042___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1043 "init var of ReduceAction1043"
+void INIT_ATTRIBUTES__ReduceAction1043(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1043_t)(val_t p0);
+val_t NEW_ReduceAction1043(void);
+#define LOCATE_CHECKNEW_ReduceAction1043 "check new ReduceAction1043"
+void CHECKNEW_ReduceAction1043(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1043_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1043_parser___ReduceAction1043___init "new ReduceAction1043 parser::ReduceAction1043::init"
+val_t NEW_ReduceAction1043_parser___ReduceAction1043___init(void);
+typedef val_t (*NEW_ReduceAction1043_parser___ReduceAction1043___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1044 "init var of ReduceAction1044"
+void INIT_ATTRIBUTES__ReduceAction1044(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1044_t)(val_t p0);
+val_t NEW_ReduceAction1044(void);
+#define LOCATE_CHECKNEW_ReduceAction1044 "check new ReduceAction1044"
+void CHECKNEW_ReduceAction1044(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1044_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1044_parser___ReduceAction1044___init "new ReduceAction1044 parser::ReduceAction1044::init"
+val_t NEW_ReduceAction1044_parser___ReduceAction1044___init(void);
+typedef val_t (*NEW_ReduceAction1044_parser___ReduceAction1044___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1045 "init var of ReduceAction1045"
+void INIT_ATTRIBUTES__ReduceAction1045(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1045_t)(val_t p0);
+val_t NEW_ReduceAction1045(void);
+#define LOCATE_CHECKNEW_ReduceAction1045 "check new ReduceAction1045"
+void CHECKNEW_ReduceAction1045(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1045_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1045_parser___ReduceAction1045___init "new ReduceAction1045 parser::ReduceAction1045::init"
+val_t NEW_ReduceAction1045_parser___ReduceAction1045___init(void);
+typedef val_t (*NEW_ReduceAction1045_parser___ReduceAction1045___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1046 "init var of ReduceAction1046"
+void INIT_ATTRIBUTES__ReduceAction1046(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1046_t)(val_t p0);
+val_t NEW_ReduceAction1046(void);
+#define LOCATE_CHECKNEW_ReduceAction1046 "check new ReduceAction1046"
+void CHECKNEW_ReduceAction1046(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1046_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1046_parser___ReduceAction1046___init "new ReduceAction1046 parser::ReduceAction1046::init"
+val_t NEW_ReduceAction1046_parser___ReduceAction1046___init(void);
+typedef val_t (*NEW_ReduceAction1046_parser___ReduceAction1046___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1047 "init var of ReduceAction1047"
+void INIT_ATTRIBUTES__ReduceAction1047(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1047_t)(val_t p0);
+val_t NEW_ReduceAction1047(void);
+#define LOCATE_CHECKNEW_ReduceAction1047 "check new ReduceAction1047"
+void CHECKNEW_ReduceAction1047(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1047_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1047_parser___ReduceAction1047___init "new ReduceAction1047 parser::ReduceAction1047::init"
+val_t NEW_ReduceAction1047_parser___ReduceAction1047___init(void);
+typedef val_t (*NEW_ReduceAction1047_parser___ReduceAction1047___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1048 "init var of ReduceAction1048"
+void INIT_ATTRIBUTES__ReduceAction1048(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1048_t)(val_t p0);
+val_t NEW_ReduceAction1048(void);
+#define LOCATE_CHECKNEW_ReduceAction1048 "check new ReduceAction1048"
+void CHECKNEW_ReduceAction1048(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1048_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1048_parser___ReduceAction1048___init "new ReduceAction1048 parser::ReduceAction1048::init"
+val_t NEW_ReduceAction1048_parser___ReduceAction1048___init(void);
+typedef val_t (*NEW_ReduceAction1048_parser___ReduceAction1048___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1049 "init var of ReduceAction1049"
+void INIT_ATTRIBUTES__ReduceAction1049(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1049_t)(val_t p0);
+val_t NEW_ReduceAction1049(void);
+#define LOCATE_CHECKNEW_ReduceAction1049 "check new ReduceAction1049"
+void CHECKNEW_ReduceAction1049(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1049_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1049_parser___ReduceAction1049___init "new ReduceAction1049 parser::ReduceAction1049::init"
+val_t NEW_ReduceAction1049_parser___ReduceAction1049___init(void);
+typedef val_t (*NEW_ReduceAction1049_parser___ReduceAction1049___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1050 "init var of ReduceAction1050"
+void INIT_ATTRIBUTES__ReduceAction1050(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1050_t)(val_t p0);
+val_t NEW_ReduceAction1050(void);
+#define LOCATE_CHECKNEW_ReduceAction1050 "check new ReduceAction1050"
+void CHECKNEW_ReduceAction1050(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1050_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1050_parser___ReduceAction1050___init "new ReduceAction1050 parser::ReduceAction1050::init"
+val_t NEW_ReduceAction1050_parser___ReduceAction1050___init(void);
+typedef val_t (*NEW_ReduceAction1050_parser___ReduceAction1050___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1051 "init var of ReduceAction1051"
+void INIT_ATTRIBUTES__ReduceAction1051(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1051_t)(val_t p0);
+val_t NEW_ReduceAction1051(void);
+#define LOCATE_CHECKNEW_ReduceAction1051 "check new ReduceAction1051"
+void CHECKNEW_ReduceAction1051(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1051_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1051_parser___ReduceAction1051___init "new ReduceAction1051 parser::ReduceAction1051::init"
+val_t NEW_ReduceAction1051_parser___ReduceAction1051___init(void);
+typedef val_t (*NEW_ReduceAction1051_parser___ReduceAction1051___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1052 "init var of ReduceAction1052"
+void INIT_ATTRIBUTES__ReduceAction1052(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1052_t)(val_t p0);
+val_t NEW_ReduceAction1052(void);
+#define LOCATE_CHECKNEW_ReduceAction1052 "check new ReduceAction1052"
+void CHECKNEW_ReduceAction1052(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1052_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1052_parser___ReduceAction1052___init "new ReduceAction1052 parser::ReduceAction1052::init"
+val_t NEW_ReduceAction1052_parser___ReduceAction1052___init(void);
+typedef val_t (*NEW_ReduceAction1052_parser___ReduceAction1052___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1053 "init var of ReduceAction1053"
+void INIT_ATTRIBUTES__ReduceAction1053(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1053_t)(val_t p0);
+val_t NEW_ReduceAction1053(void);
+#define LOCATE_CHECKNEW_ReduceAction1053 "check new ReduceAction1053"
+void CHECKNEW_ReduceAction1053(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1053_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1053_parser___ReduceAction1053___init "new ReduceAction1053 parser::ReduceAction1053::init"
+val_t NEW_ReduceAction1053_parser___ReduceAction1053___init(void);
+typedef val_t (*NEW_ReduceAction1053_parser___ReduceAction1053___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1054 "init var of ReduceAction1054"
+void INIT_ATTRIBUTES__ReduceAction1054(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1054_t)(val_t p0);
+val_t NEW_ReduceAction1054(void);
+#define LOCATE_CHECKNEW_ReduceAction1054 "check new ReduceAction1054"
+void CHECKNEW_ReduceAction1054(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1054_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1054_parser___ReduceAction1054___init "new ReduceAction1054 parser::ReduceAction1054::init"
+val_t NEW_ReduceAction1054_parser___ReduceAction1054___init(void);
+typedef val_t (*NEW_ReduceAction1054_parser___ReduceAction1054___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1055 "init var of ReduceAction1055"
+void INIT_ATTRIBUTES__ReduceAction1055(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1055_t)(val_t p0);
+val_t NEW_ReduceAction1055(void);
+#define LOCATE_CHECKNEW_ReduceAction1055 "check new ReduceAction1055"
+void CHECKNEW_ReduceAction1055(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1055_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1055_parser___ReduceAction1055___init "new ReduceAction1055 parser::ReduceAction1055::init"
+val_t NEW_ReduceAction1055_parser___ReduceAction1055___init(void);
+typedef val_t (*NEW_ReduceAction1055_parser___ReduceAction1055___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1056 "init var of ReduceAction1056"
+void INIT_ATTRIBUTES__ReduceAction1056(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1056_t)(val_t p0);
+val_t NEW_ReduceAction1056(void);
+#define LOCATE_CHECKNEW_ReduceAction1056 "check new ReduceAction1056"
+void CHECKNEW_ReduceAction1056(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1056_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1056_parser___ReduceAction1056___init "new ReduceAction1056 parser::ReduceAction1056::init"
+val_t NEW_ReduceAction1056_parser___ReduceAction1056___init(void);
+typedef val_t (*NEW_ReduceAction1056_parser___ReduceAction1056___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1057 "init var of ReduceAction1057"
+void INIT_ATTRIBUTES__ReduceAction1057(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1057_t)(val_t p0);
+val_t NEW_ReduceAction1057(void);
+#define LOCATE_CHECKNEW_ReduceAction1057 "check new ReduceAction1057"
+void CHECKNEW_ReduceAction1057(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1057_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1057_parser___ReduceAction1057___init "new ReduceAction1057 parser::ReduceAction1057::init"
+val_t NEW_ReduceAction1057_parser___ReduceAction1057___init(void);
+typedef val_t (*NEW_ReduceAction1057_parser___ReduceAction1057___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1058 "init var of ReduceAction1058"
+void INIT_ATTRIBUTES__ReduceAction1058(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1058_t)(val_t p0);
+val_t NEW_ReduceAction1058(void);
+#define LOCATE_CHECKNEW_ReduceAction1058 "check new ReduceAction1058"
+void CHECKNEW_ReduceAction1058(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1058_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1058_parser___ReduceAction1058___init "new ReduceAction1058 parser::ReduceAction1058::init"
+val_t NEW_ReduceAction1058_parser___ReduceAction1058___init(void);
+typedef val_t (*NEW_ReduceAction1058_parser___ReduceAction1058___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1059 "init var of ReduceAction1059"
+void INIT_ATTRIBUTES__ReduceAction1059(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1059_t)(val_t p0);
+val_t NEW_ReduceAction1059(void);
+#define LOCATE_CHECKNEW_ReduceAction1059 "check new ReduceAction1059"
+void CHECKNEW_ReduceAction1059(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1059_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1059_parser___ReduceAction1059___init "new ReduceAction1059 parser::ReduceAction1059::init"
+val_t NEW_ReduceAction1059_parser___ReduceAction1059___init(void);
+typedef val_t (*NEW_ReduceAction1059_parser___ReduceAction1059___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1060 "init var of ReduceAction1060"
+void INIT_ATTRIBUTES__ReduceAction1060(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1060_t)(val_t p0);
+val_t NEW_ReduceAction1060(void);
+#define LOCATE_CHECKNEW_ReduceAction1060 "check new ReduceAction1060"
+void CHECKNEW_ReduceAction1060(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1060_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1060_parser___ReduceAction1060___init "new ReduceAction1060 parser::ReduceAction1060::init"
+val_t NEW_ReduceAction1060_parser___ReduceAction1060___init(void);
+typedef val_t (*NEW_ReduceAction1060_parser___ReduceAction1060___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1061 "init var of ReduceAction1061"
+void INIT_ATTRIBUTES__ReduceAction1061(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1061_t)(val_t p0);
+val_t NEW_ReduceAction1061(void);
+#define LOCATE_CHECKNEW_ReduceAction1061 "check new ReduceAction1061"
+void CHECKNEW_ReduceAction1061(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1061_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1061_parser___ReduceAction1061___init "new ReduceAction1061 parser::ReduceAction1061::init"
+val_t NEW_ReduceAction1061_parser___ReduceAction1061___init(void);
+typedef val_t (*NEW_ReduceAction1061_parser___ReduceAction1061___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1062 "init var of ReduceAction1062"
+void INIT_ATTRIBUTES__ReduceAction1062(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1062_t)(val_t p0);
+val_t NEW_ReduceAction1062(void);
+#define LOCATE_CHECKNEW_ReduceAction1062 "check new ReduceAction1062"
+void CHECKNEW_ReduceAction1062(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1062_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1062_parser___ReduceAction1062___init "new ReduceAction1062 parser::ReduceAction1062::init"
+val_t NEW_ReduceAction1062_parser___ReduceAction1062___init(void);
+typedef val_t (*NEW_ReduceAction1062_parser___ReduceAction1062___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1063 "init var of ReduceAction1063"
+void INIT_ATTRIBUTES__ReduceAction1063(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1063_t)(val_t p0);
+val_t NEW_ReduceAction1063(void);
+#define LOCATE_CHECKNEW_ReduceAction1063 "check new ReduceAction1063"
+void CHECKNEW_ReduceAction1063(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1063_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1063_parser___ReduceAction1063___init "new ReduceAction1063 parser::ReduceAction1063::init"
+val_t NEW_ReduceAction1063_parser___ReduceAction1063___init(void);
+typedef val_t (*NEW_ReduceAction1063_parser___ReduceAction1063___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1064 "init var of ReduceAction1064"
+void INIT_ATTRIBUTES__ReduceAction1064(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1064_t)(val_t p0);
+val_t NEW_ReduceAction1064(void);
+#define LOCATE_CHECKNEW_ReduceAction1064 "check new ReduceAction1064"
+void CHECKNEW_ReduceAction1064(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1064_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1064_parser___ReduceAction1064___init "new ReduceAction1064 parser::ReduceAction1064::init"
+val_t NEW_ReduceAction1064_parser___ReduceAction1064___init(void);
+typedef val_t (*NEW_ReduceAction1064_parser___ReduceAction1064___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1065 "init var of ReduceAction1065"
+void INIT_ATTRIBUTES__ReduceAction1065(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1065_t)(val_t p0);
+val_t NEW_ReduceAction1065(void);
+#define LOCATE_CHECKNEW_ReduceAction1065 "check new ReduceAction1065"
+void CHECKNEW_ReduceAction1065(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1065_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1065_parser___ReduceAction1065___init "new ReduceAction1065 parser::ReduceAction1065::init"
+val_t NEW_ReduceAction1065_parser___ReduceAction1065___init(void);
+typedef val_t (*NEW_ReduceAction1065_parser___ReduceAction1065___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1066 "init var of ReduceAction1066"
+void INIT_ATTRIBUTES__ReduceAction1066(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1066_t)(val_t p0);
+val_t NEW_ReduceAction1066(void);
+#define LOCATE_CHECKNEW_ReduceAction1066 "check new ReduceAction1066"
+void CHECKNEW_ReduceAction1066(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1066_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1066_parser___ReduceAction1066___init "new ReduceAction1066 parser::ReduceAction1066::init"
+val_t NEW_ReduceAction1066_parser___ReduceAction1066___init(void);
+typedef val_t (*NEW_ReduceAction1066_parser___ReduceAction1066___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1067 "init var of ReduceAction1067"
+void INIT_ATTRIBUTES__ReduceAction1067(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1067_t)(val_t p0);
+val_t NEW_ReduceAction1067(void);
+#define LOCATE_CHECKNEW_ReduceAction1067 "check new ReduceAction1067"
+void CHECKNEW_ReduceAction1067(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1067_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1067_parser___ReduceAction1067___init "new ReduceAction1067 parser::ReduceAction1067::init"
+val_t NEW_ReduceAction1067_parser___ReduceAction1067___init(void);
+typedef val_t (*NEW_ReduceAction1067_parser___ReduceAction1067___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1068 "init var of ReduceAction1068"
+void INIT_ATTRIBUTES__ReduceAction1068(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1068_t)(val_t p0);
+val_t NEW_ReduceAction1068(void);
+#define LOCATE_CHECKNEW_ReduceAction1068 "check new ReduceAction1068"
+void CHECKNEW_ReduceAction1068(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1068_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1068_parser___ReduceAction1068___init "new ReduceAction1068 parser::ReduceAction1068::init"
+val_t NEW_ReduceAction1068_parser___ReduceAction1068___init(void);
+typedef val_t (*NEW_ReduceAction1068_parser___ReduceAction1068___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1069 "init var of ReduceAction1069"
+void INIT_ATTRIBUTES__ReduceAction1069(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1069_t)(val_t p0);
+val_t NEW_ReduceAction1069(void);
+#define LOCATE_CHECKNEW_ReduceAction1069 "check new ReduceAction1069"
+void CHECKNEW_ReduceAction1069(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1069_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1069_parser___ReduceAction1069___init "new ReduceAction1069 parser::ReduceAction1069::init"
+val_t NEW_ReduceAction1069_parser___ReduceAction1069___init(void);
+typedef val_t (*NEW_ReduceAction1069_parser___ReduceAction1069___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1070 "init var of ReduceAction1070"
+void INIT_ATTRIBUTES__ReduceAction1070(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1070_t)(val_t p0);
+val_t NEW_ReduceAction1070(void);
+#define LOCATE_CHECKNEW_ReduceAction1070 "check new ReduceAction1070"
+void CHECKNEW_ReduceAction1070(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1070_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1070_parser___ReduceAction1070___init "new ReduceAction1070 parser::ReduceAction1070::init"
+val_t NEW_ReduceAction1070_parser___ReduceAction1070___init(void);
+typedef val_t (*NEW_ReduceAction1070_parser___ReduceAction1070___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1071 "init var of ReduceAction1071"
+void INIT_ATTRIBUTES__ReduceAction1071(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1071_t)(val_t p0);
+val_t NEW_ReduceAction1071(void);
+#define LOCATE_CHECKNEW_ReduceAction1071 "check new ReduceAction1071"
+void CHECKNEW_ReduceAction1071(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1071_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1071_parser___ReduceAction1071___init "new ReduceAction1071 parser::ReduceAction1071::init"
+val_t NEW_ReduceAction1071_parser___ReduceAction1071___init(void);
+typedef val_t (*NEW_ReduceAction1071_parser___ReduceAction1071___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1072 "init var of ReduceAction1072"
+void INIT_ATTRIBUTES__ReduceAction1072(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1072_t)(val_t p0);
+val_t NEW_ReduceAction1072(void);
+#define LOCATE_CHECKNEW_ReduceAction1072 "check new ReduceAction1072"
+void CHECKNEW_ReduceAction1072(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1072_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1072_parser___ReduceAction1072___init "new ReduceAction1072 parser::ReduceAction1072::init"
+val_t NEW_ReduceAction1072_parser___ReduceAction1072___init(void);
+typedef val_t (*NEW_ReduceAction1072_parser___ReduceAction1072___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1073 "init var of ReduceAction1073"
+void INIT_ATTRIBUTES__ReduceAction1073(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1073_t)(val_t p0);
+val_t NEW_ReduceAction1073(void);
+#define LOCATE_CHECKNEW_ReduceAction1073 "check new ReduceAction1073"
+void CHECKNEW_ReduceAction1073(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1073_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1073_parser___ReduceAction1073___init "new ReduceAction1073 parser::ReduceAction1073::init"
+val_t NEW_ReduceAction1073_parser___ReduceAction1073___init(void);
+typedef val_t (*NEW_ReduceAction1073_parser___ReduceAction1073___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1074 "init var of ReduceAction1074"
+void INIT_ATTRIBUTES__ReduceAction1074(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1074_t)(val_t p0);
+val_t NEW_ReduceAction1074(void);
+#define LOCATE_CHECKNEW_ReduceAction1074 "check new ReduceAction1074"
+void CHECKNEW_ReduceAction1074(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1074_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1074_parser___ReduceAction1074___init "new ReduceAction1074 parser::ReduceAction1074::init"
+val_t NEW_ReduceAction1074_parser___ReduceAction1074___init(void);
+typedef val_t (*NEW_ReduceAction1074_parser___ReduceAction1074___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1075 "init var of ReduceAction1075"
+void INIT_ATTRIBUTES__ReduceAction1075(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1075_t)(val_t p0);
+val_t NEW_ReduceAction1075(void);
+#define LOCATE_CHECKNEW_ReduceAction1075 "check new ReduceAction1075"
+void CHECKNEW_ReduceAction1075(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1075_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1075_parser___ReduceAction1075___init "new ReduceAction1075 parser::ReduceAction1075::init"
+val_t NEW_ReduceAction1075_parser___ReduceAction1075___init(void);
+typedef val_t (*NEW_ReduceAction1075_parser___ReduceAction1075___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1076 "init var of ReduceAction1076"
+void INIT_ATTRIBUTES__ReduceAction1076(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1076_t)(val_t p0);
+val_t NEW_ReduceAction1076(void);
+#define LOCATE_CHECKNEW_ReduceAction1076 "check new ReduceAction1076"
+void CHECKNEW_ReduceAction1076(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1076_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1076_parser___ReduceAction1076___init "new ReduceAction1076 parser::ReduceAction1076::init"
+val_t NEW_ReduceAction1076_parser___ReduceAction1076___init(void);
+typedef val_t (*NEW_ReduceAction1076_parser___ReduceAction1076___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1077 "init var of ReduceAction1077"
+void INIT_ATTRIBUTES__ReduceAction1077(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1077_t)(val_t p0);
+val_t NEW_ReduceAction1077(void);
+#define LOCATE_CHECKNEW_ReduceAction1077 "check new ReduceAction1077"
+void CHECKNEW_ReduceAction1077(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1077_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1077_parser___ReduceAction1077___init "new ReduceAction1077 parser::ReduceAction1077::init"
+val_t NEW_ReduceAction1077_parser___ReduceAction1077___init(void);
+typedef val_t (*NEW_ReduceAction1077_parser___ReduceAction1077___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1078 "init var of ReduceAction1078"
+void INIT_ATTRIBUTES__ReduceAction1078(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1078_t)(val_t p0);
+val_t NEW_ReduceAction1078(void);
+#define LOCATE_CHECKNEW_ReduceAction1078 "check new ReduceAction1078"
+void CHECKNEW_ReduceAction1078(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1078_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1078_parser___ReduceAction1078___init "new ReduceAction1078 parser::ReduceAction1078::init"
+val_t NEW_ReduceAction1078_parser___ReduceAction1078___init(void);
+typedef val_t (*NEW_ReduceAction1078_parser___ReduceAction1078___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1079 "init var of ReduceAction1079"
+void INIT_ATTRIBUTES__ReduceAction1079(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1079_t)(val_t p0);
+val_t NEW_ReduceAction1079(void);
+#define LOCATE_CHECKNEW_ReduceAction1079 "check new ReduceAction1079"
+void CHECKNEW_ReduceAction1079(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1079_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1079_parser___ReduceAction1079___init "new ReduceAction1079 parser::ReduceAction1079::init"
+val_t NEW_ReduceAction1079_parser___ReduceAction1079___init(void);
+typedef val_t (*NEW_ReduceAction1079_parser___ReduceAction1079___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1080 "init var of ReduceAction1080"
+void INIT_ATTRIBUTES__ReduceAction1080(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1080_t)(val_t p0);
+val_t NEW_ReduceAction1080(void);
+#define LOCATE_CHECKNEW_ReduceAction1080 "check new ReduceAction1080"
+void CHECKNEW_ReduceAction1080(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1080_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1080_parser___ReduceAction1080___init "new ReduceAction1080 parser::ReduceAction1080::init"
+val_t NEW_ReduceAction1080_parser___ReduceAction1080___init(void);
+typedef val_t (*NEW_ReduceAction1080_parser___ReduceAction1080___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1081 "init var of ReduceAction1081"
+void INIT_ATTRIBUTES__ReduceAction1081(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1081_t)(val_t p0);
+val_t NEW_ReduceAction1081(void);
+#define LOCATE_CHECKNEW_ReduceAction1081 "check new ReduceAction1081"
+void CHECKNEW_ReduceAction1081(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1081_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1081_parser___ReduceAction1081___init "new ReduceAction1081 parser::ReduceAction1081::init"
+val_t NEW_ReduceAction1081_parser___ReduceAction1081___init(void);
+typedef val_t (*NEW_ReduceAction1081_parser___ReduceAction1081___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1082 "init var of ReduceAction1082"
+void INIT_ATTRIBUTES__ReduceAction1082(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1082_t)(val_t p0);
+val_t NEW_ReduceAction1082(void);
+#define LOCATE_CHECKNEW_ReduceAction1082 "check new ReduceAction1082"
+void CHECKNEW_ReduceAction1082(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1082_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1082_parser___ReduceAction1082___init "new ReduceAction1082 parser::ReduceAction1082::init"
+val_t NEW_ReduceAction1082_parser___ReduceAction1082___init(void);
+typedef val_t (*NEW_ReduceAction1082_parser___ReduceAction1082___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1083 "init var of ReduceAction1083"
+void INIT_ATTRIBUTES__ReduceAction1083(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1083_t)(val_t p0);
+val_t NEW_ReduceAction1083(void);
+#define LOCATE_CHECKNEW_ReduceAction1083 "check new ReduceAction1083"
+void CHECKNEW_ReduceAction1083(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1083_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1083_parser___ReduceAction1083___init "new ReduceAction1083 parser::ReduceAction1083::init"
+val_t NEW_ReduceAction1083_parser___ReduceAction1083___init(void);
+typedef val_t (*NEW_ReduceAction1083_parser___ReduceAction1083___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1084 "init var of ReduceAction1084"
+void INIT_ATTRIBUTES__ReduceAction1084(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1084_t)(val_t p0);
+val_t NEW_ReduceAction1084(void);
+#define LOCATE_CHECKNEW_ReduceAction1084 "check new ReduceAction1084"
+void CHECKNEW_ReduceAction1084(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1084_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1084_parser___ReduceAction1084___init "new ReduceAction1084 parser::ReduceAction1084::init"
+val_t NEW_ReduceAction1084_parser___ReduceAction1084___init(void);
+typedef val_t (*NEW_ReduceAction1084_parser___ReduceAction1084___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1085 "init var of ReduceAction1085"
+void INIT_ATTRIBUTES__ReduceAction1085(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1085_t)(val_t p0);
+val_t NEW_ReduceAction1085(void);
+#define LOCATE_CHECKNEW_ReduceAction1085 "check new ReduceAction1085"
+void CHECKNEW_ReduceAction1085(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1085_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1085_parser___ReduceAction1085___init "new ReduceAction1085 parser::ReduceAction1085::init"
+val_t NEW_ReduceAction1085_parser___ReduceAction1085___init(void);
+typedef val_t (*NEW_ReduceAction1085_parser___ReduceAction1085___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1086 "init var of ReduceAction1086"
+void INIT_ATTRIBUTES__ReduceAction1086(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1086_t)(val_t p0);
+val_t NEW_ReduceAction1086(void);
+#define LOCATE_CHECKNEW_ReduceAction1086 "check new ReduceAction1086"
+void CHECKNEW_ReduceAction1086(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1086_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1086_parser___ReduceAction1086___init "new ReduceAction1086 parser::ReduceAction1086::init"
+val_t NEW_ReduceAction1086_parser___ReduceAction1086___init(void);
+typedef val_t (*NEW_ReduceAction1086_parser___ReduceAction1086___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1087 "init var of ReduceAction1087"
+void INIT_ATTRIBUTES__ReduceAction1087(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1087_t)(val_t p0);
+val_t NEW_ReduceAction1087(void);
+#define LOCATE_CHECKNEW_ReduceAction1087 "check new ReduceAction1087"
+void CHECKNEW_ReduceAction1087(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1087_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1087_parser___ReduceAction1087___init "new ReduceAction1087 parser::ReduceAction1087::init"
+val_t NEW_ReduceAction1087_parser___ReduceAction1087___init(void);
+typedef val_t (*NEW_ReduceAction1087_parser___ReduceAction1087___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1088 "init var of ReduceAction1088"
+void INIT_ATTRIBUTES__ReduceAction1088(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1088_t)(val_t p0);
+val_t NEW_ReduceAction1088(void);
+#define LOCATE_CHECKNEW_ReduceAction1088 "check new ReduceAction1088"
+void CHECKNEW_ReduceAction1088(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1088_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1088_parser___ReduceAction1088___init "new ReduceAction1088 parser::ReduceAction1088::init"
+val_t NEW_ReduceAction1088_parser___ReduceAction1088___init(void);
+typedef val_t (*NEW_ReduceAction1088_parser___ReduceAction1088___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1089 "init var of ReduceAction1089"
+void INIT_ATTRIBUTES__ReduceAction1089(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1089_t)(val_t p0);
+val_t NEW_ReduceAction1089(void);
+#define LOCATE_CHECKNEW_ReduceAction1089 "check new ReduceAction1089"
+void CHECKNEW_ReduceAction1089(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1089_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1089_parser___ReduceAction1089___init "new ReduceAction1089 parser::ReduceAction1089::init"
+val_t NEW_ReduceAction1089_parser___ReduceAction1089___init(void);
+typedef val_t (*NEW_ReduceAction1089_parser___ReduceAction1089___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1090 "init var of ReduceAction1090"
+void INIT_ATTRIBUTES__ReduceAction1090(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1090_t)(val_t p0);
+val_t NEW_ReduceAction1090(void);
+#define LOCATE_CHECKNEW_ReduceAction1090 "check new ReduceAction1090"
+void CHECKNEW_ReduceAction1090(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1090_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1090_parser___ReduceAction1090___init "new ReduceAction1090 parser::ReduceAction1090::init"
+val_t NEW_ReduceAction1090_parser___ReduceAction1090___init(void);
+typedef val_t (*NEW_ReduceAction1090_parser___ReduceAction1090___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1091 "init var of ReduceAction1091"
+void INIT_ATTRIBUTES__ReduceAction1091(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1091_t)(val_t p0);
+val_t NEW_ReduceAction1091(void);
+#define LOCATE_CHECKNEW_ReduceAction1091 "check new ReduceAction1091"
+void CHECKNEW_ReduceAction1091(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1091_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1091_parser___ReduceAction1091___init "new ReduceAction1091 parser::ReduceAction1091::init"
+val_t NEW_ReduceAction1091_parser___ReduceAction1091___init(void);
+typedef val_t (*NEW_ReduceAction1091_parser___ReduceAction1091___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1092 "init var of ReduceAction1092"
+void INIT_ATTRIBUTES__ReduceAction1092(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1092_t)(val_t p0);
+val_t NEW_ReduceAction1092(void);
+#define LOCATE_CHECKNEW_ReduceAction1092 "check new ReduceAction1092"
+void CHECKNEW_ReduceAction1092(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1092_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1092_parser___ReduceAction1092___init "new ReduceAction1092 parser::ReduceAction1092::init"
+val_t NEW_ReduceAction1092_parser___ReduceAction1092___init(void);
+typedef val_t (*NEW_ReduceAction1092_parser___ReduceAction1092___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1093 "init var of ReduceAction1093"
+void INIT_ATTRIBUTES__ReduceAction1093(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1093_t)(val_t p0);
+val_t NEW_ReduceAction1093(void);
+#define LOCATE_CHECKNEW_ReduceAction1093 "check new ReduceAction1093"
+void CHECKNEW_ReduceAction1093(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1093_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1093_parser___ReduceAction1093___init "new ReduceAction1093 parser::ReduceAction1093::init"
+val_t NEW_ReduceAction1093_parser___ReduceAction1093___init(void);
+typedef val_t (*NEW_ReduceAction1093_parser___ReduceAction1093___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1094 "init var of ReduceAction1094"
+void INIT_ATTRIBUTES__ReduceAction1094(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1094_t)(val_t p0);
+val_t NEW_ReduceAction1094(void);
+#define LOCATE_CHECKNEW_ReduceAction1094 "check new ReduceAction1094"
+void CHECKNEW_ReduceAction1094(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1094_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1094_parser___ReduceAction1094___init "new ReduceAction1094 parser::ReduceAction1094::init"
+val_t NEW_ReduceAction1094_parser___ReduceAction1094___init(void);
+typedef val_t (*NEW_ReduceAction1094_parser___ReduceAction1094___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1095 "init var of ReduceAction1095"
+void INIT_ATTRIBUTES__ReduceAction1095(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1095_t)(val_t p0);
+val_t NEW_ReduceAction1095(void);
+#define LOCATE_CHECKNEW_ReduceAction1095 "check new ReduceAction1095"
+void CHECKNEW_ReduceAction1095(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1095_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1095_parser___ReduceAction1095___init "new ReduceAction1095 parser::ReduceAction1095::init"
+val_t NEW_ReduceAction1095_parser___ReduceAction1095___init(void);
+typedef val_t (*NEW_ReduceAction1095_parser___ReduceAction1095___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1096 "init var of ReduceAction1096"
+void INIT_ATTRIBUTES__ReduceAction1096(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1096_t)(val_t p0);
+val_t NEW_ReduceAction1096(void);
+#define LOCATE_CHECKNEW_ReduceAction1096 "check new ReduceAction1096"
+void CHECKNEW_ReduceAction1096(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1096_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1096_parser___ReduceAction1096___init "new ReduceAction1096 parser::ReduceAction1096::init"
+val_t NEW_ReduceAction1096_parser___ReduceAction1096___init(void);
+typedef val_t (*NEW_ReduceAction1096_parser___ReduceAction1096___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1097 "init var of ReduceAction1097"
+void INIT_ATTRIBUTES__ReduceAction1097(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1097_t)(val_t p0);
+val_t NEW_ReduceAction1097(void);
+#define LOCATE_CHECKNEW_ReduceAction1097 "check new ReduceAction1097"
+void CHECKNEW_ReduceAction1097(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1097_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1097_parser___ReduceAction1097___init "new ReduceAction1097 parser::ReduceAction1097::init"
+val_t NEW_ReduceAction1097_parser___ReduceAction1097___init(void);
+typedef val_t (*NEW_ReduceAction1097_parser___ReduceAction1097___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1098 "init var of ReduceAction1098"
+void INIT_ATTRIBUTES__ReduceAction1098(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1098_t)(val_t p0);
+val_t NEW_ReduceAction1098(void);
+#define LOCATE_CHECKNEW_ReduceAction1098 "check new ReduceAction1098"
+void CHECKNEW_ReduceAction1098(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1098_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1098_parser___ReduceAction1098___init "new ReduceAction1098 parser::ReduceAction1098::init"
+val_t NEW_ReduceAction1098_parser___ReduceAction1098___init(void);
+typedef val_t (*NEW_ReduceAction1098_parser___ReduceAction1098___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1099 "init var of ReduceAction1099"
+void INIT_ATTRIBUTES__ReduceAction1099(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1099_t)(val_t p0);
+val_t NEW_ReduceAction1099(void);
+#define LOCATE_CHECKNEW_ReduceAction1099 "check new ReduceAction1099"
+void CHECKNEW_ReduceAction1099(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1099_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1099_parser___ReduceAction1099___init "new ReduceAction1099 parser::ReduceAction1099::init"
+val_t NEW_ReduceAction1099_parser___ReduceAction1099___init(void);
+typedef val_t (*NEW_ReduceAction1099_parser___ReduceAction1099___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1100 "init var of ReduceAction1100"
+void INIT_ATTRIBUTES__ReduceAction1100(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1100_t)(val_t p0);
+val_t NEW_ReduceAction1100(void);
+#define LOCATE_CHECKNEW_ReduceAction1100 "check new ReduceAction1100"
+void CHECKNEW_ReduceAction1100(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1100_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1100_parser___ReduceAction1100___init "new ReduceAction1100 parser::ReduceAction1100::init"
+val_t NEW_ReduceAction1100_parser___ReduceAction1100___init(void);
+typedef val_t (*NEW_ReduceAction1100_parser___ReduceAction1100___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1101 "init var of ReduceAction1101"
+void INIT_ATTRIBUTES__ReduceAction1101(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1101_t)(val_t p0);
+val_t NEW_ReduceAction1101(void);
+#define LOCATE_CHECKNEW_ReduceAction1101 "check new ReduceAction1101"
+void CHECKNEW_ReduceAction1101(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1101_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1101_parser___ReduceAction1101___init "new ReduceAction1101 parser::ReduceAction1101::init"
+val_t NEW_ReduceAction1101_parser___ReduceAction1101___init(void);
+typedef val_t (*NEW_ReduceAction1101_parser___ReduceAction1101___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1102 "init var of ReduceAction1102"
+void INIT_ATTRIBUTES__ReduceAction1102(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1102_t)(val_t p0);
+val_t NEW_ReduceAction1102(void);
+#define LOCATE_CHECKNEW_ReduceAction1102 "check new ReduceAction1102"
+void CHECKNEW_ReduceAction1102(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1102_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1102_parser___ReduceAction1102___init "new ReduceAction1102 parser::ReduceAction1102::init"
+val_t NEW_ReduceAction1102_parser___ReduceAction1102___init(void);
+typedef val_t (*NEW_ReduceAction1102_parser___ReduceAction1102___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1103 "init var of ReduceAction1103"
+void INIT_ATTRIBUTES__ReduceAction1103(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1103_t)(val_t p0);
+val_t NEW_ReduceAction1103(void);
+#define LOCATE_CHECKNEW_ReduceAction1103 "check new ReduceAction1103"
+void CHECKNEW_ReduceAction1103(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1103_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1103_parser___ReduceAction1103___init "new ReduceAction1103 parser::ReduceAction1103::init"
+val_t NEW_ReduceAction1103_parser___ReduceAction1103___init(void);
+typedef val_t (*NEW_ReduceAction1103_parser___ReduceAction1103___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1104 "init var of ReduceAction1104"
+void INIT_ATTRIBUTES__ReduceAction1104(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1104_t)(val_t p0);
+val_t NEW_ReduceAction1104(void);
+#define LOCATE_CHECKNEW_ReduceAction1104 "check new ReduceAction1104"
+void CHECKNEW_ReduceAction1104(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1104_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1104_parser___ReduceAction1104___init "new ReduceAction1104 parser::ReduceAction1104::init"
+val_t NEW_ReduceAction1104_parser___ReduceAction1104___init(void);
+typedef val_t (*NEW_ReduceAction1104_parser___ReduceAction1104___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1105 "init var of ReduceAction1105"
+void INIT_ATTRIBUTES__ReduceAction1105(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1105_t)(val_t p0);
+val_t NEW_ReduceAction1105(void);
+#define LOCATE_CHECKNEW_ReduceAction1105 "check new ReduceAction1105"
+void CHECKNEW_ReduceAction1105(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1105_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1105_parser___ReduceAction1105___init "new ReduceAction1105 parser::ReduceAction1105::init"
+val_t NEW_ReduceAction1105_parser___ReduceAction1105___init(void);
+typedef val_t (*NEW_ReduceAction1105_parser___ReduceAction1105___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1106 "init var of ReduceAction1106"
+void INIT_ATTRIBUTES__ReduceAction1106(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1106_t)(val_t p0);
+val_t NEW_ReduceAction1106(void);
+#define LOCATE_CHECKNEW_ReduceAction1106 "check new ReduceAction1106"
+void CHECKNEW_ReduceAction1106(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1106_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1106_parser___ReduceAction1106___init "new ReduceAction1106 parser::ReduceAction1106::init"
+val_t NEW_ReduceAction1106_parser___ReduceAction1106___init(void);
+typedef val_t (*NEW_ReduceAction1106_parser___ReduceAction1106___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1107 "init var of ReduceAction1107"
+void INIT_ATTRIBUTES__ReduceAction1107(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1107_t)(val_t p0);
+val_t NEW_ReduceAction1107(void);
+#define LOCATE_CHECKNEW_ReduceAction1107 "check new ReduceAction1107"
+void CHECKNEW_ReduceAction1107(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1107_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1107_parser___ReduceAction1107___init "new ReduceAction1107 parser::ReduceAction1107::init"
+val_t NEW_ReduceAction1107_parser___ReduceAction1107___init(void);
+typedef val_t (*NEW_ReduceAction1107_parser___ReduceAction1107___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1108 "init var of ReduceAction1108"
+void INIT_ATTRIBUTES__ReduceAction1108(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1108_t)(val_t p0);
+val_t NEW_ReduceAction1108(void);
+#define LOCATE_CHECKNEW_ReduceAction1108 "check new ReduceAction1108"
+void CHECKNEW_ReduceAction1108(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1108_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1108_parser___ReduceAction1108___init "new ReduceAction1108 parser::ReduceAction1108::init"
+val_t NEW_ReduceAction1108_parser___ReduceAction1108___init(void);
+typedef val_t (*NEW_ReduceAction1108_parser___ReduceAction1108___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1109 "init var of ReduceAction1109"
+void INIT_ATTRIBUTES__ReduceAction1109(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1109_t)(val_t p0);
+val_t NEW_ReduceAction1109(void);
+#define LOCATE_CHECKNEW_ReduceAction1109 "check new ReduceAction1109"
+void CHECKNEW_ReduceAction1109(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1109_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1109_parser___ReduceAction1109___init "new ReduceAction1109 parser::ReduceAction1109::init"
+val_t NEW_ReduceAction1109_parser___ReduceAction1109___init(void);
+typedef val_t (*NEW_ReduceAction1109_parser___ReduceAction1109___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1110 "init var of ReduceAction1110"
+void INIT_ATTRIBUTES__ReduceAction1110(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1110_t)(val_t p0);
+val_t NEW_ReduceAction1110(void);
+#define LOCATE_CHECKNEW_ReduceAction1110 "check new ReduceAction1110"
+void CHECKNEW_ReduceAction1110(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1110_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1110_parser___ReduceAction1110___init "new ReduceAction1110 parser::ReduceAction1110::init"
+val_t NEW_ReduceAction1110_parser___ReduceAction1110___init(void);
+typedef val_t (*NEW_ReduceAction1110_parser___ReduceAction1110___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1111 "init var of ReduceAction1111"
+void INIT_ATTRIBUTES__ReduceAction1111(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1111_t)(val_t p0);
+val_t NEW_ReduceAction1111(void);
+#define LOCATE_CHECKNEW_ReduceAction1111 "check new ReduceAction1111"
+void CHECKNEW_ReduceAction1111(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1111_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1111_parser___ReduceAction1111___init "new ReduceAction1111 parser::ReduceAction1111::init"
+val_t NEW_ReduceAction1111_parser___ReduceAction1111___init(void);
+typedef val_t (*NEW_ReduceAction1111_parser___ReduceAction1111___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1112 "init var of ReduceAction1112"
+void INIT_ATTRIBUTES__ReduceAction1112(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1112_t)(val_t p0);
+val_t NEW_ReduceAction1112(void);
+#define LOCATE_CHECKNEW_ReduceAction1112 "check new ReduceAction1112"
+void CHECKNEW_ReduceAction1112(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1112_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1112_parser___ReduceAction1112___init "new ReduceAction1112 parser::ReduceAction1112::init"
+val_t NEW_ReduceAction1112_parser___ReduceAction1112___init(void);
+typedef val_t (*NEW_ReduceAction1112_parser___ReduceAction1112___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1113 "init var of ReduceAction1113"
+void INIT_ATTRIBUTES__ReduceAction1113(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1113_t)(val_t p0);
+val_t NEW_ReduceAction1113(void);
+#define LOCATE_CHECKNEW_ReduceAction1113 "check new ReduceAction1113"
+void CHECKNEW_ReduceAction1113(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1113_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1113_parser___ReduceAction1113___init "new ReduceAction1113 parser::ReduceAction1113::init"
+val_t NEW_ReduceAction1113_parser___ReduceAction1113___init(void);
+typedef val_t (*NEW_ReduceAction1113_parser___ReduceAction1113___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1114 "init var of ReduceAction1114"
+void INIT_ATTRIBUTES__ReduceAction1114(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1114_t)(val_t p0);
+val_t NEW_ReduceAction1114(void);
+#define LOCATE_CHECKNEW_ReduceAction1114 "check new ReduceAction1114"
+void CHECKNEW_ReduceAction1114(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1114_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1114_parser___ReduceAction1114___init "new ReduceAction1114 parser::ReduceAction1114::init"
+val_t NEW_ReduceAction1114_parser___ReduceAction1114___init(void);
+typedef val_t (*NEW_ReduceAction1114_parser___ReduceAction1114___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1115 "init var of ReduceAction1115"
+void INIT_ATTRIBUTES__ReduceAction1115(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1115_t)(val_t p0);
+val_t NEW_ReduceAction1115(void);
+#define LOCATE_CHECKNEW_ReduceAction1115 "check new ReduceAction1115"
+void CHECKNEW_ReduceAction1115(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1115_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1115_parser___ReduceAction1115___init "new ReduceAction1115 parser::ReduceAction1115::init"
+val_t NEW_ReduceAction1115_parser___ReduceAction1115___init(void);
+typedef val_t (*NEW_ReduceAction1115_parser___ReduceAction1115___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1116 "init var of ReduceAction1116"
+void INIT_ATTRIBUTES__ReduceAction1116(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1116_t)(val_t p0);
+val_t NEW_ReduceAction1116(void);
+#define LOCATE_CHECKNEW_ReduceAction1116 "check new ReduceAction1116"
+void CHECKNEW_ReduceAction1116(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1116_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1116_parser___ReduceAction1116___init "new ReduceAction1116 parser::ReduceAction1116::init"
+val_t NEW_ReduceAction1116_parser___ReduceAction1116___init(void);
+typedef val_t (*NEW_ReduceAction1116_parser___ReduceAction1116___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1117 "init var of ReduceAction1117"
+void INIT_ATTRIBUTES__ReduceAction1117(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1117_t)(val_t p0);
+val_t NEW_ReduceAction1117(void);
+#define LOCATE_CHECKNEW_ReduceAction1117 "check new ReduceAction1117"
+void CHECKNEW_ReduceAction1117(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1117_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1117_parser___ReduceAction1117___init "new ReduceAction1117 parser::ReduceAction1117::init"
+val_t NEW_ReduceAction1117_parser___ReduceAction1117___init(void);
+typedef val_t (*NEW_ReduceAction1117_parser___ReduceAction1117___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1118 "init var of ReduceAction1118"
+void INIT_ATTRIBUTES__ReduceAction1118(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1118_t)(val_t p0);
+val_t NEW_ReduceAction1118(void);
+#define LOCATE_CHECKNEW_ReduceAction1118 "check new ReduceAction1118"
+void CHECKNEW_ReduceAction1118(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1118_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1118_parser___ReduceAction1118___init "new ReduceAction1118 parser::ReduceAction1118::init"
+val_t NEW_ReduceAction1118_parser___ReduceAction1118___init(void);
+typedef val_t (*NEW_ReduceAction1118_parser___ReduceAction1118___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1119 "init var of ReduceAction1119"
+void INIT_ATTRIBUTES__ReduceAction1119(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1119_t)(val_t p0);
+val_t NEW_ReduceAction1119(void);
+#define LOCATE_CHECKNEW_ReduceAction1119 "check new ReduceAction1119"
+void CHECKNEW_ReduceAction1119(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1119_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1119_parser___ReduceAction1119___init "new ReduceAction1119 parser::ReduceAction1119::init"
+val_t NEW_ReduceAction1119_parser___ReduceAction1119___init(void);
+typedef val_t (*NEW_ReduceAction1119_parser___ReduceAction1119___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1120 "init var of ReduceAction1120"
+void INIT_ATTRIBUTES__ReduceAction1120(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1120_t)(val_t p0);
+val_t NEW_ReduceAction1120(void);
+#define LOCATE_CHECKNEW_ReduceAction1120 "check new ReduceAction1120"
+void CHECKNEW_ReduceAction1120(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1120_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1120_parser___ReduceAction1120___init "new ReduceAction1120 parser::ReduceAction1120::init"
+val_t NEW_ReduceAction1120_parser___ReduceAction1120___init(void);
+typedef val_t (*NEW_ReduceAction1120_parser___ReduceAction1120___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1121 "init var of ReduceAction1121"
+void INIT_ATTRIBUTES__ReduceAction1121(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1121_t)(val_t p0);
+val_t NEW_ReduceAction1121(void);
+#define LOCATE_CHECKNEW_ReduceAction1121 "check new ReduceAction1121"
+void CHECKNEW_ReduceAction1121(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1121_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1121_parser___ReduceAction1121___init "new ReduceAction1121 parser::ReduceAction1121::init"
+val_t NEW_ReduceAction1121_parser___ReduceAction1121___init(void);
+typedef val_t (*NEW_ReduceAction1121_parser___ReduceAction1121___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1122 "init var of ReduceAction1122"
+void INIT_ATTRIBUTES__ReduceAction1122(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1122_t)(val_t p0);
+val_t NEW_ReduceAction1122(void);
+#define LOCATE_CHECKNEW_ReduceAction1122 "check new ReduceAction1122"
+void CHECKNEW_ReduceAction1122(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1122_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1122_parser___ReduceAction1122___init "new ReduceAction1122 parser::ReduceAction1122::init"
+val_t NEW_ReduceAction1122_parser___ReduceAction1122___init(void);
+typedef val_t (*NEW_ReduceAction1122_parser___ReduceAction1122___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1123 "init var of ReduceAction1123"
+void INIT_ATTRIBUTES__ReduceAction1123(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1123_t)(val_t p0);
+val_t NEW_ReduceAction1123(void);
+#define LOCATE_CHECKNEW_ReduceAction1123 "check new ReduceAction1123"
+void CHECKNEW_ReduceAction1123(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1123_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1123_parser___ReduceAction1123___init "new ReduceAction1123 parser::ReduceAction1123::init"
+val_t NEW_ReduceAction1123_parser___ReduceAction1123___init(void);
+typedef val_t (*NEW_ReduceAction1123_parser___ReduceAction1123___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1124 "init var of ReduceAction1124"
+void INIT_ATTRIBUTES__ReduceAction1124(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1124_t)(val_t p0);
+val_t NEW_ReduceAction1124(void);
+#define LOCATE_CHECKNEW_ReduceAction1124 "check new ReduceAction1124"
+void CHECKNEW_ReduceAction1124(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1124_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1124_parser___ReduceAction1124___init "new ReduceAction1124 parser::ReduceAction1124::init"
+val_t NEW_ReduceAction1124_parser___ReduceAction1124___init(void);
+typedef val_t (*NEW_ReduceAction1124_parser___ReduceAction1124___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1125 "init var of ReduceAction1125"
+void INIT_ATTRIBUTES__ReduceAction1125(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1125_t)(val_t p0);
+val_t NEW_ReduceAction1125(void);
+#define LOCATE_CHECKNEW_ReduceAction1125 "check new ReduceAction1125"
+void CHECKNEW_ReduceAction1125(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1125_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1125_parser___ReduceAction1125___init "new ReduceAction1125 parser::ReduceAction1125::init"
+val_t NEW_ReduceAction1125_parser___ReduceAction1125___init(void);
+typedef val_t (*NEW_ReduceAction1125_parser___ReduceAction1125___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1126 "init var of ReduceAction1126"
+void INIT_ATTRIBUTES__ReduceAction1126(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1126_t)(val_t p0);
+val_t NEW_ReduceAction1126(void);
+#define LOCATE_CHECKNEW_ReduceAction1126 "check new ReduceAction1126"
+void CHECKNEW_ReduceAction1126(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1126_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1126_parser___ReduceAction1126___init "new ReduceAction1126 parser::ReduceAction1126::init"
+val_t NEW_ReduceAction1126_parser___ReduceAction1126___init(void);
+typedef val_t (*NEW_ReduceAction1126_parser___ReduceAction1126___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1127 "init var of ReduceAction1127"
+void INIT_ATTRIBUTES__ReduceAction1127(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1127_t)(val_t p0);
+val_t NEW_ReduceAction1127(void);
+#define LOCATE_CHECKNEW_ReduceAction1127 "check new ReduceAction1127"
+void CHECKNEW_ReduceAction1127(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1127_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1127_parser___ReduceAction1127___init "new ReduceAction1127 parser::ReduceAction1127::init"
+val_t NEW_ReduceAction1127_parser___ReduceAction1127___init(void);
+typedef val_t (*NEW_ReduceAction1127_parser___ReduceAction1127___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1128 "init var of ReduceAction1128"
+void INIT_ATTRIBUTES__ReduceAction1128(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1128_t)(val_t p0);
+val_t NEW_ReduceAction1128(void);
+#define LOCATE_CHECKNEW_ReduceAction1128 "check new ReduceAction1128"
+void CHECKNEW_ReduceAction1128(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1128_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1128_parser___ReduceAction1128___init "new ReduceAction1128 parser::ReduceAction1128::init"
+val_t NEW_ReduceAction1128_parser___ReduceAction1128___init(void);
+typedef val_t (*NEW_ReduceAction1128_parser___ReduceAction1128___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1129 "init var of ReduceAction1129"
+void INIT_ATTRIBUTES__ReduceAction1129(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1129_t)(val_t p0);
+val_t NEW_ReduceAction1129(void);
+#define LOCATE_CHECKNEW_ReduceAction1129 "check new ReduceAction1129"
+void CHECKNEW_ReduceAction1129(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1129_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1129_parser___ReduceAction1129___init "new ReduceAction1129 parser::ReduceAction1129::init"
+val_t NEW_ReduceAction1129_parser___ReduceAction1129___init(void);
+typedef val_t (*NEW_ReduceAction1129_parser___ReduceAction1129___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1130 "init var of ReduceAction1130"
+void INIT_ATTRIBUTES__ReduceAction1130(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1130_t)(val_t p0);
+val_t NEW_ReduceAction1130(void);
+#define LOCATE_CHECKNEW_ReduceAction1130 "check new ReduceAction1130"
+void CHECKNEW_ReduceAction1130(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1130_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1130_parser___ReduceAction1130___init "new ReduceAction1130 parser::ReduceAction1130::init"
+val_t NEW_ReduceAction1130_parser___ReduceAction1130___init(void);
+typedef val_t (*NEW_ReduceAction1130_parser___ReduceAction1130___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1131 "init var of ReduceAction1131"
+void INIT_ATTRIBUTES__ReduceAction1131(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1131_t)(val_t p0);
+val_t NEW_ReduceAction1131(void);
+#define LOCATE_CHECKNEW_ReduceAction1131 "check new ReduceAction1131"
+void CHECKNEW_ReduceAction1131(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1131_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1131_parser___ReduceAction1131___init "new ReduceAction1131 parser::ReduceAction1131::init"
+val_t NEW_ReduceAction1131_parser___ReduceAction1131___init(void);
+typedef val_t (*NEW_ReduceAction1131_parser___ReduceAction1131___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1132 "init var of ReduceAction1132"
+void INIT_ATTRIBUTES__ReduceAction1132(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1132_t)(val_t p0);
+val_t NEW_ReduceAction1132(void);
+#define LOCATE_CHECKNEW_ReduceAction1132 "check new ReduceAction1132"
+void CHECKNEW_ReduceAction1132(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1132_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1132_parser___ReduceAction1132___init "new ReduceAction1132 parser::ReduceAction1132::init"
+val_t NEW_ReduceAction1132_parser___ReduceAction1132___init(void);
+typedef val_t (*NEW_ReduceAction1132_parser___ReduceAction1132___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1133 "init var of ReduceAction1133"
+void INIT_ATTRIBUTES__ReduceAction1133(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1133_t)(val_t p0);
+val_t NEW_ReduceAction1133(void);
+#define LOCATE_CHECKNEW_ReduceAction1133 "check new ReduceAction1133"
+void CHECKNEW_ReduceAction1133(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1133_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1133_parser___ReduceAction1133___init "new ReduceAction1133 parser::ReduceAction1133::init"
+val_t NEW_ReduceAction1133_parser___ReduceAction1133___init(void);
+typedef val_t (*NEW_ReduceAction1133_parser___ReduceAction1133___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1134 "init var of ReduceAction1134"
+void INIT_ATTRIBUTES__ReduceAction1134(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1134_t)(val_t p0);
+val_t NEW_ReduceAction1134(void);
+#define LOCATE_CHECKNEW_ReduceAction1134 "check new ReduceAction1134"
+void CHECKNEW_ReduceAction1134(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1134_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1134_parser___ReduceAction1134___init "new ReduceAction1134 parser::ReduceAction1134::init"
+val_t NEW_ReduceAction1134_parser___ReduceAction1134___init(void);
+typedef val_t (*NEW_ReduceAction1134_parser___ReduceAction1134___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1135 "init var of ReduceAction1135"
+void INIT_ATTRIBUTES__ReduceAction1135(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1135_t)(val_t p0);
+val_t NEW_ReduceAction1135(void);
+#define LOCATE_CHECKNEW_ReduceAction1135 "check new ReduceAction1135"
+void CHECKNEW_ReduceAction1135(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1135_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1135_parser___ReduceAction1135___init "new ReduceAction1135 parser::ReduceAction1135::init"
+val_t NEW_ReduceAction1135_parser___ReduceAction1135___init(void);
+typedef val_t (*NEW_ReduceAction1135_parser___ReduceAction1135___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1136 "init var of ReduceAction1136"
+void INIT_ATTRIBUTES__ReduceAction1136(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1136_t)(val_t p0);
+val_t NEW_ReduceAction1136(void);
+#define LOCATE_CHECKNEW_ReduceAction1136 "check new ReduceAction1136"
+void CHECKNEW_ReduceAction1136(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1136_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1136_parser___ReduceAction1136___init "new ReduceAction1136 parser::ReduceAction1136::init"
+val_t NEW_ReduceAction1136_parser___ReduceAction1136___init(void);
+typedef val_t (*NEW_ReduceAction1136_parser___ReduceAction1136___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1137 "init var of ReduceAction1137"
+void INIT_ATTRIBUTES__ReduceAction1137(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1137_t)(val_t p0);
+val_t NEW_ReduceAction1137(void);
+#define LOCATE_CHECKNEW_ReduceAction1137 "check new ReduceAction1137"
+void CHECKNEW_ReduceAction1137(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1137_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1137_parser___ReduceAction1137___init "new ReduceAction1137 parser::ReduceAction1137::init"
+val_t NEW_ReduceAction1137_parser___ReduceAction1137___init(void);
+typedef val_t (*NEW_ReduceAction1137_parser___ReduceAction1137___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1138 "init var of ReduceAction1138"
+void INIT_ATTRIBUTES__ReduceAction1138(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1138_t)(val_t p0);
+val_t NEW_ReduceAction1138(void);
+#define LOCATE_CHECKNEW_ReduceAction1138 "check new ReduceAction1138"
+void CHECKNEW_ReduceAction1138(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1138_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1138_parser___ReduceAction1138___init "new ReduceAction1138 parser::ReduceAction1138::init"
+val_t NEW_ReduceAction1138_parser___ReduceAction1138___init(void);
+typedef val_t (*NEW_ReduceAction1138_parser___ReduceAction1138___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1139 "init var of ReduceAction1139"
+void INIT_ATTRIBUTES__ReduceAction1139(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1139_t)(val_t p0);
+val_t NEW_ReduceAction1139(void);
+#define LOCATE_CHECKNEW_ReduceAction1139 "check new ReduceAction1139"
+void CHECKNEW_ReduceAction1139(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1139_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1139_parser___ReduceAction1139___init "new ReduceAction1139 parser::ReduceAction1139::init"
+val_t NEW_ReduceAction1139_parser___ReduceAction1139___init(void);
+typedef val_t (*NEW_ReduceAction1139_parser___ReduceAction1139___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1140 "init var of ReduceAction1140"
+void INIT_ATTRIBUTES__ReduceAction1140(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1140_t)(val_t p0);
+val_t NEW_ReduceAction1140(void);
+#define LOCATE_CHECKNEW_ReduceAction1140 "check new ReduceAction1140"
+void CHECKNEW_ReduceAction1140(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1140_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1140_parser___ReduceAction1140___init "new ReduceAction1140 parser::ReduceAction1140::init"
+val_t NEW_ReduceAction1140_parser___ReduceAction1140___init(void);
+typedef val_t (*NEW_ReduceAction1140_parser___ReduceAction1140___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1141 "init var of ReduceAction1141"
+void INIT_ATTRIBUTES__ReduceAction1141(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1141_t)(val_t p0);
+val_t NEW_ReduceAction1141(void);
+#define LOCATE_CHECKNEW_ReduceAction1141 "check new ReduceAction1141"
+void CHECKNEW_ReduceAction1141(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1141_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1141_parser___ReduceAction1141___init "new ReduceAction1141 parser::ReduceAction1141::init"
+val_t NEW_ReduceAction1141_parser___ReduceAction1141___init(void);
+typedef val_t (*NEW_ReduceAction1141_parser___ReduceAction1141___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1142 "init var of ReduceAction1142"
+void INIT_ATTRIBUTES__ReduceAction1142(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1142_t)(val_t p0);
+val_t NEW_ReduceAction1142(void);
+#define LOCATE_CHECKNEW_ReduceAction1142 "check new ReduceAction1142"
+void CHECKNEW_ReduceAction1142(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1142_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1142_parser___ReduceAction1142___init "new ReduceAction1142 parser::ReduceAction1142::init"
+val_t NEW_ReduceAction1142_parser___ReduceAction1142___init(void);
+typedef val_t (*NEW_ReduceAction1142_parser___ReduceAction1142___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1143 "init var of ReduceAction1143"
+void INIT_ATTRIBUTES__ReduceAction1143(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1143_t)(val_t p0);
+val_t NEW_ReduceAction1143(void);
+#define LOCATE_CHECKNEW_ReduceAction1143 "check new ReduceAction1143"
+void CHECKNEW_ReduceAction1143(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1143_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1143_parser___ReduceAction1143___init "new ReduceAction1143 parser::ReduceAction1143::init"
+val_t NEW_ReduceAction1143_parser___ReduceAction1143___init(void);
+typedef val_t (*NEW_ReduceAction1143_parser___ReduceAction1143___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1144 "init var of ReduceAction1144"
+void INIT_ATTRIBUTES__ReduceAction1144(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1144_t)(val_t p0);
+val_t NEW_ReduceAction1144(void);
+#define LOCATE_CHECKNEW_ReduceAction1144 "check new ReduceAction1144"
+void CHECKNEW_ReduceAction1144(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1144_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1144_parser___ReduceAction1144___init "new ReduceAction1144 parser::ReduceAction1144::init"
+val_t NEW_ReduceAction1144_parser___ReduceAction1144___init(void);
+typedef val_t (*NEW_ReduceAction1144_parser___ReduceAction1144___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1145 "init var of ReduceAction1145"
+void INIT_ATTRIBUTES__ReduceAction1145(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1145_t)(val_t p0);
+val_t NEW_ReduceAction1145(void);
+#define LOCATE_CHECKNEW_ReduceAction1145 "check new ReduceAction1145"
+void CHECKNEW_ReduceAction1145(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1145_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1145_parser___ReduceAction1145___init "new ReduceAction1145 parser::ReduceAction1145::init"
+val_t NEW_ReduceAction1145_parser___ReduceAction1145___init(void);
+typedef val_t (*NEW_ReduceAction1145_parser___ReduceAction1145___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1146 "init var of ReduceAction1146"
+void INIT_ATTRIBUTES__ReduceAction1146(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1146_t)(val_t p0);
+val_t NEW_ReduceAction1146(void);
+#define LOCATE_CHECKNEW_ReduceAction1146 "check new ReduceAction1146"
+void CHECKNEW_ReduceAction1146(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1146_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1146_parser___ReduceAction1146___init "new ReduceAction1146 parser::ReduceAction1146::init"
+val_t NEW_ReduceAction1146_parser___ReduceAction1146___init(void);
+typedef val_t (*NEW_ReduceAction1146_parser___ReduceAction1146___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1147 "init var of ReduceAction1147"
+void INIT_ATTRIBUTES__ReduceAction1147(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1147_t)(val_t p0);
+val_t NEW_ReduceAction1147(void);
+#define LOCATE_CHECKNEW_ReduceAction1147 "check new ReduceAction1147"
+void CHECKNEW_ReduceAction1147(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1147_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1147_parser___ReduceAction1147___init "new ReduceAction1147 parser::ReduceAction1147::init"
+val_t NEW_ReduceAction1147_parser___ReduceAction1147___init(void);
+typedef val_t (*NEW_ReduceAction1147_parser___ReduceAction1147___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1148 "init var of ReduceAction1148"
+void INIT_ATTRIBUTES__ReduceAction1148(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1148_t)(val_t p0);
+val_t NEW_ReduceAction1148(void);
+#define LOCATE_CHECKNEW_ReduceAction1148 "check new ReduceAction1148"
+void CHECKNEW_ReduceAction1148(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1148_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1148_parser___ReduceAction1148___init "new ReduceAction1148 parser::ReduceAction1148::init"
+val_t NEW_ReduceAction1148_parser___ReduceAction1148___init(void);
+typedef val_t (*NEW_ReduceAction1148_parser___ReduceAction1148___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1149 "init var of ReduceAction1149"
+void INIT_ATTRIBUTES__ReduceAction1149(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1149_t)(val_t p0);
+val_t NEW_ReduceAction1149(void);
+#define LOCATE_CHECKNEW_ReduceAction1149 "check new ReduceAction1149"
+void CHECKNEW_ReduceAction1149(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1149_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1149_parser___ReduceAction1149___init "new ReduceAction1149 parser::ReduceAction1149::init"
+val_t NEW_ReduceAction1149_parser___ReduceAction1149___init(void);
+typedef val_t (*NEW_ReduceAction1149_parser___ReduceAction1149___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1150 "init var of ReduceAction1150"
+void INIT_ATTRIBUTES__ReduceAction1150(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1150_t)(val_t p0);
+val_t NEW_ReduceAction1150(void);
+#define LOCATE_CHECKNEW_ReduceAction1150 "check new ReduceAction1150"
+void CHECKNEW_ReduceAction1150(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1150_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1150_parser___ReduceAction1150___init "new ReduceAction1150 parser::ReduceAction1150::init"
+val_t NEW_ReduceAction1150_parser___ReduceAction1150___init(void);
+typedef val_t (*NEW_ReduceAction1150_parser___ReduceAction1150___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1151 "init var of ReduceAction1151"
+void INIT_ATTRIBUTES__ReduceAction1151(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1151_t)(val_t p0);
+val_t NEW_ReduceAction1151(void);
+#define LOCATE_CHECKNEW_ReduceAction1151 "check new ReduceAction1151"
+void CHECKNEW_ReduceAction1151(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1151_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1151_parser___ReduceAction1151___init "new ReduceAction1151 parser::ReduceAction1151::init"
+val_t NEW_ReduceAction1151_parser___ReduceAction1151___init(void);
+typedef val_t (*NEW_ReduceAction1151_parser___ReduceAction1151___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1152 "init var of ReduceAction1152"
+void INIT_ATTRIBUTES__ReduceAction1152(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1152_t)(val_t p0);
+val_t NEW_ReduceAction1152(void);
+#define LOCATE_CHECKNEW_ReduceAction1152 "check new ReduceAction1152"
+void CHECKNEW_ReduceAction1152(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1152_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1152_parser___ReduceAction1152___init "new ReduceAction1152 parser::ReduceAction1152::init"
+val_t NEW_ReduceAction1152_parser___ReduceAction1152___init(void);
+typedef val_t (*NEW_ReduceAction1152_parser___ReduceAction1152___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1153 "init var of ReduceAction1153"
+void INIT_ATTRIBUTES__ReduceAction1153(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1153_t)(val_t p0);
+val_t NEW_ReduceAction1153(void);
+#define LOCATE_CHECKNEW_ReduceAction1153 "check new ReduceAction1153"
+void CHECKNEW_ReduceAction1153(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1153_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1153_parser___ReduceAction1153___init "new ReduceAction1153 parser::ReduceAction1153::init"
+val_t NEW_ReduceAction1153_parser___ReduceAction1153___init(void);
+typedef val_t (*NEW_ReduceAction1153_parser___ReduceAction1153___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1154 "init var of ReduceAction1154"
+void INIT_ATTRIBUTES__ReduceAction1154(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1154_t)(val_t p0);
+val_t NEW_ReduceAction1154(void);
+#define LOCATE_CHECKNEW_ReduceAction1154 "check new ReduceAction1154"
+void CHECKNEW_ReduceAction1154(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1154_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1154_parser___ReduceAction1154___init "new ReduceAction1154 parser::ReduceAction1154::init"
+val_t NEW_ReduceAction1154_parser___ReduceAction1154___init(void);
+typedef val_t (*NEW_ReduceAction1154_parser___ReduceAction1154___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1155 "init var of ReduceAction1155"
+void INIT_ATTRIBUTES__ReduceAction1155(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1155_t)(val_t p0);
+val_t NEW_ReduceAction1155(void);
+#define LOCATE_CHECKNEW_ReduceAction1155 "check new ReduceAction1155"
+void CHECKNEW_ReduceAction1155(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1155_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1155_parser___ReduceAction1155___init "new ReduceAction1155 parser::ReduceAction1155::init"
+val_t NEW_ReduceAction1155_parser___ReduceAction1155___init(void);
+typedef val_t (*NEW_ReduceAction1155_parser___ReduceAction1155___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1156 "init var of ReduceAction1156"
+void INIT_ATTRIBUTES__ReduceAction1156(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1156_t)(val_t p0);
+val_t NEW_ReduceAction1156(void);
+#define LOCATE_CHECKNEW_ReduceAction1156 "check new ReduceAction1156"
+void CHECKNEW_ReduceAction1156(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1156_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1156_parser___ReduceAction1156___init "new ReduceAction1156 parser::ReduceAction1156::init"
+val_t NEW_ReduceAction1156_parser___ReduceAction1156___init(void);
+typedef val_t (*NEW_ReduceAction1156_parser___ReduceAction1156___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1157 "init var of ReduceAction1157"
+void INIT_ATTRIBUTES__ReduceAction1157(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1157_t)(val_t p0);
+val_t NEW_ReduceAction1157(void);
+#define LOCATE_CHECKNEW_ReduceAction1157 "check new ReduceAction1157"
+void CHECKNEW_ReduceAction1157(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1157_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1157_parser___ReduceAction1157___init "new ReduceAction1157 parser::ReduceAction1157::init"
+val_t NEW_ReduceAction1157_parser___ReduceAction1157___init(void);
+typedef val_t (*NEW_ReduceAction1157_parser___ReduceAction1157___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1158 "init var of ReduceAction1158"
+void INIT_ATTRIBUTES__ReduceAction1158(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1158_t)(val_t p0);
+val_t NEW_ReduceAction1158(void);
+#define LOCATE_CHECKNEW_ReduceAction1158 "check new ReduceAction1158"
+void CHECKNEW_ReduceAction1158(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1158_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1158_parser___ReduceAction1158___init "new ReduceAction1158 parser::ReduceAction1158::init"
+val_t NEW_ReduceAction1158_parser___ReduceAction1158___init(void);
+typedef val_t (*NEW_ReduceAction1158_parser___ReduceAction1158___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1159 "init var of ReduceAction1159"
+void INIT_ATTRIBUTES__ReduceAction1159(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1159_t)(val_t p0);
+val_t NEW_ReduceAction1159(void);
+#define LOCATE_CHECKNEW_ReduceAction1159 "check new ReduceAction1159"
+void CHECKNEW_ReduceAction1159(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1159_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1159_parser___ReduceAction1159___init "new ReduceAction1159 parser::ReduceAction1159::init"
+val_t NEW_ReduceAction1159_parser___ReduceAction1159___init(void);
+typedef val_t (*NEW_ReduceAction1159_parser___ReduceAction1159___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1160 "init var of ReduceAction1160"
+void INIT_ATTRIBUTES__ReduceAction1160(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1160_t)(val_t p0);
+val_t NEW_ReduceAction1160(void);
+#define LOCATE_CHECKNEW_ReduceAction1160 "check new ReduceAction1160"
+void CHECKNEW_ReduceAction1160(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1160_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1160_parser___ReduceAction1160___init "new ReduceAction1160 parser::ReduceAction1160::init"
+val_t NEW_ReduceAction1160_parser___ReduceAction1160___init(void);
+typedef val_t (*NEW_ReduceAction1160_parser___ReduceAction1160___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1161 "init var of ReduceAction1161"
+void INIT_ATTRIBUTES__ReduceAction1161(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1161_t)(val_t p0);
+val_t NEW_ReduceAction1161(void);
+#define LOCATE_CHECKNEW_ReduceAction1161 "check new ReduceAction1161"
+void CHECKNEW_ReduceAction1161(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1161_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1161_parser___ReduceAction1161___init "new ReduceAction1161 parser::ReduceAction1161::init"
+val_t NEW_ReduceAction1161_parser___ReduceAction1161___init(void);
+typedef val_t (*NEW_ReduceAction1161_parser___ReduceAction1161___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1162 "init var of ReduceAction1162"
+void INIT_ATTRIBUTES__ReduceAction1162(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1162_t)(val_t p0);
+val_t NEW_ReduceAction1162(void);
+#define LOCATE_CHECKNEW_ReduceAction1162 "check new ReduceAction1162"
+void CHECKNEW_ReduceAction1162(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1162_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1162_parser___ReduceAction1162___init "new ReduceAction1162 parser::ReduceAction1162::init"
+val_t NEW_ReduceAction1162_parser___ReduceAction1162___init(void);
+typedef val_t (*NEW_ReduceAction1162_parser___ReduceAction1162___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1163 "init var of ReduceAction1163"
+void INIT_ATTRIBUTES__ReduceAction1163(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1163_t)(val_t p0);
+val_t NEW_ReduceAction1163(void);
+#define LOCATE_CHECKNEW_ReduceAction1163 "check new ReduceAction1163"
+void CHECKNEW_ReduceAction1163(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1163_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1163_parser___ReduceAction1163___init "new ReduceAction1163 parser::ReduceAction1163::init"
+val_t NEW_ReduceAction1163_parser___ReduceAction1163___init(void);
+typedef val_t (*NEW_ReduceAction1163_parser___ReduceAction1163___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1164 "init var of ReduceAction1164"
+void INIT_ATTRIBUTES__ReduceAction1164(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1164_t)(val_t p0);
+val_t NEW_ReduceAction1164(void);
+#define LOCATE_CHECKNEW_ReduceAction1164 "check new ReduceAction1164"
+void CHECKNEW_ReduceAction1164(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1164_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1164_parser___ReduceAction1164___init "new ReduceAction1164 parser::ReduceAction1164::init"
+val_t NEW_ReduceAction1164_parser___ReduceAction1164___init(void);
+typedef val_t (*NEW_ReduceAction1164_parser___ReduceAction1164___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1165 "init var of ReduceAction1165"
+void INIT_ATTRIBUTES__ReduceAction1165(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1165_t)(val_t p0);
+val_t NEW_ReduceAction1165(void);
+#define LOCATE_CHECKNEW_ReduceAction1165 "check new ReduceAction1165"
+void CHECKNEW_ReduceAction1165(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1165_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1165_parser___ReduceAction1165___init "new ReduceAction1165 parser::ReduceAction1165::init"
+val_t NEW_ReduceAction1165_parser___ReduceAction1165___init(void);
+typedef val_t (*NEW_ReduceAction1165_parser___ReduceAction1165___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1166 "init var of ReduceAction1166"
+void INIT_ATTRIBUTES__ReduceAction1166(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1166_t)(val_t p0);
+val_t NEW_ReduceAction1166(void);
+#define LOCATE_CHECKNEW_ReduceAction1166 "check new ReduceAction1166"
+void CHECKNEW_ReduceAction1166(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1166_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1166_parser___ReduceAction1166___init "new ReduceAction1166 parser::ReduceAction1166::init"
+val_t NEW_ReduceAction1166_parser___ReduceAction1166___init(void);
+typedef val_t (*NEW_ReduceAction1166_parser___ReduceAction1166___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1167 "init var of ReduceAction1167"
+void INIT_ATTRIBUTES__ReduceAction1167(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1167_t)(val_t p0);
+val_t NEW_ReduceAction1167(void);
+#define LOCATE_CHECKNEW_ReduceAction1167 "check new ReduceAction1167"
+void CHECKNEW_ReduceAction1167(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1167_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1167_parser___ReduceAction1167___init "new ReduceAction1167 parser::ReduceAction1167::init"
+val_t NEW_ReduceAction1167_parser___ReduceAction1167___init(void);
+typedef val_t (*NEW_ReduceAction1167_parser___ReduceAction1167___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1168 "init var of ReduceAction1168"
+void INIT_ATTRIBUTES__ReduceAction1168(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1168_t)(val_t p0);
+val_t NEW_ReduceAction1168(void);
+#define LOCATE_CHECKNEW_ReduceAction1168 "check new ReduceAction1168"
+void CHECKNEW_ReduceAction1168(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1168_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1168_parser___ReduceAction1168___init "new ReduceAction1168 parser::ReduceAction1168::init"
+val_t NEW_ReduceAction1168_parser___ReduceAction1168___init(void);
+typedef val_t (*NEW_ReduceAction1168_parser___ReduceAction1168___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1169 "init var of ReduceAction1169"
+void INIT_ATTRIBUTES__ReduceAction1169(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1169_t)(val_t p0);
+val_t NEW_ReduceAction1169(void);
+#define LOCATE_CHECKNEW_ReduceAction1169 "check new ReduceAction1169"
+void CHECKNEW_ReduceAction1169(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1169_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1169_parser___ReduceAction1169___init "new ReduceAction1169 parser::ReduceAction1169::init"
+val_t NEW_ReduceAction1169_parser___ReduceAction1169___init(void);
+typedef val_t (*NEW_ReduceAction1169_parser___ReduceAction1169___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1170 "init var of ReduceAction1170"
+void INIT_ATTRIBUTES__ReduceAction1170(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1170_t)(val_t p0);
+val_t NEW_ReduceAction1170(void);
+#define LOCATE_CHECKNEW_ReduceAction1170 "check new ReduceAction1170"
+void CHECKNEW_ReduceAction1170(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1170_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1170_parser___ReduceAction1170___init "new ReduceAction1170 parser::ReduceAction1170::init"
+val_t NEW_ReduceAction1170_parser___ReduceAction1170___init(void);
+typedef val_t (*NEW_ReduceAction1170_parser___ReduceAction1170___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1171 "init var of ReduceAction1171"
+void INIT_ATTRIBUTES__ReduceAction1171(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1171_t)(val_t p0);
+val_t NEW_ReduceAction1171(void);
+#define LOCATE_CHECKNEW_ReduceAction1171 "check new ReduceAction1171"
+void CHECKNEW_ReduceAction1171(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1171_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1171_parser___ReduceAction1171___init "new ReduceAction1171 parser::ReduceAction1171::init"
+val_t NEW_ReduceAction1171_parser___ReduceAction1171___init(void);
+typedef val_t (*NEW_ReduceAction1171_parser___ReduceAction1171___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1172 "init var of ReduceAction1172"
+void INIT_ATTRIBUTES__ReduceAction1172(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1172_t)(val_t p0);
+val_t NEW_ReduceAction1172(void);
+#define LOCATE_CHECKNEW_ReduceAction1172 "check new ReduceAction1172"
+void CHECKNEW_ReduceAction1172(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1172_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1172_parser___ReduceAction1172___init "new ReduceAction1172 parser::ReduceAction1172::init"
+val_t NEW_ReduceAction1172_parser___ReduceAction1172___init(void);
+typedef val_t (*NEW_ReduceAction1172_parser___ReduceAction1172___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1173 "init var of ReduceAction1173"
+void INIT_ATTRIBUTES__ReduceAction1173(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1173_t)(val_t p0);
+val_t NEW_ReduceAction1173(void);
+#define LOCATE_CHECKNEW_ReduceAction1173 "check new ReduceAction1173"
+void CHECKNEW_ReduceAction1173(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1173_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1173_parser___ReduceAction1173___init "new ReduceAction1173 parser::ReduceAction1173::init"
+val_t NEW_ReduceAction1173_parser___ReduceAction1173___init(void);
+typedef val_t (*NEW_ReduceAction1173_parser___ReduceAction1173___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1174 "init var of ReduceAction1174"
+void INIT_ATTRIBUTES__ReduceAction1174(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1174_t)(val_t p0);
+val_t NEW_ReduceAction1174(void);
+#define LOCATE_CHECKNEW_ReduceAction1174 "check new ReduceAction1174"
+void CHECKNEW_ReduceAction1174(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1174_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1174_parser___ReduceAction1174___init "new ReduceAction1174 parser::ReduceAction1174::init"
+val_t NEW_ReduceAction1174_parser___ReduceAction1174___init(void);
+typedef val_t (*NEW_ReduceAction1174_parser___ReduceAction1174___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1175 "init var of ReduceAction1175"
+void INIT_ATTRIBUTES__ReduceAction1175(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1175_t)(val_t p0);
+val_t NEW_ReduceAction1175(void);
+#define LOCATE_CHECKNEW_ReduceAction1175 "check new ReduceAction1175"
+void CHECKNEW_ReduceAction1175(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1175_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1175_parser___ReduceAction1175___init "new ReduceAction1175 parser::ReduceAction1175::init"
+val_t NEW_ReduceAction1175_parser___ReduceAction1175___init(void);
+typedef val_t (*NEW_ReduceAction1175_parser___ReduceAction1175___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1176 "init var of ReduceAction1176"
+void INIT_ATTRIBUTES__ReduceAction1176(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1176_t)(val_t p0);
+val_t NEW_ReduceAction1176(void);
+#define LOCATE_CHECKNEW_ReduceAction1176 "check new ReduceAction1176"
+void CHECKNEW_ReduceAction1176(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1176_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1176_parser___ReduceAction1176___init "new ReduceAction1176 parser::ReduceAction1176::init"
+val_t NEW_ReduceAction1176_parser___ReduceAction1176___init(void);
+typedef val_t (*NEW_ReduceAction1176_parser___ReduceAction1176___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1177 "init var of ReduceAction1177"
+void INIT_ATTRIBUTES__ReduceAction1177(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1177_t)(val_t p0);
+val_t NEW_ReduceAction1177(void);
+#define LOCATE_CHECKNEW_ReduceAction1177 "check new ReduceAction1177"
+void CHECKNEW_ReduceAction1177(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1177_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1177_parser___ReduceAction1177___init "new ReduceAction1177 parser::ReduceAction1177::init"
+val_t NEW_ReduceAction1177_parser___ReduceAction1177___init(void);
+typedef val_t (*NEW_ReduceAction1177_parser___ReduceAction1177___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1178 "init var of ReduceAction1178"
+void INIT_ATTRIBUTES__ReduceAction1178(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1178_t)(val_t p0);
+val_t NEW_ReduceAction1178(void);
+#define LOCATE_CHECKNEW_ReduceAction1178 "check new ReduceAction1178"
+void CHECKNEW_ReduceAction1178(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1178_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1178_parser___ReduceAction1178___init "new ReduceAction1178 parser::ReduceAction1178::init"
+val_t NEW_ReduceAction1178_parser___ReduceAction1178___init(void);
+typedef val_t (*NEW_ReduceAction1178_parser___ReduceAction1178___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1179 "init var of ReduceAction1179"
+void INIT_ATTRIBUTES__ReduceAction1179(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1179_t)(val_t p0);
+val_t NEW_ReduceAction1179(void);
+#define LOCATE_CHECKNEW_ReduceAction1179 "check new ReduceAction1179"
+void CHECKNEW_ReduceAction1179(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1179_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1179_parser___ReduceAction1179___init "new ReduceAction1179 parser::ReduceAction1179::init"
+val_t NEW_ReduceAction1179_parser___ReduceAction1179___init(void);
+typedef val_t (*NEW_ReduceAction1179_parser___ReduceAction1179___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1180 "init var of ReduceAction1180"
+void INIT_ATTRIBUTES__ReduceAction1180(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1180_t)(val_t p0);
+val_t NEW_ReduceAction1180(void);
+#define LOCATE_CHECKNEW_ReduceAction1180 "check new ReduceAction1180"
+void CHECKNEW_ReduceAction1180(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1180_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1180_parser___ReduceAction1180___init "new ReduceAction1180 parser::ReduceAction1180::init"
+val_t NEW_ReduceAction1180_parser___ReduceAction1180___init(void);
+typedef val_t (*NEW_ReduceAction1180_parser___ReduceAction1180___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1181 "init var of ReduceAction1181"
+void INIT_ATTRIBUTES__ReduceAction1181(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1181_t)(val_t p0);
+val_t NEW_ReduceAction1181(void);
+#define LOCATE_CHECKNEW_ReduceAction1181 "check new ReduceAction1181"
+void CHECKNEW_ReduceAction1181(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1181_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1181_parser___ReduceAction1181___init "new ReduceAction1181 parser::ReduceAction1181::init"
+val_t NEW_ReduceAction1181_parser___ReduceAction1181___init(void);
+typedef val_t (*NEW_ReduceAction1181_parser___ReduceAction1181___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1182 "init var of ReduceAction1182"
+void INIT_ATTRIBUTES__ReduceAction1182(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1182_t)(val_t p0);
+val_t NEW_ReduceAction1182(void);
+#define LOCATE_CHECKNEW_ReduceAction1182 "check new ReduceAction1182"
+void CHECKNEW_ReduceAction1182(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1182_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1182_parser___ReduceAction1182___init "new ReduceAction1182 parser::ReduceAction1182::init"
+val_t NEW_ReduceAction1182_parser___ReduceAction1182___init(void);
+typedef val_t (*NEW_ReduceAction1182_parser___ReduceAction1182___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1183 "init var of ReduceAction1183"
+void INIT_ATTRIBUTES__ReduceAction1183(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1183_t)(val_t p0);
+val_t NEW_ReduceAction1183(void);
+#define LOCATE_CHECKNEW_ReduceAction1183 "check new ReduceAction1183"
+void CHECKNEW_ReduceAction1183(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1183_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1183_parser___ReduceAction1183___init "new ReduceAction1183 parser::ReduceAction1183::init"
+val_t NEW_ReduceAction1183_parser___ReduceAction1183___init(void);
+typedef val_t (*NEW_ReduceAction1183_parser___ReduceAction1183___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1184 "init var of ReduceAction1184"
+void INIT_ATTRIBUTES__ReduceAction1184(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1184_t)(val_t p0);
+val_t NEW_ReduceAction1184(void);
+#define LOCATE_CHECKNEW_ReduceAction1184 "check new ReduceAction1184"
+void CHECKNEW_ReduceAction1184(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1184_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1184_parser___ReduceAction1184___init "new ReduceAction1184 parser::ReduceAction1184::init"
+val_t NEW_ReduceAction1184_parser___ReduceAction1184___init(void);
+typedef val_t (*NEW_ReduceAction1184_parser___ReduceAction1184___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1185 "init var of ReduceAction1185"
+void INIT_ATTRIBUTES__ReduceAction1185(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1185_t)(val_t p0);
+val_t NEW_ReduceAction1185(void);
+#define LOCATE_CHECKNEW_ReduceAction1185 "check new ReduceAction1185"
+void CHECKNEW_ReduceAction1185(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1185_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1185_parser___ReduceAction1185___init "new ReduceAction1185 parser::ReduceAction1185::init"
+val_t NEW_ReduceAction1185_parser___ReduceAction1185___init(void);
+typedef val_t (*NEW_ReduceAction1185_parser___ReduceAction1185___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1186 "init var of ReduceAction1186"
+void INIT_ATTRIBUTES__ReduceAction1186(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1186_t)(val_t p0);
+val_t NEW_ReduceAction1186(void);
+#define LOCATE_CHECKNEW_ReduceAction1186 "check new ReduceAction1186"
+void CHECKNEW_ReduceAction1186(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1186_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1186_parser___ReduceAction1186___init "new ReduceAction1186 parser::ReduceAction1186::init"
+val_t NEW_ReduceAction1186_parser___ReduceAction1186___init(void);
+typedef val_t (*NEW_ReduceAction1186_parser___ReduceAction1186___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1187 "init var of ReduceAction1187"
+void INIT_ATTRIBUTES__ReduceAction1187(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1187_t)(val_t p0);
+val_t NEW_ReduceAction1187(void);
+#define LOCATE_CHECKNEW_ReduceAction1187 "check new ReduceAction1187"
+void CHECKNEW_ReduceAction1187(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1187_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1187_parser___ReduceAction1187___init "new ReduceAction1187 parser::ReduceAction1187::init"
+val_t NEW_ReduceAction1187_parser___ReduceAction1187___init(void);
+typedef val_t (*NEW_ReduceAction1187_parser___ReduceAction1187___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1188 "init var of ReduceAction1188"
+void INIT_ATTRIBUTES__ReduceAction1188(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1188_t)(val_t p0);
+val_t NEW_ReduceAction1188(void);
+#define LOCATE_CHECKNEW_ReduceAction1188 "check new ReduceAction1188"
+void CHECKNEW_ReduceAction1188(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1188_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1188_parser___ReduceAction1188___init "new ReduceAction1188 parser::ReduceAction1188::init"
+val_t NEW_ReduceAction1188_parser___ReduceAction1188___init(void);
+typedef val_t (*NEW_ReduceAction1188_parser___ReduceAction1188___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1189 "init var of ReduceAction1189"
+void INIT_ATTRIBUTES__ReduceAction1189(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1189_t)(val_t p0);
+val_t NEW_ReduceAction1189(void);
+#define LOCATE_CHECKNEW_ReduceAction1189 "check new ReduceAction1189"
+void CHECKNEW_ReduceAction1189(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1189_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1189_parser___ReduceAction1189___init "new ReduceAction1189 parser::ReduceAction1189::init"
+val_t NEW_ReduceAction1189_parser___ReduceAction1189___init(void);
+typedef val_t (*NEW_ReduceAction1189_parser___ReduceAction1189___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1190 "init var of ReduceAction1190"
+void INIT_ATTRIBUTES__ReduceAction1190(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1190_t)(val_t p0);
+val_t NEW_ReduceAction1190(void);
+#define LOCATE_CHECKNEW_ReduceAction1190 "check new ReduceAction1190"
+void CHECKNEW_ReduceAction1190(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1190_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1190_parser___ReduceAction1190___init "new ReduceAction1190 parser::ReduceAction1190::init"
+val_t NEW_ReduceAction1190_parser___ReduceAction1190___init(void);
+typedef val_t (*NEW_ReduceAction1190_parser___ReduceAction1190___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1191 "init var of ReduceAction1191"
+void INIT_ATTRIBUTES__ReduceAction1191(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1191_t)(val_t p0);
+val_t NEW_ReduceAction1191(void);
+#define LOCATE_CHECKNEW_ReduceAction1191 "check new ReduceAction1191"
+void CHECKNEW_ReduceAction1191(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1191_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1191_parser___ReduceAction1191___init "new ReduceAction1191 parser::ReduceAction1191::init"
+val_t NEW_ReduceAction1191_parser___ReduceAction1191___init(void);
+typedef val_t (*NEW_ReduceAction1191_parser___ReduceAction1191___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1192 "init var of ReduceAction1192"
+void INIT_ATTRIBUTES__ReduceAction1192(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1192_t)(val_t p0);
+val_t NEW_ReduceAction1192(void);
+#define LOCATE_CHECKNEW_ReduceAction1192 "check new ReduceAction1192"
+void CHECKNEW_ReduceAction1192(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1192_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1192_parser___ReduceAction1192___init "new ReduceAction1192 parser::ReduceAction1192::init"
+val_t NEW_ReduceAction1192_parser___ReduceAction1192___init(void);
+typedef val_t (*NEW_ReduceAction1192_parser___ReduceAction1192___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ReduceAction1193 "init var of ReduceAction1193"
+void INIT_ATTRIBUTES__ReduceAction1193(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ReduceAction1193_t)(val_t p0);
+val_t NEW_ReduceAction1193(void);
+#define LOCATE_CHECKNEW_ReduceAction1193 "check new ReduceAction1193"
+void CHECKNEW_ReduceAction1193(val_t p0);
+typedef void (*CHECKNEW_ReduceAction1193_t)(val_t p0);
+#define LOCATE_NEW_ReduceAction1193_parser___ReduceAction1193___init "new ReduceAction1193 parser::ReduceAction1193::init"
+val_t NEW_ReduceAction1193_parser___ReduceAction1193___init(void);
+typedef val_t (*NEW_ReduceAction1193_parser___ReduceAction1193___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__PartialOrder "init var of PartialOrder"
+void INIT_ATTRIBUTES__PartialOrder(val_t p0);
+typedef void (*INIT_ATTRIBUTES__PartialOrder_t)(val_t p0);
+val_t NEW_PartialOrder(void);
+#define LOCATE_CHECKNEW_PartialOrder "check new PartialOrder"
+void CHECKNEW_PartialOrder(val_t p0);
+typedef void (*CHECKNEW_PartialOrder_t)(val_t p0);
+#define LOCATE_NEW_PartialOrder_partial_order___PartialOrder___init "new PartialOrder partial_order::PartialOrder::init"
+val_t NEW_PartialOrder_partial_order___PartialOrder___init(void);
+typedef val_t (*NEW_PartialOrder_partial_order___PartialOrder___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__PartialOrderElement "init var of PartialOrderElement"
+void INIT_ATTRIBUTES__PartialOrderElement(val_t p0);
+typedef void (*INIT_ATTRIBUTES__PartialOrderElement_t)(val_t p0);
+val_t NEW_PartialOrderElement(void);
+#define LOCATE_CHECKNEW_PartialOrderElement "check new PartialOrderElement"
+void CHECKNEW_PartialOrderElement(val_t p0);
+typedef void (*CHECKNEW_PartialOrderElement_t)(val_t p0);
+#define LOCATE_NEW_PartialOrderElement_partial_order___PartialOrderElement___init "new PartialOrderElement partial_order::PartialOrderElement::init"
+val_t NEW_PartialOrderElement_partial_order___PartialOrderElement___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_PartialOrderElement_partial_order___PartialOrderElement___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMContext "init var of MMContext"
+void INIT_ATTRIBUTES__MMContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMContext_t)(val_t p0);
+val_t NEW_MMContext(void);
+#define LOCATE_CHECKNEW_MMContext "check new MMContext"
+void CHECKNEW_MMContext(val_t p0);
+typedef void (*CHECKNEW_MMContext_t)(val_t p0);
+#define LOCATE_NEW_MMContext_abstractmetamodel___MMContext___init "new MMContext abstractmetamodel::MMContext::init"
+val_t NEW_MMContext_abstractmetamodel___MMContext___init(void);
+typedef val_t (*NEW_MMContext_abstractmetamodel___MMContext___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__MMDirectory "init var of MMDirectory"
+void INIT_ATTRIBUTES__MMDirectory(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMDirectory_t)(val_t p0);
+val_t NEW_MMDirectory(void);
+#define LOCATE_CHECKNEW_MMDirectory "check new MMDirectory"
+void CHECKNEW_MMDirectory(val_t p0);
+typedef void (*CHECKNEW_MMDirectory_t)(val_t p0);
+#define LOCATE_NEW_MMDirectory_abstractmetamodel___MMDirectory___init "new MMDirectory abstractmetamodel::MMDirectory::init"
+val_t NEW_MMDirectory_abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMDirectory_abstractmetamodel___MMDirectory___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMModule "init var of MMModule"
+void INIT_ATTRIBUTES__MMModule(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMModule_t)(val_t p0);
+val_t NEW_MMModule(void);
+#define LOCATE_CHECKNEW_MMModule "check new MMModule"
+void CHECKNEW_MMModule(val_t p0);
+typedef void (*CHECKNEW_MMModule_t)(val_t p0);
+#define LOCATE_NEW_MMModule_abstractmetamodel___MMModule___init "new MMModule abstractmetamodel::MMModule::init"
+val_t NEW_MMModule_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_MMModule_abstractmetamodel___MMModule___init_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__MMGlobalClass "init var of MMGlobalClass"
+void INIT_ATTRIBUTES__MMGlobalClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMGlobalClass_t)(val_t p0);
+val_t NEW_MMGlobalClass(void);
+#define LOCATE_CHECKNEW_MMGlobalClass "check new MMGlobalClass"
+void CHECKNEW_MMGlobalClass(val_t p0);
+typedef void (*CHECKNEW_MMGlobalClass_t)(val_t p0);
+#define LOCATE_NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init "new MMGlobalClass abstractmetamodel::MMGlobalClass::init"
+val_t NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(val_t p0);
+typedef val_t (*NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__MMLocalClass "init var of MMLocalClass"
+void INIT_ATTRIBUTES__MMLocalClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMLocalClass_t)(val_t p0);
+val_t NEW_MMLocalClass(void);
+#define LOCATE_CHECKNEW_MMLocalClass "check new MMLocalClass"
+void CHECKNEW_MMLocalClass(val_t p0);
+typedef void (*CHECKNEW_MMLocalClass_t)(val_t p0);
+#define LOCATE_NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init "new MMLocalClass abstractmetamodel::MMLocalClass::init"
+val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMGlobalProperty "init var of MMGlobalProperty"
+void INIT_ATTRIBUTES__MMGlobalProperty(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMGlobalProperty_t)(val_t p0);
+val_t NEW_MMGlobalProperty(void);
+#define LOCATE_CHECKNEW_MMGlobalProperty "check new MMGlobalProperty"
+void CHECKNEW_MMGlobalProperty(val_t p0);
+typedef void (*CHECKNEW_MMGlobalProperty_t)(val_t p0);
+#define LOCATE_NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init "new MMGlobalProperty abstractmetamodel::MMGlobalProperty::init"
+val_t NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(val_t p0);
+typedef val_t (*NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__MMLocalProperty "init var of MMLocalProperty"
+void INIT_ATTRIBUTES__MMLocalProperty(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMLocalProperty_t)(val_t p0);
+val_t NEW_MMLocalProperty(void);
+#define LOCATE_CHECKNEW_MMLocalProperty "check new MMLocalProperty"
+void CHECKNEW_MMLocalProperty(val_t p0);
+typedef void (*CHECKNEW_MMLocalProperty_t)(val_t p0);
+#define LOCATE_NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init "new MMLocalProperty abstractmetamodel::MMLocalProperty::init"
+val_t NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMAttribute "init var of MMAttribute"
+void INIT_ATTRIBUTES__MMAttribute(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMAttribute_t)(val_t p0);
+val_t NEW_MMAttribute(void);
+#define LOCATE_CHECKNEW_MMAttribute "check new MMAttribute"
+void CHECKNEW_MMAttribute(val_t p0);
+typedef void (*CHECKNEW_MMAttribute_t)(val_t p0);
+#define LOCATE_NEW_MMAttribute_abstractmetamodel___MMLocalProperty___init "new MMAttribute abstractmetamodel::MMLocalProperty::init"
+val_t NEW_MMAttribute_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMAttribute_abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMMethod "init var of MMMethod"
+void INIT_ATTRIBUTES__MMMethod(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMMethod_t)(val_t p0);
+val_t NEW_MMMethod(void);
+#define LOCATE_CHECKNEW_MMMethod "check new MMMethod"
+void CHECKNEW_MMMethod(val_t p0);
+typedef void (*CHECKNEW_MMMethod_t)(val_t p0);
+#define LOCATE_NEW_MMMethod_abstractmetamodel___MMLocalProperty___init "new MMMethod abstractmetamodel::MMLocalProperty::init"
+val_t NEW_MMMethod_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMMethod_abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMConcreteClass "init var of MMConcreteClass"
+void INIT_ATTRIBUTES__MMConcreteClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMConcreteClass_t)(val_t p0);
+val_t NEW_MMConcreteClass(void);
+#define LOCATE_CHECKNEW_MMConcreteClass "check new MMConcreteClass"
+void CHECKNEW_MMConcreteClass(val_t p0);
+typedef void (*CHECKNEW_MMConcreteClass_t)(val_t p0);
+#define LOCATE_NEW_MMConcreteClass_abstractmetamodel___MMLocalClass___init "new MMConcreteClass abstractmetamodel::MMLocalClass::init"
+val_t NEW_MMConcreteClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMConcreteClass_abstractmetamodel___MMLocalClass___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMSignature "init var of MMSignature"
+void INIT_ATTRIBUTES__MMSignature(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMSignature_t)(val_t p0);
+val_t NEW_MMSignature(void);
+#define LOCATE_CHECKNEW_MMSignature "check new MMSignature"
+void CHECKNEW_MMSignature(val_t p0);
+typedef void (*CHECKNEW_MMSignature_t)(val_t p0);
+#define LOCATE_NEW_MMSignature_static_type___MMSignature___init "new MMSignature vararg::MMSignature::(static_type::MMSignature::init)"
+val_t NEW_MMSignature_static_type___MMSignature___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMSignature_static_type___MMSignature___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMClosure "init var of MMClosure"
+void INIT_ATTRIBUTES__MMClosure(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMClosure_t)(val_t p0);
+val_t NEW_MMClosure(void);
+#define LOCATE_CHECKNEW_MMClosure "check new MMClosure"
+void CHECKNEW_MMClosure(val_t p0);
+typedef void (*CHECKNEW_MMClosure_t)(val_t p0);
+#define LOCATE_NEW_MMClosure_static_type___MMClosure___init "new MMClosure static_type::MMClosure::init"
+val_t NEW_MMClosure_static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_MMClosure_static_type___MMClosure___init_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__MMAncestor "init var of MMAncestor"
+void INIT_ATTRIBUTES__MMAncestor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMAncestor_t)(val_t p0);
+val_t NEW_MMAncestor(void);
+#define LOCATE_CHECKNEW_MMAncestor "check new MMAncestor"
+void CHECKNEW_MMAncestor(val_t p0);
+typedef void (*CHECKNEW_MMAncestor_t)(val_t p0);
+#define LOCATE_NEW_MMAncestor_static_type___MMAncestor___init "new MMAncestor static_type::MMAncestor::init"
+val_t NEW_MMAncestor_static_type___MMAncestor___init(void);
+typedef val_t (*NEW_MMAncestor_static_type___MMAncestor___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__MMType "init var of MMType"
+void INIT_ATTRIBUTES__MMType(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMType_t)(val_t p0);
+val_t NEW_MMType(void);
+#define LOCATE_CHECKNEW_MMType "check new MMType"
+void CHECKNEW_MMType(val_t p0);
+typedef void (*CHECKNEW_MMType_t)(val_t p0);
+#define LOCATE_NEW_MMType_static_type___MMType___init "new MMType static_type::MMType::init"
+val_t NEW_MMType_static_type___MMType___init(void);
+typedef val_t (*NEW_MMType_static_type___MMType___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__MMNullableType "init var of MMNullableType"
+void INIT_ATTRIBUTES__MMNullableType(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMNullableType_t)(val_t p0);
+val_t NEW_MMNullableType(void);
+#define LOCATE_CHECKNEW_MMNullableType "check new MMNullableType"
+void CHECKNEW_MMNullableType(val_t p0);
+typedef void (*CHECKNEW_MMNullableType_t)(val_t p0);
+#define LOCATE_NEW_MMNullableType_static_type___MMNullableType___init "new MMNullableType static_type::MMNullableType::init"
+val_t NEW_MMNullableType_static_type___MMNullableType___init(val_t p0);
+typedef val_t (*NEW_MMNullableType_static_type___MMNullableType___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__MMTypeClass "init var of MMTypeClass"
+void INIT_ATTRIBUTES__MMTypeClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMTypeClass_t)(val_t p0);
+val_t NEW_MMTypeClass(void);
+#define LOCATE_CHECKNEW_MMTypeClass "check new MMTypeClass"
+void CHECKNEW_MMTypeClass(val_t p0);
+typedef void (*CHECKNEW_MMTypeClass_t)(val_t p0);
+#define LOCATE_NEW_MMTypeClass_static_type___MMTypeClass___init "new MMTypeClass static_type::MMTypeClass::init"
+val_t NEW_MMTypeClass_static_type___MMTypeClass___init(val_t p0);
+typedef val_t (*NEW_MMTypeClass_static_type___MMTypeClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__MMTypeSimpleClass "init var of MMTypeSimpleClass"
+void INIT_ATTRIBUTES__MMTypeSimpleClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMTypeSimpleClass_t)(val_t p0);
+val_t NEW_MMTypeSimpleClass(void);
+#define LOCATE_CHECKNEW_MMTypeSimpleClass "check new MMTypeSimpleClass"
+void CHECKNEW_MMTypeSimpleClass(val_t p0);
+typedef void (*CHECKNEW_MMTypeSimpleClass_t)(val_t p0);
+#define LOCATE_NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init "new MMTypeSimpleClass static_type::MMTypeSimpleClass::init"
+val_t NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init(val_t p0);
+typedef val_t (*NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__MMTypeNone "init var of MMTypeNone"
+void INIT_ATTRIBUTES__MMTypeNone(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMTypeNone_t)(val_t p0);
+val_t NEW_MMTypeNone(void);
+#define LOCATE_CHECKNEW_MMTypeNone "check new MMTypeNone"
+void CHECKNEW_MMTypeNone(val_t p0);
+typedef void (*CHECKNEW_MMTypeNone_t)(val_t p0);
+#define LOCATE_NEW_MMTypeNone_static_type___MMTypeNone___init "new MMTypeNone static_type::MMTypeNone::init"
+val_t NEW_MMTypeNone_static_type___MMTypeNone___init(val_t p0);
+typedef val_t (*NEW_MMTypeNone_static_type___MMTypeNone___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__MMImplicitLocalClass "init var of MMImplicitLocalClass"
+void INIT_ATTRIBUTES__MMImplicitLocalClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMImplicitLocalClass_t)(val_t p0);
+val_t NEW_MMImplicitLocalClass(void);
+#define LOCATE_CHECKNEW_MMImplicitLocalClass "check new MMImplicitLocalClass"
+void CHECKNEW_MMImplicitLocalClass(val_t p0);
+typedef void (*CHECKNEW_MMImplicitLocalClass_t)(val_t p0);
+#define LOCATE_NEW_MMImplicitLocalClass_inheritance___MMImplicitLocalClass___init "new MMImplicitLocalClass inheritance::MMImplicitLocalClass::init"
+val_t NEW_MMImplicitLocalClass_inheritance___MMImplicitLocalClass___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMImplicitLocalClass_inheritance___MMImplicitLocalClass___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMRefineAncestor "init var of MMRefineAncestor"
+void INIT_ATTRIBUTES__MMRefineAncestor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMRefineAncestor_t)(val_t p0);
+val_t NEW_MMRefineAncestor(void);
+#define LOCATE_CHECKNEW_MMRefineAncestor "check new MMRefineAncestor"
+void CHECKNEW_MMRefineAncestor(val_t p0);
+typedef void (*CHECKNEW_MMRefineAncestor_t)(val_t p0);
+#define LOCATE_NEW_MMRefineAncestor_inheritance___MMRefineAncestor___init "new MMRefineAncestor inheritance::MMRefineAncestor::init"
+val_t NEW_MMRefineAncestor_inheritance___MMRefineAncestor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMRefineAncestor_inheritance___MMRefineAncestor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMSpecAncestor "init var of MMSpecAncestor"
+void INIT_ATTRIBUTES__MMSpecAncestor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMSpecAncestor_t)(val_t p0);
+val_t NEW_MMSpecAncestor(void);
+#define LOCATE_CHECKNEW_MMSpecAncestor "check new MMSpecAncestor"
+void CHECKNEW_MMSpecAncestor(val_t p0);
+typedef void (*CHECKNEW_MMSpecAncestor_t)(val_t p0);
+#define LOCATE_NEW_MMSpecAncestor_inheritance___MMSpecAncestor___init "new MMSpecAncestor inheritance::MMSpecAncestor::init"
+val_t NEW_MMSpecAncestor_inheritance___MMSpecAncestor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMSpecAncestor_inheritance___MMSpecAncestor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMDefaultAncestor "init var of MMDefaultAncestor"
+void INIT_ATTRIBUTES__MMDefaultAncestor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMDefaultAncestor_t)(val_t p0);
+val_t NEW_MMDefaultAncestor(void);
+#define LOCATE_CHECKNEW_MMDefaultAncestor "check new MMDefaultAncestor"
+void CHECKNEW_MMDefaultAncestor(val_t p0);
+typedef void (*CHECKNEW_MMDefaultAncestor_t)(val_t p0);
+#define LOCATE_NEW_MMDefaultAncestor_inheritance___MMDefaultAncestor___init "new MMDefaultAncestor inheritance::MMDefaultAncestor::init"
+val_t NEW_MMDefaultAncestor_inheritance___MMDefaultAncestor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMDefaultAncestor_inheritance___MMDefaultAncestor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMTypeFormal "init var of MMTypeFormal"
+void INIT_ATTRIBUTES__MMTypeFormal(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMTypeFormal_t)(val_t p0);
+val_t NEW_MMTypeFormal(void);
+#define LOCATE_CHECKNEW_MMTypeFormal "check new MMTypeFormal"
+void CHECKNEW_MMTypeFormal(val_t p0);
+typedef void (*CHECKNEW_MMTypeFormal_t)(val_t p0);
+#define LOCATE_NEW_MMTypeFormal_type_formal___MMTypeFormal___init "new MMTypeFormal type_formal::MMTypeFormal::init"
+val_t NEW_MMTypeFormal_type_formal___MMTypeFormal___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMTypeFormal_type_formal___MMTypeFormal___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMTypeGeneric "init var of MMTypeGeneric"
+void INIT_ATTRIBUTES__MMTypeGeneric(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMTypeGeneric_t)(val_t p0);
+val_t NEW_MMTypeGeneric(void);
+#define LOCATE_CHECKNEW_MMTypeGeneric "check new MMTypeGeneric"
+void CHECKNEW_MMTypeGeneric(val_t p0);
+typedef void (*CHECKNEW_MMTypeGeneric_t)(val_t p0);
+#define LOCATE_NEW_MMTypeGeneric_genericity___MMTypeGeneric___init "new MMTypeGeneric genericity::MMTypeGeneric::init"
+val_t NEW_MMTypeGeneric_genericity___MMTypeGeneric___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMTypeGeneric_genericity___MMTypeGeneric___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMTypeFormalParameter "init var of MMTypeFormalParameter"
+void INIT_ATTRIBUTES__MMTypeFormalParameter(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMTypeFormalParameter_t)(val_t p0);
+val_t NEW_MMTypeFormalParameter(void);
+#define LOCATE_CHECKNEW_MMTypeFormalParameter "check new MMTypeFormalParameter"
+void CHECKNEW_MMTypeFormalParameter(val_t p0);
+typedef void (*CHECKNEW_MMTypeFormalParameter_t)(val_t p0);
+#define LOCATE_NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___with_bound "new MMTypeFormalParameter genericity::MMTypeFormalParameter::with_bound"
+val_t NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___with_bound(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___with_bound_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init "new MMTypeFormalParameter genericity::MMTypeFormalParameter::init"
+val_t NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMTypeProperty "init var of MMTypeProperty"
+void INIT_ATTRIBUTES__MMTypeProperty(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMTypeProperty_t)(val_t p0);
+val_t NEW_MMTypeProperty(void);
+#define LOCATE_CHECKNEW_MMTypeProperty "check new MMTypeProperty"
+void CHECKNEW_MMTypeProperty(val_t p0);
+typedef void (*CHECKNEW_MMTypeProperty_t)(val_t p0);
+#define LOCATE_NEW_MMTypeProperty_abstractmetamodel___MMLocalProperty___init "new MMTypeProperty abstractmetamodel::MMLocalProperty::init"
+val_t NEW_MMTypeProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMTypeProperty_abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMVirtualType "init var of MMVirtualType"
+void INIT_ATTRIBUTES__MMVirtualType(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMVirtualType_t)(val_t p0);
+val_t NEW_MMVirtualType(void);
+#define LOCATE_CHECKNEW_MMVirtualType "check new MMVirtualType"
+void CHECKNEW_MMVirtualType(val_t p0);
+typedef void (*CHECKNEW_MMVirtualType_t)(val_t p0);
+#define LOCATE_NEW_MMVirtualType_virtualtype___MMVirtualType___init "new MMVirtualType virtualtype::MMVirtualType::init"
+val_t NEW_MMVirtualType_virtualtype___MMVirtualType___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMVirtualType_virtualtype___MMVirtualType___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__Option "init var of Option"
+void INIT_ATTRIBUTES__Option(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Option_t)(val_t p0);
+val_t NEW_Option(void);
+#define LOCATE_CHECKNEW_Option "check new Option"
+void CHECKNEW_Option(val_t p0);
+typedef void (*CHECKNEW_Option_t)(val_t p0);
+#define LOCATE_NEW_Option_opts___Option___init_opt "new Option opts::Option::init_opt"
+val_t NEW_Option_opts___Option___init_opt(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_Option_opts___Option___init_opt_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__OptionText "init var of OptionText"
+void INIT_ATTRIBUTES__OptionText(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionText_t)(val_t p0);
+val_t NEW_OptionText(void);
+#define LOCATE_CHECKNEW_OptionText "check new OptionText"
+void CHECKNEW_OptionText(val_t p0);
+typedef void (*CHECKNEW_OptionText_t)(val_t p0);
+#define LOCATE_NEW_OptionText_opts___OptionText___init "new OptionText opts::OptionText::init"
+val_t NEW_OptionText_opts___OptionText___init(val_t p0);
+typedef val_t (*NEW_OptionText_opts___OptionText___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__OptionBool "init var of OptionBool"
+void INIT_ATTRIBUTES__OptionBool(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionBool_t)(val_t p0);
+val_t NEW_OptionBool(void);
+#define LOCATE_CHECKNEW_OptionBool "check new OptionBool"
+void CHECKNEW_OptionBool(val_t p0);
+typedef void (*CHECKNEW_OptionBool_t)(val_t p0);
+#define LOCATE_NEW_OptionBool_opts___OptionBool___init "new OptionBool opts::OptionBool::init"
+val_t NEW_OptionBool_opts___OptionBool___init(val_t p0, val_t p1);
+typedef val_t (*NEW_OptionBool_opts___OptionBool___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__OptionCount "init var of OptionCount"
+void INIT_ATTRIBUTES__OptionCount(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionCount_t)(val_t p0);
+val_t NEW_OptionCount(void);
+#define LOCATE_CHECKNEW_OptionCount "check new OptionCount"
+void CHECKNEW_OptionCount(val_t p0);
+typedef void (*CHECKNEW_OptionCount_t)(val_t p0);
+#define LOCATE_NEW_OptionCount_opts___OptionCount___init "new OptionCount opts::OptionCount::init"
+val_t NEW_OptionCount_opts___OptionCount___init(val_t p0, val_t p1);
+typedef val_t (*NEW_OptionCount_opts___OptionCount___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__OptionParameter "init var of OptionParameter"
+void INIT_ATTRIBUTES__OptionParameter(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionParameter_t)(val_t p0);
+val_t NEW_OptionParameter(void);
+#define LOCATE_CHECKNEW_OptionParameter "check new OptionParameter"
+void CHECKNEW_OptionParameter(val_t p0);
+typedef void (*CHECKNEW_OptionParameter_t)(val_t p0);
+#define LOCATE_NEW_OptionParameter_opts___OptionParameter___init_opt "new OptionParameter opts::OptionParameter::init_opt"
+val_t NEW_OptionParameter_opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_OptionParameter_opts___OptionParameter___init_opt_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__OptionString "init var of OptionString"
+void INIT_ATTRIBUTES__OptionString(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionString_t)(val_t p0);
+val_t NEW_OptionString(void);
+#define LOCATE_CHECKNEW_OptionString "check new OptionString"
+void CHECKNEW_OptionString(val_t p0);
+typedef void (*CHECKNEW_OptionString_t)(val_t p0);
+#define LOCATE_NEW_OptionString_opts___OptionString___init "new OptionString opts::OptionString::init"
+val_t NEW_OptionString_opts___OptionString___init(val_t p0, val_t p1);
+typedef val_t (*NEW_OptionString_opts___OptionString___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__OptionEnum "init var of OptionEnum"
+void INIT_ATTRIBUTES__OptionEnum(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionEnum_t)(val_t p0);
+val_t NEW_OptionEnum(void);
+#define LOCATE_CHECKNEW_OptionEnum "check new OptionEnum"
+void CHECKNEW_OptionEnum(val_t p0);
+typedef void (*CHECKNEW_OptionEnum_t)(val_t p0);
+#define LOCATE_NEW_OptionEnum_opts___OptionEnum___init "new OptionEnum opts::OptionEnum::init"
+val_t NEW_OptionEnum_opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_OptionEnum_opts___OptionEnum___init_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__OptionInt "init var of OptionInt"
+void INIT_ATTRIBUTES__OptionInt(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionInt_t)(val_t p0);
+val_t NEW_OptionInt(void);
+#define LOCATE_CHECKNEW_OptionInt "check new OptionInt"
+void CHECKNEW_OptionInt(val_t p0);
+typedef void (*CHECKNEW_OptionInt_t)(val_t p0);
+#define LOCATE_NEW_OptionInt_opts___OptionInt___init "new OptionInt opts::OptionInt::init"
+val_t NEW_OptionInt_opts___OptionInt___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_OptionInt_opts___OptionInt___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__OptionArray "init var of OptionArray"
+void INIT_ATTRIBUTES__OptionArray(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionArray_t)(val_t p0);
+val_t NEW_OptionArray(void);
+#define LOCATE_CHECKNEW_OptionArray "check new OptionArray"
+void CHECKNEW_OptionArray(val_t p0);
+typedef void (*CHECKNEW_OptionArray_t)(val_t p0);
+#define LOCATE_NEW_OptionArray_opts___OptionArray___init "new OptionArray opts::OptionArray::init"
+val_t NEW_OptionArray_opts___OptionArray___init(val_t p0, val_t p1);
+typedef val_t (*NEW_OptionArray_opts___OptionArray___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__OptionContext "init var of OptionContext"
+void INIT_ATTRIBUTES__OptionContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__OptionContext_t)(val_t p0);
+val_t NEW_OptionContext(void);
+#define LOCATE_CHECKNEW_OptionContext "check new OptionContext"
+void CHECKNEW_OptionContext(val_t p0);
+typedef void (*CHECKNEW_OptionContext_t)(val_t p0);
+#define LOCATE_NEW_OptionContext_opts___OptionContext___init "new OptionContext opts::OptionContext::init"
+val_t NEW_OptionContext_opts___OptionContext___init(void);
+typedef val_t (*NEW_OptionContext_opts___OptionContext___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__Message "init var of Message"
+void INIT_ATTRIBUTES__Message(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Message_t)(val_t p0);
+val_t NEW_Message(void);
+#define LOCATE_CHECKNEW_Message "check new Message"
+void CHECKNEW_Message(val_t p0);
+typedef void (*CHECKNEW_Message_t)(val_t p0);
+#define LOCATE_NEW_Message_mmloader___Message___init "new Message mmloader::Message::init"
+val_t NEW_Message_mmloader___Message___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Message_mmloader___Message___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ToolContext "init var of ToolContext"
+void INIT_ATTRIBUTES__ToolContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ToolContext_t)(val_t p0);
+val_t NEW_ToolContext(void);
+#define LOCATE_CHECKNEW_ToolContext "check new ToolContext"
+void CHECKNEW_ToolContext(val_t p0);
+typedef void (*CHECKNEW_ToolContext_t)(val_t p0);
+#define LOCATE_NEW_ToolContext_mmloader___ToolContext___init "new ToolContext mmloader::ToolContext::init"
+val_t NEW_ToolContext_mmloader___ToolContext___init(void);
+typedef val_t (*NEW_ToolContext_mmloader___ToolContext___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ModuleLoader "init var of ModuleLoader"
+void INIT_ATTRIBUTES__ModuleLoader(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ModuleLoader_t)(val_t p0);
+val_t NEW_ModuleLoader(void);
+#define LOCATE_CHECKNEW_ModuleLoader "check new ModuleLoader"
+void CHECKNEW_ModuleLoader(val_t p0);
+typedef void (*CHECKNEW_ModuleLoader_t)(val_t p0);
+#define LOCATE_NEW_ModuleLoader_mmloader___ModuleLoader___init "new ModuleLoader mmloader::ModuleLoader::init"
+val_t NEW_ModuleLoader_mmloader___ModuleLoader___init(void);
+typedef val_t (*NEW_ModuleLoader_mmloader___ModuleLoader___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__MMSrcModule "init var of MMSrcModule"
+void INIT_ATTRIBUTES__MMSrcModule(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMSrcModule_t)(val_t p0);
+val_t NEW_MMSrcModule(void);
+#define LOCATE_CHECKNEW_MMSrcModule "check new MMSrcModule"
+void CHECKNEW_MMSrcModule(val_t p0);
+typedef void (*CHECKNEW_MMSrcModule_t)(val_t p0);
+#define LOCATE_NEW_MMSrcModule_syntax_base___MMSrcModule___init "new MMSrcModule syntax_base::MMSrcModule::init"
+val_t NEW_MMSrcModule_syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_MMSrcModule_syntax_base___MMSrcModule___init_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+#define LOCATE_INIT_ATTRIBUTES__MMSrcLocalClass "init var of MMSrcLocalClass"
+void INIT_ATTRIBUTES__MMSrcLocalClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMSrcLocalClass_t)(val_t p0);
+val_t NEW_MMSrcLocalClass(void);
+#define LOCATE_CHECKNEW_MMSrcLocalClass "check new MMSrcLocalClass"
+void CHECKNEW_MMSrcLocalClass(val_t p0);
+typedef void (*CHECKNEW_MMSrcLocalClass_t)(val_t p0);
+#define LOCATE_NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init "new MMSrcLocalClass syntax_base::MMSrcLocalClass::init"
+val_t NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+#define LOCATE_INIT_ATTRIBUTES__MMSrcAttribute "init var of MMSrcAttribute"
+void INIT_ATTRIBUTES__MMSrcAttribute(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMSrcAttribute_t)(val_t p0);
+val_t NEW_MMSrcAttribute(void);
+#define LOCATE_CHECKNEW_MMSrcAttribute "check new MMSrcAttribute"
+void CHECKNEW_MMSrcAttribute(val_t p0);
+typedef void (*CHECKNEW_MMSrcAttribute_t)(val_t p0);
+#define LOCATE_NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init "new MMSrcAttribute syntax_base::MMSrcAttribute::init"
+val_t NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMSrcMethod "init var of MMSrcMethod"
+void INIT_ATTRIBUTES__MMSrcMethod(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMSrcMethod_t)(val_t p0);
+val_t NEW_MMSrcMethod(void);
+#define LOCATE_CHECKNEW_MMSrcMethod "check new MMSrcMethod"
+void CHECKNEW_MMSrcMethod(val_t p0);
+typedef void (*CHECKNEW_MMSrcMethod_t)(val_t p0);
+#define LOCATE_NEW_MMSrcMethod_abstractmetamodel___MMLocalProperty___init "new MMSrcMethod abstractmetamodel::MMLocalProperty::init"
+val_t NEW_MMSrcMethod_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
+typedef val_t (*NEW_MMSrcMethod_abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__MMAttrImplementationMethod "init var of MMAttrImplementationMethod"
+void INIT_ATTRIBUTES__MMAttrImplementationMethod(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMAttrImplementationMethod_t)(val_t p0);
+val_t NEW_MMAttrImplementationMethod(void);
+#define LOCATE_CHECKNEW_MMAttrImplementationMethod "check new MMAttrImplementationMethod"
+void CHECKNEW_MMAttrImplementationMethod(val_t p0);
+typedef void (*CHECKNEW_MMAttrImplementationMethod_t)(val_t p0);
+#define LOCATE_NEW_MMAttrImplementationMethod_syntax_base___MMAttrImplementationMethod___init "new MMAttrImplementationMethod syntax_base::MMAttrImplementationMethod::init"
+val_t NEW_MMAttrImplementationMethod_syntax_base___MMAttrImplementationMethod___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMAttrImplementationMethod_syntax_base___MMAttrImplementationMethod___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMReadImplementationMethod "init var of MMReadImplementationMethod"
+void INIT_ATTRIBUTES__MMReadImplementationMethod(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMReadImplementationMethod_t)(val_t p0);
+val_t NEW_MMReadImplementationMethod(void);
+#define LOCATE_CHECKNEW_MMReadImplementationMethod "check new MMReadImplementationMethod"
+void CHECKNEW_MMReadImplementationMethod(val_t p0);
+typedef void (*CHECKNEW_MMReadImplementationMethod_t)(val_t p0);
+#define LOCATE_NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init "new MMReadImplementationMethod syntax_base::MMReadImplementationMethod::init"
+val_t NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMWriteImplementationMethod "init var of MMWriteImplementationMethod"
+void INIT_ATTRIBUTES__MMWriteImplementationMethod(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMWriteImplementationMethod_t)(val_t p0);
+val_t NEW_MMWriteImplementationMethod(void);
+#define LOCATE_CHECKNEW_MMWriteImplementationMethod "check new MMWriteImplementationMethod"
+void CHECKNEW_MMWriteImplementationMethod(val_t p0);
+typedef void (*CHECKNEW_MMWriteImplementationMethod_t)(val_t p0);
+#define LOCATE_NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init "new MMWriteImplementationMethod syntax_base::MMWriteImplementationMethod::init"
+val_t NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMMethSrcMethod "init var of MMMethSrcMethod"
+void INIT_ATTRIBUTES__MMMethSrcMethod(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMMethSrcMethod_t)(val_t p0);
+val_t NEW_MMMethSrcMethod(void);
+#define LOCATE_CHECKNEW_MMMethSrcMethod "check new MMMethSrcMethod"
+void CHECKNEW_MMMethSrcMethod(val_t p0);
+typedef void (*CHECKNEW_MMMethSrcMethod_t)(val_t p0);
+#define LOCATE_NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init "new MMMethSrcMethod syntax_base::MMMethSrcMethod::init"
+val_t NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMSrcTypeProperty "init var of MMSrcTypeProperty"
+void INIT_ATTRIBUTES__MMSrcTypeProperty(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMSrcTypeProperty_t)(val_t p0);
+val_t NEW_MMSrcTypeProperty(void);
+#define LOCATE_CHECKNEW_MMSrcTypeProperty "check new MMSrcTypeProperty"
+void CHECKNEW_MMSrcTypeProperty(val_t p0);
+typedef void (*CHECKNEW_MMSrcTypeProperty_t)(val_t p0);
+#define LOCATE_NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init "new MMSrcTypeProperty syntax_base::MMSrcTypeProperty::init"
+val_t NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__MMImplicitInit "init var of MMImplicitInit"
+void INIT_ATTRIBUTES__MMImplicitInit(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMImplicitInit_t)(val_t p0);
+val_t NEW_MMImplicitInit(void);
+#define LOCATE_CHECKNEW_MMImplicitInit "check new MMImplicitInit"
+void CHECKNEW_MMImplicitInit(val_t p0);
+typedef void (*CHECKNEW_MMImplicitInit_t)(val_t p0);
+#define LOCATE_NEW_MMImplicitInit_syntax_base___MMImplicitInit___init "new MMImplicitInit syntax_base::MMImplicitInit::init"
+val_t NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_MMImplicitInit_syntax_base___MMImplicitInit___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__Variable "init var of Variable"
+void INIT_ATTRIBUTES__Variable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Variable_t)(val_t p0);
+val_t NEW_Variable(void);
+#define LOCATE_CHECKNEW_Variable "check new Variable"
+void CHECKNEW_Variable(val_t p0);
+typedef void (*CHECKNEW_Variable_t)(val_t p0);
+#define LOCATE_NEW_Variable_syntax_base___Variable___init "new Variable syntax_base::Variable::init"
+val_t NEW_Variable_syntax_base___Variable___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Variable_syntax_base___Variable___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__VarVariable "init var of VarVariable"
+void INIT_ATTRIBUTES__VarVariable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__VarVariable_t)(val_t p0);
+val_t NEW_VarVariable(void);
+#define LOCATE_CHECKNEW_VarVariable "check new VarVariable"
+void CHECKNEW_VarVariable(val_t p0);
+typedef void (*CHECKNEW_VarVariable_t)(val_t p0);
+#define LOCATE_NEW_VarVariable_syntax_base___VarVariable___init "new VarVariable syntax_base::VarVariable::init"
+val_t NEW_VarVariable_syntax_base___VarVariable___init(val_t p0, val_t p1);
+typedef val_t (*NEW_VarVariable_syntax_base___VarVariable___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ParamVariable "init var of ParamVariable"
+void INIT_ATTRIBUTES__ParamVariable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ParamVariable_t)(val_t p0);
+val_t NEW_ParamVariable(void);
+#define LOCATE_CHECKNEW_ParamVariable "check new ParamVariable"
+void CHECKNEW_ParamVariable(val_t p0);
+typedef void (*CHECKNEW_ParamVariable_t)(val_t p0);
+#define LOCATE_NEW_ParamVariable_syntax_base___ParamVariable___init "new ParamVariable syntax_base::ParamVariable::init"
+val_t NEW_ParamVariable_syntax_base___ParamVariable___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ParamVariable_syntax_base___ParamVariable___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AutoVariable "init var of AutoVariable"
+void INIT_ATTRIBUTES__AutoVariable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AutoVariable_t)(val_t p0);
+val_t NEW_AutoVariable(void);
+#define LOCATE_CHECKNEW_AutoVariable "check new AutoVariable"
+void CHECKNEW_AutoVariable(val_t p0);
+typedef void (*CHECKNEW_AutoVariable_t)(val_t p0);
+#define LOCATE_NEW_AutoVariable_syntax_base___AutoVariable___init "new AutoVariable syntax_base::AutoVariable::init"
+val_t NEW_AutoVariable_syntax_base___AutoVariable___init(val_t p0, val_t p1);
+typedef val_t (*NEW_AutoVariable_syntax_base___AutoVariable___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ClosureVariable "init var of ClosureVariable"
+void INIT_ATTRIBUTES__ClosureVariable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ClosureVariable_t)(val_t p0);
+val_t NEW_ClosureVariable(void);
+#define LOCATE_CHECKNEW_ClosureVariable "check new ClosureVariable"
+void CHECKNEW_ClosureVariable(val_t p0);
+typedef void (*CHECKNEW_ClosureVariable_t)(val_t p0);
+#define LOCATE_NEW_ClosureVariable_syntax_base___ClosureVariable___init "new ClosureVariable syntax_base::ClosureVariable::init"
+val_t NEW_ClosureVariable_syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ClosureVariable_syntax_base___ClosureVariable___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AbsSyntaxVisitor "init var of AbsSyntaxVisitor"
+void INIT_ATTRIBUTES__AbsSyntaxVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AbsSyntaxVisitor_t)(val_t p0);
+val_t NEW_AbsSyntaxVisitor(void);
+#define LOCATE_CHECKNEW_AbsSyntaxVisitor "check new AbsSyntaxVisitor"
+void CHECKNEW_AbsSyntaxVisitor(val_t p0);
+typedef void (*CHECKNEW_AbsSyntaxVisitor_t)(val_t p0);
+#define LOCATE_NEW_AbsSyntaxVisitor_syntax_base___AbsSyntaxVisitor___init "new AbsSyntaxVisitor syntax_base::AbsSyntaxVisitor::init"
+val_t NEW_AbsSyntaxVisitor_syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_AbsSyntaxVisitor_syntax_base___AbsSyntaxVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__AAbsAbsSendExpr "init var of AAbsAbsSendExpr"
+void INIT_ATTRIBUTES__AAbsAbsSendExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAbsAbsSendExpr_t)(val_t p0);
+val_t NEW_AAbsAbsSendExpr(void);
+#define LOCATE_CHECKNEW_AAbsAbsSendExpr "check new AAbsAbsSendExpr"
+void CHECKNEW_AAbsAbsSendExpr(val_t p0);
+typedef void (*CHECKNEW_AAbsAbsSendExpr_t)(val_t p0);
+#define LOCATE_NEW_AAbsAbsSendExpr_parser_nodes___ANode___init "new AAbsAbsSendExpr parser_nodes::ANode::init"
+val_t NEW_AAbsAbsSendExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAbsAbsSendExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AAbsSendExpr "init var of AAbsSendExpr"
+void INIT_ATTRIBUTES__AAbsSendExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AAbsSendExpr_t)(val_t p0);
+val_t NEW_AAbsSendExpr(void);
+#define LOCATE_CHECKNEW_AAbsSendExpr "check new AAbsSendExpr"
+void CHECKNEW_AAbsSendExpr(val_t p0);
+typedef void (*CHECKNEW_AAbsSendExpr_t)(val_t p0);
+#define LOCATE_NEW_AAbsSendExpr_parser_nodes___ANode___init "new AAbsSendExpr parser_nodes::ANode::init"
+val_t NEW_AAbsSendExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AAbsSendExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ASuperInitCall "init var of ASuperInitCall"
+void INIT_ATTRIBUTES__ASuperInitCall(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASuperInitCall_t)(val_t p0);
+val_t NEW_ASuperInitCall(void);
+#define LOCATE_CHECKNEW_ASuperInitCall "check new ASuperInitCall"
+void CHECKNEW_ASuperInitCall(val_t p0);
+typedef void (*CHECKNEW_ASuperInitCall_t)(val_t p0);
+#define LOCATE_NEW_ASuperInitCall_parser_nodes___ANode___init "new ASuperInitCall parser_nodes::ANode::init"
+val_t NEW_ASuperInitCall_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASuperInitCall_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ASendReassignExpr "init var of ASendReassignExpr"
+void INIT_ATTRIBUTES__ASendReassignExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ASendReassignExpr_t)(val_t p0);
+val_t NEW_ASendReassignExpr(void);
+#define LOCATE_CHECKNEW_ASendReassignExpr "check new ASendReassignExpr"
+void CHECKNEW_ASendReassignExpr(val_t p0);
+typedef void (*CHECKNEW_ASendReassignExpr_t)(val_t p0);
+#define LOCATE_NEW_ASendReassignExpr_parser_nodes___ANode___init "new ASendReassignExpr parser_nodes::ANode::init"
+val_t NEW_ASendReassignExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ASendReassignExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_NEW_ASendReassignExpr_parser_prod___ASendExpr___empty_init "new ASendReassignExpr parser_prod::ASendExpr::empty_init"
+val_t NEW_ASendReassignExpr_parser_prod___ASendExpr___empty_init(void);
+typedef val_t (*NEW_ASendReassignExpr_parser_prod___ASendExpr___empty_init_t)(void);
+#define LOCATE_NEW_ASendReassignExpr_parser_prod___ASendExpr___init_asendexpr "new ASendReassignExpr parser_prod::ASendExpr::init_asendexpr"
+val_t NEW_ASendReassignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
+typedef val_t (*NEW_ASendReassignExpr_parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__CSHSorter "init var of CSHSorter"
+void INIT_ATTRIBUTES__CSHSorter(val_t p0);
+typedef void (*INIT_ATTRIBUTES__CSHSorter_t)(val_t p0);
+val_t NEW_CSHSorter(void);
+#define LOCATE_CHECKNEW_CSHSorter "check new CSHSorter"
+void CHECKNEW_CSHSorter(val_t p0);
+typedef void (*CHECKNEW_CSHSorter_t)(val_t p0);
+#define LOCATE_NEW_CSHSorter_mmbuilder___CSHSorter___init "new CSHSorter mmbuilder::CSHSorter::init"
+val_t NEW_CSHSorter_mmbuilder___CSHSorter___init(void);
+typedef val_t (*NEW_CSHSorter_mmbuilder___CSHSorter___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__MMSrcAncestor "init var of MMSrcAncestor"
+void INIT_ATTRIBUTES__MMSrcAncestor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MMSrcAncestor_t)(val_t p0);
+val_t NEW_MMSrcAncestor(void);
+#define LOCATE_CHECKNEW_MMSrcAncestor "check new MMSrcAncestor"
+void CHECKNEW_MMSrcAncestor(val_t p0);
+typedef void (*CHECKNEW_MMSrcAncestor_t)(val_t p0);
+#define LOCATE_NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init "new MMSrcAncestor mmbuilder::MMSrcAncestor::init"
+val_t NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(val_t p0);
+typedef val_t (*NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ClassBuilderVisitor "init var of ClassBuilderVisitor"
+void INIT_ATTRIBUTES__ClassBuilderVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ClassBuilderVisitor_t)(val_t p0);
+val_t NEW_ClassBuilderVisitor(void);
+#define LOCATE_CHECKNEW_ClassBuilderVisitor "check new ClassBuilderVisitor"
+void CHECKNEW_ClassBuilderVisitor(val_t p0);
+typedef void (*CHECKNEW_ClassBuilderVisitor_t)(val_t p0);
+#define LOCATE_NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init "new ClassBuilderVisitor mmbuilder::ClassBuilderVisitor::init"
+val_t NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ClassSpecializationBuilderVisitor "init var of ClassSpecializationBuilderVisitor"
+void INIT_ATTRIBUTES__ClassSpecializationBuilderVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ClassSpecializationBuilderVisitor_t)(val_t p0);
+val_t NEW_ClassSpecializationBuilderVisitor(void);
+#define LOCATE_CHECKNEW_ClassSpecializationBuilderVisitor "check new ClassSpecializationBuilderVisitor"
+void CHECKNEW_ClassSpecializationBuilderVisitor(val_t p0);
+typedef void (*CHECKNEW_ClassSpecializationBuilderVisitor_t)(val_t p0);
+#define LOCATE_NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init "new ClassSpecializationBuilderVisitor mmbuilder::ClassSpecializationBuilderVisitor::init"
+val_t NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ClassAncestorBuilder "init var of ClassAncestorBuilder"
+void INIT_ATTRIBUTES__ClassAncestorBuilder(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ClassAncestorBuilder_t)(val_t p0);
+val_t NEW_ClassAncestorBuilder(void);
+#define LOCATE_CHECKNEW_ClassAncestorBuilder "check new ClassAncestorBuilder"
+void CHECKNEW_ClassAncestorBuilder(val_t p0);
+typedef void (*CHECKNEW_ClassAncestorBuilder_t)(val_t p0);
+#define LOCATE_NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init "new ClassAncestorBuilder mmbuilder::ClassAncestorBuilder::init"
+val_t NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ClassVerifierVisitor "init var of ClassVerifierVisitor"
+void INIT_ATTRIBUTES__ClassVerifierVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ClassVerifierVisitor_t)(val_t p0);
+val_t NEW_ClassVerifierVisitor(void);
+#define LOCATE_CHECKNEW_ClassVerifierVisitor "check new ClassVerifierVisitor"
+void CHECKNEW_ClassVerifierVisitor(val_t p0);
+typedef void (*CHECKNEW_ClassVerifierVisitor_t)(val_t p0);
+#define LOCATE_NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init "new ClassVerifierVisitor mmbuilder::ClassVerifierVisitor::init"
+val_t NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__PropertyBuilderVisitor "init var of PropertyBuilderVisitor"
+void INIT_ATTRIBUTES__PropertyBuilderVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__PropertyBuilderVisitor_t)(val_t p0);
+val_t NEW_PropertyBuilderVisitor(void);
+#define LOCATE_CHECKNEW_PropertyBuilderVisitor "check new PropertyBuilderVisitor"
+void CHECKNEW_PropertyBuilderVisitor(val_t p0);
+typedef void (*CHECKNEW_PropertyBuilderVisitor_t)(val_t p0);
+#define LOCATE_NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init "new PropertyBuilderVisitor mmbuilder::PropertyBuilderVisitor::init"
+val_t NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__PropertyVerifierVisitor "init var of PropertyVerifierVisitor"
+void INIT_ATTRIBUTES__PropertyVerifierVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__PropertyVerifierVisitor_t)(val_t p0);
+val_t NEW_PropertyVerifierVisitor(void);
+#define LOCATE_CHECKNEW_PropertyVerifierVisitor "check new PropertyVerifierVisitor"
+void CHECKNEW_PropertyVerifierVisitor(val_t p0);
+typedef void (*CHECKNEW_PropertyVerifierVisitor_t)(val_t p0);
+#define LOCATE_NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init "new PropertyVerifierVisitor mmbuilder::PropertyVerifierVisitor::init"
+val_t NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__SignatureBuilder "init var of SignatureBuilder"
+void INIT_ATTRIBUTES__SignatureBuilder(val_t p0);
+typedef void (*INIT_ATTRIBUTES__SignatureBuilder_t)(val_t p0);
+val_t NEW_SignatureBuilder(void);
+#define LOCATE_CHECKNEW_SignatureBuilder "check new SignatureBuilder"
+void CHECKNEW_SignatureBuilder(val_t p0);
+typedef void (*CHECKNEW_SignatureBuilder_t)(val_t p0);
+#define LOCATE_NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init "new SignatureBuilder mmbuilder::SignatureBuilder::init"
+val_t NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(void);
+typedef val_t (*NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__MethidAccumulator "init var of MethidAccumulator"
+void INIT_ATTRIBUTES__MethidAccumulator(val_t p0);
+typedef void (*INIT_ATTRIBUTES__MethidAccumulator_t)(val_t p0);
+val_t NEW_MethidAccumulator(void);
+#define LOCATE_CHECKNEW_MethidAccumulator "check new MethidAccumulator"
+void CHECKNEW_MethidAccumulator(val_t p0);
+typedef void (*CHECKNEW_MethidAccumulator_t)(val_t p0);
+#define LOCATE_NEW_MethidAccumulator_parser_prod___Visitor___init "new MethidAccumulator parser_prod::Visitor::init"
+val_t NEW_MethidAccumulator_parser_prod___Visitor___init(void);
+typedef val_t (*NEW_MethidAccumulator_parser_prod___Visitor___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__IRegister "init var of IRegister"
+void INIT_ATTRIBUTES__IRegister(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IRegister_t)(val_t p0);
+val_t NEW_IRegister(void);
+#define LOCATE_CHECKNEW_IRegister "check new IRegister"
+void CHECKNEW_IRegister(val_t p0);
+typedef void (*CHECKNEW_IRegister_t)(val_t p0);
+#define LOCATE_NEW_IRegister_icode_base___IRegister___init "new IRegister icode_base::IRegister::init"
+val_t NEW_IRegister_icode_base___IRegister___init(val_t p0);
+typedef val_t (*NEW_IRegister_icode_base___IRegister___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IEscapeMark "init var of IEscapeMark"
+void INIT_ATTRIBUTES__IEscapeMark(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IEscapeMark_t)(val_t p0);
+val_t NEW_IEscapeMark(void);
+#define LOCATE_CHECKNEW_IEscapeMark "check new IEscapeMark"
+void CHECKNEW_IEscapeMark(val_t p0);
+typedef void (*CHECKNEW_IEscapeMark_t)(val_t p0);
+#define LOCATE_NEW_IEscapeMark_icode_base___IEscapeMark___init "new IEscapeMark icode_base::IEscapeMark::init"
+val_t NEW_IEscapeMark_icode_base___IEscapeMark___init(void);
+typedef val_t (*NEW_IEscapeMark_icode_base___IEscapeMark___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__IClosureDecl "init var of IClosureDecl"
+void INIT_ATTRIBUTES__IClosureDecl(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IClosureDecl_t)(val_t p0);
+val_t NEW_IClosureDecl(void);
+#define LOCATE_CHECKNEW_IClosureDecl "check new IClosureDecl"
+void CHECKNEW_IClosureDecl(val_t p0);
+typedef void (*CHECKNEW_IClosureDecl_t)(val_t p0);
+#define LOCATE_NEW_IClosureDecl_icode_base___IClosureDecl___init "new IClosureDecl icode_base::IClosureDecl::init"
+val_t NEW_IClosureDecl_icode_base___IClosureDecl___init(val_t p0);
+typedef val_t (*NEW_IClosureDecl_icode_base___IClosureDecl___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IRoutine "init var of IRoutine"
+void INIT_ATTRIBUTES__IRoutine(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IRoutine_t)(val_t p0);
+val_t NEW_IRoutine(void);
+#define LOCATE_CHECKNEW_IRoutine "check new IRoutine"
+void CHECKNEW_IRoutine(val_t p0);
+typedef void (*CHECKNEW_IRoutine_t)(val_t p0);
+#define LOCATE_NEW_IRoutine_icode_base___IRoutine___init "new IRoutine icode_base::IRoutine::init"
+val_t NEW_IRoutine_icode_base___IRoutine___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IRoutine_icode_base___IRoutine___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IClosureDef "init var of IClosureDef"
+void INIT_ATTRIBUTES__IClosureDef(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IClosureDef_t)(val_t p0);
+val_t NEW_IClosureDef(void);
+#define LOCATE_CHECKNEW_IClosureDef "check new IClosureDef"
+void CHECKNEW_IClosureDef(val_t p0);
+typedef void (*CHECKNEW_IClosureDef_t)(val_t p0);
+#define LOCATE_NEW_IClosureDef_icode_base___IClosureDef___init "new IClosureDef icode_base::IClosureDef::init"
+val_t NEW_IClosureDef_icode_base___IClosureDef___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IClosureDef_icode_base___IClosureDef___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ICode "init var of ICode"
+void INIT_ATTRIBUTES__ICode(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICode_t)(val_t p0);
+val_t NEW_ICode(void);
+#define LOCATE_CHECKNEW_ICode "check new ICode"
+void CHECKNEW_ICode(val_t p0);
+typedef void (*CHECKNEW_ICode_t)(val_t p0);
+#define LOCATE_NEW_ICode_icode_base___ICode___init "new ICode icode_base::ICode::init"
+val_t NEW_ICode_icode_base___ICode___init(void);
+typedef val_t (*NEW_ICode_icode_base___ICode___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ICode0 "init var of ICode0"
+void INIT_ATTRIBUTES__ICode0(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICode0_t)(val_t p0);
+val_t NEW_ICode0(void);
+#define LOCATE_CHECKNEW_ICode0 "check new ICode0"
+void CHECKNEW_ICode0(val_t p0);
+typedef void (*CHECKNEW_ICode0_t)(val_t p0);
+#define LOCATE_NEW_ICode0_icode_base___ICode___init "new ICode0 icode_base::ICode::init"
+val_t NEW_ICode0_icode_base___ICode___init(void);
+typedef val_t (*NEW_ICode0_icode_base___ICode___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ICode1 "init var of ICode1"
+void INIT_ATTRIBUTES__ICode1(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICode1_t)(val_t p0);
+val_t NEW_ICode1(void);
+#define LOCATE_CHECKNEW_ICode1 "check new ICode1"
+void CHECKNEW_ICode1(val_t p0);
+typedef void (*CHECKNEW_ICode1_t)(val_t p0);
+#define LOCATE_NEW_ICode1_icode_base___ICode1___init "new ICode1 icode_base::ICode1::init"
+val_t NEW_ICode1_icode_base___ICode1___init(val_t p0);
+typedef val_t (*NEW_ICode1_icode_base___ICode1___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ICode2 "init var of ICode2"
+void INIT_ATTRIBUTES__ICode2(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICode2_t)(val_t p0);
+val_t NEW_ICode2(void);
+#define LOCATE_CHECKNEW_ICode2 "check new ICode2"
+void CHECKNEW_ICode2(val_t p0);
+typedef void (*CHECKNEW_ICode2_t)(val_t p0);
+#define LOCATE_NEW_ICode2_icode_base___ICode2___init "new ICode2 icode_base::ICode2::init"
+val_t NEW_ICode2_icode_base___ICode2___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ICode2_icode_base___ICode2___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ICodeN "init var of ICodeN"
+void INIT_ATTRIBUTES__ICodeN(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICodeN_t)(val_t p0);
+val_t NEW_ICodeN(void);
+#define LOCATE_CHECKNEW_ICodeN "check new ICodeN"
+void CHECKNEW_ICodeN(val_t p0);
+typedef void (*CHECKNEW_ICodeN_t)(val_t p0);
+#define LOCATE_NEW_ICodeN_icode_base___ICodeN___init "new ICodeN icode_base::ICodeN::init"
+val_t NEW_ICodeN_icode_base___ICodeN___init(val_t p0);
+typedef val_t (*NEW_ICodeN_icode_base___ICodeN___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ISeq "init var of ISeq"
+void INIT_ATTRIBUTES__ISeq(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ISeq_t)(val_t p0);
+val_t NEW_ISeq(void);
+#define LOCATE_CHECKNEW_ISeq "check new ISeq"
+void CHECKNEW_ISeq(val_t p0);
+typedef void (*CHECKNEW_ISeq_t)(val_t p0);
+#define LOCATE_NEW_ISeq_icode_base___ISeq___init "new ISeq icode_base::ISeq::init"
+val_t NEW_ISeq_icode_base___ISeq___init(void);
+typedef val_t (*NEW_ISeq_icode_base___ISeq___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ILoop "init var of ILoop"
+void INIT_ATTRIBUTES__ILoop(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ILoop_t)(val_t p0);
+val_t NEW_ILoop(void);
+#define LOCATE_CHECKNEW_ILoop "check new ILoop"
+void CHECKNEW_ILoop(val_t p0);
+typedef void (*CHECKNEW_ILoop_t)(val_t p0);
+#define LOCATE_NEW_ILoop_icode_base___ILoop___init "new ILoop icode_base::ILoop::init"
+val_t NEW_ILoop_icode_base___ILoop___init(void);
+typedef val_t (*NEW_ILoop_icode_base___ILoop___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__IIf "init var of IIf"
+void INIT_ATTRIBUTES__IIf(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IIf_t)(val_t p0);
+val_t NEW_IIf(void);
+#define LOCATE_CHECKNEW_IIf "check new IIf"
+void CHECKNEW_IIf(val_t p0);
+typedef void (*CHECKNEW_IIf_t)(val_t p0);
+#define LOCATE_NEW_IIf_icode_base___IIf___init "new IIf icode_base::IIf::init"
+val_t NEW_IIf_icode_base___IIf___init(val_t p0);
+typedef val_t (*NEW_IIf_icode_base___IIf___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IEscape "init var of IEscape"
+void INIT_ATTRIBUTES__IEscape(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IEscape_t)(val_t p0);
+val_t NEW_IEscape(void);
+#define LOCATE_CHECKNEW_IEscape "check new IEscape"
+void CHECKNEW_IEscape(val_t p0);
+typedef void (*CHECKNEW_IEscape_t)(val_t p0);
+#define LOCATE_NEW_IEscape_icode_base___IEscape___init "new IEscape icode_base::IEscape::init"
+val_t NEW_IEscape_icode_base___IEscape___init(val_t p0);
+typedef val_t (*NEW_IEscape_icode_base___IEscape___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IAbort "init var of IAbort"
+void INIT_ATTRIBUTES__IAbort(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IAbort_t)(val_t p0);
+val_t NEW_IAbort(void);
+#define LOCATE_CHECKNEW_IAbort "check new IAbort"
+void CHECKNEW_IAbort(val_t p0);
+typedef void (*CHECKNEW_IAbort_t)(val_t p0);
+#define LOCATE_NEW_IAbort_icode_base___IAbort___init "new IAbort icode_base::IAbort::init"
+val_t NEW_IAbort_icode_base___IAbort___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IAbort_icode_base___IAbort___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IAbsCall "init var of IAbsCall"
+void INIT_ATTRIBUTES__IAbsCall(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IAbsCall_t)(val_t p0);
+val_t NEW_IAbsCall(void);
+#define LOCATE_CHECKNEW_IAbsCall "check new IAbsCall"
+void CHECKNEW_IAbsCall(val_t p0);
+typedef void (*CHECKNEW_IAbsCall_t)(val_t p0);
+#define LOCATE_NEW_IAbsCall_icode_base___IAbsCall___init "new IAbsCall icode_base::IAbsCall::init"
+val_t NEW_IAbsCall_icode_base___IAbsCall___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IAbsCall_icode_base___IAbsCall___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ICall "init var of ICall"
+void INIT_ATTRIBUTES__ICall(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICall_t)(val_t p0);
+val_t NEW_ICall(void);
+#define LOCATE_CHECKNEW_ICall "check new ICall"
+void CHECKNEW_ICall(val_t p0);
+typedef void (*CHECKNEW_ICall_t)(val_t p0);
+#define LOCATE_NEW_ICall_icode_base___ICall___init "new ICall icode_base::ICall::init"
+val_t NEW_ICall_icode_base___ICall___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ICall_icode_base___ICall___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ISuper "init var of ISuper"
+void INIT_ATTRIBUTES__ISuper(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ISuper_t)(val_t p0);
+val_t NEW_ISuper(void);
+#define LOCATE_CHECKNEW_ISuper "check new ISuper"
+void CHECKNEW_ISuper(val_t p0);
+typedef void (*CHECKNEW_ISuper_t)(val_t p0);
+#define LOCATE_NEW_ISuper_icode_base___ISuper___init "new ISuper icode_base::ISuper::init"
+val_t NEW_ISuper_icode_base___ISuper___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ISuper_icode_base___ISuper___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__INew "init var of INew"
+void INIT_ATTRIBUTES__INew(val_t p0);
+typedef void (*INIT_ATTRIBUTES__INew_t)(val_t p0);
+val_t NEW_INew(void);
+#define LOCATE_CHECKNEW_INew "check new INew"
+void CHECKNEW_INew(val_t p0);
+typedef void (*CHECKNEW_INew_t)(val_t p0);
+#define LOCATE_NEW_INew_icode_base___INew___init "new INew icode_base::INew::init"
+val_t NEW_INew_icode_base___INew___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_INew_icode_base___INew___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__IAllocateInstance "init var of IAllocateInstance"
+void INIT_ATTRIBUTES__IAllocateInstance(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IAllocateInstance_t)(val_t p0);
+val_t NEW_IAllocateInstance(void);
+#define LOCATE_CHECKNEW_IAllocateInstance "check new IAllocateInstance"
+void CHECKNEW_IAllocateInstance(val_t p0);
+typedef void (*CHECKNEW_IAllocateInstance_t)(val_t p0);
+#define LOCATE_NEW_IAllocateInstance_icode_base___IAllocateInstance___init "new IAllocateInstance icode_base::IAllocateInstance::init"
+val_t NEW_IAllocateInstance_icode_base___IAllocateInstance___init(val_t p0);
+typedef val_t (*NEW_IAllocateInstance_icode_base___IAllocateInstance___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IStaticCall "init var of IStaticCall"
+void INIT_ATTRIBUTES__IStaticCall(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IStaticCall_t)(val_t p0);
+val_t NEW_IStaticCall(void);
+#define LOCATE_CHECKNEW_IStaticCall "check new IStaticCall"
+void CHECKNEW_IStaticCall(val_t p0);
+typedef void (*CHECKNEW_IStaticCall_t)(val_t p0);
+#define LOCATE_NEW_IStaticCall_icode_base___IStaticCall___init "new IStaticCall icode_base::IStaticCall::init"
+val_t NEW_IStaticCall_icode_base___IStaticCall___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IStaticCall_icode_base___IStaticCall___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ICheckInstance "init var of ICheckInstance"
+void INIT_ATTRIBUTES__ICheckInstance(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICheckInstance_t)(val_t p0);
+val_t NEW_ICheckInstance(void);
+#define LOCATE_CHECKNEW_ICheckInstance "check new ICheckInstance"
+void CHECKNEW_ICheckInstance(val_t p0);
+typedef void (*CHECKNEW_ICheckInstance_t)(val_t p0);
+#define LOCATE_NEW_ICheckInstance_icode_base___ICheckInstance___init "new ICheckInstance icode_base::ICheckInstance::init"
+val_t NEW_ICheckInstance_icode_base___ICheckInstance___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ICheckInstance_icode_base___ICheckInstance___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IInitAttributes "init var of IInitAttributes"
+void INIT_ATTRIBUTES__IInitAttributes(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IInitAttributes_t)(val_t p0);
+val_t NEW_IInitAttributes(void);
+#define LOCATE_CHECKNEW_IInitAttributes "check new IInitAttributes"
+void CHECKNEW_IInitAttributes(val_t p0);
+typedef void (*CHECKNEW_IInitAttributes_t)(val_t p0);
+#define LOCATE_NEW_IInitAttributes_icode_base___IInitAttributes___init "new IInitAttributes icode_base::IInitAttributes::init"
+val_t NEW_IInitAttributes_icode_base___IInitAttributes___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IInitAttributes_icode_base___IInitAttributes___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IClosCall "init var of IClosCall"
+void INIT_ATTRIBUTES__IClosCall(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IClosCall_t)(val_t p0);
+val_t NEW_IClosCall(void);
+#define LOCATE_CHECKNEW_IClosCall "check new IClosCall"
+void CHECKNEW_IClosCall(val_t p0);
+typedef void (*CHECKNEW_IClosCall_t)(val_t p0);
+#define LOCATE_NEW_IClosCall_icode_base___IClosCall___init "new IClosCall icode_base::IClosCall::init"
+val_t NEW_IClosCall_icode_base___IClosCall___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IClosCall_icode_base___IClosCall___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__INative "init var of INative"
+void INIT_ATTRIBUTES__INative(val_t p0);
+typedef void (*INIT_ATTRIBUTES__INative_t)(val_t p0);
+val_t NEW_INative(void);
+#define LOCATE_CHECKNEW_INative "check new INative"
+void CHECKNEW_INative(val_t p0);
+typedef void (*CHECKNEW_INative_t)(val_t p0);
+#define LOCATE_NEW_INative_icode_base___INative___init "new INative icode_base::INative::init"
+val_t NEW_INative_icode_base___INative___init(val_t p0, val_t p1);
+typedef val_t (*NEW_INative_icode_base___INative___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IMove "init var of IMove"
+void INIT_ATTRIBUTES__IMove(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IMove_t)(val_t p0);
+val_t NEW_IMove(void);
+#define LOCATE_CHECKNEW_IMove "check new IMove"
+void CHECKNEW_IMove(val_t p0);
+typedef void (*CHECKNEW_IMove_t)(val_t p0);
+#define LOCATE_NEW_IMove_icode_base___IMove___init "new IMove icode_base::IMove::init"
+val_t NEW_IMove_icode_base___IMove___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IMove_icode_base___IMove___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IAttrRead "init var of IAttrRead"
+void INIT_ATTRIBUTES__IAttrRead(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IAttrRead_t)(val_t p0);
+val_t NEW_IAttrRead(void);
+#define LOCATE_CHECKNEW_IAttrRead "check new IAttrRead"
+void CHECKNEW_IAttrRead(val_t p0);
+typedef void (*CHECKNEW_IAttrRead_t)(val_t p0);
+#define LOCATE_NEW_IAttrRead_icode_base___IAttrRead___init "new IAttrRead icode_base::IAttrRead::init"
+val_t NEW_IAttrRead_icode_base___IAttrRead___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IAttrRead_icode_base___IAttrRead___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IAttrWrite "init var of IAttrWrite"
+void INIT_ATTRIBUTES__IAttrWrite(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IAttrWrite_t)(val_t p0);
+val_t NEW_IAttrWrite(void);
+#define LOCATE_CHECKNEW_IAttrWrite "check new IAttrWrite"
+void CHECKNEW_IAttrWrite(val_t p0);
+typedef void (*CHECKNEW_IAttrWrite_t)(val_t p0);
+#define LOCATE_NEW_IAttrWrite_icode_base___IAttrWrite___init "new IAttrWrite icode_base::IAttrWrite::init"
+val_t NEW_IAttrWrite_icode_base___IAttrWrite___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_IAttrWrite_icode_base___IAttrWrite___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__IAttrIsset "init var of IAttrIsset"
+void INIT_ATTRIBUTES__IAttrIsset(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IAttrIsset_t)(val_t p0);
+val_t NEW_IAttrIsset(void);
+#define LOCATE_CHECKNEW_IAttrIsset "check new IAttrIsset"
+void CHECKNEW_IAttrIsset(val_t p0);
+typedef void (*CHECKNEW_IAttrIsset_t)(val_t p0);
+#define LOCATE_NEW_IAttrIsset_icode_base___IAttrIsset___init "new IAttrIsset icode_base::IAttrIsset::init"
+val_t NEW_IAttrIsset_icode_base___IAttrIsset___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IAttrIsset_icode_base___IAttrIsset___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ITypeCheck "init var of ITypeCheck"
+void INIT_ATTRIBUTES__ITypeCheck(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ITypeCheck_t)(val_t p0);
+val_t NEW_ITypeCheck(void);
+#define LOCATE_CHECKNEW_ITypeCheck "check new ITypeCheck"
+void CHECKNEW_ITypeCheck(val_t p0);
+typedef void (*CHECKNEW_ITypeCheck_t)(val_t p0);
+#define LOCATE_NEW_ITypeCheck_icode_base___ITypeCheck___init "new ITypeCheck icode_base::ITypeCheck::init"
+val_t NEW_ITypeCheck_icode_base___ITypeCheck___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ITypeCheck_icode_base___ITypeCheck___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__IIs "init var of IIs"
+void INIT_ATTRIBUTES__IIs(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IIs_t)(val_t p0);
+val_t NEW_IIs(void);
+#define LOCATE_CHECKNEW_IIs "check new IIs"
+void CHECKNEW_IIs(val_t p0);
+typedef void (*CHECKNEW_IIs_t)(val_t p0);
+#define LOCATE_NEW_IIs_icode_base___IIs___init "new IIs icode_base::IIs::init"
+val_t NEW_IIs_icode_base___IIs___init(val_t p0, val_t p1);
+typedef val_t (*NEW_IIs_icode_base___IIs___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__INot "init var of INot"
+void INIT_ATTRIBUTES__INot(val_t p0);
+typedef void (*INIT_ATTRIBUTES__INot_t)(val_t p0);
+val_t NEW_INot(void);
+#define LOCATE_CHECKNEW_INot "check new INot"
+void CHECKNEW_INot(val_t p0);
+typedef void (*CHECKNEW_INot_t)(val_t p0);
+#define LOCATE_NEW_INot_icode_base___INot___init "new INot icode_base::INot::init"
+val_t NEW_INot_icode_base___INot___init(val_t p0);
+typedef val_t (*NEW_INot_icode_base___INot___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__IOnce "init var of IOnce"
+void INIT_ATTRIBUTES__IOnce(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IOnce_t)(val_t p0);
+val_t NEW_IOnce(void);
+#define LOCATE_CHECKNEW_IOnce "check new IOnce"
+void CHECKNEW_IOnce(val_t p0);
+typedef void (*CHECKNEW_IOnce_t)(val_t p0);
+#define LOCATE_NEW_IOnce_icode_base___IOnce___init "new IOnce icode_base::IOnce::init"
+val_t NEW_IOnce_icode_base___IOnce___init(void);
+typedef val_t (*NEW_IOnce_icode_base___IOnce___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__IHasClos "init var of IHasClos"
+void INIT_ATTRIBUTES__IHasClos(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IHasClos_t)(val_t p0);
+val_t NEW_IHasClos(void);
+#define LOCATE_CHECKNEW_IHasClos "check new IHasClos"
+void CHECKNEW_IHasClos(val_t p0);
+typedef void (*CHECKNEW_IHasClos_t)(val_t p0);
+#define LOCATE_NEW_IHasClos_icode_base___IHasClos___init "new IHasClos icode_base::IHasClos::init"
+val_t NEW_IHasClos_icode_base___IHasClos___init(val_t p0);
+typedef val_t (*NEW_IHasClos_icode_base___IHasClos___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ICodeBuilder "init var of ICodeBuilder"
+void INIT_ATTRIBUTES__ICodeBuilder(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICodeBuilder_t)(val_t p0);
+val_t NEW_ICodeBuilder(void);
+#define LOCATE_CHECKNEW_ICodeBuilder "check new ICodeBuilder"
+void CHECKNEW_ICodeBuilder(val_t p0);
+typedef void (*CHECKNEW_ICodeBuilder_t)(val_t p0);
+#define LOCATE_NEW_ICodeBuilder_icode_builder___ICodeBuilder___init "new ICodeBuilder icode_builder::ICodeBuilder::init"
+val_t NEW_ICodeBuilder_icode_builder___ICodeBuilder___init(val_t p0, val_t p1);
+typedef val_t (*NEW_ICodeBuilder_icode_builder___ICodeBuilder___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ICodeVisitor "init var of ICodeVisitor"
+void INIT_ATTRIBUTES__ICodeVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICodeVisitor_t)(val_t p0);
+val_t NEW_ICodeVisitor(void);
+#define LOCATE_CHECKNEW_ICodeVisitor "check new ICodeVisitor"
+void CHECKNEW_ICodeVisitor(val_t p0);
+typedef void (*CHECKNEW_ICodeVisitor_t)(val_t p0);
+#define LOCATE_NEW_ICodeVisitor_icode_tools___ICodeVisitor___init "new ICodeVisitor icode_tools::ICodeVisitor::init"
+val_t NEW_ICodeVisitor_icode_tools___ICodeVisitor___init(void);
+typedef val_t (*NEW_ICodeVisitor_icode_tools___ICodeVisitor___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ICodeDupContext "init var of ICodeDupContext"
+void INIT_ATTRIBUTES__ICodeDupContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICodeDupContext_t)(val_t p0);
+val_t NEW_ICodeDupContext(void);
+#define LOCATE_CHECKNEW_ICodeDupContext "check new ICodeDupContext"
+void CHECKNEW_ICodeDupContext(val_t p0);
+typedef void (*CHECKNEW_ICodeDupContext_t)(val_t p0);
+#define LOCATE_NEW_ICodeDupContext_icode_tools___ICodeDupContext___init "new ICodeDupContext icode_tools::ICodeDupContext::init"
+val_t NEW_ICodeDupContext_icode_tools___ICodeDupContext___init(val_t p0);
+typedef val_t (*NEW_ICodeDupContext_icode_tools___ICodeDupContext___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__EscapableContext "init var of EscapableContext"
+void INIT_ATTRIBUTES__EscapableContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__EscapableContext_t)(val_t p0);
+val_t NEW_EscapableContext(void);
+#define LOCATE_CHECKNEW_EscapableContext "check new EscapableContext"
+void CHECKNEW_EscapableContext(val_t p0);
+typedef void (*CHECKNEW_EscapableContext_t)(val_t p0);
+#define LOCATE_NEW_EscapableContext_escape___EscapableContext___init "new EscapableContext escape::EscapableContext::init"
+val_t NEW_EscapableContext_escape___EscapableContext___init(val_t p0);
+typedef val_t (*NEW_EscapableContext_escape___EscapableContext___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__EscapableBlock "init var of EscapableBlock"
+void INIT_ATTRIBUTES__EscapableBlock(val_t p0);
+typedef void (*INIT_ATTRIBUTES__EscapableBlock_t)(val_t p0);
+val_t NEW_EscapableBlock(void);
+#define LOCATE_CHECKNEW_EscapableBlock "check new EscapableBlock"
+void CHECKNEW_EscapableBlock(val_t p0);
+typedef void (*CHECKNEW_EscapableBlock_t)(val_t p0);
+#define LOCATE_NEW_EscapableBlock_escape___EscapableBlock___init "new EscapableBlock escape::EscapableBlock::init"
+val_t NEW_EscapableBlock_escape___EscapableBlock___init(val_t p0);
+typedef val_t (*NEW_EscapableBlock_escape___EscapableBlock___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__BreakOnlyEscapableBlock "init var of BreakOnlyEscapableBlock"
+void INIT_ATTRIBUTES__BreakOnlyEscapableBlock(val_t p0);
+typedef void (*INIT_ATTRIBUTES__BreakOnlyEscapableBlock_t)(val_t p0);
+val_t NEW_BreakOnlyEscapableBlock(void);
+#define LOCATE_CHECKNEW_BreakOnlyEscapableBlock "check new BreakOnlyEscapableBlock"
+void CHECKNEW_BreakOnlyEscapableBlock(val_t p0);
+typedef void (*CHECKNEW_BreakOnlyEscapableBlock_t)(val_t p0);
+#define LOCATE_NEW_BreakOnlyEscapableBlock_escape___BreakOnlyEscapableBlock___init "new BreakOnlyEscapableBlock escape::BreakOnlyEscapableBlock::init"
+val_t NEW_BreakOnlyEscapableBlock_escape___BreakOnlyEscapableBlock___init(val_t p0);
+typedef val_t (*NEW_BreakOnlyEscapableBlock_escape___BreakOnlyEscapableBlock___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__EscapableClosure "init var of EscapableClosure"
+void INIT_ATTRIBUTES__EscapableClosure(val_t p0);
+typedef void (*INIT_ATTRIBUTES__EscapableClosure_t)(val_t p0);
+val_t NEW_EscapableClosure(void);
+#define LOCATE_CHECKNEW_EscapableClosure "check new EscapableClosure"
+void CHECKNEW_EscapableClosure(val_t p0);
+typedef void (*CHECKNEW_EscapableClosure_t)(val_t p0);
+#define LOCATE_NEW_EscapableClosure_escape___EscapableClosure___init "new EscapableClosure escape::EscapableClosure::init"
+val_t NEW_EscapableClosure_escape___EscapableClosure___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_EscapableClosure_escape___EscapableClosure___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__AEscapeExpr "init var of AEscapeExpr"
+void INIT_ATTRIBUTES__AEscapeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AEscapeExpr_t)(val_t p0);
+val_t NEW_AEscapeExpr(void);
+#define LOCATE_CHECKNEW_AEscapeExpr "check new AEscapeExpr"
+void CHECKNEW_AEscapeExpr(val_t p0);
+typedef void (*CHECKNEW_AEscapeExpr_t)(val_t p0);
+#define LOCATE_NEW_AEscapeExpr_parser_nodes___ANode___init "new AEscapeExpr parser_nodes::ANode::init"
+val_t NEW_AEscapeExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_AEscapeExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__VariableContext "init var of VariableContext"
+void INIT_ATTRIBUTES__VariableContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__VariableContext_t)(val_t p0);
+val_t NEW_VariableContext(void);
+#define LOCATE_CHECKNEW_VariableContext "check new VariableContext"
+void CHECKNEW_VariableContext(val_t p0);
+typedef void (*CHECKNEW_VariableContext_t)(val_t p0);
+#define LOCATE_NEW_VariableContext_control_flow___VariableContext___init "new VariableContext control_flow::VariableContext::init"
+val_t NEW_VariableContext_control_flow___VariableContext___init(val_t p0, val_t p1);
+typedef val_t (*NEW_VariableContext_control_flow___VariableContext___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__RootVariableContext "init var of RootVariableContext"
+void INIT_ATTRIBUTES__RootVariableContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__RootVariableContext_t)(val_t p0);
+val_t NEW_RootVariableContext(void);
+#define LOCATE_CHECKNEW_RootVariableContext "check new RootVariableContext"
+void CHECKNEW_RootVariableContext(val_t p0);
+typedef void (*CHECKNEW_RootVariableContext_t)(val_t p0);
+#define LOCATE_NEW_RootVariableContext_control_flow___RootVariableContext___init "new RootVariableContext control_flow::RootVariableContext::init"
+val_t NEW_RootVariableContext_control_flow___RootVariableContext___init(val_t p0, val_t p1);
+typedef val_t (*NEW_RootVariableContext_control_flow___RootVariableContext___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__SubVariableContext "init var of SubVariableContext"
+void INIT_ATTRIBUTES__SubVariableContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__SubVariableContext_t)(val_t p0);
+val_t NEW_SubVariableContext(void);
+#define LOCATE_CHECKNEW_SubVariableContext "check new SubVariableContext"
+void CHECKNEW_SubVariableContext(val_t p0);
+typedef void (*CHECKNEW_SubVariableContext_t)(val_t p0);
+#define LOCATE_NEW_SubVariableContext_control_flow___SubVariableContext___with_prev "new SubVariableContext control_flow::SubVariableContext::with_prev"
+val_t NEW_SubVariableContext_control_flow___SubVariableContext___with_prev(val_t p0, val_t p1);
+typedef val_t (*NEW_SubVariableContext_control_flow___SubVariableContext___with_prev_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__TypingVisitor "init var of TypingVisitor"
+void INIT_ATTRIBUTES__TypingVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TypingVisitor_t)(val_t p0);
+val_t NEW_TypingVisitor(void);
+#define LOCATE_CHECKNEW_TypingVisitor "check new TypingVisitor"
+void CHECKNEW_TypingVisitor(val_t p0);
+typedef void (*CHECKNEW_TypingVisitor_t)(val_t p0);
+#define LOCATE_NEW_TypingVisitor_typing___TypingVisitor___init "new TypingVisitor typing::TypingVisitor::init"
+val_t NEW_TypingVisitor_typing___TypingVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_TypingVisitor_typing___TypingVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__ATypeCheckExpr "init var of ATypeCheckExpr"
+void INIT_ATTRIBUTES__ATypeCheckExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ATypeCheckExpr_t)(val_t p0);
+val_t NEW_ATypeCheckExpr(void);
+#define LOCATE_CHECKNEW_ATypeCheckExpr "check new ATypeCheckExpr"
+void CHECKNEW_ATypeCheckExpr(val_t p0);
+typedef void (*CHECKNEW_ATypeCheckExpr_t)(val_t p0);
+#define LOCATE_NEW_ATypeCheckExpr_parser_nodes___ANode___init "new ATypeCheckExpr parser_nodes::ANode::init"
+val_t NEW_ATypeCheckExpr_parser_nodes___ANode___init(val_t p0);
+typedef val_t (*NEW_ATypeCheckExpr_parser_nodes___ANode___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__PrimitiveInfo "init var of PrimitiveInfo"
+void INIT_ATTRIBUTES__PrimitiveInfo(val_t p0);
+typedef void (*INIT_ATTRIBUTES__PrimitiveInfo_t)(val_t p0);
+val_t NEW_PrimitiveInfo(void);
+#define LOCATE_CHECKNEW_PrimitiveInfo "check new PrimitiveInfo"
+void CHECKNEW_PrimitiveInfo(val_t p0);
+typedef void (*CHECKNEW_PrimitiveInfo_t)(val_t p0);
+#define LOCATE_NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init "new PrimitiveInfo primitive_info::PrimitiveInfo::init"
+val_t NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__A2IContext "init var of A2IContext"
+void INIT_ATTRIBUTES__A2IContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__A2IContext_t)(val_t p0);
+val_t NEW_A2IContext(void);
+#define LOCATE_CHECKNEW_A2IContext "check new A2IContext"
+void CHECKNEW_A2IContext(val_t p0);
+typedef void (*CHECKNEW_A2IContext_t)(val_t p0);
+#define LOCATE_NEW_A2IContext_icode_generation___A2IContext___init "new A2IContext icode_generation::A2IContext::init"
+val_t NEW_A2IContext_icode_generation___A2IContext___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_A2IContext_icode_generation___A2IContext___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__A2IVisitor "init var of A2IVisitor"
+void INIT_ATTRIBUTES__A2IVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__A2IVisitor_t)(val_t p0);
+val_t NEW_A2IVisitor(void);
+#define LOCATE_CHECKNEW_A2IVisitor "check new A2IVisitor"
+void CHECKNEW_A2IVisitor(val_t p0);
+typedef void (*CHECKNEW_A2IVisitor_t)(val_t p0);
+#define LOCATE_NEW_A2IVisitor_icode_generation___A2IVisitor___init "new A2IVisitor icode_generation::A2IVisitor::init"
+val_t NEW_A2IVisitor_icode_generation___A2IVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_A2IVisitor_icode_generation___A2IVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__SrcModuleLoader "init var of SrcModuleLoader"
+void INIT_ATTRIBUTES__SrcModuleLoader(val_t p0);
+typedef void (*INIT_ATTRIBUTES__SrcModuleLoader_t)(val_t p0);
+val_t NEW_SrcModuleLoader(void);
+#define LOCATE_CHECKNEW_SrcModuleLoader "check new SrcModuleLoader"
+void CHECKNEW_SrcModuleLoader(val_t p0);
+typedef void (*CHECKNEW_SrcModuleLoader_t)(val_t p0);
+#define LOCATE_NEW_SrcModuleLoader_syntax___SrcModuleLoader___init "new SrcModuleLoader syntax::SrcModuleLoader::init"
+val_t NEW_SrcModuleLoader_syntax___SrcModuleLoader___init(void);
+typedef val_t (*NEW_SrcModuleLoader_syntax___SrcModuleLoader___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__AbstractCompiler "init var of AbstractCompiler"
+void INIT_ATTRIBUTES__AbstractCompiler(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AbstractCompiler_t)(val_t p0);
+val_t NEW_AbstractCompiler(void);
+#define LOCATE_CHECKNEW_AbstractCompiler "check new AbstractCompiler"
+void CHECKNEW_AbstractCompiler(val_t p0);
+typedef void (*CHECKNEW_AbstractCompiler_t)(val_t p0);
+#define LOCATE_NEW_AbstractCompiler_abstracttool___AbstractCompiler___init "new AbstractCompiler abstracttool::AbstractCompiler::init"
+val_t NEW_AbstractCompiler_abstracttool___AbstractCompiler___init(val_t p0);
+typedef val_t (*NEW_AbstractCompiler_abstracttool___AbstractCompiler___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__Program "init var of Program"
+void INIT_ATTRIBUTES__Program(val_t p0);
+typedef void (*INIT_ATTRIBUTES__Program_t)(val_t p0);
+val_t NEW_Program(void);
+#define LOCATE_CHECKNEW_Program "check new Program"
+void CHECKNEW_Program(val_t p0);
+typedef void (*CHECKNEW_Program_t)(val_t p0);
+#define LOCATE_NEW_Program_program___Program___init "new Program program::Program::init"
+val_t NEW_Program_program___Program___init(val_t p0);
+typedef val_t (*NEW_Program_program___Program___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__ColorContext "init var of ColorContext"
+void INIT_ATTRIBUTES__ColorContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ColorContext_t)(val_t p0);
+val_t NEW_ColorContext(void);
+#define LOCATE_CHECKNEW_ColorContext "check new ColorContext"
+void CHECKNEW_ColorContext(val_t p0);
+typedef void (*CHECKNEW_ColorContext_t)(val_t p0);
+#define LOCATE_NEW_ColorContext_table_computation___ColorContext___init "new ColorContext table_computation::ColorContext::init"
+val_t NEW_ColorContext_table_computation___ColorContext___init(void);
+typedef val_t (*NEW_ColorContext_table_computation___ColorContext___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__TableInformation "init var of TableInformation"
+void INIT_ATTRIBUTES__TableInformation(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableInformation_t)(val_t p0);
+val_t NEW_TableInformation(void);
+#define LOCATE_CHECKNEW_TableInformation "check new TableInformation"
+void CHECKNEW_TableInformation(val_t p0);
+typedef void (*CHECKNEW_TableInformation_t)(val_t p0);
+#define LOCATE_NEW_TableInformation_table_computation___ColorContext___init "new TableInformation table_computation::ColorContext::init"
+val_t NEW_TableInformation_table_computation___ColorContext___init(void);
+typedef val_t (*NEW_TableInformation_table_computation___ColorContext___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__CompiledClass "init var of CompiledClass"
+void INIT_ATTRIBUTES__CompiledClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__CompiledClass_t)(val_t p0);
+val_t NEW_CompiledClass(void);
+#define LOCATE_CHECKNEW_CompiledClass "check new CompiledClass"
+void CHECKNEW_CompiledClass(val_t p0);
+typedef void (*CHECKNEW_CompiledClass_t)(val_t p0);
+#define LOCATE_NEW_CompiledClass_table_computation___CompiledClass___init "new CompiledClass table_computation::CompiledClass::init"
+val_t NEW_CompiledClass_table_computation___CompiledClass___init(val_t p0);
+typedef val_t (*NEW_CompiledClass_table_computation___CompiledClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AbsTableElt "init var of AbsTableElt"
+void INIT_ATTRIBUTES__AbsTableElt(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AbsTableElt_t)(val_t p0);
+val_t NEW_AbsTableElt(void);
+#define LOCATE_CHECKNEW_AbsTableElt "check new AbsTableElt"
+void CHECKNEW_AbsTableElt(val_t p0);
+typedef void (*CHECKNEW_AbsTableElt_t)(val_t p0);
+#define LOCATE_NEW_AbsTableElt_table_computation___AbsTableElt___init "new AbsTableElt table_computation::AbsTableElt::init"
+val_t NEW_AbsTableElt_table_computation___AbsTableElt___init(void);
+typedef val_t (*NEW_AbsTableElt_table_computation___AbsTableElt___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__TableElt "init var of TableElt"
+void INIT_ATTRIBUTES__TableElt(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableElt_t)(val_t p0);
+val_t NEW_TableElt(void);
+#define LOCATE_CHECKNEW_TableElt "check new TableElt"
+void CHECKNEW_TableElt(val_t p0);
+typedef void (*CHECKNEW_TableElt_t)(val_t p0);
+#define LOCATE_NEW_TableElt_table_computation___AbsTableElt___init "new TableElt table_computation::AbsTableElt::init"
+val_t NEW_TableElt_table_computation___AbsTableElt___init(void);
+typedef val_t (*NEW_TableElt_table_computation___AbsTableElt___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ModuleTableElt "init var of ModuleTableElt"
+void INIT_ATTRIBUTES__ModuleTableElt(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ModuleTableElt_t)(val_t p0);
+val_t NEW_ModuleTableElt(void);
+#define LOCATE_CHECKNEW_ModuleTableElt "check new ModuleTableElt"
+void CHECKNEW_ModuleTableElt(val_t p0);
+typedef void (*CHECKNEW_ModuleTableElt_t)(val_t p0);
+#define LOCATE_NEW_ModuleTableElt_table_computation___AbsTableElt___init "new ModuleTableElt table_computation::AbsTableElt::init"
+val_t NEW_ModuleTableElt_table_computation___AbsTableElt___init(void);
+typedef val_t (*NEW_ModuleTableElt_table_computation___AbsTableElt___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ModuleTableEltGroup "init var of ModuleTableEltGroup"
+void INIT_ATTRIBUTES__ModuleTableEltGroup(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ModuleTableEltGroup_t)(val_t p0);
+val_t NEW_ModuleTableEltGroup(void);
+#define LOCATE_CHECKNEW_ModuleTableEltGroup "check new ModuleTableEltGroup"
+void CHECKNEW_ModuleTableEltGroup(val_t p0);
+typedef void (*CHECKNEW_ModuleTableEltGroup_t)(val_t p0);
+#define LOCATE_NEW_ModuleTableEltGroup_table_computation___AbsTableElt___init "new ModuleTableEltGroup table_computation::AbsTableElt::init"
+val_t NEW_ModuleTableEltGroup_table_computation___AbsTableElt___init(void);
+typedef val_t (*NEW_ModuleTableEltGroup_table_computation___AbsTableElt___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__TableEltProp "init var of TableEltProp"
+void INIT_ATTRIBUTES__TableEltProp(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltProp_t)(val_t p0);
+val_t NEW_TableEltProp(void);
+#define LOCATE_CHECKNEW_TableEltProp "check new TableEltProp"
+void CHECKNEW_TableEltProp(val_t p0);
+typedef void (*CHECKNEW_TableEltProp_t)(val_t p0);
+#define LOCATE_NEW_TableEltProp_table_computation___TableEltProp___init "new TableEltProp table_computation::TableEltProp::init"
+val_t NEW_TableEltProp_table_computation___TableEltProp___init(val_t p0);
+typedef val_t (*NEW_TableEltProp_table_computation___TableEltProp___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltMeth "init var of TableEltMeth"
+void INIT_ATTRIBUTES__TableEltMeth(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltMeth_t)(val_t p0);
+val_t NEW_TableEltMeth(void);
+#define LOCATE_CHECKNEW_TableEltMeth "check new TableEltMeth"
+void CHECKNEW_TableEltMeth(val_t p0);
+typedef void (*CHECKNEW_TableEltMeth_t)(val_t p0);
+#define LOCATE_NEW_TableEltMeth_table_computation___TableEltProp___init "new TableEltMeth table_computation::TableEltProp::init"
+val_t NEW_TableEltMeth_table_computation___TableEltProp___init(val_t p0);
+typedef val_t (*NEW_TableEltMeth_table_computation___TableEltProp___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltSuper "init var of TableEltSuper"
+void INIT_ATTRIBUTES__TableEltSuper(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltSuper_t)(val_t p0);
+val_t NEW_TableEltSuper(void);
+#define LOCATE_CHECKNEW_TableEltSuper "check new TableEltSuper"
+void CHECKNEW_TableEltSuper(val_t p0);
+typedef void (*CHECKNEW_TableEltSuper_t)(val_t p0);
+#define LOCATE_NEW_TableEltSuper_table_computation___TableEltProp___init "new TableEltSuper table_computation::TableEltProp::init"
+val_t NEW_TableEltSuper_table_computation___TableEltProp___init(val_t p0);
+typedef val_t (*NEW_TableEltSuper_table_computation___TableEltProp___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltAttr "init var of TableEltAttr"
+void INIT_ATTRIBUTES__TableEltAttr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltAttr_t)(val_t p0);
+val_t NEW_TableEltAttr(void);
+#define LOCATE_CHECKNEW_TableEltAttr "check new TableEltAttr"
+void CHECKNEW_TableEltAttr(val_t p0);
+typedef void (*CHECKNEW_TableEltAttr_t)(val_t p0);
+#define LOCATE_NEW_TableEltAttr_table_computation___TableEltProp___init "new TableEltAttr table_computation::TableEltProp::init"
+val_t NEW_TableEltAttr_table_computation___TableEltProp___init(val_t p0);
+typedef val_t (*NEW_TableEltAttr_table_computation___TableEltProp___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__AbsTableEltClass "init var of AbsTableEltClass"
+void INIT_ATTRIBUTES__AbsTableEltClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__AbsTableEltClass_t)(val_t p0);
+val_t NEW_AbsTableEltClass(void);
+#define LOCATE_CHECKNEW_AbsTableEltClass "check new AbsTableEltClass"
+void CHECKNEW_AbsTableEltClass(val_t p0);
+typedef void (*CHECKNEW_AbsTableEltClass_t)(val_t p0);
+#define LOCATE_NEW_AbsTableEltClass_table_computation___AbsTableEltClass___init "new AbsTableEltClass table_computation::AbsTableEltClass::init"
+val_t NEW_AbsTableEltClass_table_computation___AbsTableEltClass___init(val_t p0);
+typedef val_t (*NEW_AbsTableEltClass_table_computation___AbsTableEltClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltClass "init var of TableEltClass"
+void INIT_ATTRIBUTES__TableEltClass(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltClass_t)(val_t p0);
+val_t NEW_TableEltClass(void);
+#define LOCATE_CHECKNEW_TableEltClass "check new TableEltClass"
+void CHECKNEW_TableEltClass(val_t p0);
+typedef void (*CHECKNEW_TableEltClass_t)(val_t p0);
+#define LOCATE_NEW_TableEltClass_table_computation___AbsTableEltClass___init "new TableEltClass table_computation::AbsTableEltClass::init"
+val_t NEW_TableEltClass_table_computation___AbsTableEltClass___init(val_t p0);
+typedef val_t (*NEW_TableEltClass_table_computation___AbsTableEltClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltClassId "init var of TableEltClassId"
+void INIT_ATTRIBUTES__TableEltClassId(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltClassId_t)(val_t p0);
+val_t NEW_TableEltClassId(void);
+#define LOCATE_CHECKNEW_TableEltClassId "check new TableEltClassId"
+void CHECKNEW_TableEltClassId(val_t p0);
+typedef void (*CHECKNEW_TableEltClassId_t)(val_t p0);
+#define LOCATE_NEW_TableEltClassId_table_computation___AbsTableEltClass___init "new TableEltClassId table_computation::AbsTableEltClass::init"
+val_t NEW_TableEltClassId_table_computation___AbsTableEltClass___init(val_t p0);
+typedef val_t (*NEW_TableEltClassId_table_computation___AbsTableEltClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltClassInitTable "init var of TableEltClassInitTable"
+void INIT_ATTRIBUTES__TableEltClassInitTable(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltClassInitTable_t)(val_t p0);
+val_t NEW_TableEltClassInitTable(void);
+#define LOCATE_CHECKNEW_TableEltClassInitTable "check new TableEltClassInitTable"
+void CHECKNEW_TableEltClassInitTable(val_t p0);
+typedef void (*CHECKNEW_TableEltClassInitTable_t)(val_t p0);
+#define LOCATE_NEW_TableEltClassInitTable_table_computation___AbsTableEltClass___init "new TableEltClassInitTable table_computation::AbsTableEltClass::init"
+val_t NEW_TableEltClassInitTable_table_computation___AbsTableEltClass___init(val_t p0);
+typedef val_t (*NEW_TableEltClassInitTable_table_computation___AbsTableEltClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltClassColor "init var of TableEltClassColor"
+void INIT_ATTRIBUTES__TableEltClassColor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltClassColor_t)(val_t p0);
+val_t NEW_TableEltClassColor(void);
+#define LOCATE_CHECKNEW_TableEltClassColor "check new TableEltClassColor"
+void CHECKNEW_TableEltClassColor(val_t p0);
+typedef void (*CHECKNEW_TableEltClassColor_t)(val_t p0);
+#define LOCATE_NEW_TableEltClassColor_table_computation___AbsTableEltClass___init "new TableEltClassColor table_computation::AbsTableEltClass::init"
+val_t NEW_TableEltClassColor_table_computation___AbsTableEltClass___init(val_t p0);
+typedef val_t (*NEW_TableEltClassColor_table_computation___AbsTableEltClass___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltComposite "init var of TableEltComposite"
+void INIT_ATTRIBUTES__TableEltComposite(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltComposite_t)(val_t p0);
+val_t NEW_TableEltComposite(void);
+#define LOCATE_CHECKNEW_TableEltComposite "check new TableEltComposite"
+void CHECKNEW_TableEltComposite(val_t p0);
+typedef void (*CHECKNEW_TableEltComposite_t)(val_t p0);
+#define LOCATE_NEW_TableEltComposite_table_computation___TableEltComposite___init "new TableEltComposite table_computation::TableEltComposite::init"
+val_t NEW_TableEltComposite_table_computation___TableEltComposite___init(val_t p0);
+typedef val_t (*NEW_TableEltComposite_table_computation___TableEltComposite___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__TableEltClassSelfId "init var of TableEltClassSelfId"
+void INIT_ATTRIBUTES__TableEltClassSelfId(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltClassSelfId_t)(val_t p0);
+val_t NEW_TableEltClassSelfId(void);
+#define LOCATE_CHECKNEW_TableEltClassSelfId "check new TableEltClassSelfId"
+void CHECKNEW_TableEltClassSelfId(val_t p0);
+typedef void (*CHECKNEW_TableEltClassSelfId_t)(val_t p0);
+#define LOCATE_NEW_TableEltClassSelfId_table_computation___AbsTableElt___init "new TableEltClassSelfId table_computation::AbsTableElt::init"
+val_t NEW_TableEltClassSelfId_table_computation___AbsTableElt___init(void);
+typedef val_t (*NEW_TableEltClassSelfId_table_computation___AbsTableElt___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__TableEltClassObjectSize "init var of TableEltClassObjectSize"
+void INIT_ATTRIBUTES__TableEltClassObjectSize(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltClassObjectSize_t)(val_t p0);
+val_t NEW_TableEltClassObjectSize(void);
+#define LOCATE_CHECKNEW_TableEltClassObjectSize "check new TableEltClassObjectSize"
+void CHECKNEW_TableEltClassObjectSize(val_t p0);
+typedef void (*CHECKNEW_TableEltClassObjectSize_t)(val_t p0);
+#define LOCATE_NEW_TableEltClassObjectSize_table_computation___AbsTableElt___init "new TableEltClassObjectSize table_computation::AbsTableElt::init"
+val_t NEW_TableEltClassObjectSize_table_computation___AbsTableElt___init(void);
+typedef val_t (*NEW_TableEltClassObjectSize_table_computation___AbsTableElt___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__TableEltObjectId "init var of TableEltObjectId"
+void INIT_ATTRIBUTES__TableEltObjectId(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltObjectId_t)(val_t p0);
+val_t NEW_TableEltObjectId(void);
+#define LOCATE_CHECKNEW_TableEltObjectId "check new TableEltObjectId"
+void CHECKNEW_TableEltObjectId(val_t p0);
+typedef void (*CHECKNEW_TableEltObjectId_t)(val_t p0);
+#define LOCATE_NEW_TableEltObjectId_table_computation___AbsTableElt___init "new TableEltObjectId table_computation::AbsTableElt::init"
+val_t NEW_TableEltObjectId_table_computation___AbsTableElt___init(void);
+typedef val_t (*NEW_TableEltObjectId_table_computation___AbsTableElt___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__TableEltVftPointer "init var of TableEltVftPointer"
+void INIT_ATTRIBUTES__TableEltVftPointer(val_t p0);
+typedef void (*INIT_ATTRIBUTES__TableEltVftPointer_t)(val_t p0);
+val_t NEW_TableEltVftPointer(void);
+#define LOCATE_CHECKNEW_TableEltVftPointer "check new TableEltVftPointer"
+void CHECKNEW_TableEltVftPointer(val_t p0);
+typedef void (*CHECKNEW_TableEltVftPointer_t)(val_t p0);
+#define LOCATE_NEW_TableEltVftPointer_table_computation___AbsTableElt___init "new TableEltVftPointer table_computation::AbsTableElt::init"
+val_t NEW_TableEltVftPointer_table_computation___AbsTableElt___init(void);
+typedef val_t (*NEW_TableEltVftPointer_table_computation___AbsTableElt___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ClassSorter "init var of ClassSorter"
+void INIT_ATTRIBUTES__ClassSorter(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ClassSorter_t)(val_t p0);
+val_t NEW_ClassSorter(void);
+#define LOCATE_CHECKNEW_ClassSorter "check new ClassSorter"
+void CHECKNEW_ClassSorter(val_t p0);
+typedef void (*CHECKNEW_ClassSorter_t)(val_t p0);
+#define LOCATE_NEW_ClassSorter_table_computation___ClassSorter___init "new ClassSorter table_computation::ClassSorter::init"
+val_t NEW_ClassSorter_table_computation___ClassSorter___init(void);
+typedef val_t (*NEW_ClassSorter_table_computation___ClassSorter___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__IRegisterSlotAllocationVisitor "init var of IRegisterSlotAllocationVisitor"
+void INIT_ATTRIBUTES__IRegisterSlotAllocationVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__IRegisterSlotAllocationVisitor_t)(val_t p0);
+val_t NEW_IRegisterSlotAllocationVisitor(void);
+#define LOCATE_CHECKNEW_IRegisterSlotAllocationVisitor "check new IRegisterSlotAllocationVisitor"
+void CHECKNEW_IRegisterSlotAllocationVisitor(val_t p0);
+typedef void (*CHECKNEW_IRegisterSlotAllocationVisitor_t)(val_t p0);
+#define LOCATE_NEW_IRegisterSlotAllocationVisitor_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init "new IRegisterSlotAllocationVisitor allocate_iregister_slots::IRegisterSlotAllocationVisitor::init"
+val_t NEW_IRegisterSlotAllocationVisitor_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0);
+typedef val_t (*NEW_IRegisterSlotAllocationVisitor_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init_t)(val_t p0);
+#define LOCATE_INIT_ATTRIBUTES__SlotGroup "init var of SlotGroup"
+void INIT_ATTRIBUTES__SlotGroup(val_t p0);
+typedef void (*INIT_ATTRIBUTES__SlotGroup_t)(val_t p0);
+val_t NEW_SlotGroup(void);
+#define LOCATE_CHECKNEW_SlotGroup "check new SlotGroup"
+void CHECKNEW_SlotGroup(val_t p0);
+typedef void (*CHECKNEW_SlotGroup_t)(val_t p0);
+#define LOCATE_NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init "new SlotGroup allocate_iregister_slots::SlotGroup::init"
+val_t NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init(void);
+typedef val_t (*NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__ICodeDumper "init var of ICodeDumper"
+void INIT_ATTRIBUTES__ICodeDumper(val_t p0);
+typedef void (*INIT_ATTRIBUTES__ICodeDumper_t)(val_t p0);
+val_t NEW_ICodeDumper(void);
+#define LOCATE_CHECKNEW_ICodeDumper "check new ICodeDumper"
+void CHECKNEW_ICodeDumper(val_t p0);
+typedef void (*CHECKNEW_ICodeDumper_t)(val_t p0);
+#define LOCATE_NEW_ICodeDumper_icode_dump___ICodeDumper___init "new ICodeDumper icode_dump::ICodeDumper::init"
+val_t NEW_ICodeDumper_icode_dump___ICodeDumper___init(void);
+typedef val_t (*NEW_ICodeDumper_icode_dump___ICodeDumper___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__InlineMethodVisitor "init var of InlineMethodVisitor"
+void INIT_ATTRIBUTES__InlineMethodVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__InlineMethodVisitor_t)(val_t p0);
+val_t NEW_InlineMethodVisitor(void);
+#define LOCATE_CHECKNEW_InlineMethodVisitor "check new InlineMethodVisitor"
+void CHECKNEW_InlineMethodVisitor(val_t p0);
+typedef void (*CHECKNEW_InlineMethodVisitor_t)(val_t p0);
+#define LOCATE_NEW_InlineMethodVisitor_inline_methods___InlineMethodVisitor___init "new InlineMethodVisitor inline_methods::InlineMethodVisitor::init"
+val_t NEW_InlineMethodVisitor_inline_methods___InlineMethodVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_InlineMethodVisitor_inline_methods___InlineMethodVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__CompilerVisitor "init var of CompilerVisitor"
+void INIT_ATTRIBUTES__CompilerVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__CompilerVisitor_t)(val_t p0);
+val_t NEW_CompilerVisitor(void);
+#define LOCATE_CHECKNEW_CompilerVisitor "check new CompilerVisitor"
+void CHECKNEW_CompilerVisitor(val_t p0);
+typedef void (*CHECKNEW_CompilerVisitor_t)(val_t p0);
+#define LOCATE_NEW_CompilerVisitor_compiling_base___CompilerVisitor___init "new CompilerVisitor compiling_base::CompilerVisitor::init"
+val_t NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_CompilerVisitor_compiling_base___CompilerVisitor___init_t)(val_t p0, val_t p1);
+#define LOCATE_INIT_ATTRIBUTES__CContext "init var of CContext"
+void INIT_ATTRIBUTES__CContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__CContext_t)(val_t p0);
+val_t NEW_CContext(void);
+#define LOCATE_CHECKNEW_CContext "check new CContext"
+void CHECKNEW_CContext(val_t p0);
+typedef void (*CHECKNEW_CContext_t)(val_t p0);
+#define LOCATE_NEW_CContext_compiling_base___CContext___init "new CContext compiling_base::CContext::init"
+val_t NEW_CContext_compiling_base___CContext___init(void);
+typedef val_t (*NEW_CContext_compiling_base___CContext___init_t)(void);
+#define LOCATE_INIT_ATTRIBUTES__I2CCompilerVisitor "init var of I2CCompilerVisitor"
+void INIT_ATTRIBUTES__I2CCompilerVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__I2CCompilerVisitor_t)(val_t p0);
+val_t NEW_I2CCompilerVisitor(void);
+#define LOCATE_CHECKNEW_I2CCompilerVisitor "check new I2CCompilerVisitor"
+void CHECKNEW_I2CCompilerVisitor(val_t p0);
+typedef void (*CHECKNEW_I2CCompilerVisitor_t)(val_t p0);
+#define LOCATE_NEW_I2CCompilerVisitor_compiling_icode___I2CCompilerVisitor___init "new I2CCompilerVisitor compiling_icode::I2CCompilerVisitor::init"
+val_t NEW_I2CCompilerVisitor_compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_I2CCompilerVisitor_compiling_icode___I2CCompilerVisitor___init_t)(val_t p0, val_t p1, val_t p2);
+#define LOCATE_INIT_ATTRIBUTES__GlobalCompilerVisitor "init var of GlobalCompilerVisitor"
+void INIT_ATTRIBUTES__GlobalCompilerVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__GlobalCompilerVisitor_t)(val_t p0);
+val_t NEW_GlobalCompilerVisitor(void);
+#define LOCATE_CHECKNEW_GlobalCompilerVisitor "check new GlobalCompilerVisitor"
+void CHECKNEW_GlobalCompilerVisitor(val_t p0);
+typedef void (*CHECKNEW_GlobalCompilerVisitor_t)(val_t p0);
+#define LOCATE_NEW_GlobalCompilerVisitor_compiling_global___GlobalCompilerVisitor___init "new GlobalCompilerVisitor compiling_global::GlobalCompilerVisitor::init"
+val_t NEW_GlobalCompilerVisitor_compiling_global___GlobalCompilerVisitor___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_GlobalCompilerVisitor_compiling_global___GlobalCompilerVisitor___init_t)(val_t p0, val_t p1, val_t p2);
 const char *LOCATE_abstracttool = "./abstracttool.nit";
-const int SFT_abstracttool[9] = {
-  3239 /* Id of AbstractCompiler */,
-  4 /* Color of AbstractCompiler */,
-  86 /* Color of AbstractCompiler */,
-  87 /* Property init */,
-  88 /* Property exec_cmd_line */,
-  89 /* Property perform_work */,
-  90 /* Property dump_context_info */,
-  40 /* Property dump_module_info */,
-  40 /* Property dump_properties */,
+const int SFT_abstracttool[6] = {
+  5911 /* Id of AbstractCompiler */,
+  5 /* Color of AbstractCompiler */,
+  33 /* Group of ? */,
+  97 /* Group of ? */,
+  45 /* Group of ? */,
+  45 /* Group of ? */,
 };
 const char *LOCATE_syntax = "./syntax//syntax.nit";
 const int SFT_syntax[6] = {
-  203 /* Id of SrcModuleLoader */,
-  3 /* Color of SrcModuleLoader */,
-  48 /* Color of SrcModuleLoader */,
-  49 /* Property init */,
-  84 /* Property process_supermodules */,
-  85 /* Property process_syntax */,
+  267 /* Id of SrcModuleLoader */,
+  4 /* Color of SrcModuleLoader */,
+  54 /* Group of ? */,
+  80 /* Group of ? */,
+  6 /* Group of ? */,
+  53 /* Group of ? */,
 };
 const char *LOCATE_mmbuilder = "./syntax//mmbuilder.nit";
-const int SFT_mmbuilder[131] = {
-  2667 /* Id of CSHSorter */,
-  3 /* Color of CSHSorter */,
-  46 /* Color of CSHSorter */,
-  47 /* Property init */,
-  86 /* Property do_mmbuilder */,
-  41 /* Property accept_class_visitor */,
-  42 /* Property accept_properties_visitor */,
-  110 /* Property add_src_local_property */,
-  43 /* Property accept_property_visitor */,
-  2571 /* Id of MMSrcAncestor */,
-  3 /* Color of MMSrcAncestor */,
-  3 /* Property _node */,
-  4 /* Property _local_class */,
-  49 /* Color of MMSrcAncestor */,
-  50 /* Property node */,
-  51 /* Property init */,
-  3227 /* Id of ClassBuilderVisitor */,
-  4 /* Color of ClassBuilderVisitor */,
-  5 /* Property _local_class_arity */,
-  6 /* Property _formals */,
-  64 /* Color of ClassBuilderVisitor */,
-  65 /* Property local_class_arity */,
-  66 /* Property local_class_arity= */,
-  67 /* Property formals */,
-  68 /* Property formals= */,
-  69 /* Property init */,
-  3223 /* Id of ClassSpecializationBuilderVisitor */,
-  4 /* Color of ClassSpecializationBuilderVisitor */,
-  64 /* Color of ClassSpecializationBuilderVisitor */,
-  65 /* Property init */,
-  3231 /* Id of ClassAncestorBuilder */,
-  4 /* Color of ClassAncestorBuilder */,
-  64 /* Color of ClassAncestorBuilder */,
-  65 /* Property init */,
-  3219 /* Id of ClassVerifierVisitor */,
-  4 /* Color of ClassVerifierVisitor */,
-  64 /* Color of ClassVerifierVisitor */,
-  65 /* Property init */,
-  3043 /* Id of PropertyBuilderVisitor */,
-  4 /* Color of PropertyBuilderVisitor */,
-  64 /* Color of PropertyBuilderVisitor */,
-  65 /* Property init */,
-  3039 /* Id of PropertyVerifierVisitor */,
-  4 /* Color of PropertyVerifierVisitor */,
-  5 /* Property _params */,
-  6 /* Property _untyped_params */,
-  7 /* Property _vararg_rank */,
-  8 /* Property _signature */,
-  64 /* Color of PropertyVerifierVisitor */,
-  65 /* Property params */,
-  66 /* Property params= */,
-  67 /* Property untyped_params */,
-  68 /* Property untyped_params= */,
-  69 /* Property vararg_rank */,
-  70 /* Property vararg_rank= */,
-  71 /* Property signature */,
-  72 /* Property signature= */,
-  73 /* Property init */,
-  40 /* Property accept_class_builder */,
-  41 /* Property accept_class_specialization_builder */,
-  42 /* Property accept_class_ancestor_builder */,
-  43 /* Property accept_class_verifier */,
-  44 /* Property accept_property_builder */,
-  45 /* Property accept_property_verifier */,
-  68 /* Property import_super_modules */,
-  67 /* Property module_name */,
-  68 /* Property visibility_level */,
-  67 /* Property level */,
-  4 /* Property _local_class */,
-  67 /* Property name */,
-  68 /* Property arity */,
-  69 /* Property visibility_level */,
-  70 /* Property accept_class_builder */,
-  71 /* Property accept_abs_syntax_visitor */,
-  67 /* Property is_interface */,
-  68 /* Property is_universal */,
-  69 /* Property is_abstract */,
-  75 /* Property accept_class_verifier */,
-  3287 /* Id of MMSrcTypeFormalParameter */,
-  5 /* Color of MMSrcTypeFormalParameter */,
-  5 /* Property _node */,
-  67 /* Color of MMSrcTypeFormalParameter */,
-  68 /* Property node */,
-  69 /* Property init */,
-  4 /* Property _formal */,
-  68 /* Property accept_class_builder */,
-  69 /* Property accept_class_verifier */,
-  4 /* Property _ancestor */,
-  68 /* Property ancestor */,
-  69 /* Property accept_class_specialization_builder */,
-  70 /* Property accept_class_ancestor_builder */,
-  71 /* Property accept_class_verifier */,
-  67 /* Property process_and_check */,
-  68 /* Property do_and_check_intro */,
-  69 /* Property inherit_signature */,
-  70 /* Property do_and_check_redef */,
-  5 /* Property _readmethod */,
-  6 /* Property _writemethod */,
-  7 /* Property _prop */,
-  74 /* Property accept_property_builder */,
-  75 /* Property accept_property_verifier */,
-  76 /* Property accept_abs_syntax_visitor */,
-  5 /* Property _name */,
-  6 /* Property _method */,
-  75 /* Property name */,
-  76 /* Property accept_property_builder */,
-  77 /* Property accept_property_verifier */,
-  78 /* Property accept_abs_syntax_visitor */,
-  5 /* Property _prop */,
-  74 /* Property accept_property_builder */,
-  75 /* Property accept_property_verifier */,
-  76 /* Property accept_abs_syntax_visitor */,
-  2543 /* Id of MethidAccumulator */,
-  3 /* Color of MethidAccumulator */,
-  1 /* Property _name */,
-  42 /* Color of MethidAccumulator */,
-  43 /* Property name */,
-  44 /* Property init */,
-  4 /* Property _name */,
-  67 /* Property name */,
-  68 /* Property accept_property_builder */,
-  67 /* Property check_visibility */,
-  69 /* Property accept_property_verifier */,
-  4 /* Property _position */,
-  5 /* Property _variable */,
-  6 /* Property _stype */,
-  67 /* Property stype */,
-  68 /* Property stype= */,
-  69 /* Property accept_property_verifier */,
-  70 /* Property is_vararg */,
-  67 /* Property check_visibility */,
+const int SFT_mmbuilder[67] = {
+  5279 /* Id of CSHSorter */,
+  4 /* Color of CSHSorter */,
+  52 /* Group of ? */,
+  82 /* Group of ? */,
+  46 /* Group of ? */,
+  113 /* Group of ? */,
+  45 /* Group of ? */,
+  14 /* Group of ? */,
+  5139 /* Id of MMSrcAncestor */,
+  4 /* Color of MMSrcAncestor */,
+  4 /* Group of ? */,
+  55 /* Group of ? */,
+  5899 /* Id of ClassBuilderVisitor */,
+  5 /* Color of ClassBuilderVisitor */,
+  7 /* Group of ? */,
+  80 /* Group of ? */,
+  5895 /* Id of ClassSpecializationBuilderVisitor */,
+  5 /* Color of ClassSpecializationBuilderVisitor */,
+  80 /* Group of ? */,
+  5903 /* Id of ClassAncestorBuilder */,
+  5 /* Color of ClassAncestorBuilder */,
+  80 /* Group of ? */,
+  5891 /* Id of ClassVerifierVisitor */,
+  5 /* Color of ClassVerifierVisitor */,
+  80 /* Group of ? */,
+  5711 /* Id of PropertyBuilderVisitor */,
+  5 /* Color of PropertyBuilderVisitor */,
+  80 /* Group of ? */,
+  5707 /* Id of PropertyVerifierVisitor */,
+  5 /* Color of PropertyVerifierVisitor */,
+  7 /* Group of ? */,
+  80 /* Group of ? */,
+  39 /* Id of SignatureBuilder */,
+  3 /* Color of SignatureBuilder */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  45 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  78 /* Group of ? */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  8 /* Group of ? */,
+  76 /* Group of ? */,
+  8 /* Group of ? */,
+  76 /* Group of ? */,
+  8 /* Group of ? */,
+  76 /* Group of ? */,
+  5103 /* Id of MethidAccumulator */,
+  4 /* Color of MethidAccumulator */,
+  3 /* Group of ? */,
+  50 /* Group of ? */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
 };
 const char *LOCATE_syntax_base = "./syntax//syntax_base.nit";
-const int SFT_syntax_base[118] = {
-  2567 /* Id of MMSrcModule */,
-  3 /* Color of MMSrcModule */,
-  19 /* Property _node */,
-  20 /* Property _src_local_classes */,
-  87 /* Color of MMSrcModule */,
-  88 /* Property node */,
-  89 /* Property src_local_classes */,
-  90 /* Property init */,
-  43 /* Property check_visibility */,
-  3171 /* Id of MMSrcLocalClass */,
-  4 /* Color of MMSrcLocalClass */,
-  24 /* Property _nodes */,
-  25 /* Property _formal_dict */,
-  26 /* Property _src_local_properties */,
-  111 /* Color of MMSrcLocalClass */,
-  112 /* Property nodes */,
-  113 /* Property formal_dict */,
-  114 /* Property formal_dict= */,
-  115 /* Property src_local_properties */,
-  116 /* Property init */,
-  45 /* Property check_visibility */,
-  44 /* Property node */,
-  3175 /* Id of MMSrcAttribute */,
-  4 /* Color of MMSrcAttribute */,
-  9 /* Property _node */,
-  63 /* Color of MMSrcAttribute */,
-  64 /* Property init */,
-  3167 /* Id of MMSrcMethod */,
-  4 /* Color of MMSrcMethod */,
-  67 /* Color of MMSrcMethod */,
-  3295 /* Id of MMAttrImplementationMethod */,
-  5 /* Color of MMAttrImplementationMethod */,
-  9 /* Property _node */,
-  68 /* Color of MMAttrImplementationMethod */,
-  3627 /* Id of MMReadImplementationMethod */,
-  6 /* Color of MMReadImplementationMethod */,
-  69 /* Color of MMReadImplementationMethod */,
-  70 /* Property init */,
-  3623 /* Id of MMWriteImplementationMethod */,
-  6 /* Color of MMWriteImplementationMethod */,
-  69 /* Color of MMWriteImplementationMethod */,
-  70 /* Property init */,
-  3291 /* Id of MMMethSrcMethod */,
-  5 /* Color of MMMethSrcMethod */,
-  9 /* Property _node */,
-  68 /* Color of MMMethSrcMethod */,
-  69 /* Property init */,
-  3163 /* Id of MMSrcTypeProperty */,
-  4 /* Color of MMSrcTypeProperty */,
-  10 /* Property _node */,
-  64 /* Color of MMSrcTypeProperty */,
-  65 /* Property init */,
+const int SFT_syntax_base[99] = {
+  5135 /* Id of MMSrcModule */,
+  4 /* Color of MMSrcModule */,
+  19 /* Group of ? */,
+  84 /* Group of ? */,
+  46 /* Group of ? */,
+  45 /* Group of ? */,
+  5771 /* Id of MMSrcLocalClass */,
+  5 /* Color of MMSrcLocalClass */,
+  28 /* Group of ? */,
+  115 /* Group of ? */,
+  45 /* Group of ? */,
+  46 /* Group of ? */,
+  5775 /* Id of MMSrcAttribute */,
+  5 /* Color of MMSrcAttribute */,
+  71 /* Group of ? */,
+  5767 /* Id of MMSrcMethod */,
+  5 /* Color of MMSrcMethod */,
+  75 /* Group of ? */,
+  6051 /* Id of MMAttrImplementationMethod */,
+  6 /* Color of MMAttrImplementationMethod */,
+  76 /* Group of ? */,
+  6391 /* Id of MMReadImplementationMethod */,
+  7 /* Color of MMReadImplementationMethod */,
+  78 /* Group of ? */,
+  6387 /* Id of MMWriteImplementationMethod */,
+  7 /* Color of MMWriteImplementationMethod */,
+  78 /* Group of ? */,
+  6047 /* Id of MMMethSrcMethod */,
+  6 /* Color of MMMethSrcMethod */,
+  11 /* Group of ? */,
+  76 /* Group of ? */,
+  5763 /* Id of MMSrcTypeProperty */,
+  5 /* Color of MMSrcTypeProperty */,
+  70 /* Group of ? */,
+  6395 /* Id of MMImplicitInit */,
+  7 /* Color of MMImplicitInit */,
+  15 /* Group of ? */,
+  78 /* Group of ? */,
   15 /* Id of Variable */,
-  2 /* Color of Variable */,
-  1 /* Property _name */,
-  2 /* Property _decl */,
-  3 /* Property _stype */,
-  40 /* Color of Variable */,
-  41 /* Property name */,
-  42 /* Property decl */,
-  43 /* Property stype */,
-  44 /* Property stype= */,
-  45 /* Property init */,
-  2679 /* Id of AbsSyntaxVisitor */,
-  3 /* Color of AbsSyntaxVisitor */,
-  1 /* Property _module */,
-  2 /* Property _local_class */,
-  3 /* Property _local_property */,
-  4 /* Property _tc */,
-  42 /* Color of AbsSyntaxVisitor */,
-  43 /* Property type_bool */,
-  44 /* Property type_int */,
-  45 /* Property type_float */,
-  46 /* Property type_char */,
-  47 /* Property type_string */,
-  48 /* Property type_collection */,
-  49 /* Property type_array */,
-  50 /* Property type_discrete */,
-  51 /* Property type_range */,
-  52 /* Property type_none */,
-  53 /* Property module */,
-  54 /* Property module= */,
-  55 /* Property local_class */,
-  56 /* Property local_class= */,
-  57 /* Property local_property */,
-  58 /* Property local_property= */,
-  59 /* Property tc */,
-  60 /* Property error */,
-  61 /* Property warning */,
-  62 /* Property check_conform */,
-  63 /* Property init */,
-  46 /* Property accept_abs_syntax_visitor */,
-  2 /* Property _symbol */,
-  61 /* Property to_symbol */,
-  72 /* Property local_class */,
-  77 /* Property prop */,
-  78 /* Property readmethod */,
-  79 /* Property writemethod */,
-  79 /* Property method */,
-  77 /* Property prop */,
-  71 /* Property position */,
-  72 /* Property variable */,
-  68 /* Property get_local_class */,
-  69 /* Property get_stype */,
-  70 /* Property get_unchecked_stype */,
-  71 /* Property check_conform */,
-  5 /* Property _stype_cache */,
-  6 /* Property _stype_cached */,
-  70 /* Property stype */,
-  6 /* Property _variable */,
-  77 /* Property variable */,
-  78 /* Property variable= */,
-  6 /* Property _variable */,
-  77 /* Property variable */,
-  78 /* Property variable= */,
-  6 /* Property _variable */,
-  76 /* Property variable */,
-  77 /* Property variable= */,
+  3 /* Color of Variable */,
+  2 /* Group of ? */,
+  46 /* Group of ? */,
+  243 /* Id of VarVariable */,
+  4 /* Color of VarVariable */,
+  54 /* Group of ? */,
+  5071 /* Id of ParamVariable */,
+  4 /* Color of ParamVariable */,
+  54 /* Group of ? */,
+  5291 /* Id of AutoVariable */,
+  4 /* Color of AutoVariable */,
+  54 /* Group of ? */,
+  5271 /* Id of ClosureVariable */,
+  4 /* Color of ClosureVariable */,
+  5 /* Group of ? */,
+  54 /* Group of ? */,
+  5303 /* Id of AbsSyntaxVisitor */,
+  4 /* Color of AbsSyntaxVisitor */,
+  3 /* Group of ? */,
+  50 /* Group of ? */,
+  51 /* Group of ? */,
+  4 /* Group of ? */,
+  65 /* Group of ? */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  72 /* Group of ? */,
+  79 /* Group of ? */,
+  16 /* Group of ? */,
+  105 /* Group of ? */,
+  80 /* Group of ? */,
+  79 /* Group of ? */,
+  72 /* Group of ? */,
+  69 /* Group of ? */,
+  6 /* Group of ? */,
+  69 /* Group of ? */,
+  71 /* Group of ? */,
+  6375 /* Id of AAbsAbsSendExpr */,
+  5 /* Color of AAbsAbsSendExpr */,
+  96 /* Group of ? */,
+  6551 /* Id of AAbsSendExpr */,
+  8 /* Color of AAbsSendExpr */,
+  102 /* Group of ? */,
+  6567 /* Id of ASuperInitCall */,
+  9 /* Color of ASuperInitCall */,
+  69 /* Group of ? */,
+  105 /* Group of ? */,
+  107 /* Group of ? */,
+  86 /* Group of ? */,
+  6595 /* Id of ASendReassignExpr */,
+  11 /* Color of ASendReassignExpr */,
+  81 /* Group of ? */,
+  93 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  82 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  99 /* Group of ? */,
+  11 /* Group of ? */,
+  75 /* Group of ? */,
 };
 const char *LOCATE_parser = "./parser//parser.nit";
-const int SFT_parser[2326] = {
-  35 /* Id of State */,
-  2 /* Color of State */,
-  1 /* Property _state */,
-  2 /* Property _nodes */,
-  40 /* Color of State */,
-  41 /* Property state */,
-  42 /* Property state= */,
-  43 /* Property nodes */,
-  44 /* Property nodes= */,
-  45 /* Property init */,
-  2519 /* Id of Parser */,
-  3 /* Color of Parser */,
-  3 /* Property _lexer */,
-  4 /* Property _stack */,
-  5 /* Property _stack_pos */,
-  6 /* Property _reduce_table */,
-  1210 /* Color of Parser */,
-  1211 /* Property init */,
-  1212 /* Property go_to */,
-  1213 /* Property push */,
-  1214 /* Property state */,
-  1215 /* Property pop */,
-  1216 /* Property parse */,
-  1217 /* Property build_reduce_table */,
-  207 /* Id of SearchTokensVisitor */,
-  3 /* Color of SearchTokensVisitor */,
-  1 /* Property _untokenned_nodes */,
-  2 /* Property _last_token */,
-  42 /* Color of SearchTokensVisitor */,
-  43 /* Property init */,
-  39 /* Id of ReduceAction */,
-  2 /* Color of ReduceAction */,
-  40 /* Color of ReduceAction */,
-  41 /* Property action */,
-  2503 /* Id of ReduceAction0 */,
-  3 /* Color of ReduceAction0 */,
-  42 /* Color of ReduceAction0 */,
-  43 /* Property init */,
-  2499 /* Id of ReduceAction1 */,
-  3 /* Color of ReduceAction1 */,
-  42 /* Color of ReduceAction1 */,
-  43 /* Property init */,
-  2055 /* Id of ReduceAction2 */,
-  3 /* Color of ReduceAction2 */,
-  42 /* Color of ReduceAction2 */,
-  43 /* Property init */,
-  1611 /* Id of ReduceAction3 */,
-  3 /* Color of ReduceAction3 */,
-  42 /* Color of ReduceAction3 */,
-  43 /* Property init */,
-  1167 /* Id of ReduceAction4 */,
-  3 /* Color of ReduceAction4 */,
-  42 /* Color of ReduceAction4 */,
-  43 /* Property init */,
-  723 /* Id of ReduceAction5 */,
-  3 /* Color of ReduceAction5 */,
-  42 /* Color of ReduceAction5 */,
-  43 /* Property init */,
-  387 /* Id of ReduceAction6 */,
-  3 /* Color of ReduceAction6 */,
-  42 /* Color of ReduceAction6 */,
-  43 /* Property init */,
-  343 /* Id of ReduceAction7 */,
-  3 /* Color of ReduceAction7 */,
-  42 /* Color of ReduceAction7 */,
-  43 /* Property init */,
-  299 /* Id of ReduceAction8 */,
-  3 /* Color of ReduceAction8 */,
-  42 /* Color of ReduceAction8 */,
-  43 /* Property init */,
-  255 /* Id of ReduceAction9 */,
-  3 /* Color of ReduceAction9 */,
-  42 /* Color of ReduceAction9 */,
-  43 /* Property init */,
-  2495 /* Id of ReduceAction10 */,
-  3 /* Color of ReduceAction10 */,
-  42 /* Color of ReduceAction10 */,
-  43 /* Property init */,
-  2451 /* Id of ReduceAction11 */,
-  3 /* Color of ReduceAction11 */,
-  42 /* Color of ReduceAction11 */,
-  43 /* Property init */,
-  2407 /* Id of ReduceAction12 */,
-  3 /* Color of ReduceAction12 */,
-  42 /* Color of ReduceAction12 */,
-  43 /* Property init */,
-  2363 /* Id of ReduceAction13 */,
-  3 /* Color of ReduceAction13 */,
-  42 /* Color of ReduceAction13 */,
-  43 /* Property init */,
-  2319 /* Id of ReduceAction14 */,
-  3 /* Color of ReduceAction14 */,
-  42 /* Color of ReduceAction14 */,
-  43 /* Property init */,
-  2275 /* Id of ReduceAction15 */,
-  3 /* Color of ReduceAction15 */,
-  42 /* Color of ReduceAction15 */,
-  43 /* Property init */,
-  2231 /* Id of ReduceAction16 */,
-  3 /* Color of ReduceAction16 */,
-  42 /* Color of ReduceAction16 */,
-  43 /* Property init */,
-  2187 /* Id of ReduceAction17 */,
-  3 /* Color of ReduceAction17 */,
-  42 /* Color of ReduceAction17 */,
-  43 /* Property init */,
-  2143 /* Id of ReduceAction18 */,
-  3 /* Color of ReduceAction18 */,
-  42 /* Color of ReduceAction18 */,
-  43 /* Property init */,
-  2099 /* Id of ReduceAction19 */,
-  3 /* Color of ReduceAction19 */,
-  42 /* Color of ReduceAction19 */,
-  43 /* Property init */,
-  2051 /* Id of ReduceAction20 */,
-  3 /* Color of ReduceAction20 */,
-  42 /* Color of ReduceAction20 */,
-  43 /* Property init */,
-  2007 /* Id of ReduceAction21 */,
-  3 /* Color of ReduceAction21 */,
-  42 /* Color of ReduceAction21 */,
-  43 /* Property init */,
-  1963 /* Id of ReduceAction22 */,
-  3 /* Color of ReduceAction22 */,
-  42 /* Color of ReduceAction22 */,
-  43 /* Property init */,
-  1919 /* Id of ReduceAction23 */,
-  3 /* Color of ReduceAction23 */,
-  42 /* Color of ReduceAction23 */,
-  43 /* Property init */,
-  1875 /* Id of ReduceAction24 */,
-  3 /* Color of ReduceAction24 */,
-  42 /* Color of ReduceAction24 */,
-  43 /* Property init */,
-  1831 /* Id of ReduceAction25 */,
-  3 /* Color of ReduceAction25 */,
-  42 /* Color of ReduceAction25 */,
-  43 /* Property init */,
-  1787 /* Id of ReduceAction26 */,
-  3 /* Color of ReduceAction26 */,
-  42 /* Color of ReduceAction26 */,
-  43 /* Property init */,
-  1743 /* Id of ReduceAction27 */,
-  3 /* Color of ReduceAction27 */,
-  42 /* Color of ReduceAction27 */,
-  43 /* Property init */,
-  1699 /* Id of ReduceAction28 */,
-  3 /* Color of ReduceAction28 */,
-  42 /* Color of ReduceAction28 */,
-  43 /* Property init */,
-  1655 /* Id of ReduceAction29 */,
-  3 /* Color of ReduceAction29 */,
-  42 /* Color of ReduceAction29 */,
-  43 /* Property init */,
-  1607 /* Id of ReduceAction30 */,
-  3 /* Color of ReduceAction30 */,
-  42 /* Color of ReduceAction30 */,
-  43 /* Property init */,
-  1563 /* Id of ReduceAction31 */,
-  3 /* Color of ReduceAction31 */,
-  42 /* Color of ReduceAction31 */,
-  43 /* Property init */,
-  1519 /* Id of ReduceAction32 */,
-  3 /* Color of ReduceAction32 */,
-  42 /* Color of ReduceAction32 */,
-  43 /* Property init */,
-  1475 /* Id of ReduceAction33 */,
-  3 /* Color of ReduceAction33 */,
-  42 /* Color of ReduceAction33 */,
-  43 /* Property init */,
-  1431 /* Id of ReduceAction34 */,
-  3 /* Color of ReduceAction34 */,
-  42 /* Color of ReduceAction34 */,
-  43 /* Property init */,
-  1387 /* Id of ReduceAction35 */,
-  3 /* Color of ReduceAction35 */,
-  42 /* Color of ReduceAction35 */,
-  43 /* Property init */,
-  1343 /* Id of ReduceAction36 */,
-  3 /* Color of ReduceAction36 */,
-  42 /* Color of ReduceAction36 */,
-  43 /* Property init */,
-  1299 /* Id of ReduceAction37 */,
-  3 /* Color of ReduceAction37 */,
-  42 /* Color of ReduceAction37 */,
-  43 /* Property init */,
-  1255 /* Id of ReduceAction38 */,
-  3 /* Color of ReduceAction38 */,
-  42 /* Color of ReduceAction38 */,
-  43 /* Property init */,
-  1211 /* Id of ReduceAction39 */,
-  3 /* Color of ReduceAction39 */,
-  42 /* Color of ReduceAction39 */,
-  43 /* Property init */,
-  1163 /* Id of ReduceAction40 */,
-  3 /* Color of ReduceAction40 */,
-  42 /* Color of ReduceAction40 */,
-  43 /* Property init */,
-  1119 /* Id of ReduceAction41 */,
-  3 /* Color of ReduceAction41 */,
-  42 /* Color of ReduceAction41 */,
-  43 /* Property init */,
-  1075 /* Id of ReduceAction42 */,
-  3 /* Color of ReduceAction42 */,
-  42 /* Color of ReduceAction42 */,
-  43 /* Property init */,
-  1031 /* Id of ReduceAction43 */,
-  3 /* Color of ReduceAction43 */,
-  42 /* Color of ReduceAction43 */,
-  43 /* Property init */,
-  987 /* Id of ReduceAction44 */,
-  3 /* Color of ReduceAction44 */,
-  42 /* Color of ReduceAction44 */,
-  43 /* Property init */,
-  943 /* Id of ReduceAction45 */,
-  3 /* Color of ReduceAction45 */,
-  42 /* Color of ReduceAction45 */,
-  43 /* Property init */,
-  899 /* Id of ReduceAction46 */,
-  3 /* Color of ReduceAction46 */,
-  42 /* Color of ReduceAction46 */,
-  43 /* Property init */,
-  855 /* Id of ReduceAction47 */,
-  3 /* Color of ReduceAction47 */,
-  42 /* Color of ReduceAction47 */,
-  43 /* Property init */,
-  811 /* Id of ReduceAction48 */,
-  3 /* Color of ReduceAction48 */,
-  42 /* Color of ReduceAction48 */,
-  43 /* Property init */,
-  767 /* Id of ReduceAction49 */,
-  3 /* Color of ReduceAction49 */,
-  42 /* Color of ReduceAction49 */,
-  43 /* Property init */,
-  719 /* Id of ReduceAction50 */,
-  3 /* Color of ReduceAction50 */,
-  42 /* Color of ReduceAction50 */,
-  43 /* Property init */,
-  675 /* Id of ReduceAction51 */,
-  3 /* Color of ReduceAction51 */,
-  42 /* Color of ReduceAction51 */,
-  43 /* Property init */,
-  631 /* Id of ReduceAction52 */,
-  3 /* Color of ReduceAction52 */,
-  42 /* Color of ReduceAction52 */,
-  43 /* Property init */,
-  587 /* Id of ReduceAction53 */,
-  3 /* Color of ReduceAction53 */,
-  42 /* Color of ReduceAction53 */,
-  43 /* Property init */,
-  543 /* Id of ReduceAction54 */,
-  3 /* Color of ReduceAction54 */,
-  42 /* Color of ReduceAction54 */,
-  43 /* Property init */,
-  499 /* Id of ReduceAction55 */,
-  3 /* Color of ReduceAction55 */,
-  42 /* Color of ReduceAction55 */,
-  43 /* Property init */,
-  455 /* Id of ReduceAction56 */,
-  3 /* Color of ReduceAction56 */,
-  42 /* Color of ReduceAction56 */,
-  43 /* Property init */,
-  411 /* Id of ReduceAction57 */,
-  3 /* Color of ReduceAction57 */,
-  42 /* Color of ReduceAction57 */,
-  43 /* Property init */,
-  395 /* Id of ReduceAction58 */,
-  3 /* Color of ReduceAction58 */,
-  42 /* Color of ReduceAction58 */,
-  43 /* Property init */,
-  391 /* Id of ReduceAction59 */,
-  3 /* Color of ReduceAction59 */,
-  42 /* Color of ReduceAction59 */,
-  43 /* Property init */,
-  383 /* Id of ReduceAction60 */,
-  3 /* Color of ReduceAction60 */,
-  42 /* Color of ReduceAction60 */,
-  43 /* Property init */,
-  379 /* Id of ReduceAction61 */,
-  3 /* Color of ReduceAction61 */,
-  42 /* Color of ReduceAction61 */,
-  43 /* Property init */,
-  375 /* Id of ReduceAction62 */,
-  3 /* Color of ReduceAction62 */,
-  42 /* Color of ReduceAction62 */,
-  43 /* Property init */,
-  371 /* Id of ReduceAction63 */,
-  3 /* Color of ReduceAction63 */,
-  42 /* Color of ReduceAction63 */,
-  43 /* Property init */,
-  367 /* Id of ReduceAction64 */,
-  3 /* Color of ReduceAction64 */,
-  42 /* Color of ReduceAction64 */,
-  43 /* Property init */,
-  363 /* Id of ReduceAction65 */,
-  3 /* Color of ReduceAction65 */,
-  42 /* Color of ReduceAction65 */,
-  43 /* Property init */,
-  359 /* Id of ReduceAction66 */,
-  3 /* Color of ReduceAction66 */,
-  42 /* Color of ReduceAction66 */,
-  43 /* Property init */,
-  355 /* Id of ReduceAction67 */,
-  3 /* Color of ReduceAction67 */,
-  42 /* Color of ReduceAction67 */,
-  43 /* Property init */,
-  351 /* Id of ReduceAction68 */,
-  3 /* Color of ReduceAction68 */,
-  42 /* Color of ReduceAction68 */,
-  43 /* Property init */,
-  347 /* Id of ReduceAction69 */,
-  3 /* Color of ReduceAction69 */,
-  42 /* Color of ReduceAction69 */,
-  43 /* Property init */,
-  339 /* Id of ReduceAction70 */,
-  3 /* Color of ReduceAction70 */,
-  42 /* Color of ReduceAction70 */,
-  43 /* Property init */,
-  335 /* Id of ReduceAction71 */,
-  3 /* Color of ReduceAction71 */,
-  42 /* Color of ReduceAction71 */,
-  43 /* Property init */,
-  331 /* Id of ReduceAction72 */,
-  3 /* Color of ReduceAction72 */,
-  42 /* Color of ReduceAction72 */,
-  43 /* Property init */,
-  327 /* Id of ReduceAction73 */,
-  3 /* Color of ReduceAction73 */,
-  42 /* Color of ReduceAction73 */,
-  43 /* Property init */,
-  323 /* Id of ReduceAction74 */,
-  3 /* Color of ReduceAction74 */,
-  42 /* Color of ReduceAction74 */,
-  43 /* Property init */,
-  319 /* Id of ReduceAction75 */,
-  3 /* Color of ReduceAction75 */,
-  42 /* Color of ReduceAction75 */,
-  43 /* Property init */,
-  315 /* Id of ReduceAction76 */,
-  3 /* Color of ReduceAction76 */,
-  42 /* Color of ReduceAction76 */,
-  43 /* Property init */,
-  311 /* Id of ReduceAction77 */,
-  3 /* Color of ReduceAction77 */,
-  42 /* Color of ReduceAction77 */,
-  43 /* Property init */,
-  307 /* Id of ReduceAction78 */,
-  3 /* Color of ReduceAction78 */,
-  42 /* Color of ReduceAction78 */,
-  43 /* Property init */,
-  303 /* Id of ReduceAction79 */,
-  3 /* Color of ReduceAction79 */,
-  42 /* Color of ReduceAction79 */,
-  43 /* Property init */,
-  295 /* Id of ReduceAction80 */,
-  3 /* Color of ReduceAction80 */,
-  42 /* Color of ReduceAction80 */,
-  43 /* Property init */,
-  291 /* Id of ReduceAction81 */,
-  3 /* Color of ReduceAction81 */,
-  42 /* Color of ReduceAction81 */,
-  43 /* Property init */,
-  287 /* Id of ReduceAction82 */,
-  3 /* Color of ReduceAction82 */,
-  42 /* Color of ReduceAction82 */,
-  43 /* Property init */,
-  283 /* Id of ReduceAction83 */,
-  3 /* Color of ReduceAction83 */,
-  42 /* Color of ReduceAction83 */,
-  43 /* Property init */,
-  279 /* Id of ReduceAction84 */,
-  3 /* Color of ReduceAction84 */,
-  42 /* Color of ReduceAction84 */,
-  43 /* Property init */,
-  275 /* Id of ReduceAction85 */,
-  3 /* Color of ReduceAction85 */,
-  42 /* Color of ReduceAction85 */,
-  43 /* Property init */,
-  271 /* Id of ReduceAction86 */,
-  3 /* Color of ReduceAction86 */,
-  42 /* Color of ReduceAction86 */,
-  43 /* Property init */,
-  267 /* Id of ReduceAction87 */,
-  3 /* Color of ReduceAction87 */,
-  42 /* Color of ReduceAction87 */,
-  43 /* Property init */,
-  263 /* Id of ReduceAction88 */,
-  3 /* Color of ReduceAction88 */,
-  42 /* Color of ReduceAction88 */,
-  43 /* Property init */,
-  259 /* Id of ReduceAction89 */,
-  3 /* Color of ReduceAction89 */,
-  42 /* Color of ReduceAction89 */,
-  43 /* Property init */,
-  251 /* Id of ReduceAction90 */,
-  3 /* Color of ReduceAction90 */,
-  42 /* Color of ReduceAction90 */,
-  43 /* Property init */,
-  247 /* Id of ReduceAction91 */,
-  3 /* Color of ReduceAction91 */,
-  42 /* Color of ReduceAction91 */,
-  43 /* Property init */,
-  243 /* Id of ReduceAction92 */,
-  3 /* Color of ReduceAction92 */,
-  42 /* Color of ReduceAction92 */,
-  43 /* Property init */,
-  239 /* Id of ReduceAction93 */,
-  3 /* Color of ReduceAction93 */,
-  42 /* Color of ReduceAction93 */,
-  43 /* Property init */,
-  235 /* Id of ReduceAction94 */,
-  3 /* Color of ReduceAction94 */,
-  42 /* Color of ReduceAction94 */,
-  43 /* Property init */,
-  231 /* Id of ReduceAction95 */,
-  3 /* Color of ReduceAction95 */,
-  42 /* Color of ReduceAction95 */,
-  43 /* Property init */,
-  227 /* Id of ReduceAction96 */,
-  3 /* Color of ReduceAction96 */,
-  42 /* Color of ReduceAction96 */,
-  43 /* Property init */,
-  223 /* Id of ReduceAction97 */,
-  3 /* Color of ReduceAction97 */,
-  42 /* Color of ReduceAction97 */,
-  43 /* Property init */,
-  219 /* Id of ReduceAction98 */,
-  3 /* Color of ReduceAction98 */,
-  42 /* Color of ReduceAction98 */,
-  43 /* Property init */,
-  215 /* Id of ReduceAction99 */,
-  3 /* Color of ReduceAction99 */,
-  42 /* Color of ReduceAction99 */,
-  43 /* Property init */,
-  2491 /* Id of ReduceAction100 */,
-  3 /* Color of ReduceAction100 */,
-  42 /* Color of ReduceAction100 */,
-  43 /* Property init */,
-  2487 /* Id of ReduceAction101 */,
-  3 /* Color of ReduceAction101 */,
-  42 /* Color of ReduceAction101 */,
-  43 /* Property init */,
-  2483 /* Id of ReduceAction102 */,
-  3 /* Color of ReduceAction102 */,
-  42 /* Color of ReduceAction102 */,
-  43 /* Property init */,
-  2479 /* Id of ReduceAction103 */,
-  3 /* Color of ReduceAction103 */,
-  42 /* Color of ReduceAction103 */,
-  43 /* Property init */,
-  2475 /* Id of ReduceAction104 */,
-  3 /* Color of ReduceAction104 */,
-  42 /* Color of ReduceAction104 */,
-  43 /* Property init */,
-  2471 /* Id of ReduceAction105 */,
-  3 /* Color of ReduceAction105 */,
-  42 /* Color of ReduceAction105 */,
-  43 /* Property init */,
-  2467 /* Id of ReduceAction106 */,
-  3 /* Color of ReduceAction106 */,
-  42 /* Color of ReduceAction106 */,
-  43 /* Property init */,
-  2463 /* Id of ReduceAction107 */,
-  3 /* Color of ReduceAction107 */,
-  42 /* Color of ReduceAction107 */,
-  43 /* Property init */,
-  2459 /* Id of ReduceAction108 */,
-  3 /* Color of ReduceAction108 */,
-  42 /* Color of ReduceAction108 */,
-  43 /* Property init */,
-  2455 /* Id of ReduceAction109 */,
-  3 /* Color of ReduceAction109 */,
-  42 /* Color of ReduceAction109 */,
-  43 /* Property init */,
-  2447 /* Id of ReduceAction110 */,
-  3 /* Color of ReduceAction110 */,
-  42 /* Color of ReduceAction110 */,
-  43 /* Property init */,
-  2443 /* Id of ReduceAction111 */,
-  3 /* Color of ReduceAction111 */,
-  42 /* Color of ReduceAction111 */,
-  43 /* Property init */,
-  2439 /* Id of ReduceAction112 */,
-  3 /* Color of ReduceAction112 */,
-  42 /* Color of ReduceAction112 */,
-  43 /* Property init */,
-  2435 /* Id of ReduceAction113 */,
-  3 /* Color of ReduceAction113 */,
-  42 /* Color of ReduceAction113 */,
-  43 /* Property init */,
-  2431 /* Id of ReduceAction114 */,
-  3 /* Color of ReduceAction114 */,
-  42 /* Color of ReduceAction114 */,
-  43 /* Property init */,
-  2427 /* Id of ReduceAction115 */,
-  3 /* Color of ReduceAction115 */,
-  42 /* Color of ReduceAction115 */,
-  43 /* Property init */,
-  2423 /* Id of ReduceAction116 */,
-  3 /* Color of ReduceAction116 */,
-  42 /* Color of ReduceAction116 */,
-  43 /* Property init */,
-  2419 /* Id of ReduceAction117 */,
-  3 /* Color of ReduceAction117 */,
-  42 /* Color of ReduceAction117 */,
-  43 /* Property init */,
-  2415 /* Id of ReduceAction118 */,
-  3 /* Color of ReduceAction118 */,
-  42 /* Color of ReduceAction118 */,
-  43 /* Property init */,
-  2411 /* Id of ReduceAction119 */,
-  3 /* Color of ReduceAction119 */,
-  42 /* Color of ReduceAction119 */,
-  43 /* Property init */,
-  2403 /* Id of ReduceAction120 */,
-  3 /* Color of ReduceAction120 */,
-  42 /* Color of ReduceAction120 */,
-  43 /* Property init */,
-  2399 /* Id of ReduceAction121 */,
-  3 /* Color of ReduceAction121 */,
-  42 /* Color of ReduceAction121 */,
-  43 /* Property init */,
-  2395 /* Id of ReduceAction122 */,
-  3 /* Color of ReduceAction122 */,
-  42 /* Color of ReduceAction122 */,
-  43 /* Property init */,
-  2391 /* Id of ReduceAction123 */,
-  3 /* Color of ReduceAction123 */,
-  42 /* Color of ReduceAction123 */,
-  43 /* Property init */,
-  2387 /* Id of ReduceAction124 */,
-  3 /* Color of ReduceAction124 */,
-  42 /* Color of ReduceAction124 */,
-  43 /* Property init */,
-  2383 /* Id of ReduceAction125 */,
-  3 /* Color of ReduceAction125 */,
-  42 /* Color of ReduceAction125 */,
-  43 /* Property init */,
-  2379 /* Id of ReduceAction126 */,
-  3 /* Color of ReduceAction126 */,
-  42 /* Color of ReduceAction126 */,
-  43 /* Property init */,
-  2375 /* Id of ReduceAction127 */,
-  3 /* Color of ReduceAction127 */,
-  42 /* Color of ReduceAction127 */,
-  43 /* Property init */,
-  2371 /* Id of ReduceAction128 */,
-  3 /* Color of ReduceAction128 */,
-  42 /* Color of ReduceAction128 */,
-  43 /* Property init */,
-  2367 /* Id of ReduceAction129 */,
-  3 /* Color of ReduceAction129 */,
-  42 /* Color of ReduceAction129 */,
-  43 /* Property init */,
-  2359 /* Id of ReduceAction130 */,
-  3 /* Color of ReduceAction130 */,
-  42 /* Color of ReduceAction130 */,
-  43 /* Property init */,
-  2355 /* Id of ReduceAction131 */,
-  3 /* Color of ReduceAction131 */,
-  42 /* Color of ReduceAction131 */,
-  43 /* Property init */,
-  2351 /* Id of ReduceAction132 */,
-  3 /* Color of ReduceAction132 */,
-  42 /* Color of ReduceAction132 */,
-  43 /* Property init */,
-  2347 /* Id of ReduceAction133 */,
-  3 /* Color of ReduceAction133 */,
-  42 /* Color of ReduceAction133 */,
-  43 /* Property init */,
-  2343 /* Id of ReduceAction134 */,
-  3 /* Color of ReduceAction134 */,
-  42 /* Color of ReduceAction134 */,
-  43 /* Property init */,
-  2339 /* Id of ReduceAction135 */,
-  3 /* Color of ReduceAction135 */,
-  42 /* Color of ReduceAction135 */,
-  43 /* Property init */,
-  2335 /* Id of ReduceAction136 */,
-  3 /* Color of ReduceAction136 */,
-  42 /* Color of ReduceAction136 */,
-  43 /* Property init */,
-  2331 /* Id of ReduceAction137 */,
-  3 /* Color of ReduceAction137 */,
-  42 /* Color of ReduceAction137 */,
-  43 /* Property init */,
-  2327 /* Id of ReduceAction138 */,
-  3 /* Color of ReduceAction138 */,
-  42 /* Color of ReduceAction138 */,
-  43 /* Property init */,
-  2323 /* Id of ReduceAction139 */,
-  3 /* Color of ReduceAction139 */,
-  42 /* Color of ReduceAction139 */,
-  43 /* Property init */,
-  2315 /* Id of ReduceAction140 */,
-  3 /* Color of ReduceAction140 */,
-  42 /* Color of ReduceAction140 */,
-  43 /* Property init */,
-  2311 /* Id of ReduceAction141 */,
-  3 /* Color of ReduceAction141 */,
-  42 /* Color of ReduceAction141 */,
-  43 /* Property init */,
-  2307 /* Id of ReduceAction142 */,
-  3 /* Color of ReduceAction142 */,
-  42 /* Color of ReduceAction142 */,
-  43 /* Property init */,
-  2303 /* Id of ReduceAction143 */,
-  3 /* Color of ReduceAction143 */,
-  42 /* Color of ReduceAction143 */,
-  43 /* Property init */,
-  2299 /* Id of ReduceAction144 */,
-  3 /* Color of ReduceAction144 */,
-  42 /* Color of ReduceAction144 */,
-  43 /* Property init */,
-  2295 /* Id of ReduceAction145 */,
-  3 /* Color of ReduceAction145 */,
-  42 /* Color of ReduceAction145 */,
-  43 /* Property init */,
-  2291 /* Id of ReduceAction146 */,
-  3 /* Color of ReduceAction146 */,
-  42 /* Color of ReduceAction146 */,
-  43 /* Property init */,
-  2287 /* Id of ReduceAction147 */,
-  3 /* Color of ReduceAction147 */,
-  42 /* Color of ReduceAction147 */,
-  43 /* Property init */,
-  2283 /* Id of ReduceAction148 */,
-  3 /* Color of ReduceAction148 */,
-  42 /* Color of ReduceAction148 */,
-  43 /* Property init */,
-  2279 /* Id of ReduceAction149 */,
-  3 /* Color of ReduceAction149 */,
-  42 /* Color of ReduceAction149 */,
-  43 /* Property init */,
-  2271 /* Id of ReduceAction150 */,
-  3 /* Color of ReduceAction150 */,
-  42 /* Color of ReduceAction150 */,
-  43 /* Property init */,
-  2267 /* Id of ReduceAction151 */,
-  3 /* Color of ReduceAction151 */,
-  42 /* Color of ReduceAction151 */,
-  43 /* Property init */,
-  2263 /* Id of ReduceAction152 */,
-  3 /* Color of ReduceAction152 */,
-  42 /* Color of ReduceAction152 */,
-  43 /* Property init */,
-  2259 /* Id of ReduceAction153 */,
-  3 /* Color of ReduceAction153 */,
-  42 /* Color of ReduceAction153 */,
-  43 /* Property init */,
-  2255 /* Id of ReduceAction154 */,
-  3 /* Color of ReduceAction154 */,
-  42 /* Color of ReduceAction154 */,
-  43 /* Property init */,
-  2251 /* Id of ReduceAction155 */,
-  3 /* Color of ReduceAction155 */,
-  42 /* Color of ReduceAction155 */,
-  43 /* Property init */,
-  2247 /* Id of ReduceAction156 */,
-  3 /* Color of ReduceAction156 */,
-  42 /* Color of ReduceAction156 */,
-  43 /* Property init */,
-  2243 /* Id of ReduceAction157 */,
-  3 /* Color of ReduceAction157 */,
-  42 /* Color of ReduceAction157 */,
-  43 /* Property init */,
-  2239 /* Id of ReduceAction158 */,
-  3 /* Color of ReduceAction158 */,
-  42 /* Color of ReduceAction158 */,
-  43 /* Property init */,
-  2235 /* Id of ReduceAction159 */,
-  3 /* Color of ReduceAction159 */,
-  42 /* Color of ReduceAction159 */,
-  43 /* Property init */,
-  2227 /* Id of ReduceAction160 */,
-  3 /* Color of ReduceAction160 */,
-  42 /* Color of ReduceAction160 */,
-  43 /* Property init */,
-  2223 /* Id of ReduceAction161 */,
-  3 /* Color of ReduceAction161 */,
-  42 /* Color of ReduceAction161 */,
-  43 /* Property init */,
-  2219 /* Id of ReduceAction162 */,
-  3 /* Color of ReduceAction162 */,
-  42 /* Color of ReduceAction162 */,
-  43 /* Property init */,
-  2215 /* Id of ReduceAction163 */,
-  3 /* Color of ReduceAction163 */,
-  42 /* Color of ReduceAction163 */,
-  43 /* Property init */,
-  2211 /* Id of ReduceAction164 */,
-  3 /* Color of ReduceAction164 */,
-  42 /* Color of ReduceAction164 */,
-  43 /* Property init */,
-  2207 /* Id of ReduceAction165 */,
-  3 /* Color of ReduceAction165 */,
-  42 /* Color of ReduceAction165 */,
-  43 /* Property init */,
-  2203 /* Id of ReduceAction166 */,
-  3 /* Color of ReduceAction166 */,
-  42 /* Color of ReduceAction166 */,
-  43 /* Property init */,
-  2199 /* Id of ReduceAction167 */,
-  3 /* Color of ReduceAction167 */,
-  42 /* Color of ReduceAction167 */,
-  43 /* Property init */,
-  2195 /* Id of ReduceAction168 */,
-  3 /* Color of ReduceAction168 */,
-  42 /* Color of ReduceAction168 */,
-  43 /* Property init */,
-  2191 /* Id of ReduceAction169 */,
-  3 /* Color of ReduceAction169 */,
-  42 /* Color of ReduceAction169 */,
-  43 /* Property init */,
-  2183 /* Id of ReduceAction170 */,
-  3 /* Color of ReduceAction170 */,
-  42 /* Color of ReduceAction170 */,
-  43 /* Property init */,
-  2179 /* Id of ReduceAction171 */,
-  3 /* Color of ReduceAction171 */,
-  42 /* Color of ReduceAction171 */,
-  43 /* Property init */,
-  2175 /* Id of ReduceAction172 */,
-  3 /* Color of ReduceAction172 */,
-  42 /* Color of ReduceAction172 */,
-  43 /* Property init */,
-  2171 /* Id of ReduceAction173 */,
-  3 /* Color of ReduceAction173 */,
-  42 /* Color of ReduceAction173 */,
-  43 /* Property init */,
-  2167 /* Id of ReduceAction174 */,
-  3 /* Color of ReduceAction174 */,
-  42 /* Color of ReduceAction174 */,
-  43 /* Property init */,
-  2163 /* Id of ReduceAction175 */,
-  3 /* Color of ReduceAction175 */,
-  42 /* Color of ReduceAction175 */,
-  43 /* Property init */,
-  2159 /* Id of ReduceAction176 */,
-  3 /* Color of ReduceAction176 */,
-  42 /* Color of ReduceAction176 */,
-  43 /* Property init */,
-  2155 /* Id of ReduceAction177 */,
-  3 /* Color of ReduceAction177 */,
-  42 /* Color of ReduceAction177 */,
-  43 /* Property init */,
-  2151 /* Id of ReduceAction178 */,
-  3 /* Color of ReduceAction178 */,
-  42 /* Color of ReduceAction178 */,
-  43 /* Property init */,
-  2147 /* Id of ReduceAction179 */,
-  3 /* Color of ReduceAction179 */,
-  42 /* Color of ReduceAction179 */,
-  43 /* Property init */,
-  2139 /* Id of ReduceAction180 */,
-  3 /* Color of ReduceAction180 */,
-  42 /* Color of ReduceAction180 */,
-  43 /* Property init */,
-  2135 /* Id of ReduceAction181 */,
-  3 /* Color of ReduceAction181 */,
-  42 /* Color of ReduceAction181 */,
-  43 /* Property init */,
-  2131 /* Id of ReduceAction182 */,
-  3 /* Color of ReduceAction182 */,
-  42 /* Color of ReduceAction182 */,
-  43 /* Property init */,
-  2127 /* Id of ReduceAction183 */,
-  3 /* Color of ReduceAction183 */,
-  42 /* Color of ReduceAction183 */,
-  43 /* Property init */,
-  2123 /* Id of ReduceAction184 */,
-  3 /* Color of ReduceAction184 */,
-  42 /* Color of ReduceAction184 */,
-  43 /* Property init */,
-  2119 /* Id of ReduceAction185 */,
-  3 /* Color of ReduceAction185 */,
-  42 /* Color of ReduceAction185 */,
-  43 /* Property init */,
-  2115 /* Id of ReduceAction186 */,
-  3 /* Color of ReduceAction186 */,
-  42 /* Color of ReduceAction186 */,
-  43 /* Property init */,
-  2111 /* Id of ReduceAction187 */,
-  3 /* Color of ReduceAction187 */,
-  42 /* Color of ReduceAction187 */,
-  43 /* Property init */,
-  2107 /* Id of ReduceAction188 */,
-  3 /* Color of ReduceAction188 */,
-  42 /* Color of ReduceAction188 */,
-  43 /* Property init */,
-  2103 /* Id of ReduceAction189 */,
-  3 /* Color of ReduceAction189 */,
-  42 /* Color of ReduceAction189 */,
-  43 /* Property init */,
-  2095 /* Id of ReduceAction190 */,
-  3 /* Color of ReduceAction190 */,
-  42 /* Color of ReduceAction190 */,
-  43 /* Property init */,
-  2091 /* Id of ReduceAction191 */,
-  3 /* Color of ReduceAction191 */,
-  42 /* Color of ReduceAction191 */,
-  43 /* Property init */,
-  2087 /* Id of ReduceAction192 */,
-  3 /* Color of ReduceAction192 */,
-  42 /* Color of ReduceAction192 */,
-  43 /* Property init */,
-  2083 /* Id of ReduceAction193 */,
-  3 /* Color of ReduceAction193 */,
-  42 /* Color of ReduceAction193 */,
-  43 /* Property init */,
-  2079 /* Id of ReduceAction194 */,
-  3 /* Color of ReduceAction194 */,
-  42 /* Color of ReduceAction194 */,
-  43 /* Property init */,
-  2075 /* Id of ReduceAction195 */,
-  3 /* Color of ReduceAction195 */,
-  42 /* Color of ReduceAction195 */,
-  43 /* Property init */,
-  2071 /* Id of ReduceAction196 */,
-  3 /* Color of ReduceAction196 */,
-  42 /* Color of ReduceAction196 */,
-  43 /* Property init */,
-  2067 /* Id of ReduceAction197 */,
-  3 /* Color of ReduceAction197 */,
-  42 /* Color of ReduceAction197 */,
-  43 /* Property init */,
-  2063 /* Id of ReduceAction198 */,
-  3 /* Color of ReduceAction198 */,
-  42 /* Color of ReduceAction198 */,
-  43 /* Property init */,
-  2059 /* Id of ReduceAction199 */,
-  3 /* Color of ReduceAction199 */,
-  42 /* Color of ReduceAction199 */,
-  43 /* Property init */,
-  2047 /* Id of ReduceAction200 */,
-  3 /* Color of ReduceAction200 */,
-  42 /* Color of ReduceAction200 */,
-  43 /* Property init */,
-  2043 /* Id of ReduceAction201 */,
-  3 /* Color of ReduceAction201 */,
-  42 /* Color of ReduceAction201 */,
-  43 /* Property init */,
-  2039 /* Id of ReduceAction202 */,
-  3 /* Color of ReduceAction202 */,
-  42 /* Color of ReduceAction202 */,
-  43 /* Property init */,
-  2035 /* Id of ReduceAction203 */,
-  3 /* Color of ReduceAction203 */,
-  42 /* Color of ReduceAction203 */,
-  43 /* Property init */,
-  2031 /* Id of ReduceAction204 */,
-  3 /* Color of ReduceAction204 */,
-  42 /* Color of ReduceAction204 */,
-  43 /* Property init */,
-  2027 /* Id of ReduceAction205 */,
-  3 /* Color of ReduceAction205 */,
-  42 /* Color of ReduceAction205 */,
-  43 /* Property init */,
-  2023 /* Id of ReduceAction206 */,
-  3 /* Color of ReduceAction206 */,
-  42 /* Color of ReduceAction206 */,
-  43 /* Property init */,
-  2019 /* Id of ReduceAction207 */,
-  3 /* Color of ReduceAction207 */,
-  42 /* Color of ReduceAction207 */,
-  43 /* Property init */,
-  2015 /* Id of ReduceAction208 */,
-  3 /* Color of ReduceAction208 */,
-  42 /* Color of ReduceAction208 */,
-  43 /* Property init */,
-  2011 /* Id of ReduceAction209 */,
-  3 /* Color of ReduceAction209 */,
-  42 /* Color of ReduceAction209 */,
-  43 /* Property init */,
-  2003 /* Id of ReduceAction210 */,
-  3 /* Color of ReduceAction210 */,
-  42 /* Color of ReduceAction210 */,
-  43 /* Property init */,
-  1999 /* Id of ReduceAction211 */,
-  3 /* Color of ReduceAction211 */,
-  42 /* Color of ReduceAction211 */,
-  43 /* Property init */,
-  1995 /* Id of ReduceAction212 */,
-  3 /* Color of ReduceAction212 */,
-  42 /* Color of ReduceAction212 */,
-  43 /* Property init */,
-  1991 /* Id of ReduceAction213 */,
-  3 /* Color of ReduceAction213 */,
-  42 /* Color of ReduceAction213 */,
-  43 /* Property init */,
-  1987 /* Id of ReduceAction214 */,
-  3 /* Color of ReduceAction214 */,
-  42 /* Color of ReduceAction214 */,
-  43 /* Property init */,
-  1983 /* Id of ReduceAction215 */,
-  3 /* Color of ReduceAction215 */,
-  42 /* Color of ReduceAction215 */,
-  43 /* Property init */,
-  1979 /* Id of ReduceAction216 */,
-  3 /* Color of ReduceAction216 */,
-  42 /* Color of ReduceAction216 */,
-  43 /* Property init */,
-  1975 /* Id of ReduceAction217 */,
-  3 /* Color of ReduceAction217 */,
-  42 /* Color of ReduceAction217 */,
-  43 /* Property init */,
-  1971 /* Id of ReduceAction218 */,
-  3 /* Color of ReduceAction218 */,
-  42 /* Color of ReduceAction218 */,
-  43 /* Property init */,
-  1967 /* Id of ReduceAction219 */,
-  3 /* Color of ReduceAction219 */,
-  42 /* Color of ReduceAction219 */,
-  43 /* Property init */,
-  1959 /* Id of ReduceAction220 */,
-  3 /* Color of ReduceAction220 */,
-  42 /* Color of ReduceAction220 */,
-  43 /* Property init */,
-  1955 /* Id of ReduceAction221 */,
-  3 /* Color of ReduceAction221 */,
-  42 /* Color of ReduceAction221 */,
-  43 /* Property init */,
-  1951 /* Id of ReduceAction222 */,
-  3 /* Color of ReduceAction222 */,
-  42 /* Color of ReduceAction222 */,
-  43 /* Property init */,
-  1947 /* Id of ReduceAction223 */,
-  3 /* Color of ReduceAction223 */,
-  42 /* Color of ReduceAction223 */,
-  43 /* Property init */,
-  1943 /* Id of ReduceAction224 */,
-  3 /* Color of ReduceAction224 */,
-  42 /* Color of ReduceAction224 */,
-  43 /* Property init */,
-  1939 /* Id of ReduceAction225 */,
-  3 /* Color of ReduceAction225 */,
-  42 /* Color of ReduceAction225 */,
-  43 /* Property init */,
-  1935 /* Id of ReduceAction226 */,
-  3 /* Color of ReduceAction226 */,
-  42 /* Color of ReduceAction226 */,
-  43 /* Property init */,
-  1931 /* Id of ReduceAction227 */,
-  3 /* Color of ReduceAction227 */,
-  42 /* Color of ReduceAction227 */,
-  43 /* Property init */,
-  1927 /* Id of ReduceAction228 */,
-  3 /* Color of ReduceAction228 */,
-  42 /* Color of ReduceAction228 */,
-  43 /* Property init */,
-  1923 /* Id of ReduceAction229 */,
-  3 /* Color of ReduceAction229 */,
-  42 /* Color of ReduceAction229 */,
-  43 /* Property init */,
-  1915 /* Id of ReduceAction230 */,
-  3 /* Color of ReduceAction230 */,
-  42 /* Color of ReduceAction230 */,
-  43 /* Property init */,
-  1911 /* Id of ReduceAction231 */,
-  3 /* Color of ReduceAction231 */,
-  42 /* Color of ReduceAction231 */,
-  43 /* Property init */,
-  1907 /* Id of ReduceAction232 */,
-  3 /* Color of ReduceAction232 */,
-  42 /* Color of ReduceAction232 */,
-  43 /* Property init */,
-  1903 /* Id of ReduceAction233 */,
-  3 /* Color of ReduceAction233 */,
-  42 /* Color of ReduceAction233 */,
-  43 /* Property init */,
-  1899 /* Id of ReduceAction234 */,
-  3 /* Color of ReduceAction234 */,
-  42 /* Color of ReduceAction234 */,
-  43 /* Property init */,
-  1895 /* Id of ReduceAction235 */,
-  3 /* Color of ReduceAction235 */,
-  42 /* Color of ReduceAction235 */,
-  43 /* Property init */,
-  1891 /* Id of ReduceAction236 */,
-  3 /* Color of ReduceAction236 */,
-  42 /* Color of ReduceAction236 */,
-  43 /* Property init */,
-  1887 /* Id of ReduceAction237 */,
-  3 /* Color of ReduceAction237 */,
-  42 /* Color of ReduceAction237 */,
-  43 /* Property init */,
-  1883 /* Id of ReduceAction238 */,
-  3 /* Color of ReduceAction238 */,
-  42 /* Color of ReduceAction238 */,
-  43 /* Property init */,
-  1879 /* Id of ReduceAction239 */,
-  3 /* Color of ReduceAction239 */,
-  42 /* Color of ReduceAction239 */,
-  43 /* Property init */,
-  1871 /* Id of ReduceAction240 */,
-  3 /* Color of ReduceAction240 */,
-  42 /* Color of ReduceAction240 */,
-  43 /* Property init */,
-  1867 /* Id of ReduceAction241 */,
-  3 /* Color of ReduceAction241 */,
-  42 /* Color of ReduceAction241 */,
-  43 /* Property init */,
-  1863 /* Id of ReduceAction242 */,
-  3 /* Color of ReduceAction242 */,
-  42 /* Color of ReduceAction242 */,
-  43 /* Property init */,
-  1859 /* Id of ReduceAction243 */,
-  3 /* Color of ReduceAction243 */,
-  42 /* Color of ReduceAction243 */,
-  43 /* Property init */,
-  1855 /* Id of ReduceAction244 */,
-  3 /* Color of ReduceAction244 */,
-  42 /* Color of ReduceAction244 */,
-  43 /* Property init */,
-  1851 /* Id of ReduceAction245 */,
-  3 /* Color of ReduceAction245 */,
-  42 /* Color of ReduceAction245 */,
-  43 /* Property init */,
-  1847 /* Id of ReduceAction246 */,
-  3 /* Color of ReduceAction246 */,
-  42 /* Color of ReduceAction246 */,
-  43 /* Property init */,
-  1843 /* Id of ReduceAction247 */,
-  3 /* Color of ReduceAction247 */,
-  42 /* Color of ReduceAction247 */,
-  43 /* Property init */,
-  1839 /* Id of ReduceAction248 */,
-  3 /* Color of ReduceAction248 */,
-  42 /* Color of ReduceAction248 */,
-  43 /* Property init */,
-  1835 /* Id of ReduceAction249 */,
-  3 /* Color of ReduceAction249 */,
-  42 /* Color of ReduceAction249 */,
-  43 /* Property init */,
-  1827 /* Id of ReduceAction250 */,
-  3 /* Color of ReduceAction250 */,
-  42 /* Color of ReduceAction250 */,
-  43 /* Property init */,
-  1823 /* Id of ReduceAction251 */,
-  3 /* Color of ReduceAction251 */,
-  42 /* Color of ReduceAction251 */,
-  43 /* Property init */,
-  1819 /* Id of ReduceAction252 */,
-  3 /* Color of ReduceAction252 */,
-  42 /* Color of ReduceAction252 */,
-  43 /* Property init */,
-  1815 /* Id of ReduceAction253 */,
-  3 /* Color of ReduceAction253 */,
-  42 /* Color of ReduceAction253 */,
-  43 /* Property init */,
-  1811 /* Id of ReduceAction254 */,
-  3 /* Color of ReduceAction254 */,
-  42 /* Color of ReduceAction254 */,
-  43 /* Property init */,
-  1807 /* Id of ReduceAction255 */,
-  3 /* Color of ReduceAction255 */,
-  42 /* Color of ReduceAction255 */,
-  43 /* Property init */,
-  1803 /* Id of ReduceAction256 */,
-  3 /* Color of ReduceAction256 */,
-  42 /* Color of ReduceAction256 */,
-  43 /* Property init */,
-  1799 /* Id of ReduceAction257 */,
-  3 /* Color of ReduceAction257 */,
-  42 /* Color of ReduceAction257 */,
-  43 /* Property init */,
-  1795 /* Id of ReduceAction258 */,
-  3 /* Color of ReduceAction258 */,
-  42 /* Color of ReduceAction258 */,
-  43 /* Property init */,
-  1791 /* Id of ReduceAction259 */,
-  3 /* Color of ReduceAction259 */,
-  42 /* Color of ReduceAction259 */,
-  43 /* Property init */,
-  1783 /* Id of ReduceAction260 */,
-  3 /* Color of ReduceAction260 */,
-  42 /* Color of ReduceAction260 */,
-  43 /* Property init */,
-  1779 /* Id of ReduceAction261 */,
-  3 /* Color of ReduceAction261 */,
-  42 /* Color of ReduceAction261 */,
-  43 /* Property init */,
-  1775 /* Id of ReduceAction262 */,
-  3 /* Color of ReduceAction262 */,
-  42 /* Color of ReduceAction262 */,
-  43 /* Property init */,
-  1771 /* Id of ReduceAction263 */,
-  3 /* Color of ReduceAction263 */,
-  42 /* Color of ReduceAction263 */,
-  43 /* Property init */,
-  1767 /* Id of ReduceAction264 */,
-  3 /* Color of ReduceAction264 */,
-  42 /* Color of ReduceAction264 */,
-  43 /* Property init */,
-  1763 /* Id of ReduceAction265 */,
-  3 /* Color of ReduceAction265 */,
-  42 /* Color of ReduceAction265 */,
-  43 /* Property init */,
-  1759 /* Id of ReduceAction266 */,
-  3 /* Color of ReduceAction266 */,
-  42 /* Color of ReduceAction266 */,
-  43 /* Property init */,
-  1755 /* Id of ReduceAction267 */,
-  3 /* Color of ReduceAction267 */,
-  42 /* Color of ReduceAction267 */,
-  43 /* Property init */,
-  1751 /* Id of ReduceAction268 */,
-  3 /* Color of ReduceAction268 */,
-  42 /* Color of ReduceAction268 */,
-  43 /* Property init */,
-  1747 /* Id of ReduceAction269 */,
-  3 /* Color of ReduceAction269 */,
-  42 /* Color of ReduceAction269 */,
-  43 /* Property init */,
-  1739 /* Id of ReduceAction270 */,
-  3 /* Color of ReduceAction270 */,
-  42 /* Color of ReduceAction270 */,
-  43 /* Property init */,
-  1735 /* Id of ReduceAction271 */,
-  3 /* Color of ReduceAction271 */,
-  42 /* Color of ReduceAction271 */,
-  43 /* Property init */,
-  1731 /* Id of ReduceAction272 */,
-  3 /* Color of ReduceAction272 */,
-  42 /* Color of ReduceAction272 */,
-  43 /* Property init */,
-  1727 /* Id of ReduceAction273 */,
-  3 /* Color of ReduceAction273 */,
-  42 /* Color of ReduceAction273 */,
-  43 /* Property init */,
-  1723 /* Id of ReduceAction274 */,
-  3 /* Color of ReduceAction274 */,
-  42 /* Color of ReduceAction274 */,
-  43 /* Property init */,
-  1719 /* Id of ReduceAction275 */,
-  3 /* Color of ReduceAction275 */,
-  42 /* Color of ReduceAction275 */,
-  43 /* Property init */,
-  1715 /* Id of ReduceAction276 */,
-  3 /* Color of ReduceAction276 */,
-  42 /* Color of ReduceAction276 */,
-  43 /* Property init */,
-  1711 /* Id of ReduceAction277 */,
-  3 /* Color of ReduceAction277 */,
-  42 /* Color of ReduceAction277 */,
-  43 /* Property init */,
-  1707 /* Id of ReduceAction278 */,
-  3 /* Color of ReduceAction278 */,
-  42 /* Color of ReduceAction278 */,
-  43 /* Property init */,
-  1703 /* Id of ReduceAction279 */,
-  3 /* Color of ReduceAction279 */,
-  42 /* Color of ReduceAction279 */,
-  43 /* Property init */,
-  1695 /* Id of ReduceAction280 */,
-  3 /* Color of ReduceAction280 */,
-  42 /* Color of ReduceAction280 */,
-  43 /* Property init */,
-  1691 /* Id of ReduceAction281 */,
-  3 /* Color of ReduceAction281 */,
-  42 /* Color of ReduceAction281 */,
-  43 /* Property init */,
-  1687 /* Id of ReduceAction282 */,
-  3 /* Color of ReduceAction282 */,
-  42 /* Color of ReduceAction282 */,
-  43 /* Property init */,
-  1683 /* Id of ReduceAction283 */,
-  3 /* Color of ReduceAction283 */,
-  42 /* Color of ReduceAction283 */,
-  43 /* Property init */,
-  1679 /* Id of ReduceAction284 */,
-  3 /* Color of ReduceAction284 */,
-  42 /* Color of ReduceAction284 */,
-  43 /* Property init */,
-  1675 /* Id of ReduceAction285 */,
-  3 /* Color of ReduceAction285 */,
-  42 /* Color of ReduceAction285 */,
-  43 /* Property init */,
-  1671 /* Id of ReduceAction286 */,
-  3 /* Color of ReduceAction286 */,
-  42 /* Color of ReduceAction286 */,
-  43 /* Property init */,
-  1667 /* Id of ReduceAction287 */,
-  3 /* Color of ReduceAction287 */,
-  42 /* Color of ReduceAction287 */,
-  43 /* Property init */,
-  1663 /* Id of ReduceAction288 */,
-  3 /* Color of ReduceAction288 */,
-  42 /* Color of ReduceAction288 */,
-  43 /* Property init */,
-  1659 /* Id of ReduceAction289 */,
-  3 /* Color of ReduceAction289 */,
-  42 /* Color of ReduceAction289 */,
-  43 /* Property init */,
-  1651 /* Id of ReduceAction290 */,
-  3 /* Color of ReduceAction290 */,
-  42 /* Color of ReduceAction290 */,
-  43 /* Property init */,
-  1647 /* Id of ReduceAction291 */,
-  3 /* Color of ReduceAction291 */,
-  42 /* Color of ReduceAction291 */,
-  43 /* Property init */,
-  1643 /* Id of ReduceAction292 */,
-  3 /* Color of ReduceAction292 */,
-  42 /* Color of ReduceAction292 */,
-  43 /* Property init */,
-  1639 /* Id of ReduceAction293 */,
-  3 /* Color of ReduceAction293 */,
-  42 /* Color of ReduceAction293 */,
-  43 /* Property init */,
-  1635 /* Id of ReduceAction294 */,
-  3 /* Color of ReduceAction294 */,
-  42 /* Color of ReduceAction294 */,
-  43 /* Property init */,
-  1631 /* Id of ReduceAction295 */,
-  3 /* Color of ReduceAction295 */,
-  42 /* Color of ReduceAction295 */,
-  43 /* Property init */,
-  1627 /* Id of ReduceAction296 */,
-  3 /* Color of ReduceAction296 */,
-  42 /* Color of ReduceAction296 */,
-  43 /* Property init */,
-  1623 /* Id of ReduceAction297 */,
-  3 /* Color of ReduceAction297 */,
-  42 /* Color of ReduceAction297 */,
-  43 /* Property init */,
-  1619 /* Id of ReduceAction298 */,
-  3 /* Color of ReduceAction298 */,
-  42 /* Color of ReduceAction298 */,
-  43 /* Property init */,
-  1615 /* Id of ReduceAction299 */,
-  3 /* Color of ReduceAction299 */,
-  42 /* Color of ReduceAction299 */,
-  43 /* Property init */,
-  1603 /* Id of ReduceAction300 */,
-  3 /* Color of ReduceAction300 */,
-  42 /* Color of ReduceAction300 */,
-  43 /* Property init */,
-  1599 /* Id of ReduceAction301 */,
-  3 /* Color of ReduceAction301 */,
-  42 /* Color of ReduceAction301 */,
-  43 /* Property init */,
-  1595 /* Id of ReduceAction302 */,
-  3 /* Color of ReduceAction302 */,
-  42 /* Color of ReduceAction302 */,
-  43 /* Property init */,
-  1591 /* Id of ReduceAction303 */,
-  3 /* Color of ReduceAction303 */,
-  42 /* Color of ReduceAction303 */,
-  43 /* Property init */,
-  1587 /* Id of ReduceAction304 */,
-  3 /* Color of ReduceAction304 */,
-  42 /* Color of ReduceAction304 */,
-  43 /* Property init */,
-  1583 /* Id of ReduceAction305 */,
-  3 /* Color of ReduceAction305 */,
-  42 /* Color of ReduceAction305 */,
-  43 /* Property init */,
-  1579 /* Id of ReduceAction306 */,
-  3 /* Color of ReduceAction306 */,
-  42 /* Color of ReduceAction306 */,
-  43 /* Property init */,
-  1575 /* Id of ReduceAction307 */,
-  3 /* Color of ReduceAction307 */,
-  42 /* Color of ReduceAction307 */,
-  43 /* Property init */,
-  1571 /* Id of ReduceAction308 */,
-  3 /* Color of ReduceAction308 */,
-  42 /* Color of ReduceAction308 */,
-  43 /* Property init */,
-  1567 /* Id of ReduceAction309 */,
-  3 /* Color of ReduceAction309 */,
-  42 /* Color of ReduceAction309 */,
-  43 /* Property init */,
-  1559 /* Id of ReduceAction310 */,
-  3 /* Color of ReduceAction310 */,
-  42 /* Color of ReduceAction310 */,
-  43 /* Property init */,
-  1555 /* Id of ReduceAction311 */,
-  3 /* Color of ReduceAction311 */,
-  42 /* Color of ReduceAction311 */,
-  43 /* Property init */,
-  1551 /* Id of ReduceAction312 */,
-  3 /* Color of ReduceAction312 */,
-  42 /* Color of ReduceAction312 */,
-  43 /* Property init */,
-  1547 /* Id of ReduceAction313 */,
-  3 /* Color of ReduceAction313 */,
-  42 /* Color of ReduceAction313 */,
-  43 /* Property init */,
-  1543 /* Id of ReduceAction314 */,
-  3 /* Color of ReduceAction314 */,
-  42 /* Color of ReduceAction314 */,
-  43 /* Property init */,
-  1539 /* Id of ReduceAction315 */,
-  3 /* Color of ReduceAction315 */,
-  42 /* Color of ReduceAction315 */,
-  43 /* Property init */,
-  1535 /* Id of ReduceAction316 */,
-  3 /* Color of ReduceAction316 */,
-  42 /* Color of ReduceAction316 */,
-  43 /* Property init */,
-  1531 /* Id of ReduceAction317 */,
-  3 /* Color of ReduceAction317 */,
-  42 /* Color of ReduceAction317 */,
-  43 /* Property init */,
-  1527 /* Id of ReduceAction318 */,
-  3 /* Color of ReduceAction318 */,
-  42 /* Color of ReduceAction318 */,
-  43 /* Property init */,
-  1523 /* Id of ReduceAction319 */,
-  3 /* Color of ReduceAction319 */,
-  42 /* Color of ReduceAction319 */,
-  43 /* Property init */,
-  1515 /* Id of ReduceAction320 */,
-  3 /* Color of ReduceAction320 */,
-  42 /* Color of ReduceAction320 */,
-  43 /* Property init */,
-  1511 /* Id of ReduceAction321 */,
-  3 /* Color of ReduceAction321 */,
-  42 /* Color of ReduceAction321 */,
-  43 /* Property init */,
-  1507 /* Id of ReduceAction322 */,
-  3 /* Color of ReduceAction322 */,
-  42 /* Color of ReduceAction322 */,
-  43 /* Property init */,
-  1503 /* Id of ReduceAction323 */,
-  3 /* Color of ReduceAction323 */,
-  42 /* Color of ReduceAction323 */,
-  43 /* Property init */,
-  1499 /* Id of ReduceAction324 */,
-  3 /* Color of ReduceAction324 */,
-  42 /* Color of ReduceAction324 */,
-  43 /* Property init */,
-  1495 /* Id of ReduceAction325 */,
-  3 /* Color of ReduceAction325 */,
-  42 /* Color of ReduceAction325 */,
-  43 /* Property init */,
-  1491 /* Id of ReduceAction326 */,
-  3 /* Color of ReduceAction326 */,
-  42 /* Color of ReduceAction326 */,
-  43 /* Property init */,
-  1487 /* Id of ReduceAction327 */,
-  3 /* Color of ReduceAction327 */,
-  42 /* Color of ReduceAction327 */,
-  43 /* Property init */,
-  1483 /* Id of ReduceAction328 */,
-  3 /* Color of ReduceAction328 */,
-  42 /* Color of ReduceAction328 */,
-  43 /* Property init */,
-  1479 /* Id of ReduceAction329 */,
-  3 /* Color of ReduceAction329 */,
-  42 /* Color of ReduceAction329 */,
-  43 /* Property init */,
-  1471 /* Id of ReduceAction330 */,
-  3 /* Color of ReduceAction330 */,
-  42 /* Color of ReduceAction330 */,
-  43 /* Property init */,
-  1467 /* Id of ReduceAction331 */,
-  3 /* Color of ReduceAction331 */,
-  42 /* Color of ReduceAction331 */,
-  43 /* Property init */,
-  1463 /* Id of ReduceAction332 */,
-  3 /* Color of ReduceAction332 */,
-  42 /* Color of ReduceAction332 */,
-  43 /* Property init */,
-  1459 /* Id of ReduceAction333 */,
-  3 /* Color of ReduceAction333 */,
-  42 /* Color of ReduceAction333 */,
-  43 /* Property init */,
-  1455 /* Id of ReduceAction334 */,
-  3 /* Color of ReduceAction334 */,
-  42 /* Color of ReduceAction334 */,
-  43 /* Property init */,
-  1451 /* Id of ReduceAction335 */,
-  3 /* Color of ReduceAction335 */,
-  42 /* Color of ReduceAction335 */,
-  43 /* Property init */,
-  1447 /* Id of ReduceAction336 */,
-  3 /* Color of ReduceAction336 */,
-  42 /* Color of ReduceAction336 */,
-  43 /* Property init */,
-  1443 /* Id of ReduceAction337 */,
-  3 /* Color of ReduceAction337 */,
-  42 /* Color of ReduceAction337 */,
-  43 /* Property init */,
-  1439 /* Id of ReduceAction338 */,
-  3 /* Color of ReduceAction338 */,
-  42 /* Color of ReduceAction338 */,
-  43 /* Property init */,
-  1435 /* Id of ReduceAction339 */,
-  3 /* Color of ReduceAction339 */,
-  42 /* Color of ReduceAction339 */,
-  43 /* Property init */,
-  1427 /* Id of ReduceAction340 */,
-  3 /* Color of ReduceAction340 */,
-  42 /* Color of ReduceAction340 */,
-  43 /* Property init */,
-  1423 /* Id of ReduceAction341 */,
-  3 /* Color of ReduceAction341 */,
-  42 /* Color of ReduceAction341 */,
-  43 /* Property init */,
-  1419 /* Id of ReduceAction342 */,
-  3 /* Color of ReduceAction342 */,
-  42 /* Color of ReduceAction342 */,
-  43 /* Property init */,
-  1415 /* Id of ReduceAction343 */,
-  3 /* Color of ReduceAction343 */,
-  42 /* Color of ReduceAction343 */,
-  43 /* Property init */,
-  1411 /* Id of ReduceAction344 */,
-  3 /* Color of ReduceAction344 */,
-  42 /* Color of ReduceAction344 */,
-  43 /* Property init */,
-  1407 /* Id of ReduceAction345 */,
-  3 /* Color of ReduceAction345 */,
-  42 /* Color of ReduceAction345 */,
-  43 /* Property init */,
-  1403 /* Id of ReduceAction346 */,
-  3 /* Color of ReduceAction346 */,
-  42 /* Color of ReduceAction346 */,
-  43 /* Property init */,
-  1399 /* Id of ReduceAction347 */,
-  3 /* Color of ReduceAction347 */,
-  42 /* Color of ReduceAction347 */,
-  43 /* Property init */,
-  1395 /* Id of ReduceAction348 */,
-  3 /* Color of ReduceAction348 */,
-  42 /* Color of ReduceAction348 */,
-  43 /* Property init */,
-  1391 /* Id of ReduceAction349 */,
-  3 /* Color of ReduceAction349 */,
-  42 /* Color of ReduceAction349 */,
-  43 /* Property init */,
-  1383 /* Id of ReduceAction350 */,
-  3 /* Color of ReduceAction350 */,
-  42 /* Color of ReduceAction350 */,
-  43 /* Property init */,
-  1379 /* Id of ReduceAction351 */,
-  3 /* Color of ReduceAction351 */,
-  42 /* Color of ReduceAction351 */,
-  43 /* Property init */,
-  1375 /* Id of ReduceAction352 */,
-  3 /* Color of ReduceAction352 */,
-  42 /* Color of ReduceAction352 */,
-  43 /* Property init */,
-  1371 /* Id of ReduceAction353 */,
-  3 /* Color of ReduceAction353 */,
-  42 /* Color of ReduceAction353 */,
-  43 /* Property init */,
-  1367 /* Id of ReduceAction354 */,
-  3 /* Color of ReduceAction354 */,
-  42 /* Color of ReduceAction354 */,
-  43 /* Property init */,
-  1363 /* Id of ReduceAction355 */,
-  3 /* Color of ReduceAction355 */,
-  42 /* Color of ReduceAction355 */,
-  43 /* Property init */,
-  1359 /* Id of ReduceAction356 */,
-  3 /* Color of ReduceAction356 */,
-  42 /* Color of ReduceAction356 */,
-  43 /* Property init */,
-  1355 /* Id of ReduceAction357 */,
-  3 /* Color of ReduceAction357 */,
-  42 /* Color of ReduceAction357 */,
-  43 /* Property init */,
-  1351 /* Id of ReduceAction358 */,
-  3 /* Color of ReduceAction358 */,
-  42 /* Color of ReduceAction358 */,
-  43 /* Property init */,
-  1347 /* Id of ReduceAction359 */,
-  3 /* Color of ReduceAction359 */,
-  42 /* Color of ReduceAction359 */,
-  43 /* Property init */,
-  1339 /* Id of ReduceAction360 */,
-  3 /* Color of ReduceAction360 */,
-  42 /* Color of ReduceAction360 */,
-  43 /* Property init */,
-  1335 /* Id of ReduceAction361 */,
-  3 /* Color of ReduceAction361 */,
-  42 /* Color of ReduceAction361 */,
-  43 /* Property init */,
-  1331 /* Id of ReduceAction362 */,
-  3 /* Color of ReduceAction362 */,
-  42 /* Color of ReduceAction362 */,
-  43 /* Property init */,
-  1327 /* Id of ReduceAction363 */,
-  3 /* Color of ReduceAction363 */,
-  42 /* Color of ReduceAction363 */,
-  43 /* Property init */,
-  1323 /* Id of ReduceAction364 */,
-  3 /* Color of ReduceAction364 */,
-  42 /* Color of ReduceAction364 */,
-  43 /* Property init */,
-  1319 /* Id of ReduceAction365 */,
-  3 /* Color of ReduceAction365 */,
-  42 /* Color of ReduceAction365 */,
-  43 /* Property init */,
-  1315 /* Id of ReduceAction366 */,
-  3 /* Color of ReduceAction366 */,
-  42 /* Color of ReduceAction366 */,
-  43 /* Property init */,
-  1311 /* Id of ReduceAction367 */,
-  3 /* Color of ReduceAction367 */,
-  42 /* Color of ReduceAction367 */,
-  43 /* Property init */,
-  1307 /* Id of ReduceAction368 */,
-  3 /* Color of ReduceAction368 */,
-  42 /* Color of ReduceAction368 */,
-  43 /* Property init */,
-  1303 /* Id of ReduceAction369 */,
-  3 /* Color of ReduceAction369 */,
-  42 /* Color of ReduceAction369 */,
-  43 /* Property init */,
-  1295 /* Id of ReduceAction370 */,
-  3 /* Color of ReduceAction370 */,
-  42 /* Color of ReduceAction370 */,
-  43 /* Property init */,
-  1291 /* Id of ReduceAction371 */,
-  3 /* Color of ReduceAction371 */,
-  42 /* Color of ReduceAction371 */,
-  43 /* Property init */,
-  1287 /* Id of ReduceAction372 */,
-  3 /* Color of ReduceAction372 */,
-  42 /* Color of ReduceAction372 */,
-  43 /* Property init */,
-  1283 /* Id of ReduceAction373 */,
-  3 /* Color of ReduceAction373 */,
-  42 /* Color of ReduceAction373 */,
-  43 /* Property init */,
-  1279 /* Id of ReduceAction374 */,
-  3 /* Color of ReduceAction374 */,
-  42 /* Color of ReduceAction374 */,
-  43 /* Property init */,
-  1275 /* Id of ReduceAction375 */,
-  3 /* Color of ReduceAction375 */,
-  42 /* Color of ReduceAction375 */,
-  43 /* Property init */,
-  1271 /* Id of ReduceAction376 */,
-  3 /* Color of ReduceAction376 */,
-  42 /* Color of ReduceAction376 */,
-  43 /* Property init */,
-  1267 /* Id of ReduceAction377 */,
-  3 /* Color of ReduceAction377 */,
-  42 /* Color of ReduceAction377 */,
-  43 /* Property init */,
-  1263 /* Id of ReduceAction378 */,
-  3 /* Color of ReduceAction378 */,
-  42 /* Color of ReduceAction378 */,
-  43 /* Property init */,
-  1259 /* Id of ReduceAction379 */,
-  3 /* Color of ReduceAction379 */,
-  42 /* Color of ReduceAction379 */,
-  43 /* Property init */,
-  1251 /* Id of ReduceAction380 */,
-  3 /* Color of ReduceAction380 */,
-  42 /* Color of ReduceAction380 */,
-  43 /* Property init */,
-  1247 /* Id of ReduceAction381 */,
-  3 /* Color of ReduceAction381 */,
-  42 /* Color of ReduceAction381 */,
-  43 /* Property init */,
-  1243 /* Id of ReduceAction382 */,
-  3 /* Color of ReduceAction382 */,
-  42 /* Color of ReduceAction382 */,
-  43 /* Property init */,
-  1239 /* Id of ReduceAction383 */,
-  3 /* Color of ReduceAction383 */,
-  42 /* Color of ReduceAction383 */,
-  43 /* Property init */,
-  1235 /* Id of ReduceAction384 */,
-  3 /* Color of ReduceAction384 */,
-  42 /* Color of ReduceAction384 */,
-  43 /* Property init */,
-  1231 /* Id of ReduceAction385 */,
-  3 /* Color of ReduceAction385 */,
-  42 /* Color of ReduceAction385 */,
-  43 /* Property init */,
-  1227 /* Id of ReduceAction386 */,
-  3 /* Color of ReduceAction386 */,
-  42 /* Color of ReduceAction386 */,
-  43 /* Property init */,
-  1223 /* Id of ReduceAction387 */,
-  3 /* Color of ReduceAction387 */,
-  42 /* Color of ReduceAction387 */,
-  43 /* Property init */,
-  1219 /* Id of ReduceAction388 */,
-  3 /* Color of ReduceAction388 */,
-  42 /* Color of ReduceAction388 */,
-  43 /* Property init */,
-  1215 /* Id of ReduceAction389 */,
-  3 /* Color of ReduceAction389 */,
-  42 /* Color of ReduceAction389 */,
-  43 /* Property init */,
-  1207 /* Id of ReduceAction390 */,
-  3 /* Color of ReduceAction390 */,
-  42 /* Color of ReduceAction390 */,
-  43 /* Property init */,
-  1203 /* Id of ReduceAction391 */,
-  3 /* Color of ReduceAction391 */,
-  42 /* Color of ReduceAction391 */,
-  43 /* Property init */,
-  1199 /* Id of ReduceAction392 */,
-  3 /* Color of ReduceAction392 */,
-  42 /* Color of ReduceAction392 */,
-  43 /* Property init */,
-  1195 /* Id of ReduceAction393 */,
-  3 /* Color of ReduceAction393 */,
-  42 /* Color of ReduceAction393 */,
-  43 /* Property init */,
-  1191 /* Id of ReduceAction394 */,
-  3 /* Color of ReduceAction394 */,
-  42 /* Color of ReduceAction394 */,
-  43 /* Property init */,
-  1187 /* Id of ReduceAction395 */,
-  3 /* Color of ReduceAction395 */,
-  42 /* Color of ReduceAction395 */,
-  43 /* Property init */,
-  1183 /* Id of ReduceAction396 */,
-  3 /* Color of ReduceAction396 */,
-  42 /* Color of ReduceAction396 */,
-  43 /* Property init */,
-  1179 /* Id of ReduceAction397 */,
-  3 /* Color of ReduceAction397 */,
-  42 /* Color of ReduceAction397 */,
-  43 /* Property init */,
-  1175 /* Id of ReduceAction398 */,
-  3 /* Color of ReduceAction398 */,
-  42 /* Color of ReduceAction398 */,
-  43 /* Property init */,
-  1171 /* Id of ReduceAction399 */,
-  3 /* Color of ReduceAction399 */,
-  42 /* Color of ReduceAction399 */,
-  43 /* Property init */,
-  1159 /* Id of ReduceAction400 */,
-  3 /* Color of ReduceAction400 */,
-  42 /* Color of ReduceAction400 */,
-  43 /* Property init */,
-  1155 /* Id of ReduceAction401 */,
-  3 /* Color of ReduceAction401 */,
-  42 /* Color of ReduceAction401 */,
-  43 /* Property init */,
-  1151 /* Id of ReduceAction402 */,
-  3 /* Color of ReduceAction402 */,
-  42 /* Color of ReduceAction402 */,
-  43 /* Property init */,
-  1147 /* Id of ReduceAction403 */,
-  3 /* Color of ReduceAction403 */,
-  42 /* Color of ReduceAction403 */,
-  43 /* Property init */,
-  1143 /* Id of ReduceAction404 */,
-  3 /* Color of ReduceAction404 */,
-  42 /* Color of ReduceAction404 */,
-  43 /* Property init */,
-  1139 /* Id of ReduceAction405 */,
-  3 /* Color of ReduceAction405 */,
-  42 /* Color of ReduceAction405 */,
-  43 /* Property init */,
-  1135 /* Id of ReduceAction406 */,
-  3 /* Color of ReduceAction406 */,
-  42 /* Color of ReduceAction406 */,
-  43 /* Property init */,
-  1131 /* Id of ReduceAction407 */,
-  3 /* Color of ReduceAction407 */,
-  42 /* Color of ReduceAction407 */,
-  43 /* Property init */,
-  1127 /* Id of ReduceAction408 */,
-  3 /* Color of ReduceAction408 */,
-  42 /* Color of ReduceAction408 */,
-  43 /* Property init */,
-  1123 /* Id of ReduceAction409 */,
-  3 /* Color of ReduceAction409 */,
-  42 /* Color of ReduceAction409 */,
-  43 /* Property init */,
-  1115 /* Id of ReduceAction410 */,
-  3 /* Color of ReduceAction410 */,
-  42 /* Color of ReduceAction410 */,
-  43 /* Property init */,
-  1111 /* Id of ReduceAction411 */,
-  3 /* Color of ReduceAction411 */,
-  42 /* Color of ReduceAction411 */,
-  43 /* Property init */,
-  1107 /* Id of ReduceAction412 */,
-  3 /* Color of ReduceAction412 */,
-  42 /* Color of ReduceAction412 */,
-  43 /* Property init */,
-  1103 /* Id of ReduceAction413 */,
-  3 /* Color of ReduceAction413 */,
-  42 /* Color of ReduceAction413 */,
-  43 /* Property init */,
-  1099 /* Id of ReduceAction414 */,
-  3 /* Color of ReduceAction414 */,
-  42 /* Color of ReduceAction414 */,
-  43 /* Property init */,
-  1095 /* Id of ReduceAction415 */,
-  3 /* Color of ReduceAction415 */,
-  42 /* Color of ReduceAction415 */,
-  43 /* Property init */,
-  1091 /* Id of ReduceAction416 */,
-  3 /* Color of ReduceAction416 */,
-  42 /* Color of ReduceAction416 */,
-  43 /* Property init */,
-  1087 /* Id of ReduceAction417 */,
-  3 /* Color of ReduceAction417 */,
-  42 /* Color of ReduceAction417 */,
-  43 /* Property init */,
-  1083 /* Id of ReduceAction418 */,
-  3 /* Color of ReduceAction418 */,
-  42 /* Color of ReduceAction418 */,
-  43 /* Property init */,
-  1079 /* Id of ReduceAction419 */,
-  3 /* Color of ReduceAction419 */,
-  42 /* Color of ReduceAction419 */,
-  43 /* Property init */,
-  1071 /* Id of ReduceAction420 */,
-  3 /* Color of ReduceAction420 */,
-  42 /* Color of ReduceAction420 */,
-  43 /* Property init */,
-  1067 /* Id of ReduceAction421 */,
-  3 /* Color of ReduceAction421 */,
-  42 /* Color of ReduceAction421 */,
-  43 /* Property init */,
-  1063 /* Id of ReduceAction422 */,
-  3 /* Color of ReduceAction422 */,
-  42 /* Color of ReduceAction422 */,
-  43 /* Property init */,
-  1059 /* Id of ReduceAction423 */,
-  3 /* Color of ReduceAction423 */,
-  42 /* Color of ReduceAction423 */,
-  43 /* Property init */,
-  1055 /* Id of ReduceAction424 */,
-  3 /* Color of ReduceAction424 */,
-  42 /* Color of ReduceAction424 */,
-  43 /* Property init */,
-  1051 /* Id of ReduceAction425 */,
-  3 /* Color of ReduceAction425 */,
-  42 /* Color of ReduceAction425 */,
-  43 /* Property init */,
-  1047 /* Id of ReduceAction426 */,
-  3 /* Color of ReduceAction426 */,
-  42 /* Color of ReduceAction426 */,
-  43 /* Property init */,
-  1043 /* Id of ReduceAction427 */,
-  3 /* Color of ReduceAction427 */,
-  42 /* Color of ReduceAction427 */,
-  43 /* Property init */,
-  1039 /* Id of ReduceAction428 */,
-  3 /* Color of ReduceAction428 */,
-  42 /* Color of ReduceAction428 */,
-  43 /* Property init */,
-  1035 /* Id of ReduceAction429 */,
-  3 /* Color of ReduceAction429 */,
-  42 /* Color of ReduceAction429 */,
-  43 /* Property init */,
-  1027 /* Id of ReduceAction430 */,
-  3 /* Color of ReduceAction430 */,
-  42 /* Color of ReduceAction430 */,
-  43 /* Property init */,
-  1023 /* Id of ReduceAction431 */,
-  3 /* Color of ReduceAction431 */,
-  42 /* Color of ReduceAction431 */,
-  43 /* Property init */,
-  1019 /* Id of ReduceAction432 */,
-  3 /* Color of ReduceAction432 */,
-  42 /* Color of ReduceAction432 */,
-  43 /* Property init */,
-  1015 /* Id of ReduceAction433 */,
-  3 /* Color of ReduceAction433 */,
-  42 /* Color of ReduceAction433 */,
-  43 /* Property init */,
-  1011 /* Id of ReduceAction434 */,
-  3 /* Color of ReduceAction434 */,
-  42 /* Color of ReduceAction434 */,
-  43 /* Property init */,
-  1007 /* Id of ReduceAction435 */,
-  3 /* Color of ReduceAction435 */,
-  42 /* Color of ReduceAction435 */,
-  43 /* Property init */,
-  1003 /* Id of ReduceAction436 */,
-  3 /* Color of ReduceAction436 */,
-  42 /* Color of ReduceAction436 */,
-  43 /* Property init */,
-  999 /* Id of ReduceAction437 */,
-  3 /* Color of ReduceAction437 */,
-  42 /* Color of ReduceAction437 */,
-  43 /* Property init */,
-  995 /* Id of ReduceAction438 */,
-  3 /* Color of ReduceAction438 */,
-  42 /* Color of ReduceAction438 */,
-  43 /* Property init */,
-  991 /* Id of ReduceAction439 */,
-  3 /* Color of ReduceAction439 */,
-  42 /* Color of ReduceAction439 */,
-  43 /* Property init */,
-  983 /* Id of ReduceAction440 */,
-  3 /* Color of ReduceAction440 */,
-  42 /* Color of ReduceAction440 */,
-  43 /* Property init */,
-  979 /* Id of ReduceAction441 */,
-  3 /* Color of ReduceAction441 */,
-  42 /* Color of ReduceAction441 */,
-  43 /* Property init */,
-  975 /* Id of ReduceAction442 */,
-  3 /* Color of ReduceAction442 */,
-  42 /* Color of ReduceAction442 */,
-  43 /* Property init */,
-  971 /* Id of ReduceAction443 */,
-  3 /* Color of ReduceAction443 */,
-  42 /* Color of ReduceAction443 */,
-  43 /* Property init */,
-  967 /* Id of ReduceAction444 */,
-  3 /* Color of ReduceAction444 */,
-  42 /* Color of ReduceAction444 */,
-  43 /* Property init */,
-  963 /* Id of ReduceAction445 */,
-  3 /* Color of ReduceAction445 */,
-  42 /* Color of ReduceAction445 */,
-  43 /* Property init */,
-  959 /* Id of ReduceAction446 */,
-  3 /* Color of ReduceAction446 */,
-  42 /* Color of ReduceAction446 */,
-  43 /* Property init */,
-  955 /* Id of ReduceAction447 */,
-  3 /* Color of ReduceAction447 */,
-  42 /* Color of ReduceAction447 */,
-  43 /* Property init */,
-  951 /* Id of ReduceAction448 */,
-  3 /* Color of ReduceAction448 */,
-  42 /* Color of ReduceAction448 */,
-  43 /* Property init */,
-  947 /* Id of ReduceAction449 */,
-  3 /* Color of ReduceAction449 */,
-  42 /* Color of ReduceAction449 */,
-  43 /* Property init */,
-  939 /* Id of ReduceAction450 */,
-  3 /* Color of ReduceAction450 */,
-  42 /* Color of ReduceAction450 */,
-  43 /* Property init */,
-  935 /* Id of ReduceAction451 */,
-  3 /* Color of ReduceAction451 */,
-  42 /* Color of ReduceAction451 */,
-  43 /* Property init */,
-  931 /* Id of ReduceAction452 */,
-  3 /* Color of ReduceAction452 */,
-  42 /* Color of ReduceAction452 */,
-  43 /* Property init */,
-  927 /* Id of ReduceAction453 */,
-  3 /* Color of ReduceAction453 */,
-  42 /* Color of ReduceAction453 */,
-  43 /* Property init */,
-  923 /* Id of ReduceAction454 */,
-  3 /* Color of ReduceAction454 */,
-  42 /* Color of ReduceAction454 */,
-  43 /* Property init */,
-  919 /* Id of ReduceAction455 */,
-  3 /* Color of ReduceAction455 */,
-  42 /* Color of ReduceAction455 */,
-  43 /* Property init */,
-  915 /* Id of ReduceAction456 */,
-  3 /* Color of ReduceAction456 */,
-  42 /* Color of ReduceAction456 */,
-  43 /* Property init */,
-  911 /* Id of ReduceAction457 */,
-  3 /* Color of ReduceAction457 */,
-  42 /* Color of ReduceAction457 */,
-  43 /* Property init */,
-  907 /* Id of ReduceAction458 */,
-  3 /* Color of ReduceAction458 */,
-  42 /* Color of ReduceAction458 */,
-  43 /* Property init */,
-  903 /* Id of ReduceAction459 */,
-  3 /* Color of ReduceAction459 */,
-  42 /* Color of ReduceAction459 */,
-  43 /* Property init */,
-  895 /* Id of ReduceAction460 */,
-  3 /* Color of ReduceAction460 */,
-  42 /* Color of ReduceAction460 */,
-  43 /* Property init */,
-  891 /* Id of ReduceAction461 */,
-  3 /* Color of ReduceAction461 */,
-  42 /* Color of ReduceAction461 */,
-  43 /* Property init */,
-  887 /* Id of ReduceAction462 */,
-  3 /* Color of ReduceAction462 */,
-  42 /* Color of ReduceAction462 */,
-  43 /* Property init */,
-  883 /* Id of ReduceAction463 */,
-  3 /* Color of ReduceAction463 */,
-  42 /* Color of ReduceAction463 */,
-  43 /* Property init */,
-  879 /* Id of ReduceAction464 */,
-  3 /* Color of ReduceAction464 */,
-  42 /* Color of ReduceAction464 */,
-  43 /* Property init */,
-  875 /* Id of ReduceAction465 */,
-  3 /* Color of ReduceAction465 */,
-  42 /* Color of ReduceAction465 */,
-  43 /* Property init */,
-  871 /* Id of ReduceAction466 */,
-  3 /* Color of ReduceAction466 */,
-  42 /* Color of ReduceAction466 */,
-  43 /* Property init */,
-  867 /* Id of ReduceAction467 */,
-  3 /* Color of ReduceAction467 */,
-  42 /* Color of ReduceAction467 */,
-  43 /* Property init */,
-  863 /* Id of ReduceAction468 */,
-  3 /* Color of ReduceAction468 */,
-  42 /* Color of ReduceAction468 */,
-  43 /* Property init */,
-  859 /* Id of ReduceAction469 */,
-  3 /* Color of ReduceAction469 */,
-  42 /* Color of ReduceAction469 */,
-  43 /* Property init */,
-  851 /* Id of ReduceAction470 */,
-  3 /* Color of ReduceAction470 */,
-  42 /* Color of ReduceAction470 */,
-  43 /* Property init */,
-  847 /* Id of ReduceAction471 */,
-  3 /* Color of ReduceAction471 */,
-  42 /* Color of ReduceAction471 */,
-  43 /* Property init */,
-  843 /* Id of ReduceAction472 */,
-  3 /* Color of ReduceAction472 */,
-  42 /* Color of ReduceAction472 */,
-  43 /* Property init */,
-  839 /* Id of ReduceAction473 */,
-  3 /* Color of ReduceAction473 */,
-  42 /* Color of ReduceAction473 */,
-  43 /* Property init */,
-  835 /* Id of ReduceAction474 */,
-  3 /* Color of ReduceAction474 */,
-  42 /* Color of ReduceAction474 */,
-  43 /* Property init */,
-  831 /* Id of ReduceAction475 */,
-  3 /* Color of ReduceAction475 */,
-  42 /* Color of ReduceAction475 */,
-  43 /* Property init */,
-  827 /* Id of ReduceAction476 */,
-  3 /* Color of ReduceAction476 */,
-  42 /* Color of ReduceAction476 */,
-  43 /* Property init */,
-  823 /* Id of ReduceAction477 */,
-  3 /* Color of ReduceAction477 */,
-  42 /* Color of ReduceAction477 */,
-  43 /* Property init */,
-  819 /* Id of ReduceAction478 */,
-  3 /* Color of ReduceAction478 */,
-  42 /* Color of ReduceAction478 */,
-  43 /* Property init */,
-  815 /* Id of ReduceAction479 */,
-  3 /* Color of ReduceAction479 */,
-  42 /* Color of ReduceAction479 */,
-  43 /* Property init */,
-  807 /* Id of ReduceAction480 */,
-  3 /* Color of ReduceAction480 */,
-  42 /* Color of ReduceAction480 */,
-  43 /* Property init */,
-  803 /* Id of ReduceAction481 */,
-  3 /* Color of ReduceAction481 */,
-  42 /* Color of ReduceAction481 */,
-  43 /* Property init */,
-  799 /* Id of ReduceAction482 */,
-  3 /* Color of ReduceAction482 */,
-  42 /* Color of ReduceAction482 */,
-  43 /* Property init */,
-  795 /* Id of ReduceAction483 */,
-  3 /* Color of ReduceAction483 */,
-  42 /* Color of ReduceAction483 */,
-  43 /* Property init */,
-  791 /* Id of ReduceAction484 */,
-  3 /* Color of ReduceAction484 */,
-  42 /* Color of ReduceAction484 */,
-  43 /* Property init */,
-  787 /* Id of ReduceAction485 */,
-  3 /* Color of ReduceAction485 */,
-  42 /* Color of ReduceAction485 */,
-  43 /* Property init */,
-  783 /* Id of ReduceAction486 */,
-  3 /* Color of ReduceAction486 */,
-  42 /* Color of ReduceAction486 */,
-  43 /* Property init */,
-  779 /* Id of ReduceAction487 */,
-  3 /* Color of ReduceAction487 */,
-  42 /* Color of ReduceAction487 */,
-  43 /* Property init */,
-  775 /* Id of ReduceAction488 */,
-  3 /* Color of ReduceAction488 */,
-  42 /* Color of ReduceAction488 */,
-  43 /* Property init */,
-  771 /* Id of ReduceAction489 */,
-  3 /* Color of ReduceAction489 */,
-  42 /* Color of ReduceAction489 */,
-  43 /* Property init */,
-  763 /* Id of ReduceAction490 */,
-  3 /* Color of ReduceAction490 */,
-  42 /* Color of ReduceAction490 */,
-  43 /* Property init */,
-  759 /* Id of ReduceAction491 */,
-  3 /* Color of ReduceAction491 */,
-  42 /* Color of ReduceAction491 */,
-  43 /* Property init */,
-  755 /* Id of ReduceAction492 */,
-  3 /* Color of ReduceAction492 */,
-  42 /* Color of ReduceAction492 */,
-  43 /* Property init */,
-  751 /* Id of ReduceAction493 */,
-  3 /* Color of ReduceAction493 */,
-  42 /* Color of ReduceAction493 */,
-  43 /* Property init */,
-  747 /* Id of ReduceAction494 */,
-  3 /* Color of ReduceAction494 */,
-  42 /* Color of ReduceAction494 */,
-  43 /* Property init */,
-  743 /* Id of ReduceAction495 */,
-  3 /* Color of ReduceAction495 */,
-  42 /* Color of ReduceAction495 */,
-  43 /* Property init */,
-  739 /* Id of ReduceAction496 */,
-  3 /* Color of ReduceAction496 */,
-  42 /* Color of ReduceAction496 */,
-  43 /* Property init */,
-  735 /* Id of ReduceAction497 */,
-  3 /* Color of ReduceAction497 */,
-  42 /* Color of ReduceAction497 */,
-  43 /* Property init */,
-  731 /* Id of ReduceAction498 */,
-  3 /* Color of ReduceAction498 */,
-  42 /* Color of ReduceAction498 */,
-  43 /* Property init */,
-  727 /* Id of ReduceAction499 */,
-  3 /* Color of ReduceAction499 */,
-  42 /* Color of ReduceAction499 */,
-  43 /* Property init */,
-  715 /* Id of ReduceAction500 */,
-  3 /* Color of ReduceAction500 */,
-  42 /* Color of ReduceAction500 */,
-  43 /* Property init */,
-  711 /* Id of ReduceAction501 */,
-  3 /* Color of ReduceAction501 */,
-  42 /* Color of ReduceAction501 */,
-  43 /* Property init */,
-  707 /* Id of ReduceAction502 */,
-  3 /* Color of ReduceAction502 */,
-  42 /* Color of ReduceAction502 */,
-  43 /* Property init */,
-  703 /* Id of ReduceAction503 */,
-  3 /* Color of ReduceAction503 */,
-  42 /* Color of ReduceAction503 */,
-  43 /* Property init */,
-  699 /* Id of ReduceAction504 */,
-  3 /* Color of ReduceAction504 */,
-  42 /* Color of ReduceAction504 */,
-  43 /* Property init */,
-  695 /* Id of ReduceAction505 */,
-  3 /* Color of ReduceAction505 */,
-  42 /* Color of ReduceAction505 */,
-  43 /* Property init */,
-  691 /* Id of ReduceAction506 */,
-  3 /* Color of ReduceAction506 */,
-  42 /* Color of ReduceAction506 */,
-  43 /* Property init */,
-  687 /* Id of ReduceAction507 */,
-  3 /* Color of ReduceAction507 */,
-  42 /* Color of ReduceAction507 */,
-  43 /* Property init */,
-  683 /* Id of ReduceAction508 */,
-  3 /* Color of ReduceAction508 */,
-  42 /* Color of ReduceAction508 */,
-  43 /* Property init */,
-  679 /* Id of ReduceAction509 */,
-  3 /* Color of ReduceAction509 */,
-  42 /* Color of ReduceAction509 */,
-  43 /* Property init */,
-  671 /* Id of ReduceAction510 */,
-  3 /* Color of ReduceAction510 */,
-  42 /* Color of ReduceAction510 */,
-  43 /* Property init */,
-  667 /* Id of ReduceAction511 */,
-  3 /* Color of ReduceAction511 */,
-  42 /* Color of ReduceAction511 */,
-  43 /* Property init */,
-  663 /* Id of ReduceAction512 */,
-  3 /* Color of ReduceAction512 */,
-  42 /* Color of ReduceAction512 */,
-  43 /* Property init */,
-  659 /* Id of ReduceAction513 */,
-  3 /* Color of ReduceAction513 */,
-  42 /* Color of ReduceAction513 */,
-  43 /* Property init */,
-  655 /* Id of ReduceAction514 */,
-  3 /* Color of ReduceAction514 */,
-  42 /* Color of ReduceAction514 */,
-  43 /* Property init */,
-  651 /* Id of ReduceAction515 */,
-  3 /* Color of ReduceAction515 */,
-  42 /* Color of ReduceAction515 */,
-  43 /* Property init */,
-  647 /* Id of ReduceAction516 */,
-  3 /* Color of ReduceAction516 */,
-  42 /* Color of ReduceAction516 */,
-  43 /* Property init */,
-  643 /* Id of ReduceAction517 */,
-  3 /* Color of ReduceAction517 */,
-  42 /* Color of ReduceAction517 */,
-  43 /* Property init */,
-  639 /* Id of ReduceAction518 */,
-  3 /* Color of ReduceAction518 */,
-  42 /* Color of ReduceAction518 */,
-  43 /* Property init */,
-  635 /* Id of ReduceAction519 */,
-  3 /* Color of ReduceAction519 */,
-  42 /* Color of ReduceAction519 */,
-  43 /* Property init */,
-  627 /* Id of ReduceAction520 */,
-  3 /* Color of ReduceAction520 */,
-  42 /* Color of ReduceAction520 */,
-  43 /* Property init */,
-  623 /* Id of ReduceAction521 */,
-  3 /* Color of ReduceAction521 */,
-  42 /* Color of ReduceAction521 */,
-  43 /* Property init */,
-  619 /* Id of ReduceAction522 */,
-  3 /* Color of ReduceAction522 */,
-  42 /* Color of ReduceAction522 */,
-  43 /* Property init */,
-  615 /* Id of ReduceAction523 */,
-  3 /* Color of ReduceAction523 */,
-  42 /* Color of ReduceAction523 */,
-  43 /* Property init */,
-  611 /* Id of ReduceAction524 */,
-  3 /* Color of ReduceAction524 */,
-  42 /* Color of ReduceAction524 */,
-  43 /* Property init */,
-  607 /* Id of ReduceAction525 */,
-  3 /* Color of ReduceAction525 */,
-  42 /* Color of ReduceAction525 */,
-  43 /* Property init */,
-  603 /* Id of ReduceAction526 */,
-  3 /* Color of ReduceAction526 */,
-  42 /* Color of ReduceAction526 */,
-  43 /* Property init */,
-  599 /* Id of ReduceAction527 */,
-  3 /* Color of ReduceAction527 */,
-  42 /* Color of ReduceAction527 */,
-  43 /* Property init */,
-  595 /* Id of ReduceAction528 */,
-  3 /* Color of ReduceAction528 */,
-  42 /* Color of ReduceAction528 */,
-  43 /* Property init */,
-  591 /* Id of ReduceAction529 */,
-  3 /* Color of ReduceAction529 */,
-  42 /* Color of ReduceAction529 */,
-  43 /* Property init */,
-  583 /* Id of ReduceAction530 */,
-  3 /* Color of ReduceAction530 */,
-  42 /* Color of ReduceAction530 */,
-  43 /* Property init */,
-  579 /* Id of ReduceAction531 */,
-  3 /* Color of ReduceAction531 */,
-  42 /* Color of ReduceAction531 */,
-  43 /* Property init */,
-  575 /* Id of ReduceAction532 */,
-  3 /* Color of ReduceAction532 */,
-  42 /* Color of ReduceAction532 */,
-  43 /* Property init */,
-  571 /* Id of ReduceAction533 */,
-  3 /* Color of ReduceAction533 */,
-  42 /* Color of ReduceAction533 */,
-  43 /* Property init */,
-  567 /* Id of ReduceAction534 */,
-  3 /* Color of ReduceAction534 */,
-  42 /* Color of ReduceAction534 */,
-  43 /* Property init */,
-  563 /* Id of ReduceAction535 */,
-  3 /* Color of ReduceAction535 */,
-  42 /* Color of ReduceAction535 */,
-  43 /* Property init */,
-  559 /* Id of ReduceAction536 */,
-  3 /* Color of ReduceAction536 */,
-  42 /* Color of ReduceAction536 */,
-  43 /* Property init */,
-  555 /* Id of ReduceAction537 */,
-  3 /* Color of ReduceAction537 */,
-  42 /* Color of ReduceAction537 */,
-  43 /* Property init */,
-  551 /* Id of ReduceAction538 */,
-  3 /* Color of ReduceAction538 */,
-  42 /* Color of ReduceAction538 */,
-  43 /* Property init */,
-  547 /* Id of ReduceAction539 */,
-  3 /* Color of ReduceAction539 */,
-  42 /* Color of ReduceAction539 */,
-  43 /* Property init */,
-  539 /* Id of ReduceAction540 */,
-  3 /* Color of ReduceAction540 */,
-  42 /* Color of ReduceAction540 */,
-  43 /* Property init */,
-  535 /* Id of ReduceAction541 */,
-  3 /* Color of ReduceAction541 */,
-  42 /* Color of ReduceAction541 */,
-  43 /* Property init */,
-  531 /* Id of ReduceAction542 */,
-  3 /* Color of ReduceAction542 */,
-  42 /* Color of ReduceAction542 */,
-  43 /* Property init */,
-  527 /* Id of ReduceAction543 */,
-  3 /* Color of ReduceAction543 */,
-  42 /* Color of ReduceAction543 */,
-  43 /* Property init */,
-  523 /* Id of ReduceAction544 */,
-  3 /* Color of ReduceAction544 */,
-  42 /* Color of ReduceAction544 */,
-  43 /* Property init */,
-  519 /* Id of ReduceAction545 */,
-  3 /* Color of ReduceAction545 */,
-  42 /* Color of ReduceAction545 */,
-  43 /* Property init */,
-  515 /* Id of ReduceAction546 */,
-  3 /* Color of ReduceAction546 */,
-  42 /* Color of ReduceAction546 */,
-  43 /* Property init */,
-  511 /* Id of ReduceAction547 */,
-  3 /* Color of ReduceAction547 */,
-  42 /* Color of ReduceAction547 */,
-  43 /* Property init */,
-  507 /* Id of ReduceAction548 */,
-  3 /* Color of ReduceAction548 */,
-  42 /* Color of ReduceAction548 */,
-  43 /* Property init */,
-  503 /* Id of ReduceAction549 */,
-  3 /* Color of ReduceAction549 */,
-  42 /* Color of ReduceAction549 */,
-  43 /* Property init */,
-  495 /* Id of ReduceAction550 */,
-  3 /* Color of ReduceAction550 */,
-  42 /* Color of ReduceAction550 */,
-  43 /* Property init */,
-  491 /* Id of ReduceAction551 */,
-  3 /* Color of ReduceAction551 */,
-  42 /* Color of ReduceAction551 */,
-  43 /* Property init */,
-  487 /* Id of ReduceAction552 */,
-  3 /* Color of ReduceAction552 */,
-  42 /* Color of ReduceAction552 */,
-  43 /* Property init */,
-  483 /* Id of ReduceAction553 */,
-  3 /* Color of ReduceAction553 */,
-  42 /* Color of ReduceAction553 */,
-  43 /* Property init */,
-  479 /* Id of ReduceAction554 */,
-  3 /* Color of ReduceAction554 */,
-  42 /* Color of ReduceAction554 */,
-  43 /* Property init */,
-  475 /* Id of ReduceAction555 */,
-  3 /* Color of ReduceAction555 */,
-  42 /* Color of ReduceAction555 */,
-  43 /* Property init */,
-  471 /* Id of ReduceAction556 */,
-  3 /* Color of ReduceAction556 */,
-  42 /* Color of ReduceAction556 */,
-  43 /* Property init */,
-  467 /* Id of ReduceAction557 */,
-  3 /* Color of ReduceAction557 */,
-  42 /* Color of ReduceAction557 */,
-  43 /* Property init */,
-  463 /* Id of ReduceAction558 */,
-  3 /* Color of ReduceAction558 */,
-  42 /* Color of ReduceAction558 */,
-  43 /* Property init */,
-  459 /* Id of ReduceAction559 */,
-  3 /* Color of ReduceAction559 */,
-  42 /* Color of ReduceAction559 */,
-  43 /* Property init */,
-  451 /* Id of ReduceAction560 */,
-  3 /* Color of ReduceAction560 */,
-  42 /* Color of ReduceAction560 */,
-  43 /* Property init */,
-  447 /* Id of ReduceAction561 */,
-  3 /* Color of ReduceAction561 */,
-  42 /* Color of ReduceAction561 */,
-  43 /* Property init */,
-  443 /* Id of ReduceAction562 */,
-  3 /* Color of ReduceAction562 */,
-  42 /* Color of ReduceAction562 */,
-  43 /* Property init */,
-  439 /* Id of ReduceAction563 */,
-  3 /* Color of ReduceAction563 */,
-  42 /* Color of ReduceAction563 */,
-  43 /* Property init */,
-  435 /* Id of ReduceAction564 */,
-  3 /* Color of ReduceAction564 */,
-  42 /* Color of ReduceAction564 */,
-  43 /* Property init */,
-  431 /* Id of ReduceAction565 */,
-  3 /* Color of ReduceAction565 */,
-  42 /* Color of ReduceAction565 */,
-  43 /* Property init */,
-  427 /* Id of ReduceAction566 */,
-  3 /* Color of ReduceAction566 */,
-  42 /* Color of ReduceAction566 */,
-  43 /* Property init */,
-  423 /* Id of ReduceAction567 */,
-  3 /* Color of ReduceAction567 */,
-  42 /* Color of ReduceAction567 */,
-  43 /* Property init */,
-  419 /* Id of ReduceAction568 */,
-  3 /* Color of ReduceAction568 */,
-  42 /* Color of ReduceAction568 */,
-  43 /* Property init */,
-  415 /* Id of ReduceAction569 */,
-  3 /* Color of ReduceAction569 */,
-  42 /* Color of ReduceAction569 */,
-  43 /* Property init */,
-  407 /* Id of ReduceAction570 */,
-  3 /* Color of ReduceAction570 */,
-  42 /* Color of ReduceAction570 */,
-  43 /* Property init */,
-  403 /* Id of ReduceAction571 */,
-  3 /* Color of ReduceAction571 */,
-  42 /* Color of ReduceAction571 */,
-  43 /* Property init */,
-  399 /* Id of ReduceAction572 */,
-  3 /* Color of ReduceAction572 */,
-  42 /* Color of ReduceAction572 */,
-  43 /* Property init */,
+const int SFT_parser[3598] = {
+  31 /* Id of State */,
+  3 /* Color of State */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  5067 /* Id of Parser */,
+  4 /* Color of Parser */,
+  4 /* Group of ? */,
+  2500 /* Group of ? */,
+  4 /* Group of ? */,
+  5259 /* Id of ComputeProdLocationVisitor */,
+  4 /* Color of ComputeProdLocationVisitor */,
+  3 /* Group of ? */,
+  50 /* Group of ? */,
+  43 /* Id of ReduceAction */,
+  3 /* Color of ReduceAction */,
+  45 /* Group of ? */,
+  5051 /* Id of ReduceAction0 */,
+  4 /* Color of ReduceAction0 */,
+  48 /* Group of ? */,
+  5047 /* Id of ReduceAction1 */,
+  4 /* Color of ReduceAction1 */,
+  48 /* Group of ? */,
+  3827 /* Id of ReduceAction2 */,
+  4 /* Color of ReduceAction2 */,
+  48 /* Group of ? */,
+  3383 /* Id of ReduceAction3 */,
+  4 /* Color of ReduceAction3 */,
+  48 /* Group of ? */,
+  2939 /* Id of ReduceAction4 */,
+  4 /* Color of ReduceAction4 */,
+  48 /* Group of ? */,
+  2495 /* Id of ReduceAction5 */,
+  4 /* Color of ReduceAction5 */,
+  48 /* Group of ? */,
+  2051 /* Id of ReduceAction6 */,
+  4 /* Color of ReduceAction6 */,
+  48 /* Group of ? */,
+  1607 /* Id of ReduceAction7 */,
+  4 /* Color of ReduceAction7 */,
+  48 /* Group of ? */,
+  1163 /* Id of ReduceAction8 */,
+  4 /* Color of ReduceAction8 */,
+  48 /* Group of ? */,
+  719 /* Id of ReduceAction9 */,
+  4 /* Color of ReduceAction9 */,
+  48 /* Group of ? */,
+  5043 /* Id of ReduceAction10 */,
+  4 /* Color of ReduceAction10 */,
+  48 /* Group of ? */,
+  4599 /* Id of ReduceAction11 */,
+  4 /* Color of ReduceAction11 */,
+  48 /* Group of ? */,
+  4179 /* Id of ReduceAction12 */,
+  4 /* Color of ReduceAction12 */,
+  48 /* Group of ? */,
+  4135 /* Id of ReduceAction13 */,
+  4 /* Color of ReduceAction13 */,
+  48 /* Group of ? */,
+  4091 /* Id of ReduceAction14 */,
+  4 /* Color of ReduceAction14 */,
+  48 /* Group of ? */,
+  4047 /* Id of ReduceAction15 */,
+  4 /* Color of ReduceAction15 */,
+  48 /* Group of ? */,
+  4003 /* Id of ReduceAction16 */,
+  4 /* Color of ReduceAction16 */,
+  48 /* Group of ? */,
+  3959 /* Id of ReduceAction17 */,
+  4 /* Color of ReduceAction17 */,
+  48 /* Group of ? */,
+  3915 /* Id of ReduceAction18 */,
+  4 /* Color of ReduceAction18 */,
+  48 /* Group of ? */,
+  3871 /* Id of ReduceAction19 */,
+  4 /* Color of ReduceAction19 */,
+  48 /* Group of ? */,
+  3823 /* Id of ReduceAction20 */,
+  4 /* Color of ReduceAction20 */,
+  48 /* Group of ? */,
+  3779 /* Id of ReduceAction21 */,
+  4 /* Color of ReduceAction21 */,
+  48 /* Group of ? */,
+  3735 /* Id of ReduceAction22 */,
+  4 /* Color of ReduceAction22 */,
+  48 /* Group of ? */,
+  3691 /* Id of ReduceAction23 */,
+  4 /* Color of ReduceAction23 */,
+  48 /* Group of ? */,
+  3647 /* Id of ReduceAction24 */,
+  4 /* Color of ReduceAction24 */,
+  48 /* Group of ? */,
+  3603 /* Id of ReduceAction25 */,
+  4 /* Color of ReduceAction25 */,
+  48 /* Group of ? */,
+  3559 /* Id of ReduceAction26 */,
+  4 /* Color of ReduceAction26 */,
+  48 /* Group of ? */,
+  3515 /* Id of ReduceAction27 */,
+  4 /* Color of ReduceAction27 */,
+  48 /* Group of ? */,
+  3471 /* Id of ReduceAction28 */,
+  4 /* Color of ReduceAction28 */,
+  48 /* Group of ? */,
+  3427 /* Id of ReduceAction29 */,
+  4 /* Color of ReduceAction29 */,
+  48 /* Group of ? */,
+  3379 /* Id of ReduceAction30 */,
+  4 /* Color of ReduceAction30 */,
+  48 /* Group of ? */,
+  3335 /* Id of ReduceAction31 */,
+  4 /* Color of ReduceAction31 */,
+  48 /* Group of ? */,
+  3291 /* Id of ReduceAction32 */,
+  4 /* Color of ReduceAction32 */,
+  48 /* Group of ? */,
+  3247 /* Id of ReduceAction33 */,
+  4 /* Color of ReduceAction33 */,
+  48 /* Group of ? */,
+  3203 /* Id of ReduceAction34 */,
+  4 /* Color of ReduceAction34 */,
+  48 /* Group of ? */,
+  3159 /* Id of ReduceAction35 */,
+  4 /* Color of ReduceAction35 */,
+  48 /* Group of ? */,
+  3115 /* Id of ReduceAction36 */,
+  4 /* Color of ReduceAction36 */,
+  48 /* Group of ? */,
+  3071 /* Id of ReduceAction37 */,
+  4 /* Color of ReduceAction37 */,
+  48 /* Group of ? */,
+  3027 /* Id of ReduceAction38 */,
+  4 /* Color of ReduceAction38 */,
+  48 /* Group of ? */,
+  2983 /* Id of ReduceAction39 */,
+  4 /* Color of ReduceAction39 */,
+  48 /* Group of ? */,
+  2935 /* Id of ReduceAction40 */,
+  4 /* Color of ReduceAction40 */,
+  48 /* Group of ? */,
+  2891 /* Id of ReduceAction41 */,
+  4 /* Color of ReduceAction41 */,
+  48 /* Group of ? */,
+  2847 /* Id of ReduceAction42 */,
+  4 /* Color of ReduceAction42 */,
+  48 /* Group of ? */,
+  2803 /* Id of ReduceAction43 */,
+  4 /* Color of ReduceAction43 */,
+  48 /* Group of ? */,
+  2759 /* Id of ReduceAction44 */,
+  4 /* Color of ReduceAction44 */,
+  48 /* Group of ? */,
+  2715 /* Id of ReduceAction45 */,
+  4 /* Color of ReduceAction45 */,
+  48 /* Group of ? */,
+  2671 /* Id of ReduceAction46 */,
+  4 /* Color of ReduceAction46 */,
+  48 /* Group of ? */,
+  2627 /* Id of ReduceAction47 */,
+  4 /* Color of ReduceAction47 */,
+  48 /* Group of ? */,
+  2583 /* Id of ReduceAction48 */,
+  4 /* Color of ReduceAction48 */,
+  48 /* Group of ? */,
+  2539 /* Id of ReduceAction49 */,
+  4 /* Color of ReduceAction49 */,
+  48 /* Group of ? */,
+  2491 /* Id of ReduceAction50 */,
+  4 /* Color of ReduceAction50 */,
+  48 /* Group of ? */,
+  2447 /* Id of ReduceAction51 */,
+  4 /* Color of ReduceAction51 */,
+  48 /* Group of ? */,
+  2403 /* Id of ReduceAction52 */,
+  4 /* Color of ReduceAction52 */,
+  48 /* Group of ? */,
+  2359 /* Id of ReduceAction53 */,
+  4 /* Color of ReduceAction53 */,
+  48 /* Group of ? */,
+  2315 /* Id of ReduceAction54 */,
+  4 /* Color of ReduceAction54 */,
+  48 /* Group of ? */,
+  2271 /* Id of ReduceAction55 */,
+  4 /* Color of ReduceAction55 */,
+  48 /* Group of ? */,
+  2227 /* Id of ReduceAction56 */,
+  4 /* Color of ReduceAction56 */,
+  48 /* Group of ? */,
+  2183 /* Id of ReduceAction57 */,
+  4 /* Color of ReduceAction57 */,
+  48 /* Group of ? */,
+  2139 /* Id of ReduceAction58 */,
+  4 /* Color of ReduceAction58 */,
+  48 /* Group of ? */,
+  2095 /* Id of ReduceAction59 */,
+  4 /* Color of ReduceAction59 */,
+  48 /* Group of ? */,
+  2047 /* Id of ReduceAction60 */,
+  4 /* Color of ReduceAction60 */,
+  48 /* Group of ? */,
+  2003 /* Id of ReduceAction61 */,
+  4 /* Color of ReduceAction61 */,
+  48 /* Group of ? */,
+  1959 /* Id of ReduceAction62 */,
+  4 /* Color of ReduceAction62 */,
+  48 /* Group of ? */,
+  1915 /* Id of ReduceAction63 */,
+  4 /* Color of ReduceAction63 */,
+  48 /* Group of ? */,
+  1871 /* Id of ReduceAction64 */,
+  4 /* Color of ReduceAction64 */,
+  48 /* Group of ? */,
+  1827 /* Id of ReduceAction65 */,
+  4 /* Color of ReduceAction65 */,
+  48 /* Group of ? */,
+  1783 /* Id of ReduceAction66 */,
+  4 /* Color of ReduceAction66 */,
+  48 /* Group of ? */,
+  1739 /* Id of ReduceAction67 */,
+  4 /* Color of ReduceAction67 */,
+  48 /* Group of ? */,
+  1695 /* Id of ReduceAction68 */,
+  4 /* Color of ReduceAction68 */,
+  48 /* Group of ? */,
+  1651 /* Id of ReduceAction69 */,
+  4 /* Color of ReduceAction69 */,
+  48 /* Group of ? */,
+  1603 /* Id of ReduceAction70 */,
+  4 /* Color of ReduceAction70 */,
+  48 /* Group of ? */,
+  1559 /* Id of ReduceAction71 */,
+  4 /* Color of ReduceAction71 */,
+  48 /* Group of ? */,
+  1515 /* Id of ReduceAction72 */,
+  4 /* Color of ReduceAction72 */,
+  48 /* Group of ? */,
+  1471 /* Id of ReduceAction73 */,
+  4 /* Color of ReduceAction73 */,
+  48 /* Group of ? */,
+  1427 /* Id of ReduceAction74 */,
+  4 /* Color of ReduceAction74 */,
+  48 /* Group of ? */,
+  1383 /* Id of ReduceAction75 */,
+  4 /* Color of ReduceAction75 */,
+  48 /* Group of ? */,
+  1339 /* Id of ReduceAction76 */,
+  4 /* Color of ReduceAction76 */,
+  48 /* Group of ? */,
+  1295 /* Id of ReduceAction77 */,
+  4 /* Color of ReduceAction77 */,
+  48 /* Group of ? */,
+  1251 /* Id of ReduceAction78 */,
+  4 /* Color of ReduceAction78 */,
+  48 /* Group of ? */,
+  1207 /* Id of ReduceAction79 */,
+  4 /* Color of ReduceAction79 */,
+  48 /* Group of ? */,
+  1159 /* Id of ReduceAction80 */,
+  4 /* Color of ReduceAction80 */,
+  48 /* Group of ? */,
+  1115 /* Id of ReduceAction81 */,
+  4 /* Color of ReduceAction81 */,
+  48 /* Group of ? */,
+  1071 /* Id of ReduceAction82 */,
+  4 /* Color of ReduceAction82 */,
+  48 /* Group of ? */,
+  1027 /* Id of ReduceAction83 */,
+  4 /* Color of ReduceAction83 */,
+  48 /* Group of ? */,
+  983 /* Id of ReduceAction84 */,
+  4 /* Color of ReduceAction84 */,
+  48 /* Group of ? */,
+  939 /* Id of ReduceAction85 */,
+  4 /* Color of ReduceAction85 */,
+  48 /* Group of ? */,
+  895 /* Id of ReduceAction86 */,
+  4 /* Color of ReduceAction86 */,
+  48 /* Group of ? */,
+  851 /* Id of ReduceAction87 */,
+  4 /* Color of ReduceAction87 */,
+  48 /* Group of ? */,
+  807 /* Id of ReduceAction88 */,
+  4 /* Color of ReduceAction88 */,
+  48 /* Group of ? */,
+  763 /* Id of ReduceAction89 */,
+  4 /* Color of ReduceAction89 */,
+  48 /* Group of ? */,
+  715 /* Id of ReduceAction90 */,
+  4 /* Color of ReduceAction90 */,
+  48 /* Group of ? */,
+  671 /* Id of ReduceAction91 */,
+  4 /* Color of ReduceAction91 */,
+  48 /* Group of ? */,
+  627 /* Id of ReduceAction92 */,
+  4 /* Color of ReduceAction92 */,
+  48 /* Group of ? */,
+  583 /* Id of ReduceAction93 */,
+  4 /* Color of ReduceAction93 */,
+  48 /* Group of ? */,
+  539 /* Id of ReduceAction94 */,
+  4 /* Color of ReduceAction94 */,
+  48 /* Group of ? */,
+  495 /* Id of ReduceAction95 */,
+  4 /* Color of ReduceAction95 */,
+  48 /* Group of ? */,
+  451 /* Id of ReduceAction96 */,
+  4 /* Color of ReduceAction96 */,
+  48 /* Group of ? */,
+  407 /* Id of ReduceAction97 */,
+  4 /* Color of ReduceAction97 */,
+  48 /* Group of ? */,
+  363 /* Id of ReduceAction98 */,
+  4 /* Color of ReduceAction98 */,
+  48 /* Group of ? */,
+  319 /* Id of ReduceAction99 */,
+  4 /* Color of ReduceAction99 */,
+  48 /* Group of ? */,
+  5039 /* Id of ReduceAction100 */,
+  4 /* Color of ReduceAction100 */,
+  48 /* Group of ? */,
+  4995 /* Id of ReduceAction101 */,
+  4 /* Color of ReduceAction101 */,
+  48 /* Group of ? */,
+  4951 /* Id of ReduceAction102 */,
+  4 /* Color of ReduceAction102 */,
+  48 /* Group of ? */,
+  4907 /* Id of ReduceAction103 */,
+  4 /* Color of ReduceAction103 */,
+  48 /* Group of ? */,
+  4863 /* Id of ReduceAction104 */,
+  4 /* Color of ReduceAction104 */,
+  48 /* Group of ? */,
+  4819 /* Id of ReduceAction105 */,
+  4 /* Color of ReduceAction105 */,
+  48 /* Group of ? */,
+  4775 /* Id of ReduceAction106 */,
+  4 /* Color of ReduceAction106 */,
+  48 /* Group of ? */,
+  4731 /* Id of ReduceAction107 */,
+  4 /* Color of ReduceAction107 */,
+  48 /* Group of ? */,
+  4687 /* Id of ReduceAction108 */,
+  4 /* Color of ReduceAction108 */,
+  48 /* Group of ? */,
+  4643 /* Id of ReduceAction109 */,
+  4 /* Color of ReduceAction109 */,
+  48 /* Group of ? */,
+  4595 /* Id of ReduceAction110 */,
+  4 /* Color of ReduceAction110 */,
+  48 /* Group of ? */,
+  4551 /* Id of ReduceAction111 */,
+  4 /* Color of ReduceAction111 */,
+  48 /* Group of ? */,
+  4507 /* Id of ReduceAction112 */,
+  4 /* Color of ReduceAction112 */,
+  48 /* Group of ? */,
+  4463 /* Id of ReduceAction113 */,
+  4 /* Color of ReduceAction113 */,
+  48 /* Group of ? */,
+  4419 /* Id of ReduceAction114 */,
+  4 /* Color of ReduceAction114 */,
+  48 /* Group of ? */,
+  4375 /* Id of ReduceAction115 */,
+  4 /* Color of ReduceAction115 */,
+  48 /* Group of ? */,
+  4331 /* Id of ReduceAction116 */,
+  4 /* Color of ReduceAction116 */,
+  48 /* Group of ? */,
+  4287 /* Id of ReduceAction117 */,
+  4 /* Color of ReduceAction117 */,
+  48 /* Group of ? */,
+  4243 /* Id of ReduceAction118 */,
+  4 /* Color of ReduceAction118 */,
+  48 /* Group of ? */,
+  4199 /* Id of ReduceAction119 */,
+  4 /* Color of ReduceAction119 */,
+  48 /* Group of ? */,
+  4175 /* Id of ReduceAction120 */,
+  4 /* Color of ReduceAction120 */,
+  48 /* Group of ? */,
+  4171 /* Id of ReduceAction121 */,
+  4 /* Color of ReduceAction121 */,
+  48 /* Group of ? */,
+  4167 /* Id of ReduceAction122 */,
+  4 /* Color of ReduceAction122 */,
+  48 /* Group of ? */,
+  4163 /* Id of ReduceAction123 */,
+  4 /* Color of ReduceAction123 */,
+  48 /* Group of ? */,
+  4159 /* Id of ReduceAction124 */,
+  4 /* Color of ReduceAction124 */,
+  48 /* Group of ? */,
+  4155 /* Id of ReduceAction125 */,
+  4 /* Color of ReduceAction125 */,
+  48 /* Group of ? */,
+  4151 /* Id of ReduceAction126 */,
+  4 /* Color of ReduceAction126 */,
+  48 /* Group of ? */,
+  4147 /* Id of ReduceAction127 */,
+  4 /* Color of ReduceAction127 */,
+  48 /* Group of ? */,
+  4143 /* Id of ReduceAction128 */,
+  4 /* Color of ReduceAction128 */,
+  48 /* Group of ? */,
+  4139 /* Id of ReduceAction129 */,
+  4 /* Color of ReduceAction129 */,
+  48 /* Group of ? */,
+  4131 /* Id of ReduceAction130 */,
+  4 /* Color of ReduceAction130 */,
+  48 /* Group of ? */,
+  4127 /* Id of ReduceAction131 */,
+  4 /* Color of ReduceAction131 */,
+  48 /* Group of ? */,
+  4123 /* Id of ReduceAction132 */,
+  4 /* Color of ReduceAction132 */,
+  48 /* Group of ? */,
+  4119 /* Id of ReduceAction133 */,
+  4 /* Color of ReduceAction133 */,
+  48 /* Group of ? */,
+  4115 /* Id of ReduceAction134 */,
+  4 /* Color of ReduceAction134 */,
+  48 /* Group of ? */,
+  4111 /* Id of ReduceAction135 */,
+  4 /* Color of ReduceAction135 */,
+  48 /* Group of ? */,
+  4107 /* Id of ReduceAction136 */,
+  4 /* Color of ReduceAction136 */,
+  48 /* Group of ? */,
+  4103 /* Id of ReduceAction137 */,
+  4 /* Color of ReduceAction137 */,
+  48 /* Group of ? */,
+  4099 /* Id of ReduceAction138 */,
+  4 /* Color of ReduceAction138 */,
+  48 /* Group of ? */,
+  4095 /* Id of ReduceAction139 */,
+  4 /* Color of ReduceAction139 */,
+  48 /* Group of ? */,
+  4087 /* Id of ReduceAction140 */,
+  4 /* Color of ReduceAction140 */,
+  48 /* Group of ? */,
+  4083 /* Id of ReduceAction141 */,
+  4 /* Color of ReduceAction141 */,
+  48 /* Group of ? */,
+  4079 /* Id of ReduceAction142 */,
+  4 /* Color of ReduceAction142 */,
+  48 /* Group of ? */,
+  4075 /* Id of ReduceAction143 */,
+  4 /* Color of ReduceAction143 */,
+  48 /* Group of ? */,
+  4071 /* Id of ReduceAction144 */,
+  4 /* Color of ReduceAction144 */,
+  48 /* Group of ? */,
+  4067 /* Id of ReduceAction145 */,
+  4 /* Color of ReduceAction145 */,
+  48 /* Group of ? */,
+  4063 /* Id of ReduceAction146 */,
+  4 /* Color of ReduceAction146 */,
+  48 /* Group of ? */,
+  4059 /* Id of ReduceAction147 */,
+  4 /* Color of ReduceAction147 */,
+  48 /* Group of ? */,
+  4055 /* Id of ReduceAction148 */,
+  4 /* Color of ReduceAction148 */,
+  48 /* Group of ? */,
+  4051 /* Id of ReduceAction149 */,
+  4 /* Color of ReduceAction149 */,
+  48 /* Group of ? */,
+  4043 /* Id of ReduceAction150 */,
+  4 /* Color of ReduceAction150 */,
+  48 /* Group of ? */,
+  4039 /* Id of ReduceAction151 */,
+  4 /* Color of ReduceAction151 */,
+  48 /* Group of ? */,
+  4035 /* Id of ReduceAction152 */,
+  4 /* Color of ReduceAction152 */,
+  48 /* Group of ? */,
+  4031 /* Id of ReduceAction153 */,
+  4 /* Color of ReduceAction153 */,
+  48 /* Group of ? */,
+  4027 /* Id of ReduceAction154 */,
+  4 /* Color of ReduceAction154 */,
+  48 /* Group of ? */,
+  4023 /* Id of ReduceAction155 */,
+  4 /* Color of ReduceAction155 */,
+  48 /* Group of ? */,
+  4019 /* Id of ReduceAction156 */,
+  4 /* Color of ReduceAction156 */,
+  48 /* Group of ? */,
+  4015 /* Id of ReduceAction157 */,
+  4 /* Color of ReduceAction157 */,
+  48 /* Group of ? */,
+  4011 /* Id of ReduceAction158 */,
+  4 /* Color of ReduceAction158 */,
+  48 /* Group of ? */,
+  4007 /* Id of ReduceAction159 */,
+  4 /* Color of ReduceAction159 */,
+  48 /* Group of ? */,
+  3999 /* Id of ReduceAction160 */,
+  4 /* Color of ReduceAction160 */,
+  48 /* Group of ? */,
+  3995 /* Id of ReduceAction161 */,
+  4 /* Color of ReduceAction161 */,
+  48 /* Group of ? */,
+  3991 /* Id of ReduceAction162 */,
+  4 /* Color of ReduceAction162 */,
+  48 /* Group of ? */,
+  3987 /* Id of ReduceAction163 */,
+  4 /* Color of ReduceAction163 */,
+  48 /* Group of ? */,
+  3983 /* Id of ReduceAction164 */,
+  4 /* Color of ReduceAction164 */,
+  48 /* Group of ? */,
+  3979 /* Id of ReduceAction165 */,
+  4 /* Color of ReduceAction165 */,
+  48 /* Group of ? */,
+  3975 /* Id of ReduceAction166 */,
+  4 /* Color of ReduceAction166 */,
+  48 /* Group of ? */,
+  3971 /* Id of ReduceAction167 */,
+  4 /* Color of ReduceAction167 */,
+  48 /* Group of ? */,
+  3967 /* Id of ReduceAction168 */,
+  4 /* Color of ReduceAction168 */,
+  48 /* Group of ? */,
+  3963 /* Id of ReduceAction169 */,
+  4 /* Color of ReduceAction169 */,
+  48 /* Group of ? */,
+  3955 /* Id of ReduceAction170 */,
+  4 /* Color of ReduceAction170 */,
+  48 /* Group of ? */,
+  3951 /* Id of ReduceAction171 */,
+  4 /* Color of ReduceAction171 */,
+  48 /* Group of ? */,
+  3947 /* Id of ReduceAction172 */,
+  4 /* Color of ReduceAction172 */,
+  48 /* Group of ? */,
+  3943 /* Id of ReduceAction173 */,
+  4 /* Color of ReduceAction173 */,
+  48 /* Group of ? */,
+  3939 /* Id of ReduceAction174 */,
+  4 /* Color of ReduceAction174 */,
+  48 /* Group of ? */,
+  3935 /* Id of ReduceAction175 */,
+  4 /* Color of ReduceAction175 */,
+  48 /* Group of ? */,
+  3931 /* Id of ReduceAction176 */,
+  4 /* Color of ReduceAction176 */,
+  48 /* Group of ? */,
+  3927 /* Id of ReduceAction177 */,
+  4 /* Color of ReduceAction177 */,
+  48 /* Group of ? */,
+  3923 /* Id of ReduceAction178 */,
+  4 /* Color of ReduceAction178 */,
+  48 /* Group of ? */,
+  3919 /* Id of ReduceAction179 */,
+  4 /* Color of ReduceAction179 */,
+  48 /* Group of ? */,
+  3911 /* Id of ReduceAction180 */,
+  4 /* Color of ReduceAction180 */,
+  48 /* Group of ? */,
+  3907 /* Id of ReduceAction181 */,
+  4 /* Color of ReduceAction181 */,
+  48 /* Group of ? */,
+  3903 /* Id of ReduceAction182 */,
+  4 /* Color of ReduceAction182 */,
+  48 /* Group of ? */,
+  3899 /* Id of ReduceAction183 */,
+  4 /* Color of ReduceAction183 */,
+  48 /* Group of ? */,
+  3895 /* Id of ReduceAction184 */,
+  4 /* Color of ReduceAction184 */,
+  48 /* Group of ? */,
+  3891 /* Id of ReduceAction185 */,
+  4 /* Color of ReduceAction185 */,
+  48 /* Group of ? */,
+  3887 /* Id of ReduceAction186 */,
+  4 /* Color of ReduceAction186 */,
+  48 /* Group of ? */,
+  3883 /* Id of ReduceAction187 */,
+  4 /* Color of ReduceAction187 */,
+  48 /* Group of ? */,
+  3879 /* Id of ReduceAction188 */,
+  4 /* Color of ReduceAction188 */,
+  48 /* Group of ? */,
+  3875 /* Id of ReduceAction189 */,
+  4 /* Color of ReduceAction189 */,
+  48 /* Group of ? */,
+  3867 /* Id of ReduceAction190 */,
+  4 /* Color of ReduceAction190 */,
+  48 /* Group of ? */,
+  3863 /* Id of ReduceAction191 */,
+  4 /* Color of ReduceAction191 */,
+  48 /* Group of ? */,
+  3859 /* Id of ReduceAction192 */,
+  4 /* Color of ReduceAction192 */,
+  48 /* Group of ? */,
+  3855 /* Id of ReduceAction193 */,
+  4 /* Color of ReduceAction193 */,
+  48 /* Group of ? */,
+  3851 /* Id of ReduceAction194 */,
+  4 /* Color of ReduceAction194 */,
+  48 /* Group of ? */,
+  3847 /* Id of ReduceAction195 */,
+  4 /* Color of ReduceAction195 */,
+  48 /* Group of ? */,
+  3843 /* Id of ReduceAction196 */,
+  4 /* Color of ReduceAction196 */,
+  48 /* Group of ? */,
+  3839 /* Id of ReduceAction197 */,
+  4 /* Color of ReduceAction197 */,
+  48 /* Group of ? */,
+  3835 /* Id of ReduceAction198 */,
+  4 /* Color of ReduceAction198 */,
+  48 /* Group of ? */,
+  3831 /* Id of ReduceAction199 */,
+  4 /* Color of ReduceAction199 */,
+  48 /* Group of ? */,
+  3819 /* Id of ReduceAction200 */,
+  4 /* Color of ReduceAction200 */,
+  48 /* Group of ? */,
+  3815 /* Id of ReduceAction201 */,
+  4 /* Color of ReduceAction201 */,
+  48 /* Group of ? */,
+  3811 /* Id of ReduceAction202 */,
+  4 /* Color of ReduceAction202 */,
+  48 /* Group of ? */,
+  3807 /* Id of ReduceAction203 */,
+  4 /* Color of ReduceAction203 */,
+  48 /* Group of ? */,
+  3803 /* Id of ReduceAction204 */,
+  4 /* Color of ReduceAction204 */,
+  48 /* Group of ? */,
+  3799 /* Id of ReduceAction205 */,
+  4 /* Color of ReduceAction205 */,
+  48 /* Group of ? */,
+  3795 /* Id of ReduceAction206 */,
+  4 /* Color of ReduceAction206 */,
+  48 /* Group of ? */,
+  3791 /* Id of ReduceAction207 */,
+  4 /* Color of ReduceAction207 */,
+  48 /* Group of ? */,
+  3787 /* Id of ReduceAction208 */,
+  4 /* Color of ReduceAction208 */,
+  48 /* Group of ? */,
+  3783 /* Id of ReduceAction209 */,
+  4 /* Color of ReduceAction209 */,
+  48 /* Group of ? */,
+  3775 /* Id of ReduceAction210 */,
+  4 /* Color of ReduceAction210 */,
+  48 /* Group of ? */,
+  3771 /* Id of ReduceAction211 */,
+  4 /* Color of ReduceAction211 */,
+  48 /* Group of ? */,
+  3767 /* Id of ReduceAction212 */,
+  4 /* Color of ReduceAction212 */,
+  48 /* Group of ? */,
+  3763 /* Id of ReduceAction213 */,
+  4 /* Color of ReduceAction213 */,
+  48 /* Group of ? */,
+  3759 /* Id of ReduceAction214 */,
+  4 /* Color of ReduceAction214 */,
+  48 /* Group of ? */,
+  3755 /* Id of ReduceAction215 */,
+  4 /* Color of ReduceAction215 */,
+  48 /* Group of ? */,
+  3751 /* Id of ReduceAction216 */,
+  4 /* Color of ReduceAction216 */,
+  48 /* Group of ? */,
+  3747 /* Id of ReduceAction217 */,
+  4 /* Color of ReduceAction217 */,
+  48 /* Group of ? */,
+  3743 /* Id of ReduceAction218 */,
+  4 /* Color of ReduceAction218 */,
+  48 /* Group of ? */,
+  3739 /* Id of ReduceAction219 */,
+  4 /* Color of ReduceAction219 */,
+  48 /* Group of ? */,
+  3731 /* Id of ReduceAction220 */,
+  4 /* Color of ReduceAction220 */,
+  48 /* Group of ? */,
+  3727 /* Id of ReduceAction221 */,
+  4 /* Color of ReduceAction221 */,
+  48 /* Group of ? */,
+  3723 /* Id of ReduceAction222 */,
+  4 /* Color of ReduceAction222 */,
+  48 /* Group of ? */,
+  3719 /* Id of ReduceAction223 */,
+  4 /* Color of ReduceAction223 */,
+  48 /* Group of ? */,
+  3715 /* Id of ReduceAction224 */,
+  4 /* Color of ReduceAction224 */,
+  48 /* Group of ? */,
+  3711 /* Id of ReduceAction225 */,
+  4 /* Color of ReduceAction225 */,
+  48 /* Group of ? */,
+  3707 /* Id of ReduceAction226 */,
+  4 /* Color of ReduceAction226 */,
+  48 /* Group of ? */,
+  3703 /* Id of ReduceAction227 */,
+  4 /* Color of ReduceAction227 */,
+  48 /* Group of ? */,
+  3699 /* Id of ReduceAction228 */,
+  4 /* Color of ReduceAction228 */,
+  48 /* Group of ? */,
+  3695 /* Id of ReduceAction229 */,
+  4 /* Color of ReduceAction229 */,
+  48 /* Group of ? */,
+  3687 /* Id of ReduceAction230 */,
+  4 /* Color of ReduceAction230 */,
+  48 /* Group of ? */,
+  3683 /* Id of ReduceAction231 */,
+  4 /* Color of ReduceAction231 */,
+  48 /* Group of ? */,
+  3679 /* Id of ReduceAction232 */,
+  4 /* Color of ReduceAction232 */,
+  48 /* Group of ? */,
+  3675 /* Id of ReduceAction233 */,
+  4 /* Color of ReduceAction233 */,
+  48 /* Group of ? */,
+  3671 /* Id of ReduceAction234 */,
+  4 /* Color of ReduceAction234 */,
+  48 /* Group of ? */,
+  3667 /* Id of ReduceAction235 */,
+  4 /* Color of ReduceAction235 */,
+  48 /* Group of ? */,
+  3663 /* Id of ReduceAction236 */,
+  4 /* Color of ReduceAction236 */,
+  48 /* Group of ? */,
+  3659 /* Id of ReduceAction237 */,
+  4 /* Color of ReduceAction237 */,
+  48 /* Group of ? */,
+  3655 /* Id of ReduceAction238 */,
+  4 /* Color of ReduceAction238 */,
+  48 /* Group of ? */,
+  3651 /* Id of ReduceAction239 */,
+  4 /* Color of ReduceAction239 */,
+  48 /* Group of ? */,
+  3643 /* Id of ReduceAction240 */,
+  4 /* Color of ReduceAction240 */,
+  48 /* Group of ? */,
+  3639 /* Id of ReduceAction241 */,
+  4 /* Color of ReduceAction241 */,
+  48 /* Group of ? */,
+  3635 /* Id of ReduceAction242 */,
+  4 /* Color of ReduceAction242 */,
+  48 /* Group of ? */,
+  3631 /* Id of ReduceAction243 */,
+  4 /* Color of ReduceAction243 */,
+  48 /* Group of ? */,
+  3627 /* Id of ReduceAction244 */,
+  4 /* Color of ReduceAction244 */,
+  48 /* Group of ? */,
+  3623 /* Id of ReduceAction245 */,
+  4 /* Color of ReduceAction245 */,
+  48 /* Group of ? */,
+  3619 /* Id of ReduceAction246 */,
+  4 /* Color of ReduceAction246 */,
+  48 /* Group of ? */,
+  3615 /* Id of ReduceAction247 */,
+  4 /* Color of ReduceAction247 */,
+  48 /* Group of ? */,
+  3611 /* Id of ReduceAction248 */,
+  4 /* Color of ReduceAction248 */,
+  48 /* Group of ? */,
+  3607 /* Id of ReduceAction249 */,
+  4 /* Color of ReduceAction249 */,
+  48 /* Group of ? */,
+  3599 /* Id of ReduceAction250 */,
+  4 /* Color of ReduceAction250 */,
+  48 /* Group of ? */,
+  3595 /* Id of ReduceAction251 */,
+  4 /* Color of ReduceAction251 */,
+  48 /* Group of ? */,
+  3591 /* Id of ReduceAction252 */,
+  4 /* Color of ReduceAction252 */,
+  48 /* Group of ? */,
+  3587 /* Id of ReduceAction253 */,
+  4 /* Color of ReduceAction253 */,
+  48 /* Group of ? */,
+  3583 /* Id of ReduceAction254 */,
+  4 /* Color of ReduceAction254 */,
+  48 /* Group of ? */,
+  3579 /* Id of ReduceAction255 */,
+  4 /* Color of ReduceAction255 */,
+  48 /* Group of ? */,
+  3575 /* Id of ReduceAction256 */,
+  4 /* Color of ReduceAction256 */,
+  48 /* Group of ? */,
+  3571 /* Id of ReduceAction257 */,
+  4 /* Color of ReduceAction257 */,
+  48 /* Group of ? */,
+  3567 /* Id of ReduceAction258 */,
+  4 /* Color of ReduceAction258 */,
+  48 /* Group of ? */,
+  3563 /* Id of ReduceAction259 */,
+  4 /* Color of ReduceAction259 */,
+  48 /* Group of ? */,
+  3555 /* Id of ReduceAction260 */,
+  4 /* Color of ReduceAction260 */,
+  48 /* Group of ? */,
+  3551 /* Id of ReduceAction261 */,
+  4 /* Color of ReduceAction261 */,
+  48 /* Group of ? */,
+  3547 /* Id of ReduceAction262 */,
+  4 /* Color of ReduceAction262 */,
+  48 /* Group of ? */,
+  3543 /* Id of ReduceAction263 */,
+  4 /* Color of ReduceAction263 */,
+  48 /* Group of ? */,
+  3539 /* Id of ReduceAction264 */,
+  4 /* Color of ReduceAction264 */,
+  48 /* Group of ? */,
+  3535 /* Id of ReduceAction265 */,
+  4 /* Color of ReduceAction265 */,
+  48 /* Group of ? */,
+  3531 /* Id of ReduceAction266 */,
+  4 /* Color of ReduceAction266 */,
+  48 /* Group of ? */,
+  3527 /* Id of ReduceAction267 */,
+  4 /* Color of ReduceAction267 */,
+  48 /* Group of ? */,
+  3523 /* Id of ReduceAction268 */,
+  4 /* Color of ReduceAction268 */,
+  48 /* Group of ? */,
+  3519 /* Id of ReduceAction269 */,
+  4 /* Color of ReduceAction269 */,
+  48 /* Group of ? */,
+  3511 /* Id of ReduceAction270 */,
+  4 /* Color of ReduceAction270 */,
+  48 /* Group of ? */,
+  3507 /* Id of ReduceAction271 */,
+  4 /* Color of ReduceAction271 */,
+  48 /* Group of ? */,
+  3503 /* Id of ReduceAction272 */,
+  4 /* Color of ReduceAction272 */,
+  48 /* Group of ? */,
+  3499 /* Id of ReduceAction273 */,
+  4 /* Color of ReduceAction273 */,
+  48 /* Group of ? */,
+  3495 /* Id of ReduceAction274 */,
+  4 /* Color of ReduceAction274 */,
+  48 /* Group of ? */,
+  3491 /* Id of ReduceAction275 */,
+  4 /* Color of ReduceAction275 */,
+  48 /* Group of ? */,
+  3487 /* Id of ReduceAction276 */,
+  4 /* Color of ReduceAction276 */,
+  48 /* Group of ? */,
+  3483 /* Id of ReduceAction277 */,
+  4 /* Color of ReduceAction277 */,
+  48 /* Group of ? */,
+  3479 /* Id of ReduceAction278 */,
+  4 /* Color of ReduceAction278 */,
+  48 /* Group of ? */,
+  3475 /* Id of ReduceAction279 */,
+  4 /* Color of ReduceAction279 */,
+  48 /* Group of ? */,
+  3467 /* Id of ReduceAction280 */,
+  4 /* Color of ReduceAction280 */,
+  48 /* Group of ? */,
+  3463 /* Id of ReduceAction281 */,
+  4 /* Color of ReduceAction281 */,
+  48 /* Group of ? */,
+  3459 /* Id of ReduceAction282 */,
+  4 /* Color of ReduceAction282 */,
+  48 /* Group of ? */,
+  3455 /* Id of ReduceAction283 */,
+  4 /* Color of ReduceAction283 */,
+  48 /* Group of ? */,
+  3451 /* Id of ReduceAction284 */,
+  4 /* Color of ReduceAction284 */,
+  48 /* Group of ? */,
+  3447 /* Id of ReduceAction285 */,
+  4 /* Color of ReduceAction285 */,
+  48 /* Group of ? */,
+  3443 /* Id of ReduceAction286 */,
+  4 /* Color of ReduceAction286 */,
+  48 /* Group of ? */,
+  3439 /* Id of ReduceAction287 */,
+  4 /* Color of ReduceAction287 */,
+  48 /* Group of ? */,
+  3435 /* Id of ReduceAction288 */,
+  4 /* Color of ReduceAction288 */,
+  48 /* Group of ? */,
+  3431 /* Id of ReduceAction289 */,
+  4 /* Color of ReduceAction289 */,
+  48 /* Group of ? */,
+  3423 /* Id of ReduceAction290 */,
+  4 /* Color of ReduceAction290 */,
+  48 /* Group of ? */,
+  3419 /* Id of ReduceAction291 */,
+  4 /* Color of ReduceAction291 */,
+  48 /* Group of ? */,
+  3415 /* Id of ReduceAction292 */,
+  4 /* Color of ReduceAction292 */,
+  48 /* Group of ? */,
+  3411 /* Id of ReduceAction293 */,
+  4 /* Color of ReduceAction293 */,
+  48 /* Group of ? */,
+  3407 /* Id of ReduceAction294 */,
+  4 /* Color of ReduceAction294 */,
+  48 /* Group of ? */,
+  3403 /* Id of ReduceAction295 */,
+  4 /* Color of ReduceAction295 */,
+  48 /* Group of ? */,
+  3399 /* Id of ReduceAction296 */,
+  4 /* Color of ReduceAction296 */,
+  48 /* Group of ? */,
+  3395 /* Id of ReduceAction297 */,
+  4 /* Color of ReduceAction297 */,
+  48 /* Group of ? */,
+  3391 /* Id of ReduceAction298 */,
+  4 /* Color of ReduceAction298 */,
+  48 /* Group of ? */,
+  3387 /* Id of ReduceAction299 */,
+  4 /* Color of ReduceAction299 */,
+  48 /* Group of ? */,
+  3375 /* Id of ReduceAction300 */,
+  4 /* Color of ReduceAction300 */,
+  48 /* Group of ? */,
+  3371 /* Id of ReduceAction301 */,
+  4 /* Color of ReduceAction301 */,
+  48 /* Group of ? */,
+  3367 /* Id of ReduceAction302 */,
+  4 /* Color of ReduceAction302 */,
+  48 /* Group of ? */,
+  3363 /* Id of ReduceAction303 */,
+  4 /* Color of ReduceAction303 */,
+  48 /* Group of ? */,
+  3359 /* Id of ReduceAction304 */,
+  4 /* Color of ReduceAction304 */,
+  48 /* Group of ? */,
+  3355 /* Id of ReduceAction305 */,
+  4 /* Color of ReduceAction305 */,
+  48 /* Group of ? */,
+  3351 /* Id of ReduceAction306 */,
+  4 /* Color of ReduceAction306 */,
+  48 /* Group of ? */,
+  3347 /* Id of ReduceAction307 */,
+  4 /* Color of ReduceAction307 */,
+  48 /* Group of ? */,
+  3343 /* Id of ReduceAction308 */,
+  4 /* Color of ReduceAction308 */,
+  48 /* Group of ? */,
+  3339 /* Id of ReduceAction309 */,
+  4 /* Color of ReduceAction309 */,
+  48 /* Group of ? */,
+  3331 /* Id of ReduceAction310 */,
+  4 /* Color of ReduceAction310 */,
+  48 /* Group of ? */,
+  3327 /* Id of ReduceAction311 */,
+  4 /* Color of ReduceAction311 */,
+  48 /* Group of ? */,
+  3323 /* Id of ReduceAction312 */,
+  4 /* Color of ReduceAction312 */,
+  48 /* Group of ? */,
+  3319 /* Id of ReduceAction313 */,
+  4 /* Color of ReduceAction313 */,
+  48 /* Group of ? */,
+  3315 /* Id of ReduceAction314 */,
+  4 /* Color of ReduceAction314 */,
+  48 /* Group of ? */,
+  3311 /* Id of ReduceAction315 */,
+  4 /* Color of ReduceAction315 */,
+  48 /* Group of ? */,
+  3307 /* Id of ReduceAction316 */,
+  4 /* Color of ReduceAction316 */,
+  48 /* Group of ? */,
+  3303 /* Id of ReduceAction317 */,
+  4 /* Color of ReduceAction317 */,
+  48 /* Group of ? */,
+  3299 /* Id of ReduceAction318 */,
+  4 /* Color of ReduceAction318 */,
+  48 /* Group of ? */,
+  3295 /* Id of ReduceAction319 */,
+  4 /* Color of ReduceAction319 */,
+  48 /* Group of ? */,
+  3287 /* Id of ReduceAction320 */,
+  4 /* Color of ReduceAction320 */,
+  48 /* Group of ? */,
+  3283 /* Id of ReduceAction321 */,
+  4 /* Color of ReduceAction321 */,
+  48 /* Group of ? */,
+  3279 /* Id of ReduceAction322 */,
+  4 /* Color of ReduceAction322 */,
+  48 /* Group of ? */,
+  3275 /* Id of ReduceAction323 */,
+  4 /* Color of ReduceAction323 */,
+  48 /* Group of ? */,
+  3271 /* Id of ReduceAction324 */,
+  4 /* Color of ReduceAction324 */,
+  48 /* Group of ? */,
+  3267 /* Id of ReduceAction325 */,
+  4 /* Color of ReduceAction325 */,
+  48 /* Group of ? */,
+  3263 /* Id of ReduceAction326 */,
+  4 /* Color of ReduceAction326 */,
+  48 /* Group of ? */,
+  3259 /* Id of ReduceAction327 */,
+  4 /* Color of ReduceAction327 */,
+  48 /* Group of ? */,
+  3255 /* Id of ReduceAction328 */,
+  4 /* Color of ReduceAction328 */,
+  48 /* Group of ? */,
+  3251 /* Id of ReduceAction329 */,
+  4 /* Color of ReduceAction329 */,
+  48 /* Group of ? */,
+  3243 /* Id of ReduceAction330 */,
+  4 /* Color of ReduceAction330 */,
+  48 /* Group of ? */,
+  3239 /* Id of ReduceAction331 */,
+  4 /* Color of ReduceAction331 */,
+  48 /* Group of ? */,
+  3235 /* Id of ReduceAction332 */,
+  4 /* Color of ReduceAction332 */,
+  48 /* Group of ? */,
+  3231 /* Id of ReduceAction333 */,
+  4 /* Color of ReduceAction333 */,
+  48 /* Group of ? */,
+  3227 /* Id of ReduceAction334 */,
+  4 /* Color of ReduceAction334 */,
+  48 /* Group of ? */,
+  3223 /* Id of ReduceAction335 */,
+  4 /* Color of ReduceAction335 */,
+  48 /* Group of ? */,
+  3219 /* Id of ReduceAction336 */,
+  4 /* Color of ReduceAction336 */,
+  48 /* Group of ? */,
+  3215 /* Id of ReduceAction337 */,
+  4 /* Color of ReduceAction337 */,
+  48 /* Group of ? */,
+  3211 /* Id of ReduceAction338 */,
+  4 /* Color of ReduceAction338 */,
+  48 /* Group of ? */,
+  3207 /* Id of ReduceAction339 */,
+  4 /* Color of ReduceAction339 */,
+  48 /* Group of ? */,
+  3199 /* Id of ReduceAction340 */,
+  4 /* Color of ReduceAction340 */,
+  48 /* Group of ? */,
+  3195 /* Id of ReduceAction341 */,
+  4 /* Color of ReduceAction341 */,
+  48 /* Group of ? */,
+  3191 /* Id of ReduceAction342 */,
+  4 /* Color of ReduceAction342 */,
+  48 /* Group of ? */,
+  3187 /* Id of ReduceAction343 */,
+  4 /* Color of ReduceAction343 */,
+  48 /* Group of ? */,
+  3183 /* Id of ReduceAction344 */,
+  4 /* Color of ReduceAction344 */,
+  48 /* Group of ? */,
+  3179 /* Id of ReduceAction345 */,
+  4 /* Color of ReduceAction345 */,
+  48 /* Group of ? */,
+  3175 /* Id of ReduceAction346 */,
+  4 /* Color of ReduceAction346 */,
+  48 /* Group of ? */,
+  3171 /* Id of ReduceAction347 */,
+  4 /* Color of ReduceAction347 */,
+  48 /* Group of ? */,
+  3167 /* Id of ReduceAction348 */,
+  4 /* Color of ReduceAction348 */,
+  48 /* Group of ? */,
+  3163 /* Id of ReduceAction349 */,
+  4 /* Color of ReduceAction349 */,
+  48 /* Group of ? */,
+  3155 /* Id of ReduceAction350 */,
+  4 /* Color of ReduceAction350 */,
+  48 /* Group of ? */,
+  3151 /* Id of ReduceAction351 */,
+  4 /* Color of ReduceAction351 */,
+  48 /* Group of ? */,
+  3147 /* Id of ReduceAction352 */,
+  4 /* Color of ReduceAction352 */,
+  48 /* Group of ? */,
+  3143 /* Id of ReduceAction353 */,
+  4 /* Color of ReduceAction353 */,
+  48 /* Group of ? */,
+  3139 /* Id of ReduceAction354 */,
+  4 /* Color of ReduceAction354 */,
+  48 /* Group of ? */,
+  3135 /* Id of ReduceAction355 */,
+  4 /* Color of ReduceAction355 */,
+  48 /* Group of ? */,
+  3131 /* Id of ReduceAction356 */,
+  4 /* Color of ReduceAction356 */,
+  48 /* Group of ? */,
+  3127 /* Id of ReduceAction357 */,
+  4 /* Color of ReduceAction357 */,
+  48 /* Group of ? */,
+  3123 /* Id of ReduceAction358 */,
+  4 /* Color of ReduceAction358 */,
+  48 /* Group of ? */,
+  3119 /* Id of ReduceAction359 */,
+  4 /* Color of ReduceAction359 */,
+  48 /* Group of ? */,
+  3111 /* Id of ReduceAction360 */,
+  4 /* Color of ReduceAction360 */,
+  48 /* Group of ? */,
+  3107 /* Id of ReduceAction361 */,
+  4 /* Color of ReduceAction361 */,
+  48 /* Group of ? */,
+  3103 /* Id of ReduceAction362 */,
+  4 /* Color of ReduceAction362 */,
+  48 /* Group of ? */,
+  3099 /* Id of ReduceAction363 */,
+  4 /* Color of ReduceAction363 */,
+  48 /* Group of ? */,
+  3095 /* Id of ReduceAction364 */,
+  4 /* Color of ReduceAction364 */,
+  48 /* Group of ? */,
+  3091 /* Id of ReduceAction365 */,
+  4 /* Color of ReduceAction365 */,
+  48 /* Group of ? */,
+  3087 /* Id of ReduceAction366 */,
+  4 /* Color of ReduceAction366 */,
+  48 /* Group of ? */,
+  3083 /* Id of ReduceAction367 */,
+  4 /* Color of ReduceAction367 */,
+  48 /* Group of ? */,
+  3079 /* Id of ReduceAction368 */,
+  4 /* Color of ReduceAction368 */,
+  48 /* Group of ? */,
+  3075 /* Id of ReduceAction369 */,
+  4 /* Color of ReduceAction369 */,
+  48 /* Group of ? */,
+  3067 /* Id of ReduceAction370 */,
+  4 /* Color of ReduceAction370 */,
+  48 /* Group of ? */,
+  3063 /* Id of ReduceAction371 */,
+  4 /* Color of ReduceAction371 */,
+  48 /* Group of ? */,
+  3059 /* Id of ReduceAction372 */,
+  4 /* Color of ReduceAction372 */,
+  48 /* Group of ? */,
+  3055 /* Id of ReduceAction373 */,
+  4 /* Color of ReduceAction373 */,
+  48 /* Group of ? */,
+  3051 /* Id of ReduceAction374 */,
+  4 /* Color of ReduceAction374 */,
+  48 /* Group of ? */,
+  3047 /* Id of ReduceAction375 */,
+  4 /* Color of ReduceAction375 */,
+  48 /* Group of ? */,
+  3043 /* Id of ReduceAction376 */,
+  4 /* Color of ReduceAction376 */,
+  48 /* Group of ? */,
+  3039 /* Id of ReduceAction377 */,
+  4 /* Color of ReduceAction377 */,
+  48 /* Group of ? */,
+  3035 /* Id of ReduceAction378 */,
+  4 /* Color of ReduceAction378 */,
+  48 /* Group of ? */,
+  3031 /* Id of ReduceAction379 */,
+  4 /* Color of ReduceAction379 */,
+  48 /* Group of ? */,
+  3023 /* Id of ReduceAction380 */,
+  4 /* Color of ReduceAction380 */,
+  48 /* Group of ? */,
+  3019 /* Id of ReduceAction381 */,
+  4 /* Color of ReduceAction381 */,
+  48 /* Group of ? */,
+  3015 /* Id of ReduceAction382 */,
+  4 /* Color of ReduceAction382 */,
+  48 /* Group of ? */,
+  3011 /* Id of ReduceAction383 */,
+  4 /* Color of ReduceAction383 */,
+  48 /* Group of ? */,
+  3007 /* Id of ReduceAction384 */,
+  4 /* Color of ReduceAction384 */,
+  48 /* Group of ? */,
+  3003 /* Id of ReduceAction385 */,
+  4 /* Color of ReduceAction385 */,
+  48 /* Group of ? */,
+  2999 /* Id of ReduceAction386 */,
+  4 /* Color of ReduceAction386 */,
+  48 /* Group of ? */,
+  2995 /* Id of ReduceAction387 */,
+  4 /* Color of ReduceAction387 */,
+  48 /* Group of ? */,
+  2991 /* Id of ReduceAction388 */,
+  4 /* Color of ReduceAction388 */,
+  48 /* Group of ? */,
+  2987 /* Id of ReduceAction389 */,
+  4 /* Color of ReduceAction389 */,
+  48 /* Group of ? */,
+  2979 /* Id of ReduceAction390 */,
+  4 /* Color of ReduceAction390 */,
+  48 /* Group of ? */,
+  2975 /* Id of ReduceAction391 */,
+  4 /* Color of ReduceAction391 */,
+  48 /* Group of ? */,
+  2971 /* Id of ReduceAction392 */,
+  4 /* Color of ReduceAction392 */,
+  48 /* Group of ? */,
+  2967 /* Id of ReduceAction393 */,
+  4 /* Color of ReduceAction393 */,
+  48 /* Group of ? */,
+  2963 /* Id of ReduceAction394 */,
+  4 /* Color of ReduceAction394 */,
+  48 /* Group of ? */,
+  2959 /* Id of ReduceAction395 */,
+  4 /* Color of ReduceAction395 */,
+  48 /* Group of ? */,
+  2955 /* Id of ReduceAction396 */,
+  4 /* Color of ReduceAction396 */,
+  48 /* Group of ? */,
+  2951 /* Id of ReduceAction397 */,
+  4 /* Color of ReduceAction397 */,
+  48 /* Group of ? */,
+  2947 /* Id of ReduceAction398 */,
+  4 /* Color of ReduceAction398 */,
+  48 /* Group of ? */,
+  2943 /* Id of ReduceAction399 */,
+  4 /* Color of ReduceAction399 */,
+  48 /* Group of ? */,
+  2931 /* Id of ReduceAction400 */,
+  4 /* Color of ReduceAction400 */,
+  48 /* Group of ? */,
+  2927 /* Id of ReduceAction401 */,
+  4 /* Color of ReduceAction401 */,
+  48 /* Group of ? */,
+  2923 /* Id of ReduceAction402 */,
+  4 /* Color of ReduceAction402 */,
+  48 /* Group of ? */,
+  2919 /* Id of ReduceAction403 */,
+  4 /* Color of ReduceAction403 */,
+  48 /* Group of ? */,
+  2915 /* Id of ReduceAction404 */,
+  4 /* Color of ReduceAction404 */,
+  48 /* Group of ? */,
+  2911 /* Id of ReduceAction405 */,
+  4 /* Color of ReduceAction405 */,
+  48 /* Group of ? */,
+  2907 /* Id of ReduceAction406 */,
+  4 /* Color of ReduceAction406 */,
+  48 /* Group of ? */,
+  2903 /* Id of ReduceAction407 */,
+  4 /* Color of ReduceAction407 */,
+  48 /* Group of ? */,
+  2899 /* Id of ReduceAction408 */,
+  4 /* Color of ReduceAction408 */,
+  48 /* Group of ? */,
+  2895 /* Id of ReduceAction409 */,
+  4 /* Color of ReduceAction409 */,
+  48 /* Group of ? */,
+  2887 /* Id of ReduceAction410 */,
+  4 /* Color of ReduceAction410 */,
+  48 /* Group of ? */,
+  2883 /* Id of ReduceAction411 */,
+  4 /* Color of ReduceAction411 */,
+  48 /* Group of ? */,
+  2879 /* Id of ReduceAction412 */,
+  4 /* Color of ReduceAction412 */,
+  48 /* Group of ? */,
+  2875 /* Id of ReduceAction413 */,
+  4 /* Color of ReduceAction413 */,
+  48 /* Group of ? */,
+  2871 /* Id of ReduceAction414 */,
+  4 /* Color of ReduceAction414 */,
+  48 /* Group of ? */,
+  2867 /* Id of ReduceAction415 */,
+  4 /* Color of ReduceAction415 */,
+  48 /* Group of ? */,
+  2863 /* Id of ReduceAction416 */,
+  4 /* Color of ReduceAction416 */,
+  48 /* Group of ? */,
+  2859 /* Id of ReduceAction417 */,
+  4 /* Color of ReduceAction417 */,
+  48 /* Group of ? */,
+  2855 /* Id of ReduceAction418 */,
+  4 /* Color of ReduceAction418 */,
+  48 /* Group of ? */,
+  2851 /* Id of ReduceAction419 */,
+  4 /* Color of ReduceAction419 */,
+  48 /* Group of ? */,
+  2843 /* Id of ReduceAction420 */,
+  4 /* Color of ReduceAction420 */,
+  48 /* Group of ? */,
+  2839 /* Id of ReduceAction421 */,
+  4 /* Color of ReduceAction421 */,
+  48 /* Group of ? */,
+  2835 /* Id of ReduceAction422 */,
+  4 /* Color of ReduceAction422 */,
+  48 /* Group of ? */,
+  2831 /* Id of ReduceAction423 */,
+  4 /* Color of ReduceAction423 */,
+  48 /* Group of ? */,
+  2827 /* Id of ReduceAction424 */,
+  4 /* Color of ReduceAction424 */,
+  48 /* Group of ? */,
+  2823 /* Id of ReduceAction425 */,
+  4 /* Color of ReduceAction425 */,
+  48 /* Group of ? */,
+  2819 /* Id of ReduceAction426 */,
+  4 /* Color of ReduceAction426 */,
+  48 /* Group of ? */,
+  2815 /* Id of ReduceAction427 */,
+  4 /* Color of ReduceAction427 */,
+  48 /* Group of ? */,
+  2811 /* Id of ReduceAction428 */,
+  4 /* Color of ReduceAction428 */,
+  48 /* Group of ? */,
+  2807 /* Id of ReduceAction429 */,
+  4 /* Color of ReduceAction429 */,
+  48 /* Group of ? */,
+  2799 /* Id of ReduceAction430 */,
+  4 /* Color of ReduceAction430 */,
+  48 /* Group of ? */,
+  2795 /* Id of ReduceAction431 */,
+  4 /* Color of ReduceAction431 */,
+  48 /* Group of ? */,
+  2791 /* Id of ReduceAction432 */,
+  4 /* Color of ReduceAction432 */,
+  48 /* Group of ? */,
+  2787 /* Id of ReduceAction433 */,
+  4 /* Color of ReduceAction433 */,
+  48 /* Group of ? */,
+  2783 /* Id of ReduceAction434 */,
+  4 /* Color of ReduceAction434 */,
+  48 /* Group of ? */,
+  2779 /* Id of ReduceAction435 */,
+  4 /* Color of ReduceAction435 */,
+  48 /* Group of ? */,
+  2775 /* Id of ReduceAction436 */,
+  4 /* Color of ReduceAction436 */,
+  48 /* Group of ? */,
+  2771 /* Id of ReduceAction437 */,
+  4 /* Color of ReduceAction437 */,
+  48 /* Group of ? */,
+  2767 /* Id of ReduceAction438 */,
+  4 /* Color of ReduceAction438 */,
+  48 /* Group of ? */,
+  2763 /* Id of ReduceAction439 */,
+  4 /* Color of ReduceAction439 */,
+  48 /* Group of ? */,
+  2755 /* Id of ReduceAction440 */,
+  4 /* Color of ReduceAction440 */,
+  48 /* Group of ? */,
+  2751 /* Id of ReduceAction441 */,
+  4 /* Color of ReduceAction441 */,
+  48 /* Group of ? */,
+  2747 /* Id of ReduceAction442 */,
+  4 /* Color of ReduceAction442 */,
+  48 /* Group of ? */,
+  2743 /* Id of ReduceAction443 */,
+  4 /* Color of ReduceAction443 */,
+  48 /* Group of ? */,
+  2739 /* Id of ReduceAction444 */,
+  4 /* Color of ReduceAction444 */,
+  48 /* Group of ? */,
+  2735 /* Id of ReduceAction445 */,
+  4 /* Color of ReduceAction445 */,
+  48 /* Group of ? */,
+  2731 /* Id of ReduceAction446 */,
+  4 /* Color of ReduceAction446 */,
+  48 /* Group of ? */,
+  2727 /* Id of ReduceAction447 */,
+  4 /* Color of ReduceAction447 */,
+  48 /* Group of ? */,
+  2723 /* Id of ReduceAction448 */,
+  4 /* Color of ReduceAction448 */,
+  48 /* Group of ? */,
+  2719 /* Id of ReduceAction449 */,
+  4 /* Color of ReduceAction449 */,
+  48 /* Group of ? */,
+  2711 /* Id of ReduceAction450 */,
+  4 /* Color of ReduceAction450 */,
+  48 /* Group of ? */,
+  2707 /* Id of ReduceAction451 */,
+  4 /* Color of ReduceAction451 */,
+  48 /* Group of ? */,
+  2703 /* Id of ReduceAction452 */,
+  4 /* Color of ReduceAction452 */,
+  48 /* Group of ? */,
+  2699 /* Id of ReduceAction453 */,
+  4 /* Color of ReduceAction453 */,
+  48 /* Group of ? */,
+  2695 /* Id of ReduceAction454 */,
+  4 /* Color of ReduceAction454 */,
+  48 /* Group of ? */,
+  2691 /* Id of ReduceAction455 */,
+  4 /* Color of ReduceAction455 */,
+  48 /* Group of ? */,
+  2687 /* Id of ReduceAction456 */,
+  4 /* Color of ReduceAction456 */,
+  48 /* Group of ? */,
+  2683 /* Id of ReduceAction457 */,
+  4 /* Color of ReduceAction457 */,
+  48 /* Group of ? */,
+  2679 /* Id of ReduceAction458 */,
+  4 /* Color of ReduceAction458 */,
+  48 /* Group of ? */,
+  2675 /* Id of ReduceAction459 */,
+  4 /* Color of ReduceAction459 */,
+  48 /* Group of ? */,
+  2667 /* Id of ReduceAction460 */,
+  4 /* Color of ReduceAction460 */,
+  48 /* Group of ? */,
+  2663 /* Id of ReduceAction461 */,
+  4 /* Color of ReduceAction461 */,
+  48 /* Group of ? */,
+  2659 /* Id of ReduceAction462 */,
+  4 /* Color of ReduceAction462 */,
+  48 /* Group of ? */,
+  2655 /* Id of ReduceAction463 */,
+  4 /* Color of ReduceAction463 */,
+  48 /* Group of ? */,
+  2651 /* Id of ReduceAction464 */,
+  4 /* Color of ReduceAction464 */,
+  48 /* Group of ? */,
+  2647 /* Id of ReduceAction465 */,
+  4 /* Color of ReduceAction465 */,
+  48 /* Group of ? */,
+  2643 /* Id of ReduceAction466 */,
+  4 /* Color of ReduceAction466 */,
+  48 /* Group of ? */,
+  2639 /* Id of ReduceAction467 */,
+  4 /* Color of ReduceAction467 */,
+  48 /* Group of ? */,
+  2635 /* Id of ReduceAction468 */,
+  4 /* Color of ReduceAction468 */,
+  48 /* Group of ? */,
+  2631 /* Id of ReduceAction469 */,
+  4 /* Color of ReduceAction469 */,
+  48 /* Group of ? */,
+  2623 /* Id of ReduceAction470 */,
+  4 /* Color of ReduceAction470 */,
+  48 /* Group of ? */,
+  2619 /* Id of ReduceAction471 */,
+  4 /* Color of ReduceAction471 */,
+  48 /* Group of ? */,
+  2615 /* Id of ReduceAction472 */,
+  4 /* Color of ReduceAction472 */,
+  48 /* Group of ? */,
+  2611 /* Id of ReduceAction473 */,
+  4 /* Color of ReduceAction473 */,
+  48 /* Group of ? */,
+  2607 /* Id of ReduceAction474 */,
+  4 /* Color of ReduceAction474 */,
+  48 /* Group of ? */,
+  2603 /* Id of ReduceAction475 */,
+  4 /* Color of ReduceAction475 */,
+  48 /* Group of ? */,
+  2599 /* Id of ReduceAction476 */,
+  4 /* Color of ReduceAction476 */,
+  48 /* Group of ? */,
+  2595 /* Id of ReduceAction477 */,
+  4 /* Color of ReduceAction477 */,
+  48 /* Group of ? */,
+  2591 /* Id of ReduceAction478 */,
+  4 /* Color of ReduceAction478 */,
+  48 /* Group of ? */,
+  2587 /* Id of ReduceAction479 */,
+  4 /* Color of ReduceAction479 */,
+  48 /* Group of ? */,
+  2579 /* Id of ReduceAction480 */,
+  4 /* Color of ReduceAction480 */,
+  48 /* Group of ? */,
+  2575 /* Id of ReduceAction481 */,
+  4 /* Color of ReduceAction481 */,
+  48 /* Group of ? */,
+  2571 /* Id of ReduceAction482 */,
+  4 /* Color of ReduceAction482 */,
+  48 /* Group of ? */,
+  2567 /* Id of ReduceAction483 */,
+  4 /* Color of ReduceAction483 */,
+  48 /* Group of ? */,
+  2563 /* Id of ReduceAction484 */,
+  4 /* Color of ReduceAction484 */,
+  48 /* Group of ? */,
+  2559 /* Id of ReduceAction485 */,
+  4 /* Color of ReduceAction485 */,
+  48 /* Group of ? */,
+  2555 /* Id of ReduceAction486 */,
+  4 /* Color of ReduceAction486 */,
+  48 /* Group of ? */,
+  2551 /* Id of ReduceAction487 */,
+  4 /* Color of ReduceAction487 */,
+  48 /* Group of ? */,
+  2547 /* Id of ReduceAction488 */,
+  4 /* Color of ReduceAction488 */,
+  48 /* Group of ? */,
+  2543 /* Id of ReduceAction489 */,
+  4 /* Color of ReduceAction489 */,
+  48 /* Group of ? */,
+  2535 /* Id of ReduceAction490 */,
+  4 /* Color of ReduceAction490 */,
+  48 /* Group of ? */,
+  2531 /* Id of ReduceAction491 */,
+  4 /* Color of ReduceAction491 */,
+  48 /* Group of ? */,
+  2527 /* Id of ReduceAction492 */,
+  4 /* Color of ReduceAction492 */,
+  48 /* Group of ? */,
+  2523 /* Id of ReduceAction493 */,
+  4 /* Color of ReduceAction493 */,
+  48 /* Group of ? */,
+  2519 /* Id of ReduceAction494 */,
+  4 /* Color of ReduceAction494 */,
+  48 /* Group of ? */,
+  2515 /* Id of ReduceAction495 */,
+  4 /* Color of ReduceAction495 */,
+  48 /* Group of ? */,
+  2511 /* Id of ReduceAction496 */,
+  4 /* Color of ReduceAction496 */,
+  48 /* Group of ? */,
+  2507 /* Id of ReduceAction497 */,
+  4 /* Color of ReduceAction497 */,
+  48 /* Group of ? */,
+  2503 /* Id of ReduceAction498 */,
+  4 /* Color of ReduceAction498 */,
+  48 /* Group of ? */,
+  2499 /* Id of ReduceAction499 */,
+  4 /* Color of ReduceAction499 */,
+  48 /* Group of ? */,
+  2487 /* Id of ReduceAction500 */,
+  4 /* Color of ReduceAction500 */,
+  48 /* Group of ? */,
+  2483 /* Id of ReduceAction501 */,
+  4 /* Color of ReduceAction501 */,
+  48 /* Group of ? */,
+  2479 /* Id of ReduceAction502 */,
+  4 /* Color of ReduceAction502 */,
+  48 /* Group of ? */,
+  2475 /* Id of ReduceAction503 */,
+  4 /* Color of ReduceAction503 */,
+  48 /* Group of ? */,
+  2471 /* Id of ReduceAction504 */,
+  4 /* Color of ReduceAction504 */,
+  48 /* Group of ? */,
+  2467 /* Id of ReduceAction505 */,
+  4 /* Color of ReduceAction505 */,
+  48 /* Group of ? */,
+  2463 /* Id of ReduceAction506 */,
+  4 /* Color of ReduceAction506 */,
+  48 /* Group of ? */,
+  2459 /* Id of ReduceAction507 */,
+  4 /* Color of ReduceAction507 */,
+  48 /* Group of ? */,
+  2455 /* Id of ReduceAction508 */,
+  4 /* Color of ReduceAction508 */,
+  48 /* Group of ? */,
+  2451 /* Id of ReduceAction509 */,
+  4 /* Color of ReduceAction509 */,
+  48 /* Group of ? */,
+  2443 /* Id of ReduceAction510 */,
+  4 /* Color of ReduceAction510 */,
+  48 /* Group of ? */,
+  2439 /* Id of ReduceAction511 */,
+  4 /* Color of ReduceAction511 */,
+  48 /* Group of ? */,
+  2435 /* Id of ReduceAction512 */,
+  4 /* Color of ReduceAction512 */,
+  48 /* Group of ? */,
+  2431 /* Id of ReduceAction513 */,
+  4 /* Color of ReduceAction513 */,
+  48 /* Group of ? */,
+  2427 /* Id of ReduceAction514 */,
+  4 /* Color of ReduceAction514 */,
+  48 /* Group of ? */,
+  2423 /* Id of ReduceAction515 */,
+  4 /* Color of ReduceAction515 */,
+  48 /* Group of ? */,
+  2419 /* Id of ReduceAction516 */,
+  4 /* Color of ReduceAction516 */,
+  48 /* Group of ? */,
+  2415 /* Id of ReduceAction517 */,
+  4 /* Color of ReduceAction517 */,
+  48 /* Group of ? */,
+  2411 /* Id of ReduceAction518 */,
+  4 /* Color of ReduceAction518 */,
+  48 /* Group of ? */,
+  2407 /* Id of ReduceAction519 */,
+  4 /* Color of ReduceAction519 */,
+  48 /* Group of ? */,
+  2399 /* Id of ReduceAction520 */,
+  4 /* Color of ReduceAction520 */,
+  48 /* Group of ? */,
+  2395 /* Id of ReduceAction521 */,
+  4 /* Color of ReduceAction521 */,
+  48 /* Group of ? */,
+  2391 /* Id of ReduceAction522 */,
+  4 /* Color of ReduceAction522 */,
+  48 /* Group of ? */,
+  2387 /* Id of ReduceAction523 */,
+  4 /* Color of ReduceAction523 */,
+  48 /* Group of ? */,
+  2383 /* Id of ReduceAction524 */,
+  4 /* Color of ReduceAction524 */,
+  48 /* Group of ? */,
+  2379 /* Id of ReduceAction525 */,
+  4 /* Color of ReduceAction525 */,
+  48 /* Group of ? */,
+  2375 /* Id of ReduceAction526 */,
+  4 /* Color of ReduceAction526 */,
+  48 /* Group of ? */,
+  2371 /* Id of ReduceAction527 */,
+  4 /* Color of ReduceAction527 */,
+  48 /* Group of ? */,
+  2367 /* Id of ReduceAction528 */,
+  4 /* Color of ReduceAction528 */,
+  48 /* Group of ? */,
+  2363 /* Id of ReduceAction529 */,
+  4 /* Color of ReduceAction529 */,
+  48 /* Group of ? */,
+  2355 /* Id of ReduceAction530 */,
+  4 /* Color of ReduceAction530 */,
+  48 /* Group of ? */,
+  2351 /* Id of ReduceAction531 */,
+  4 /* Color of ReduceAction531 */,
+  48 /* Group of ? */,
+  2347 /* Id of ReduceAction532 */,
+  4 /* Color of ReduceAction532 */,
+  48 /* Group of ? */,
+  2343 /* Id of ReduceAction533 */,
+  4 /* Color of ReduceAction533 */,
+  48 /* Group of ? */,
+  2339 /* Id of ReduceAction534 */,
+  4 /* Color of ReduceAction534 */,
+  48 /* Group of ? */,
+  2335 /* Id of ReduceAction535 */,
+  4 /* Color of ReduceAction535 */,
+  48 /* Group of ? */,
+  2331 /* Id of ReduceAction536 */,
+  4 /* Color of ReduceAction536 */,
+  48 /* Group of ? */,
+  2327 /* Id of ReduceAction537 */,
+  4 /* Color of ReduceAction537 */,
+  48 /* Group of ? */,
+  2323 /* Id of ReduceAction538 */,
+  4 /* Color of ReduceAction538 */,
+  48 /* Group of ? */,
+  2319 /* Id of ReduceAction539 */,
+  4 /* Color of ReduceAction539 */,
+  48 /* Group of ? */,
+  2311 /* Id of ReduceAction540 */,
+  4 /* Color of ReduceAction540 */,
+  48 /* Group of ? */,
+  2307 /* Id of ReduceAction541 */,
+  4 /* Color of ReduceAction541 */,
+  48 /* Group of ? */,
+  2303 /* Id of ReduceAction542 */,
+  4 /* Color of ReduceAction542 */,
+  48 /* Group of ? */,
+  2299 /* Id of ReduceAction543 */,
+  4 /* Color of ReduceAction543 */,
+  48 /* Group of ? */,
+  2295 /* Id of ReduceAction544 */,
+  4 /* Color of ReduceAction544 */,
+  48 /* Group of ? */,
+  2291 /* Id of ReduceAction545 */,
+  4 /* Color of ReduceAction545 */,
+  48 /* Group of ? */,
+  2287 /* Id of ReduceAction546 */,
+  4 /* Color of ReduceAction546 */,
+  48 /* Group of ? */,
+  2283 /* Id of ReduceAction547 */,
+  4 /* Color of ReduceAction547 */,
+  48 /* Group of ? */,
+  2279 /* Id of ReduceAction548 */,
+  4 /* Color of ReduceAction548 */,
+  48 /* Group of ? */,
+  2275 /* Id of ReduceAction549 */,
+  4 /* Color of ReduceAction549 */,
+  48 /* Group of ? */,
+  2267 /* Id of ReduceAction550 */,
+  4 /* Color of ReduceAction550 */,
+  48 /* Group of ? */,
+  2263 /* Id of ReduceAction551 */,
+  4 /* Color of ReduceAction551 */,
+  48 /* Group of ? */,
+  2259 /* Id of ReduceAction552 */,
+  4 /* Color of ReduceAction552 */,
+  48 /* Group of ? */,
+  2255 /* Id of ReduceAction553 */,
+  4 /* Color of ReduceAction553 */,
+  48 /* Group of ? */,
+  2251 /* Id of ReduceAction554 */,
+  4 /* Color of ReduceAction554 */,
+  48 /* Group of ? */,
+  2247 /* Id of ReduceAction555 */,
+  4 /* Color of ReduceAction555 */,
+  48 /* Group of ? */,
+  2243 /* Id of ReduceAction556 */,
+  4 /* Color of ReduceAction556 */,
+  48 /* Group of ? */,
+  2239 /* Id of ReduceAction557 */,
+  4 /* Color of ReduceAction557 */,
+  48 /* Group of ? */,
+  2235 /* Id of ReduceAction558 */,
+  4 /* Color of ReduceAction558 */,
+  48 /* Group of ? */,
+  2231 /* Id of ReduceAction559 */,
+  4 /* Color of ReduceAction559 */,
+  48 /* Group of ? */,
+  2223 /* Id of ReduceAction560 */,
+  4 /* Color of ReduceAction560 */,
+  48 /* Group of ? */,
+  2219 /* Id of ReduceAction561 */,
+  4 /* Color of ReduceAction561 */,
+  48 /* Group of ? */,
+  2215 /* Id of ReduceAction562 */,
+  4 /* Color of ReduceAction562 */,
+  48 /* Group of ? */,
+  2211 /* Id of ReduceAction563 */,
+  4 /* Color of ReduceAction563 */,
+  48 /* Group of ? */,
+  2207 /* Id of ReduceAction564 */,
+  4 /* Color of ReduceAction564 */,
+  48 /* Group of ? */,
+  2203 /* Id of ReduceAction565 */,
+  4 /* Color of ReduceAction565 */,
+  48 /* Group of ? */,
+  2199 /* Id of ReduceAction566 */,
+  4 /* Color of ReduceAction566 */,
+  48 /* Group of ? */,
+  2195 /* Id of ReduceAction567 */,
+  4 /* Color of ReduceAction567 */,
+  48 /* Group of ? */,
+  2191 /* Id of ReduceAction568 */,
+  4 /* Color of ReduceAction568 */,
+  48 /* Group of ? */,
+  2187 /* Id of ReduceAction569 */,
+  4 /* Color of ReduceAction569 */,
+  48 /* Group of ? */,
+  2179 /* Id of ReduceAction570 */,
+  4 /* Color of ReduceAction570 */,
+  48 /* Group of ? */,
+  2175 /* Id of ReduceAction571 */,
+  4 /* Color of ReduceAction571 */,
+  48 /* Group of ? */,
+  2171 /* Id of ReduceAction572 */,
+  4 /* Color of ReduceAction572 */,
+  48 /* Group of ? */,
+  2167 /* Id of ReduceAction573 */,
+  4 /* Color of ReduceAction573 */,
+  48 /* Group of ? */,
+  2163 /* Id of ReduceAction574 */,
+  4 /* Color of ReduceAction574 */,
+  48 /* Group of ? */,
+  2159 /* Id of ReduceAction575 */,
+  4 /* Color of ReduceAction575 */,
+  48 /* Group of ? */,
+  2155 /* Id of ReduceAction576 */,
+  4 /* Color of ReduceAction576 */,
+  48 /* Group of ? */,
+  2151 /* Id of ReduceAction577 */,
+  4 /* Color of ReduceAction577 */,
+  48 /* Group of ? */,
+  2147 /* Id of ReduceAction578 */,
+  4 /* Color of ReduceAction578 */,
+  48 /* Group of ? */,
+  2143 /* Id of ReduceAction579 */,
+  4 /* Color of ReduceAction579 */,
+  48 /* Group of ? */,
+  2135 /* Id of ReduceAction580 */,
+  4 /* Color of ReduceAction580 */,
+  48 /* Group of ? */,
+  2131 /* Id of ReduceAction581 */,
+  4 /* Color of ReduceAction581 */,
+  48 /* Group of ? */,
+  2127 /* Id of ReduceAction582 */,
+  4 /* Color of ReduceAction582 */,
+  48 /* Group of ? */,
+  2123 /* Id of ReduceAction583 */,
+  4 /* Color of ReduceAction583 */,
+  48 /* Group of ? */,
+  2119 /* Id of ReduceAction584 */,
+  4 /* Color of ReduceAction584 */,
+  48 /* Group of ? */,
+  2115 /* Id of ReduceAction585 */,
+  4 /* Color of ReduceAction585 */,
+  48 /* Group of ? */,
+  2111 /* Id of ReduceAction586 */,
+  4 /* Color of ReduceAction586 */,
+  48 /* Group of ? */,
+  2107 /* Id of ReduceAction587 */,
+  4 /* Color of ReduceAction587 */,
+  48 /* Group of ? */,
+  2103 /* Id of ReduceAction588 */,
+  4 /* Color of ReduceAction588 */,
+  48 /* Group of ? */,
+  2099 /* Id of ReduceAction589 */,
+  4 /* Color of ReduceAction589 */,
+  48 /* Group of ? */,
+  2091 /* Id of ReduceAction590 */,
+  4 /* Color of ReduceAction590 */,
+  48 /* Group of ? */,
+  2087 /* Id of ReduceAction591 */,
+  4 /* Color of ReduceAction591 */,
+  48 /* Group of ? */,
+  2083 /* Id of ReduceAction592 */,
+  4 /* Color of ReduceAction592 */,
+  48 /* Group of ? */,
+  2079 /* Id of ReduceAction593 */,
+  4 /* Color of ReduceAction593 */,
+  48 /* Group of ? */,
+  2075 /* Id of ReduceAction594 */,
+  4 /* Color of ReduceAction594 */,
+  48 /* Group of ? */,
+  2071 /* Id of ReduceAction595 */,
+  4 /* Color of ReduceAction595 */,
+  48 /* Group of ? */,
+  2067 /* Id of ReduceAction596 */,
+  4 /* Color of ReduceAction596 */,
+  48 /* Group of ? */,
+  2063 /* Id of ReduceAction597 */,
+  4 /* Color of ReduceAction597 */,
+  48 /* Group of ? */,
+  2059 /* Id of ReduceAction598 */,
+  4 /* Color of ReduceAction598 */,
+  48 /* Group of ? */,
+  2055 /* Id of ReduceAction599 */,
+  4 /* Color of ReduceAction599 */,
+  48 /* Group of ? */,
+  2043 /* Id of ReduceAction600 */,
+  4 /* Color of ReduceAction600 */,
+  48 /* Group of ? */,
+  2039 /* Id of ReduceAction601 */,
+  4 /* Color of ReduceAction601 */,
+  48 /* Group of ? */,
+  2035 /* Id of ReduceAction602 */,
+  4 /* Color of ReduceAction602 */,
+  48 /* Group of ? */,
+  2031 /* Id of ReduceAction603 */,
+  4 /* Color of ReduceAction603 */,
+  48 /* Group of ? */,
+  2027 /* Id of ReduceAction604 */,
+  4 /* Color of ReduceAction604 */,
+  48 /* Group of ? */,
+  2023 /* Id of ReduceAction605 */,
+  4 /* Color of ReduceAction605 */,
+  48 /* Group of ? */,
+  2019 /* Id of ReduceAction606 */,
+  4 /* Color of ReduceAction606 */,
+  48 /* Group of ? */,
+  2015 /* Id of ReduceAction607 */,
+  4 /* Color of ReduceAction607 */,
+  48 /* Group of ? */,
+  2011 /* Id of ReduceAction608 */,
+  4 /* Color of ReduceAction608 */,
+  48 /* Group of ? */,
+  2007 /* Id of ReduceAction609 */,
+  4 /* Color of ReduceAction609 */,
+  48 /* Group of ? */,
+  1999 /* Id of ReduceAction610 */,
+  4 /* Color of ReduceAction610 */,
+  48 /* Group of ? */,
+  1995 /* Id of ReduceAction611 */,
+  4 /* Color of ReduceAction611 */,
+  48 /* Group of ? */,
+  1991 /* Id of ReduceAction612 */,
+  4 /* Color of ReduceAction612 */,
+  48 /* Group of ? */,
+  1987 /* Id of ReduceAction613 */,
+  4 /* Color of ReduceAction613 */,
+  48 /* Group of ? */,
+  1983 /* Id of ReduceAction614 */,
+  4 /* Color of ReduceAction614 */,
+  48 /* Group of ? */,
+  1979 /* Id of ReduceAction615 */,
+  4 /* Color of ReduceAction615 */,
+  48 /* Group of ? */,
+  1975 /* Id of ReduceAction616 */,
+  4 /* Color of ReduceAction616 */,
+  48 /* Group of ? */,
+  1971 /* Id of ReduceAction617 */,
+  4 /* Color of ReduceAction617 */,
+  48 /* Group of ? */,
+  1967 /* Id of ReduceAction618 */,
+  4 /* Color of ReduceAction618 */,
+  48 /* Group of ? */,
+  1963 /* Id of ReduceAction619 */,
+  4 /* Color of ReduceAction619 */,
+  48 /* Group of ? */,
+  1955 /* Id of ReduceAction620 */,
+  4 /* Color of ReduceAction620 */,
+  48 /* Group of ? */,
+  1951 /* Id of ReduceAction621 */,
+  4 /* Color of ReduceAction621 */,
+  48 /* Group of ? */,
+  1947 /* Id of ReduceAction622 */,
+  4 /* Color of ReduceAction622 */,
+  48 /* Group of ? */,
+  1943 /* Id of ReduceAction623 */,
+  4 /* Color of ReduceAction623 */,
+  48 /* Group of ? */,
+  1939 /* Id of ReduceAction624 */,
+  4 /* Color of ReduceAction624 */,
+  48 /* Group of ? */,
+  1935 /* Id of ReduceAction625 */,
+  4 /* Color of ReduceAction625 */,
+  48 /* Group of ? */,
+  1931 /* Id of ReduceAction626 */,
+  4 /* Color of ReduceAction626 */,
+  48 /* Group of ? */,
+  1927 /* Id of ReduceAction627 */,
+  4 /* Color of ReduceAction627 */,
+  48 /* Group of ? */,
+  1923 /* Id of ReduceAction628 */,
+  4 /* Color of ReduceAction628 */,
+  48 /* Group of ? */,
+  1919 /* Id of ReduceAction629 */,
+  4 /* Color of ReduceAction629 */,
+  48 /* Group of ? */,
+  1911 /* Id of ReduceAction630 */,
+  4 /* Color of ReduceAction630 */,
+  48 /* Group of ? */,
+  1907 /* Id of ReduceAction631 */,
+  4 /* Color of ReduceAction631 */,
+  48 /* Group of ? */,
+  1903 /* Id of ReduceAction632 */,
+  4 /* Color of ReduceAction632 */,
+  48 /* Group of ? */,
+  1899 /* Id of ReduceAction633 */,
+  4 /* Color of ReduceAction633 */,
+  48 /* Group of ? */,
+  1895 /* Id of ReduceAction634 */,
+  4 /* Color of ReduceAction634 */,
+  48 /* Group of ? */,
+  1891 /* Id of ReduceAction635 */,
+  4 /* Color of ReduceAction635 */,
+  48 /* Group of ? */,
+  1887 /* Id of ReduceAction636 */,
+  4 /* Color of ReduceAction636 */,
+  48 /* Group of ? */,
+  1883 /* Id of ReduceAction637 */,
+  4 /* Color of ReduceAction637 */,
+  48 /* Group of ? */,
+  1879 /* Id of ReduceAction638 */,
+  4 /* Color of ReduceAction638 */,
+  48 /* Group of ? */,
+  1875 /* Id of ReduceAction639 */,
+  4 /* Color of ReduceAction639 */,
+  48 /* Group of ? */,
+  1867 /* Id of ReduceAction640 */,
+  4 /* Color of ReduceAction640 */,
+  48 /* Group of ? */,
+  1863 /* Id of ReduceAction641 */,
+  4 /* Color of ReduceAction641 */,
+  48 /* Group of ? */,
+  1859 /* Id of ReduceAction642 */,
+  4 /* Color of ReduceAction642 */,
+  48 /* Group of ? */,
+  1855 /* Id of ReduceAction643 */,
+  4 /* Color of ReduceAction643 */,
+  48 /* Group of ? */,
+  1851 /* Id of ReduceAction644 */,
+  4 /* Color of ReduceAction644 */,
+  48 /* Group of ? */,
+  1847 /* Id of ReduceAction645 */,
+  4 /* Color of ReduceAction645 */,
+  48 /* Group of ? */,
+  1843 /* Id of ReduceAction646 */,
+  4 /* Color of ReduceAction646 */,
+  48 /* Group of ? */,
+  1839 /* Id of ReduceAction647 */,
+  4 /* Color of ReduceAction647 */,
+  48 /* Group of ? */,
+  1835 /* Id of ReduceAction648 */,
+  4 /* Color of ReduceAction648 */,
+  48 /* Group of ? */,
+  1831 /* Id of ReduceAction649 */,
+  4 /* Color of ReduceAction649 */,
+  48 /* Group of ? */,
+  1823 /* Id of ReduceAction650 */,
+  4 /* Color of ReduceAction650 */,
+  48 /* Group of ? */,
+  1819 /* Id of ReduceAction651 */,
+  4 /* Color of ReduceAction651 */,
+  48 /* Group of ? */,
+  1815 /* Id of ReduceAction652 */,
+  4 /* Color of ReduceAction652 */,
+  48 /* Group of ? */,
+  1811 /* Id of ReduceAction653 */,
+  4 /* Color of ReduceAction653 */,
+  48 /* Group of ? */,
+  1807 /* Id of ReduceAction654 */,
+  4 /* Color of ReduceAction654 */,
+  48 /* Group of ? */,
+  1803 /* Id of ReduceAction655 */,
+  4 /* Color of ReduceAction655 */,
+  48 /* Group of ? */,
+  1799 /* Id of ReduceAction656 */,
+  4 /* Color of ReduceAction656 */,
+  48 /* Group of ? */,
+  1795 /* Id of ReduceAction657 */,
+  4 /* Color of ReduceAction657 */,
+  48 /* Group of ? */,
+  1791 /* Id of ReduceAction658 */,
+  4 /* Color of ReduceAction658 */,
+  48 /* Group of ? */,
+  1787 /* Id of ReduceAction659 */,
+  4 /* Color of ReduceAction659 */,
+  48 /* Group of ? */,
+  1779 /* Id of ReduceAction660 */,
+  4 /* Color of ReduceAction660 */,
+  48 /* Group of ? */,
+  1775 /* Id of ReduceAction661 */,
+  4 /* Color of ReduceAction661 */,
+  48 /* Group of ? */,
+  1771 /* Id of ReduceAction662 */,
+  4 /* Color of ReduceAction662 */,
+  48 /* Group of ? */,
+  1767 /* Id of ReduceAction663 */,
+  4 /* Color of ReduceAction663 */,
+  48 /* Group of ? */,
+  1763 /* Id of ReduceAction664 */,
+  4 /* Color of ReduceAction664 */,
+  48 /* Group of ? */,
+  1759 /* Id of ReduceAction665 */,
+  4 /* Color of ReduceAction665 */,
+  48 /* Group of ? */,
+  1755 /* Id of ReduceAction666 */,
+  4 /* Color of ReduceAction666 */,
+  48 /* Group of ? */,
+  1751 /* Id of ReduceAction667 */,
+  4 /* Color of ReduceAction667 */,
+  48 /* Group of ? */,
+  1747 /* Id of ReduceAction668 */,
+  4 /* Color of ReduceAction668 */,
+  48 /* Group of ? */,
+  1743 /* Id of ReduceAction669 */,
+  4 /* Color of ReduceAction669 */,
+  48 /* Group of ? */,
+  1735 /* Id of ReduceAction670 */,
+  4 /* Color of ReduceAction670 */,
+  48 /* Group of ? */,
+  1731 /* Id of ReduceAction671 */,
+  4 /* Color of ReduceAction671 */,
+  48 /* Group of ? */,
+  1727 /* Id of ReduceAction672 */,
+  4 /* Color of ReduceAction672 */,
+  48 /* Group of ? */,
+  1723 /* Id of ReduceAction673 */,
+  4 /* Color of ReduceAction673 */,
+  48 /* Group of ? */,
+  1719 /* Id of ReduceAction674 */,
+  4 /* Color of ReduceAction674 */,
+  48 /* Group of ? */,
+  1715 /* Id of ReduceAction675 */,
+  4 /* Color of ReduceAction675 */,
+  48 /* Group of ? */,
+  1711 /* Id of ReduceAction676 */,
+  4 /* Color of ReduceAction676 */,
+  48 /* Group of ? */,
+  1707 /* Id of ReduceAction677 */,
+  4 /* Color of ReduceAction677 */,
+  48 /* Group of ? */,
+  1703 /* Id of ReduceAction678 */,
+  4 /* Color of ReduceAction678 */,
+  48 /* Group of ? */,
+  1699 /* Id of ReduceAction679 */,
+  4 /* Color of ReduceAction679 */,
+  48 /* Group of ? */,
+  1691 /* Id of ReduceAction680 */,
+  4 /* Color of ReduceAction680 */,
+  48 /* Group of ? */,
+  1687 /* Id of ReduceAction681 */,
+  4 /* Color of ReduceAction681 */,
+  48 /* Group of ? */,
+  1683 /* Id of ReduceAction682 */,
+  4 /* Color of ReduceAction682 */,
+  48 /* Group of ? */,
+  1679 /* Id of ReduceAction683 */,
+  4 /* Color of ReduceAction683 */,
+  48 /* Group of ? */,
+  1675 /* Id of ReduceAction684 */,
+  4 /* Color of ReduceAction684 */,
+  48 /* Group of ? */,
+  1671 /* Id of ReduceAction685 */,
+  4 /* Color of ReduceAction685 */,
+  48 /* Group of ? */,
+  1667 /* Id of ReduceAction686 */,
+  4 /* Color of ReduceAction686 */,
+  48 /* Group of ? */,
+  1663 /* Id of ReduceAction687 */,
+  4 /* Color of ReduceAction687 */,
+  48 /* Group of ? */,
+  1659 /* Id of ReduceAction688 */,
+  4 /* Color of ReduceAction688 */,
+  48 /* Group of ? */,
+  1655 /* Id of ReduceAction689 */,
+  4 /* Color of ReduceAction689 */,
+  48 /* Group of ? */,
+  1647 /* Id of ReduceAction690 */,
+  4 /* Color of ReduceAction690 */,
+  48 /* Group of ? */,
+  1643 /* Id of ReduceAction691 */,
+  4 /* Color of ReduceAction691 */,
+  48 /* Group of ? */,
+  1639 /* Id of ReduceAction692 */,
+  4 /* Color of ReduceAction692 */,
+  48 /* Group of ? */,
+  1635 /* Id of ReduceAction693 */,
+  4 /* Color of ReduceAction693 */,
+  48 /* Group of ? */,
+  1631 /* Id of ReduceAction694 */,
+  4 /* Color of ReduceAction694 */,
+  48 /* Group of ? */,
+  1627 /* Id of ReduceAction695 */,
+  4 /* Color of ReduceAction695 */,
+  48 /* Group of ? */,
+  1623 /* Id of ReduceAction696 */,
+  4 /* Color of ReduceAction696 */,
+  48 /* Group of ? */,
+  1619 /* Id of ReduceAction697 */,
+  4 /* Color of ReduceAction697 */,
+  48 /* Group of ? */,
+  1615 /* Id of ReduceAction698 */,
+  4 /* Color of ReduceAction698 */,
+  48 /* Group of ? */,
+  1611 /* Id of ReduceAction699 */,
+  4 /* Color of ReduceAction699 */,
+  48 /* Group of ? */,
+  1599 /* Id of ReduceAction700 */,
+  4 /* Color of ReduceAction700 */,
+  48 /* Group of ? */,
+  1595 /* Id of ReduceAction701 */,
+  4 /* Color of ReduceAction701 */,
+  48 /* Group of ? */,
+  1591 /* Id of ReduceAction702 */,
+  4 /* Color of ReduceAction702 */,
+  48 /* Group of ? */,
+  1587 /* Id of ReduceAction703 */,
+  4 /* Color of ReduceAction703 */,
+  48 /* Group of ? */,
+  1583 /* Id of ReduceAction704 */,
+  4 /* Color of ReduceAction704 */,
+  48 /* Group of ? */,
+  1579 /* Id of ReduceAction705 */,
+  4 /* Color of ReduceAction705 */,
+  48 /* Group of ? */,
+  1575 /* Id of ReduceAction706 */,
+  4 /* Color of ReduceAction706 */,
+  48 /* Group of ? */,
+  1571 /* Id of ReduceAction707 */,
+  4 /* Color of ReduceAction707 */,
+  48 /* Group of ? */,
+  1567 /* Id of ReduceAction708 */,
+  4 /* Color of ReduceAction708 */,
+  48 /* Group of ? */,
+  1563 /* Id of ReduceAction709 */,
+  4 /* Color of ReduceAction709 */,
+  48 /* Group of ? */,
+  1555 /* Id of ReduceAction710 */,
+  4 /* Color of ReduceAction710 */,
+  48 /* Group of ? */,
+  1551 /* Id of ReduceAction711 */,
+  4 /* Color of ReduceAction711 */,
+  48 /* Group of ? */,
+  1547 /* Id of ReduceAction712 */,
+  4 /* Color of ReduceAction712 */,
+  48 /* Group of ? */,
+  1543 /* Id of ReduceAction713 */,
+  4 /* Color of ReduceAction713 */,
+  48 /* Group of ? */,
+  1539 /* Id of ReduceAction714 */,
+  4 /* Color of ReduceAction714 */,
+  48 /* Group of ? */,
+  1535 /* Id of ReduceAction715 */,
+  4 /* Color of ReduceAction715 */,
+  48 /* Group of ? */,
+  1531 /* Id of ReduceAction716 */,
+  4 /* Color of ReduceAction716 */,
+  48 /* Group of ? */,
+  1527 /* Id of ReduceAction717 */,
+  4 /* Color of ReduceAction717 */,
+  48 /* Group of ? */,
+  1523 /* Id of ReduceAction718 */,
+  4 /* Color of ReduceAction718 */,
+  48 /* Group of ? */,
+  1519 /* Id of ReduceAction719 */,
+  4 /* Color of ReduceAction719 */,
+  48 /* Group of ? */,
+  1511 /* Id of ReduceAction720 */,
+  4 /* Color of ReduceAction720 */,
+  48 /* Group of ? */,
+  1507 /* Id of ReduceAction721 */,
+  4 /* Color of ReduceAction721 */,
+  48 /* Group of ? */,
+  1503 /* Id of ReduceAction722 */,
+  4 /* Color of ReduceAction722 */,
+  48 /* Group of ? */,
+  1499 /* Id of ReduceAction723 */,
+  4 /* Color of ReduceAction723 */,
+  48 /* Group of ? */,
+  1495 /* Id of ReduceAction724 */,
+  4 /* Color of ReduceAction724 */,
+  48 /* Group of ? */,
+  1491 /* Id of ReduceAction725 */,
+  4 /* Color of ReduceAction725 */,
+  48 /* Group of ? */,
+  1487 /* Id of ReduceAction726 */,
+  4 /* Color of ReduceAction726 */,
+  48 /* Group of ? */,
+  1483 /* Id of ReduceAction727 */,
+  4 /* Color of ReduceAction727 */,
+  48 /* Group of ? */,
+  1479 /* Id of ReduceAction728 */,
+  4 /* Color of ReduceAction728 */,
+  48 /* Group of ? */,
+  1475 /* Id of ReduceAction729 */,
+  4 /* Color of ReduceAction729 */,
+  48 /* Group of ? */,
+  1467 /* Id of ReduceAction730 */,
+  4 /* Color of ReduceAction730 */,
+  48 /* Group of ? */,
+  1463 /* Id of ReduceAction731 */,
+  4 /* Color of ReduceAction731 */,
+  48 /* Group of ? */,
+  1459 /* Id of ReduceAction732 */,
+  4 /* Color of ReduceAction732 */,
+  48 /* Group of ? */,
+  1455 /* Id of ReduceAction733 */,
+  4 /* Color of ReduceAction733 */,
+  48 /* Group of ? */,
+  1451 /* Id of ReduceAction734 */,
+  4 /* Color of ReduceAction734 */,
+  48 /* Group of ? */,
+  1447 /* Id of ReduceAction735 */,
+  4 /* Color of ReduceAction735 */,
+  48 /* Group of ? */,
+  1443 /* Id of ReduceAction736 */,
+  4 /* Color of ReduceAction736 */,
+  48 /* Group of ? */,
+  1439 /* Id of ReduceAction737 */,
+  4 /* Color of ReduceAction737 */,
+  48 /* Group of ? */,
+  1435 /* Id of ReduceAction738 */,
+  4 /* Color of ReduceAction738 */,
+  48 /* Group of ? */,
+  1431 /* Id of ReduceAction739 */,
+  4 /* Color of ReduceAction739 */,
+  48 /* Group of ? */,
+  1423 /* Id of ReduceAction740 */,
+  4 /* Color of ReduceAction740 */,
+  48 /* Group of ? */,
+  1419 /* Id of ReduceAction741 */,
+  4 /* Color of ReduceAction741 */,
+  48 /* Group of ? */,
+  1415 /* Id of ReduceAction742 */,
+  4 /* Color of ReduceAction742 */,
+  48 /* Group of ? */,
+  1411 /* Id of ReduceAction743 */,
+  4 /* Color of ReduceAction743 */,
+  48 /* Group of ? */,
+  1407 /* Id of ReduceAction744 */,
+  4 /* Color of ReduceAction744 */,
+  48 /* Group of ? */,
+  1403 /* Id of ReduceAction745 */,
+  4 /* Color of ReduceAction745 */,
+  48 /* Group of ? */,
+  1399 /* Id of ReduceAction746 */,
+  4 /* Color of ReduceAction746 */,
+  48 /* Group of ? */,
+  1395 /* Id of ReduceAction747 */,
+  4 /* Color of ReduceAction747 */,
+  48 /* Group of ? */,
+  1391 /* Id of ReduceAction748 */,
+  4 /* Color of ReduceAction748 */,
+  48 /* Group of ? */,
+  1387 /* Id of ReduceAction749 */,
+  4 /* Color of ReduceAction749 */,
+  48 /* Group of ? */,
+  1379 /* Id of ReduceAction750 */,
+  4 /* Color of ReduceAction750 */,
+  48 /* Group of ? */,
+  1375 /* Id of ReduceAction751 */,
+  4 /* Color of ReduceAction751 */,
+  48 /* Group of ? */,
+  1371 /* Id of ReduceAction752 */,
+  4 /* Color of ReduceAction752 */,
+  48 /* Group of ? */,
+  1367 /* Id of ReduceAction753 */,
+  4 /* Color of ReduceAction753 */,
+  48 /* Group of ? */,
+  1363 /* Id of ReduceAction754 */,
+  4 /* Color of ReduceAction754 */,
+  48 /* Group of ? */,
+  1359 /* Id of ReduceAction755 */,
+  4 /* Color of ReduceAction755 */,
+  48 /* Group of ? */,
+  1355 /* Id of ReduceAction756 */,
+  4 /* Color of ReduceAction756 */,
+  48 /* Group of ? */,
+  1351 /* Id of ReduceAction757 */,
+  4 /* Color of ReduceAction757 */,
+  48 /* Group of ? */,
+  1347 /* Id of ReduceAction758 */,
+  4 /* Color of ReduceAction758 */,
+  48 /* Group of ? */,
+  1343 /* Id of ReduceAction759 */,
+  4 /* Color of ReduceAction759 */,
+  48 /* Group of ? */,
+  1335 /* Id of ReduceAction760 */,
+  4 /* Color of ReduceAction760 */,
+  48 /* Group of ? */,
+  1331 /* Id of ReduceAction761 */,
+  4 /* Color of ReduceAction761 */,
+  48 /* Group of ? */,
+  1327 /* Id of ReduceAction762 */,
+  4 /* Color of ReduceAction762 */,
+  48 /* Group of ? */,
+  1323 /* Id of ReduceAction763 */,
+  4 /* Color of ReduceAction763 */,
+  48 /* Group of ? */,
+  1319 /* Id of ReduceAction764 */,
+  4 /* Color of ReduceAction764 */,
+  48 /* Group of ? */,
+  1315 /* Id of ReduceAction765 */,
+  4 /* Color of ReduceAction765 */,
+  48 /* Group of ? */,
+  1311 /* Id of ReduceAction766 */,
+  4 /* Color of ReduceAction766 */,
+  48 /* Group of ? */,
+  1307 /* Id of ReduceAction767 */,
+  4 /* Color of ReduceAction767 */,
+  48 /* Group of ? */,
+  1303 /* Id of ReduceAction768 */,
+  4 /* Color of ReduceAction768 */,
+  48 /* Group of ? */,
+  1299 /* Id of ReduceAction769 */,
+  4 /* Color of ReduceAction769 */,
+  48 /* Group of ? */,
+  1291 /* Id of ReduceAction770 */,
+  4 /* Color of ReduceAction770 */,
+  48 /* Group of ? */,
+  1287 /* Id of ReduceAction771 */,
+  4 /* Color of ReduceAction771 */,
+  48 /* Group of ? */,
+  1283 /* Id of ReduceAction772 */,
+  4 /* Color of ReduceAction772 */,
+  48 /* Group of ? */,
+  1279 /* Id of ReduceAction773 */,
+  4 /* Color of ReduceAction773 */,
+  48 /* Group of ? */,
+  1275 /* Id of ReduceAction774 */,
+  4 /* Color of ReduceAction774 */,
+  48 /* Group of ? */,
+  1271 /* Id of ReduceAction775 */,
+  4 /* Color of ReduceAction775 */,
+  48 /* Group of ? */,
+  1267 /* Id of ReduceAction776 */,
+  4 /* Color of ReduceAction776 */,
+  48 /* Group of ? */,
+  1263 /* Id of ReduceAction777 */,
+  4 /* Color of ReduceAction777 */,
+  48 /* Group of ? */,
+  1259 /* Id of ReduceAction778 */,
+  4 /* Color of ReduceAction778 */,
+  48 /* Group of ? */,
+  1255 /* Id of ReduceAction779 */,
+  4 /* Color of ReduceAction779 */,
+  48 /* Group of ? */,
+  1247 /* Id of ReduceAction780 */,
+  4 /* Color of ReduceAction780 */,
+  48 /* Group of ? */,
+  1243 /* Id of ReduceAction781 */,
+  4 /* Color of ReduceAction781 */,
+  48 /* Group of ? */,
+  1239 /* Id of ReduceAction782 */,
+  4 /* Color of ReduceAction782 */,
+  48 /* Group of ? */,
+  1235 /* Id of ReduceAction783 */,
+  4 /* Color of ReduceAction783 */,
+  48 /* Group of ? */,
+  1231 /* Id of ReduceAction784 */,
+  4 /* Color of ReduceAction784 */,
+  48 /* Group of ? */,
+  1227 /* Id of ReduceAction785 */,
+  4 /* Color of ReduceAction785 */,
+  48 /* Group of ? */,
+  1223 /* Id of ReduceAction786 */,
+  4 /* Color of ReduceAction786 */,
+  48 /* Group of ? */,
+  1219 /* Id of ReduceAction787 */,
+  4 /* Color of ReduceAction787 */,
+  48 /* Group of ? */,
+  1215 /* Id of ReduceAction788 */,
+  4 /* Color of ReduceAction788 */,
+  48 /* Group of ? */,
+  1211 /* Id of ReduceAction789 */,
+  4 /* Color of ReduceAction789 */,
+  48 /* Group of ? */,
+  1203 /* Id of ReduceAction790 */,
+  4 /* Color of ReduceAction790 */,
+  48 /* Group of ? */,
+  1199 /* Id of ReduceAction791 */,
+  4 /* Color of ReduceAction791 */,
+  48 /* Group of ? */,
+  1195 /* Id of ReduceAction792 */,
+  4 /* Color of ReduceAction792 */,
+  48 /* Group of ? */,
+  1191 /* Id of ReduceAction793 */,
+  4 /* Color of ReduceAction793 */,
+  48 /* Group of ? */,
+  1187 /* Id of ReduceAction794 */,
+  4 /* Color of ReduceAction794 */,
+  48 /* Group of ? */,
+  1183 /* Id of ReduceAction795 */,
+  4 /* Color of ReduceAction795 */,
+  48 /* Group of ? */,
+  1179 /* Id of ReduceAction796 */,
+  4 /* Color of ReduceAction796 */,
+  48 /* Group of ? */,
+  1175 /* Id of ReduceAction797 */,
+  4 /* Color of ReduceAction797 */,
+  48 /* Group of ? */,
+  1171 /* Id of ReduceAction798 */,
+  4 /* Color of ReduceAction798 */,
+  48 /* Group of ? */,
+  1167 /* Id of ReduceAction799 */,
+  4 /* Color of ReduceAction799 */,
+  48 /* Group of ? */,
+  1155 /* Id of ReduceAction800 */,
+  4 /* Color of ReduceAction800 */,
+  48 /* Group of ? */,
+  1151 /* Id of ReduceAction801 */,
+  4 /* Color of ReduceAction801 */,
+  48 /* Group of ? */,
+  1147 /* Id of ReduceAction802 */,
+  4 /* Color of ReduceAction802 */,
+  48 /* Group of ? */,
+  1143 /* Id of ReduceAction803 */,
+  4 /* Color of ReduceAction803 */,
+  48 /* Group of ? */,
+  1139 /* Id of ReduceAction804 */,
+  4 /* Color of ReduceAction804 */,
+  48 /* Group of ? */,
+  1135 /* Id of ReduceAction805 */,
+  4 /* Color of ReduceAction805 */,
+  48 /* Group of ? */,
+  1131 /* Id of ReduceAction806 */,
+  4 /* Color of ReduceAction806 */,
+  48 /* Group of ? */,
+  1127 /* Id of ReduceAction807 */,
+  4 /* Color of ReduceAction807 */,
+  48 /* Group of ? */,
+  1123 /* Id of ReduceAction808 */,
+  4 /* Color of ReduceAction808 */,
+  48 /* Group of ? */,
+  1119 /* Id of ReduceAction809 */,
+  4 /* Color of ReduceAction809 */,
+  48 /* Group of ? */,
+  1111 /* Id of ReduceAction810 */,
+  4 /* Color of ReduceAction810 */,
+  48 /* Group of ? */,
+  1107 /* Id of ReduceAction811 */,
+  4 /* Color of ReduceAction811 */,
+  48 /* Group of ? */,
+  1103 /* Id of ReduceAction812 */,
+  4 /* Color of ReduceAction812 */,
+  48 /* Group of ? */,
+  1099 /* Id of ReduceAction813 */,
+  4 /* Color of ReduceAction813 */,
+  48 /* Group of ? */,
+  1095 /* Id of ReduceAction814 */,
+  4 /* Color of ReduceAction814 */,
+  48 /* Group of ? */,
+  1091 /* Id of ReduceAction815 */,
+  4 /* Color of ReduceAction815 */,
+  48 /* Group of ? */,
+  1087 /* Id of ReduceAction816 */,
+  4 /* Color of ReduceAction816 */,
+  48 /* Group of ? */,
+  1083 /* Id of ReduceAction817 */,
+  4 /* Color of ReduceAction817 */,
+  48 /* Group of ? */,
+  1079 /* Id of ReduceAction818 */,
+  4 /* Color of ReduceAction818 */,
+  48 /* Group of ? */,
+  1075 /* Id of ReduceAction819 */,
+  4 /* Color of ReduceAction819 */,
+  48 /* Group of ? */,
+  1067 /* Id of ReduceAction820 */,
+  4 /* Color of ReduceAction820 */,
+  48 /* Group of ? */,
+  1063 /* Id of ReduceAction821 */,
+  4 /* Color of ReduceAction821 */,
+  48 /* Group of ? */,
+  1059 /* Id of ReduceAction822 */,
+  4 /* Color of ReduceAction822 */,
+  48 /* Group of ? */,
+  1055 /* Id of ReduceAction823 */,
+  4 /* Color of ReduceAction823 */,
+  48 /* Group of ? */,
+  1051 /* Id of ReduceAction824 */,
+  4 /* Color of ReduceAction824 */,
+  48 /* Group of ? */,
+  1047 /* Id of ReduceAction825 */,
+  4 /* Color of ReduceAction825 */,
+  48 /* Group of ? */,
+  1043 /* Id of ReduceAction826 */,
+  4 /* Color of ReduceAction826 */,
+  48 /* Group of ? */,
+  1039 /* Id of ReduceAction827 */,
+  4 /* Color of ReduceAction827 */,
+  48 /* Group of ? */,
+  1035 /* Id of ReduceAction828 */,
+  4 /* Color of ReduceAction828 */,
+  48 /* Group of ? */,
+  1031 /* Id of ReduceAction829 */,
+  4 /* Color of ReduceAction829 */,
+  48 /* Group of ? */,
+  1023 /* Id of ReduceAction830 */,
+  4 /* Color of ReduceAction830 */,
+  48 /* Group of ? */,
+  1019 /* Id of ReduceAction831 */,
+  4 /* Color of ReduceAction831 */,
+  48 /* Group of ? */,
+  1015 /* Id of ReduceAction832 */,
+  4 /* Color of ReduceAction832 */,
+  48 /* Group of ? */,
+  1011 /* Id of ReduceAction833 */,
+  4 /* Color of ReduceAction833 */,
+  48 /* Group of ? */,
+  1007 /* Id of ReduceAction834 */,
+  4 /* Color of ReduceAction834 */,
+  48 /* Group of ? */,
+  1003 /* Id of ReduceAction835 */,
+  4 /* Color of ReduceAction835 */,
+  48 /* Group of ? */,
+  999 /* Id of ReduceAction836 */,
+  4 /* Color of ReduceAction836 */,
+  48 /* Group of ? */,
+  995 /* Id of ReduceAction837 */,
+  4 /* Color of ReduceAction837 */,
+  48 /* Group of ? */,
+  991 /* Id of ReduceAction838 */,
+  4 /* Color of ReduceAction838 */,
+  48 /* Group of ? */,
+  987 /* Id of ReduceAction839 */,
+  4 /* Color of ReduceAction839 */,
+  48 /* Group of ? */,
+  979 /* Id of ReduceAction840 */,
+  4 /* Color of ReduceAction840 */,
+  48 /* Group of ? */,
+  975 /* Id of ReduceAction841 */,
+  4 /* Color of ReduceAction841 */,
+  48 /* Group of ? */,
+  971 /* Id of ReduceAction842 */,
+  4 /* Color of ReduceAction842 */,
+  48 /* Group of ? */,
+  967 /* Id of ReduceAction843 */,
+  4 /* Color of ReduceAction843 */,
+  48 /* Group of ? */,
+  963 /* Id of ReduceAction844 */,
+  4 /* Color of ReduceAction844 */,
+  48 /* Group of ? */,
+  959 /* Id of ReduceAction845 */,
+  4 /* Color of ReduceAction845 */,
+  48 /* Group of ? */,
+  955 /* Id of ReduceAction846 */,
+  4 /* Color of ReduceAction846 */,
+  48 /* Group of ? */,
+  951 /* Id of ReduceAction847 */,
+  4 /* Color of ReduceAction847 */,
+  48 /* Group of ? */,
+  947 /* Id of ReduceAction848 */,
+  4 /* Color of ReduceAction848 */,
+  48 /* Group of ? */,
+  943 /* Id of ReduceAction849 */,
+  4 /* Color of ReduceAction849 */,
+  48 /* Group of ? */,
+  935 /* Id of ReduceAction850 */,
+  4 /* Color of ReduceAction850 */,
+  48 /* Group of ? */,
+  931 /* Id of ReduceAction851 */,
+  4 /* Color of ReduceAction851 */,
+  48 /* Group of ? */,
+  927 /* Id of ReduceAction852 */,
+  4 /* Color of ReduceAction852 */,
+  48 /* Group of ? */,
+  923 /* Id of ReduceAction853 */,
+  4 /* Color of ReduceAction853 */,
+  48 /* Group of ? */,
+  919 /* Id of ReduceAction854 */,
+  4 /* Color of ReduceAction854 */,
+  48 /* Group of ? */,
+  915 /* Id of ReduceAction855 */,
+  4 /* Color of ReduceAction855 */,
+  48 /* Group of ? */,
+  911 /* Id of ReduceAction856 */,
+  4 /* Color of ReduceAction856 */,
+  48 /* Group of ? */,
+  907 /* Id of ReduceAction857 */,
+  4 /* Color of ReduceAction857 */,
+  48 /* Group of ? */,
+  903 /* Id of ReduceAction858 */,
+  4 /* Color of ReduceAction858 */,
+  48 /* Group of ? */,
+  899 /* Id of ReduceAction859 */,
+  4 /* Color of ReduceAction859 */,
+  48 /* Group of ? */,
+  891 /* Id of ReduceAction860 */,
+  4 /* Color of ReduceAction860 */,
+  48 /* Group of ? */,
+  887 /* Id of ReduceAction861 */,
+  4 /* Color of ReduceAction861 */,
+  48 /* Group of ? */,
+  883 /* Id of ReduceAction862 */,
+  4 /* Color of ReduceAction862 */,
+  48 /* Group of ? */,
+  879 /* Id of ReduceAction863 */,
+  4 /* Color of ReduceAction863 */,
+  48 /* Group of ? */,
+  875 /* Id of ReduceAction864 */,
+  4 /* Color of ReduceAction864 */,
+  48 /* Group of ? */,
+  871 /* Id of ReduceAction865 */,
+  4 /* Color of ReduceAction865 */,
+  48 /* Group of ? */,
+  867 /* Id of ReduceAction866 */,
+  4 /* Color of ReduceAction866 */,
+  48 /* Group of ? */,
+  863 /* Id of ReduceAction867 */,
+  4 /* Color of ReduceAction867 */,
+  48 /* Group of ? */,
+  859 /* Id of ReduceAction868 */,
+  4 /* Color of ReduceAction868 */,
+  48 /* Group of ? */,
+  855 /* Id of ReduceAction869 */,
+  4 /* Color of ReduceAction869 */,
+  48 /* Group of ? */,
+  847 /* Id of ReduceAction870 */,
+  4 /* Color of ReduceAction870 */,
+  48 /* Group of ? */,
+  843 /* Id of ReduceAction871 */,
+  4 /* Color of ReduceAction871 */,
+  48 /* Group of ? */,
+  839 /* Id of ReduceAction872 */,
+  4 /* Color of ReduceAction872 */,
+  48 /* Group of ? */,
+  835 /* Id of ReduceAction873 */,
+  4 /* Color of ReduceAction873 */,
+  48 /* Group of ? */,
+  831 /* Id of ReduceAction874 */,
+  4 /* Color of ReduceAction874 */,
+  48 /* Group of ? */,
+  827 /* Id of ReduceAction875 */,
+  4 /* Color of ReduceAction875 */,
+  48 /* Group of ? */,
+  823 /* Id of ReduceAction876 */,
+  4 /* Color of ReduceAction876 */,
+  48 /* Group of ? */,
+  819 /* Id of ReduceAction877 */,
+  4 /* Color of ReduceAction877 */,
+  48 /* Group of ? */,
+  815 /* Id of ReduceAction878 */,
+  4 /* Color of ReduceAction878 */,
+  48 /* Group of ? */,
+  811 /* Id of ReduceAction879 */,
+  4 /* Color of ReduceAction879 */,
+  48 /* Group of ? */,
+  803 /* Id of ReduceAction880 */,
+  4 /* Color of ReduceAction880 */,
+  48 /* Group of ? */,
+  799 /* Id of ReduceAction881 */,
+  4 /* Color of ReduceAction881 */,
+  48 /* Group of ? */,
+  795 /* Id of ReduceAction882 */,
+  4 /* Color of ReduceAction882 */,
+  48 /* Group of ? */,
+  791 /* Id of ReduceAction883 */,
+  4 /* Color of ReduceAction883 */,
+  48 /* Group of ? */,
+  787 /* Id of ReduceAction884 */,
+  4 /* Color of ReduceAction884 */,
+  48 /* Group of ? */,
+  783 /* Id of ReduceAction885 */,
+  4 /* Color of ReduceAction885 */,
+  48 /* Group of ? */,
+  779 /* Id of ReduceAction886 */,
+  4 /* Color of ReduceAction886 */,
+  48 /* Group of ? */,
+  775 /* Id of ReduceAction887 */,
+  4 /* Color of ReduceAction887 */,
+  48 /* Group of ? */,
+  771 /* Id of ReduceAction888 */,
+  4 /* Color of ReduceAction888 */,
+  48 /* Group of ? */,
+  767 /* Id of ReduceAction889 */,
+  4 /* Color of ReduceAction889 */,
+  48 /* Group of ? */,
+  759 /* Id of ReduceAction890 */,
+  4 /* Color of ReduceAction890 */,
+  48 /* Group of ? */,
+  755 /* Id of ReduceAction891 */,
+  4 /* Color of ReduceAction891 */,
+  48 /* Group of ? */,
+  751 /* Id of ReduceAction892 */,
+  4 /* Color of ReduceAction892 */,
+  48 /* Group of ? */,
+  747 /* Id of ReduceAction893 */,
+  4 /* Color of ReduceAction893 */,
+  48 /* Group of ? */,
+  743 /* Id of ReduceAction894 */,
+  4 /* Color of ReduceAction894 */,
+  48 /* Group of ? */,
+  739 /* Id of ReduceAction895 */,
+  4 /* Color of ReduceAction895 */,
+  48 /* Group of ? */,
+  735 /* Id of ReduceAction896 */,
+  4 /* Color of ReduceAction896 */,
+  48 /* Group of ? */,
+  731 /* Id of ReduceAction897 */,
+  4 /* Color of ReduceAction897 */,
+  48 /* Group of ? */,
+  727 /* Id of ReduceAction898 */,
+  4 /* Color of ReduceAction898 */,
+  48 /* Group of ? */,
+  723 /* Id of ReduceAction899 */,
+  4 /* Color of ReduceAction899 */,
+  48 /* Group of ? */,
+  711 /* Id of ReduceAction900 */,
+  4 /* Color of ReduceAction900 */,
+  48 /* Group of ? */,
+  707 /* Id of ReduceAction901 */,
+  4 /* Color of ReduceAction901 */,
+  48 /* Group of ? */,
+  703 /* Id of ReduceAction902 */,
+  4 /* Color of ReduceAction902 */,
+  48 /* Group of ? */,
+  699 /* Id of ReduceAction903 */,
+  4 /* Color of ReduceAction903 */,
+  48 /* Group of ? */,
+  695 /* Id of ReduceAction904 */,
+  4 /* Color of ReduceAction904 */,
+  48 /* Group of ? */,
+  691 /* Id of ReduceAction905 */,
+  4 /* Color of ReduceAction905 */,
+  48 /* Group of ? */,
+  687 /* Id of ReduceAction906 */,
+  4 /* Color of ReduceAction906 */,
+  48 /* Group of ? */,
+  683 /* Id of ReduceAction907 */,
+  4 /* Color of ReduceAction907 */,
+  48 /* Group of ? */,
+  679 /* Id of ReduceAction908 */,
+  4 /* Color of ReduceAction908 */,
+  48 /* Group of ? */,
+  675 /* Id of ReduceAction909 */,
+  4 /* Color of ReduceAction909 */,
+  48 /* Group of ? */,
+  667 /* Id of ReduceAction910 */,
+  4 /* Color of ReduceAction910 */,
+  48 /* Group of ? */,
+  663 /* Id of ReduceAction911 */,
+  4 /* Color of ReduceAction911 */,
+  48 /* Group of ? */,
+  659 /* Id of ReduceAction912 */,
+  4 /* Color of ReduceAction912 */,
+  48 /* Group of ? */,
+  655 /* Id of ReduceAction913 */,
+  4 /* Color of ReduceAction913 */,
+  48 /* Group of ? */,
+  651 /* Id of ReduceAction914 */,
+  4 /* Color of ReduceAction914 */,
+  48 /* Group of ? */,
+  647 /* Id of ReduceAction915 */,
+  4 /* Color of ReduceAction915 */,
+  48 /* Group of ? */,
+  643 /* Id of ReduceAction916 */,
+  4 /* Color of ReduceAction916 */,
+  48 /* Group of ? */,
+  639 /* Id of ReduceAction917 */,
+  4 /* Color of ReduceAction917 */,
+  48 /* Group of ? */,
+  635 /* Id of ReduceAction918 */,
+  4 /* Color of ReduceAction918 */,
+  48 /* Group of ? */,
+  631 /* Id of ReduceAction919 */,
+  4 /* Color of ReduceAction919 */,
+  48 /* Group of ? */,
+  623 /* Id of ReduceAction920 */,
+  4 /* Color of ReduceAction920 */,
+  48 /* Group of ? */,
+  619 /* Id of ReduceAction921 */,
+  4 /* Color of ReduceAction921 */,
+  48 /* Group of ? */,
+  615 /* Id of ReduceAction922 */,
+  4 /* Color of ReduceAction922 */,
+  48 /* Group of ? */,
+  611 /* Id of ReduceAction923 */,
+  4 /* Color of ReduceAction923 */,
+  48 /* Group of ? */,
+  607 /* Id of ReduceAction924 */,
+  4 /* Color of ReduceAction924 */,
+  48 /* Group of ? */,
+  603 /* Id of ReduceAction925 */,
+  4 /* Color of ReduceAction925 */,
+  48 /* Group of ? */,
+  599 /* Id of ReduceAction926 */,
+  4 /* Color of ReduceAction926 */,
+  48 /* Group of ? */,
+  595 /* Id of ReduceAction927 */,
+  4 /* Color of ReduceAction927 */,
+  48 /* Group of ? */,
+  591 /* Id of ReduceAction928 */,
+  4 /* Color of ReduceAction928 */,
+  48 /* Group of ? */,
+  587 /* Id of ReduceAction929 */,
+  4 /* Color of ReduceAction929 */,
+  48 /* Group of ? */,
+  579 /* Id of ReduceAction930 */,
+  4 /* Color of ReduceAction930 */,
+  48 /* Group of ? */,
+  575 /* Id of ReduceAction931 */,
+  4 /* Color of ReduceAction931 */,
+  48 /* Group of ? */,
+  571 /* Id of ReduceAction932 */,
+  4 /* Color of ReduceAction932 */,
+  48 /* Group of ? */,
+  567 /* Id of ReduceAction933 */,
+  4 /* Color of ReduceAction933 */,
+  48 /* Group of ? */,
+  563 /* Id of ReduceAction934 */,
+  4 /* Color of ReduceAction934 */,
+  48 /* Group of ? */,
+  559 /* Id of ReduceAction935 */,
+  4 /* Color of ReduceAction935 */,
+  48 /* Group of ? */,
+  555 /* Id of ReduceAction936 */,
+  4 /* Color of ReduceAction936 */,
+  48 /* Group of ? */,
+  551 /* Id of ReduceAction937 */,
+  4 /* Color of ReduceAction937 */,
+  48 /* Group of ? */,
+  547 /* Id of ReduceAction938 */,
+  4 /* Color of ReduceAction938 */,
+  48 /* Group of ? */,
+  543 /* Id of ReduceAction939 */,
+  4 /* Color of ReduceAction939 */,
+  48 /* Group of ? */,
+  535 /* Id of ReduceAction940 */,
+  4 /* Color of ReduceAction940 */,
+  48 /* Group of ? */,
+  531 /* Id of ReduceAction941 */,
+  4 /* Color of ReduceAction941 */,
+  48 /* Group of ? */,
+  527 /* Id of ReduceAction942 */,
+  4 /* Color of ReduceAction942 */,
+  48 /* Group of ? */,
+  523 /* Id of ReduceAction943 */,
+  4 /* Color of ReduceAction943 */,
+  48 /* Group of ? */,
+  519 /* Id of ReduceAction944 */,
+  4 /* Color of ReduceAction944 */,
+  48 /* Group of ? */,
+  515 /* Id of ReduceAction945 */,
+  4 /* Color of ReduceAction945 */,
+  48 /* Group of ? */,
+  511 /* Id of ReduceAction946 */,
+  4 /* Color of ReduceAction946 */,
+  48 /* Group of ? */,
+  507 /* Id of ReduceAction947 */,
+  4 /* Color of ReduceAction947 */,
+  48 /* Group of ? */,
+  503 /* Id of ReduceAction948 */,
+  4 /* Color of ReduceAction948 */,
+  48 /* Group of ? */,
+  499 /* Id of ReduceAction949 */,
+  4 /* Color of ReduceAction949 */,
+  48 /* Group of ? */,
+  491 /* Id of ReduceAction950 */,
+  4 /* Color of ReduceAction950 */,
+  48 /* Group of ? */,
+  487 /* Id of ReduceAction951 */,
+  4 /* Color of ReduceAction951 */,
+  48 /* Group of ? */,
+  483 /* Id of ReduceAction952 */,
+  4 /* Color of ReduceAction952 */,
+  48 /* Group of ? */,
+  479 /* Id of ReduceAction953 */,
+  4 /* Color of ReduceAction953 */,
+  48 /* Group of ? */,
+  475 /* Id of ReduceAction954 */,
+  4 /* Color of ReduceAction954 */,
+  48 /* Group of ? */,
+  471 /* Id of ReduceAction955 */,
+  4 /* Color of ReduceAction955 */,
+  48 /* Group of ? */,
+  467 /* Id of ReduceAction956 */,
+  4 /* Color of ReduceAction956 */,
+  48 /* Group of ? */,
+  463 /* Id of ReduceAction957 */,
+  4 /* Color of ReduceAction957 */,
+  48 /* Group of ? */,
+  459 /* Id of ReduceAction958 */,
+  4 /* Color of ReduceAction958 */,
+  48 /* Group of ? */,
+  455 /* Id of ReduceAction959 */,
+  4 /* Color of ReduceAction959 */,
+  48 /* Group of ? */,
+  447 /* Id of ReduceAction960 */,
+  4 /* Color of ReduceAction960 */,
+  48 /* Group of ? */,
+  443 /* Id of ReduceAction961 */,
+  4 /* Color of ReduceAction961 */,
+  48 /* Group of ? */,
+  439 /* Id of ReduceAction962 */,
+  4 /* Color of ReduceAction962 */,
+  48 /* Group of ? */,
+  435 /* Id of ReduceAction963 */,
+  4 /* Color of ReduceAction963 */,
+  48 /* Group of ? */,
+  431 /* Id of ReduceAction964 */,
+  4 /* Color of ReduceAction964 */,
+  48 /* Group of ? */,
+  427 /* Id of ReduceAction965 */,
+  4 /* Color of ReduceAction965 */,
+  48 /* Group of ? */,
+  423 /* Id of ReduceAction966 */,
+  4 /* Color of ReduceAction966 */,
+  48 /* Group of ? */,
+  419 /* Id of ReduceAction967 */,
+  4 /* Color of ReduceAction967 */,
+  48 /* Group of ? */,
+  415 /* Id of ReduceAction968 */,
+  4 /* Color of ReduceAction968 */,
+  48 /* Group of ? */,
+  411 /* Id of ReduceAction969 */,
+  4 /* Color of ReduceAction969 */,
+  48 /* Group of ? */,
+  403 /* Id of ReduceAction970 */,
+  4 /* Color of ReduceAction970 */,
+  48 /* Group of ? */,
+  399 /* Id of ReduceAction971 */,
+  4 /* Color of ReduceAction971 */,
+  48 /* Group of ? */,
+  395 /* Id of ReduceAction972 */,
+  4 /* Color of ReduceAction972 */,
+  48 /* Group of ? */,
+  391 /* Id of ReduceAction973 */,
+  4 /* Color of ReduceAction973 */,
+  48 /* Group of ? */,
+  387 /* Id of ReduceAction974 */,
+  4 /* Color of ReduceAction974 */,
+  48 /* Group of ? */,
+  383 /* Id of ReduceAction975 */,
+  4 /* Color of ReduceAction975 */,
+  48 /* Group of ? */,
+  379 /* Id of ReduceAction976 */,
+  4 /* Color of ReduceAction976 */,
+  48 /* Group of ? */,
+  375 /* Id of ReduceAction977 */,
+  4 /* Color of ReduceAction977 */,
+  48 /* Group of ? */,
+  371 /* Id of ReduceAction978 */,
+  4 /* Color of ReduceAction978 */,
+  48 /* Group of ? */,
+  367 /* Id of ReduceAction979 */,
+  4 /* Color of ReduceAction979 */,
+  48 /* Group of ? */,
+  359 /* Id of ReduceAction980 */,
+  4 /* Color of ReduceAction980 */,
+  48 /* Group of ? */,
+  355 /* Id of ReduceAction981 */,
+  4 /* Color of ReduceAction981 */,
+  48 /* Group of ? */,
+  351 /* Id of ReduceAction982 */,
+  4 /* Color of ReduceAction982 */,
+  48 /* Group of ? */,
+  347 /* Id of ReduceAction983 */,
+  4 /* Color of ReduceAction983 */,
+  48 /* Group of ? */,
+  343 /* Id of ReduceAction984 */,
+  4 /* Color of ReduceAction984 */,
+  48 /* Group of ? */,
+  339 /* Id of ReduceAction985 */,
+  4 /* Color of ReduceAction985 */,
+  48 /* Group of ? */,
+  335 /* Id of ReduceAction986 */,
+  4 /* Color of ReduceAction986 */,
+  48 /* Group of ? */,
+  331 /* Id of ReduceAction987 */,
+  4 /* Color of ReduceAction987 */,
+  48 /* Group of ? */,
+  327 /* Id of ReduceAction988 */,
+  4 /* Color of ReduceAction988 */,
+  48 /* Group of ? */,
+  323 /* Id of ReduceAction989 */,
+  4 /* Color of ReduceAction989 */,
+  48 /* Group of ? */,
+  315 /* Id of ReduceAction990 */,
+  4 /* Color of ReduceAction990 */,
+  48 /* Group of ? */,
+  311 /* Id of ReduceAction991 */,
+  4 /* Color of ReduceAction991 */,
+  48 /* Group of ? */,
+  307 /* Id of ReduceAction992 */,
+  4 /* Color of ReduceAction992 */,
+  48 /* Group of ? */,
+  303 /* Id of ReduceAction993 */,
+  4 /* Color of ReduceAction993 */,
+  48 /* Group of ? */,
+  299 /* Id of ReduceAction994 */,
+  4 /* Color of ReduceAction994 */,
+  48 /* Group of ? */,
+  295 /* Id of ReduceAction995 */,
+  4 /* Color of ReduceAction995 */,
+  48 /* Group of ? */,
+  291 /* Id of ReduceAction996 */,
+  4 /* Color of ReduceAction996 */,
+  48 /* Group of ? */,
+  287 /* Id of ReduceAction997 */,
+  4 /* Color of ReduceAction997 */,
+  48 /* Group of ? */,
+  283 /* Id of ReduceAction998 */,
+  4 /* Color of ReduceAction998 */,
+  48 /* Group of ? */,
+  279 /* Id of ReduceAction999 */,
+  4 /* Color of ReduceAction999 */,
+  48 /* Group of ? */,
+  5035 /* Id of ReduceAction1000 */,
+  4 /* Color of ReduceAction1000 */,
+  48 /* Group of ? */,
+  5031 /* Id of ReduceAction1001 */,
+  4 /* Color of ReduceAction1001 */,
+  48 /* Group of ? */,
+  5027 /* Id of ReduceAction1002 */,
+  4 /* Color of ReduceAction1002 */,
+  48 /* Group of ? */,
+  5023 /* Id of ReduceAction1003 */,
+  4 /* Color of ReduceAction1003 */,
+  48 /* Group of ? */,
+  5019 /* Id of ReduceAction1004 */,
+  4 /* Color of ReduceAction1004 */,
+  48 /* Group of ? */,
+  5015 /* Id of ReduceAction1005 */,
+  4 /* Color of ReduceAction1005 */,
+  48 /* Group of ? */,
+  5011 /* Id of ReduceAction1006 */,
+  4 /* Color of ReduceAction1006 */,
+  48 /* Group of ? */,
+  5007 /* Id of ReduceAction1007 */,
+  4 /* Color of ReduceAction1007 */,
+  48 /* Group of ? */,
+  5003 /* Id of ReduceAction1008 */,
+  4 /* Color of ReduceAction1008 */,
+  48 /* Group of ? */,
+  4999 /* Id of ReduceAction1009 */,
+  4 /* Color of ReduceAction1009 */,
+  48 /* Group of ? */,
+  4991 /* Id of ReduceAction1010 */,
+  4 /* Color of ReduceAction1010 */,
+  48 /* Group of ? */,
+  4987 /* Id of ReduceAction1011 */,
+  4 /* Color of ReduceAction1011 */,
+  48 /* Group of ? */,
+  4983 /* Id of ReduceAction1012 */,
+  4 /* Color of ReduceAction1012 */,
+  48 /* Group of ? */,
+  4979 /* Id of ReduceAction1013 */,
+  4 /* Color of ReduceAction1013 */,
+  48 /* Group of ? */,
+  4975 /* Id of ReduceAction1014 */,
+  4 /* Color of ReduceAction1014 */,
+  48 /* Group of ? */,
+  4971 /* Id of ReduceAction1015 */,
+  4 /* Color of ReduceAction1015 */,
+  48 /* Group of ? */,
+  4967 /* Id of ReduceAction1016 */,
+  4 /* Color of ReduceAction1016 */,
+  48 /* Group of ? */,
+  4963 /* Id of ReduceAction1017 */,
+  4 /* Color of ReduceAction1017 */,
+  48 /* Group of ? */,
+  4959 /* Id of ReduceAction1018 */,
+  4 /* Color of ReduceAction1018 */,
+  48 /* Group of ? */,
+  4955 /* Id of ReduceAction1019 */,
+  4 /* Color of ReduceAction1019 */,
+  48 /* Group of ? */,
+  4947 /* Id of ReduceAction1020 */,
+  4 /* Color of ReduceAction1020 */,
+  48 /* Group of ? */,
+  4943 /* Id of ReduceAction1021 */,
+  4 /* Color of ReduceAction1021 */,
+  48 /* Group of ? */,
+  4939 /* Id of ReduceAction1022 */,
+  4 /* Color of ReduceAction1022 */,
+  48 /* Group of ? */,
+  4935 /* Id of ReduceAction1023 */,
+  4 /* Color of ReduceAction1023 */,
+  48 /* Group of ? */,
+  4931 /* Id of ReduceAction1024 */,
+  4 /* Color of ReduceAction1024 */,
+  48 /* Group of ? */,
+  4927 /* Id of ReduceAction1025 */,
+  4 /* Color of ReduceAction1025 */,
+  48 /* Group of ? */,
+  4923 /* Id of ReduceAction1026 */,
+  4 /* Color of ReduceAction1026 */,
+  48 /* Group of ? */,
+  4919 /* Id of ReduceAction1027 */,
+  4 /* Color of ReduceAction1027 */,
+  48 /* Group of ? */,
+  4915 /* Id of ReduceAction1028 */,
+  4 /* Color of ReduceAction1028 */,
+  48 /* Group of ? */,
+  4911 /* Id of ReduceAction1029 */,
+  4 /* Color of ReduceAction1029 */,
+  48 /* Group of ? */,
+  4903 /* Id of ReduceAction1030 */,
+  4 /* Color of ReduceAction1030 */,
+  48 /* Group of ? */,
+  4899 /* Id of ReduceAction1031 */,
+  4 /* Color of ReduceAction1031 */,
+  48 /* Group of ? */,
+  4895 /* Id of ReduceAction1032 */,
+  4 /* Color of ReduceAction1032 */,
+  48 /* Group of ? */,
+  4891 /* Id of ReduceAction1033 */,
+  4 /* Color of ReduceAction1033 */,
+  48 /* Group of ? */,
+  4887 /* Id of ReduceAction1034 */,
+  4 /* Color of ReduceAction1034 */,
+  48 /* Group of ? */,
+  4883 /* Id of ReduceAction1035 */,
+  4 /* Color of ReduceAction1035 */,
+  48 /* Group of ? */,
+  4879 /* Id of ReduceAction1036 */,
+  4 /* Color of ReduceAction1036 */,
+  48 /* Group of ? */,
+  4875 /* Id of ReduceAction1037 */,
+  4 /* Color of ReduceAction1037 */,
+  48 /* Group of ? */,
+  4871 /* Id of ReduceAction1038 */,
+  4 /* Color of ReduceAction1038 */,
+  48 /* Group of ? */,
+  4867 /* Id of ReduceAction1039 */,
+  4 /* Color of ReduceAction1039 */,
+  48 /* Group of ? */,
+  4859 /* Id of ReduceAction1040 */,
+  4 /* Color of ReduceAction1040 */,
+  48 /* Group of ? */,
+  4855 /* Id of ReduceAction1041 */,
+  4 /* Color of ReduceAction1041 */,
+  48 /* Group of ? */,
+  4851 /* Id of ReduceAction1042 */,
+  4 /* Color of ReduceAction1042 */,
+  48 /* Group of ? */,
+  4847 /* Id of ReduceAction1043 */,
+  4 /* Color of ReduceAction1043 */,
+  48 /* Group of ? */,
+  4843 /* Id of ReduceAction1044 */,
+  4 /* Color of ReduceAction1044 */,
+  48 /* Group of ? */,
+  4839 /* Id of ReduceAction1045 */,
+  4 /* Color of ReduceAction1045 */,
+  48 /* Group of ? */,
+  4835 /* Id of ReduceAction1046 */,
+  4 /* Color of ReduceAction1046 */,
+  48 /* Group of ? */,
+  4831 /* Id of ReduceAction1047 */,
+  4 /* Color of ReduceAction1047 */,
+  48 /* Group of ? */,
+  4827 /* Id of ReduceAction1048 */,
+  4 /* Color of ReduceAction1048 */,
+  48 /* Group of ? */,
+  4823 /* Id of ReduceAction1049 */,
+  4 /* Color of ReduceAction1049 */,
+  48 /* Group of ? */,
+  4815 /* Id of ReduceAction1050 */,
+  4 /* Color of ReduceAction1050 */,
+  48 /* Group of ? */,
+  4811 /* Id of ReduceAction1051 */,
+  4 /* Color of ReduceAction1051 */,
+  48 /* Group of ? */,
+  4807 /* Id of ReduceAction1052 */,
+  4 /* Color of ReduceAction1052 */,
+  48 /* Group of ? */,
+  4803 /* Id of ReduceAction1053 */,
+  4 /* Color of ReduceAction1053 */,
+  48 /* Group of ? */,
+  4799 /* Id of ReduceAction1054 */,
+  4 /* Color of ReduceAction1054 */,
+  48 /* Group of ? */,
+  4795 /* Id of ReduceAction1055 */,
+  4 /* Color of ReduceAction1055 */,
+  48 /* Group of ? */,
+  4791 /* Id of ReduceAction1056 */,
+  4 /* Color of ReduceAction1056 */,
+  48 /* Group of ? */,
+  4787 /* Id of ReduceAction1057 */,
+  4 /* Color of ReduceAction1057 */,
+  48 /* Group of ? */,
+  4783 /* Id of ReduceAction1058 */,
+  4 /* Color of ReduceAction1058 */,
+  48 /* Group of ? */,
+  4779 /* Id of ReduceAction1059 */,
+  4 /* Color of ReduceAction1059 */,
+  48 /* Group of ? */,
+  4771 /* Id of ReduceAction1060 */,
+  4 /* Color of ReduceAction1060 */,
+  48 /* Group of ? */,
+  4767 /* Id of ReduceAction1061 */,
+  4 /* Color of ReduceAction1061 */,
+  48 /* Group of ? */,
+  4763 /* Id of ReduceAction1062 */,
+  4 /* Color of ReduceAction1062 */,
+  48 /* Group of ? */,
+  4759 /* Id of ReduceAction1063 */,
+  4 /* Color of ReduceAction1063 */,
+  48 /* Group of ? */,
+  4755 /* Id of ReduceAction1064 */,
+  4 /* Color of ReduceAction1064 */,
+  48 /* Group of ? */,
+  4751 /* Id of ReduceAction1065 */,
+  4 /* Color of ReduceAction1065 */,
+  48 /* Group of ? */,
+  4747 /* Id of ReduceAction1066 */,
+  4 /* Color of ReduceAction1066 */,
+  48 /* Group of ? */,
+  4743 /* Id of ReduceAction1067 */,
+  4 /* Color of ReduceAction1067 */,
+  48 /* Group of ? */,
+  4739 /* Id of ReduceAction1068 */,
+  4 /* Color of ReduceAction1068 */,
+  48 /* Group of ? */,
+  4735 /* Id of ReduceAction1069 */,
+  4 /* Color of ReduceAction1069 */,
+  48 /* Group of ? */,
+  4727 /* Id of ReduceAction1070 */,
+  4 /* Color of ReduceAction1070 */,
+  48 /* Group of ? */,
+  4723 /* Id of ReduceAction1071 */,
+  4 /* Color of ReduceAction1071 */,
+  48 /* Group of ? */,
+  4719 /* Id of ReduceAction1072 */,
+  4 /* Color of ReduceAction1072 */,
+  48 /* Group of ? */,
+  4715 /* Id of ReduceAction1073 */,
+  4 /* Color of ReduceAction1073 */,
+  48 /* Group of ? */,
+  4711 /* Id of ReduceAction1074 */,
+  4 /* Color of ReduceAction1074 */,
+  48 /* Group of ? */,
+  4707 /* Id of ReduceAction1075 */,
+  4 /* Color of ReduceAction1075 */,
+  48 /* Group of ? */,
+  4703 /* Id of ReduceAction1076 */,
+  4 /* Color of ReduceAction1076 */,
+  48 /* Group of ? */,
+  4699 /* Id of ReduceAction1077 */,
+  4 /* Color of ReduceAction1077 */,
+  48 /* Group of ? */,
+  4695 /* Id of ReduceAction1078 */,
+  4 /* Color of ReduceAction1078 */,
+  48 /* Group of ? */,
+  4691 /* Id of ReduceAction1079 */,
+  4 /* Color of ReduceAction1079 */,
+  48 /* Group of ? */,
+  4683 /* Id of ReduceAction1080 */,
+  4 /* Color of ReduceAction1080 */,
+  48 /* Group of ? */,
+  4679 /* Id of ReduceAction1081 */,
+  4 /* Color of ReduceAction1081 */,
+  48 /* Group of ? */,
+  4675 /* Id of ReduceAction1082 */,
+  4 /* Color of ReduceAction1082 */,
+  48 /* Group of ? */,
+  4671 /* Id of ReduceAction1083 */,
+  4 /* Color of ReduceAction1083 */,
+  48 /* Group of ? */,
+  4667 /* Id of ReduceAction1084 */,
+  4 /* Color of ReduceAction1084 */,
+  48 /* Group of ? */,
+  4663 /* Id of ReduceAction1085 */,
+  4 /* Color of ReduceAction1085 */,
+  48 /* Group of ? */,
+  4659 /* Id of ReduceAction1086 */,
+  4 /* Color of ReduceAction1086 */,
+  48 /* Group of ? */,
+  4655 /* Id of ReduceAction1087 */,
+  4 /* Color of ReduceAction1087 */,
+  48 /* Group of ? */,
+  4651 /* Id of ReduceAction1088 */,
+  4 /* Color of ReduceAction1088 */,
+  48 /* Group of ? */,
+  4647 /* Id of ReduceAction1089 */,
+  4 /* Color of ReduceAction1089 */,
+  48 /* Group of ? */,
+  4639 /* Id of ReduceAction1090 */,
+  4 /* Color of ReduceAction1090 */,
+  48 /* Group of ? */,
+  4635 /* Id of ReduceAction1091 */,
+  4 /* Color of ReduceAction1091 */,
+  48 /* Group of ? */,
+  4631 /* Id of ReduceAction1092 */,
+  4 /* Color of ReduceAction1092 */,
+  48 /* Group of ? */,
+  4627 /* Id of ReduceAction1093 */,
+  4 /* Color of ReduceAction1093 */,
+  48 /* Group of ? */,
+  4623 /* Id of ReduceAction1094 */,
+  4 /* Color of ReduceAction1094 */,
+  48 /* Group of ? */,
+  4619 /* Id of ReduceAction1095 */,
+  4 /* Color of ReduceAction1095 */,
+  48 /* Group of ? */,
+  4615 /* Id of ReduceAction1096 */,
+  4 /* Color of ReduceAction1096 */,
+  48 /* Group of ? */,
+  4611 /* Id of ReduceAction1097 */,
+  4 /* Color of ReduceAction1097 */,
+  48 /* Group of ? */,
+  4607 /* Id of ReduceAction1098 */,
+  4 /* Color of ReduceAction1098 */,
+  48 /* Group of ? */,
+  4603 /* Id of ReduceAction1099 */,
+  4 /* Color of ReduceAction1099 */,
+  48 /* Group of ? */,
+  4591 /* Id of ReduceAction1100 */,
+  4 /* Color of ReduceAction1100 */,
+  48 /* Group of ? */,
+  4587 /* Id of ReduceAction1101 */,
+  4 /* Color of ReduceAction1101 */,
+  48 /* Group of ? */,
+  4583 /* Id of ReduceAction1102 */,
+  4 /* Color of ReduceAction1102 */,
+  48 /* Group of ? */,
+  4579 /* Id of ReduceAction1103 */,
+  4 /* Color of ReduceAction1103 */,
+  48 /* Group of ? */,
+  4575 /* Id of ReduceAction1104 */,
+  4 /* Color of ReduceAction1104 */,
+  48 /* Group of ? */,
+  4571 /* Id of ReduceAction1105 */,
+  4 /* Color of ReduceAction1105 */,
+  48 /* Group of ? */,
+  4567 /* Id of ReduceAction1106 */,
+  4 /* Color of ReduceAction1106 */,
+  48 /* Group of ? */,
+  4563 /* Id of ReduceAction1107 */,
+  4 /* Color of ReduceAction1107 */,
+  48 /* Group of ? */,
+  4559 /* Id of ReduceAction1108 */,
+  4 /* Color of ReduceAction1108 */,
+  48 /* Group of ? */,
+  4555 /* Id of ReduceAction1109 */,
+  4 /* Color of ReduceAction1109 */,
+  48 /* Group of ? */,
+  4547 /* Id of ReduceAction1110 */,
+  4 /* Color of ReduceAction1110 */,
+  48 /* Group of ? */,
+  4543 /* Id of ReduceAction1111 */,
+  4 /* Color of ReduceAction1111 */,
+  48 /* Group of ? */,
+  4539 /* Id of ReduceAction1112 */,
+  4 /* Color of ReduceAction1112 */,
+  48 /* Group of ? */,
+  4535 /* Id of ReduceAction1113 */,
+  4 /* Color of ReduceAction1113 */,
+  48 /* Group of ? */,
+  4531 /* Id of ReduceAction1114 */,
+  4 /* Color of ReduceAction1114 */,
+  48 /* Group of ? */,
+  4527 /* Id of ReduceAction1115 */,
+  4 /* Color of ReduceAction1115 */,
+  48 /* Group of ? */,
+  4523 /* Id of ReduceAction1116 */,
+  4 /* Color of ReduceAction1116 */,
+  48 /* Group of ? */,
+  4519 /* Id of ReduceAction1117 */,
+  4 /* Color of ReduceAction1117 */,
+  48 /* Group of ? */,
+  4515 /* Id of ReduceAction1118 */,
+  4 /* Color of ReduceAction1118 */,
+  48 /* Group of ? */,
+  4511 /* Id of ReduceAction1119 */,
+  4 /* Color of ReduceAction1119 */,
+  48 /* Group of ? */,
+  4503 /* Id of ReduceAction1120 */,
+  4 /* Color of ReduceAction1120 */,
+  48 /* Group of ? */,
+  4499 /* Id of ReduceAction1121 */,
+  4 /* Color of ReduceAction1121 */,
+  48 /* Group of ? */,
+  4495 /* Id of ReduceAction1122 */,
+  4 /* Color of ReduceAction1122 */,
+  48 /* Group of ? */,
+  4491 /* Id of ReduceAction1123 */,
+  4 /* Color of ReduceAction1123 */,
+  48 /* Group of ? */,
+  4487 /* Id of ReduceAction1124 */,
+  4 /* Color of ReduceAction1124 */,
+  48 /* Group of ? */,
+  4483 /* Id of ReduceAction1125 */,
+  4 /* Color of ReduceAction1125 */,
+  48 /* Group of ? */,
+  4479 /* Id of ReduceAction1126 */,
+  4 /* Color of ReduceAction1126 */,
+  48 /* Group of ? */,
+  4475 /* Id of ReduceAction1127 */,
+  4 /* Color of ReduceAction1127 */,
+  48 /* Group of ? */,
+  4471 /* Id of ReduceAction1128 */,
+  4 /* Color of ReduceAction1128 */,
+  48 /* Group of ? */,
+  4467 /* Id of ReduceAction1129 */,
+  4 /* Color of ReduceAction1129 */,
+  48 /* Group of ? */,
+  4459 /* Id of ReduceAction1130 */,
+  4 /* Color of ReduceAction1130 */,
+  48 /* Group of ? */,
+  4455 /* Id of ReduceAction1131 */,
+  4 /* Color of ReduceAction1131 */,
+  48 /* Group of ? */,
+  4451 /* Id of ReduceAction1132 */,
+  4 /* Color of ReduceAction1132 */,
+  48 /* Group of ? */,
+  4447 /* Id of ReduceAction1133 */,
+  4 /* Color of ReduceAction1133 */,
+  48 /* Group of ? */,
+  4443 /* Id of ReduceAction1134 */,
+  4 /* Color of ReduceAction1134 */,
+  48 /* Group of ? */,
+  4439 /* Id of ReduceAction1135 */,
+  4 /* Color of ReduceAction1135 */,
+  48 /* Group of ? */,
+  4435 /* Id of ReduceAction1136 */,
+  4 /* Color of ReduceAction1136 */,
+  48 /* Group of ? */,
+  4431 /* Id of ReduceAction1137 */,
+  4 /* Color of ReduceAction1137 */,
+  48 /* Group of ? */,
+  4427 /* Id of ReduceAction1138 */,
+  4 /* Color of ReduceAction1138 */,
+  48 /* Group of ? */,
+  4423 /* Id of ReduceAction1139 */,
+  4 /* Color of ReduceAction1139 */,
+  48 /* Group of ? */,
+  4415 /* Id of ReduceAction1140 */,
+  4 /* Color of ReduceAction1140 */,
+  48 /* Group of ? */,
+  4411 /* Id of ReduceAction1141 */,
+  4 /* Color of ReduceAction1141 */,
+  48 /* Group of ? */,
+  4407 /* Id of ReduceAction1142 */,
+  4 /* Color of ReduceAction1142 */,
+  48 /* Group of ? */,
+  4403 /* Id of ReduceAction1143 */,
+  4 /* Color of ReduceAction1143 */,
+  48 /* Group of ? */,
+  4399 /* Id of ReduceAction1144 */,
+  4 /* Color of ReduceAction1144 */,
+  48 /* Group of ? */,
+  4395 /* Id of ReduceAction1145 */,
+  4 /* Color of ReduceAction1145 */,
+  48 /* Group of ? */,
+  4391 /* Id of ReduceAction1146 */,
+  4 /* Color of ReduceAction1146 */,
+  48 /* Group of ? */,
+  4387 /* Id of ReduceAction1147 */,
+  4 /* Color of ReduceAction1147 */,
+  48 /* Group of ? */,
+  4383 /* Id of ReduceAction1148 */,
+  4 /* Color of ReduceAction1148 */,
+  48 /* Group of ? */,
+  4379 /* Id of ReduceAction1149 */,
+  4 /* Color of ReduceAction1149 */,
+  48 /* Group of ? */,
+  4371 /* Id of ReduceAction1150 */,
+  4 /* Color of ReduceAction1150 */,
+  48 /* Group of ? */,
+  4367 /* Id of ReduceAction1151 */,
+  4 /* Color of ReduceAction1151 */,
+  48 /* Group of ? */,
+  4363 /* Id of ReduceAction1152 */,
+  4 /* Color of ReduceAction1152 */,
+  48 /* Group of ? */,
+  4359 /* Id of ReduceAction1153 */,
+  4 /* Color of ReduceAction1153 */,
+  48 /* Group of ? */,
+  4355 /* Id of ReduceAction1154 */,
+  4 /* Color of ReduceAction1154 */,
+  48 /* Group of ? */,
+  4351 /* Id of ReduceAction1155 */,
+  4 /* Color of ReduceAction1155 */,
+  48 /* Group of ? */,
+  4347 /* Id of ReduceAction1156 */,
+  4 /* Color of ReduceAction1156 */,
+  48 /* Group of ? */,
+  4343 /* Id of ReduceAction1157 */,
+  4 /* Color of ReduceAction1157 */,
+  48 /* Group of ? */,
+  4339 /* Id of ReduceAction1158 */,
+  4 /* Color of ReduceAction1158 */,
+  48 /* Group of ? */,
+  4335 /* Id of ReduceAction1159 */,
+  4 /* Color of ReduceAction1159 */,
+  48 /* Group of ? */,
+  4327 /* Id of ReduceAction1160 */,
+  4 /* Color of ReduceAction1160 */,
+  48 /* Group of ? */,
+  4323 /* Id of ReduceAction1161 */,
+  4 /* Color of ReduceAction1161 */,
+  48 /* Group of ? */,
+  4319 /* Id of ReduceAction1162 */,
+  4 /* Color of ReduceAction1162 */,
+  48 /* Group of ? */,
+  4315 /* Id of ReduceAction1163 */,
+  4 /* Color of ReduceAction1163 */,
+  48 /* Group of ? */,
+  4311 /* Id of ReduceAction1164 */,
+  4 /* Color of ReduceAction1164 */,
+  48 /* Group of ? */,
+  4307 /* Id of ReduceAction1165 */,
+  4 /* Color of ReduceAction1165 */,
+  48 /* Group of ? */,
+  4303 /* Id of ReduceAction1166 */,
+  4 /* Color of ReduceAction1166 */,
+  48 /* Group of ? */,
+  4299 /* Id of ReduceAction1167 */,
+  4 /* Color of ReduceAction1167 */,
+  48 /* Group of ? */,
+  4295 /* Id of ReduceAction1168 */,
+  4 /* Color of ReduceAction1168 */,
+  48 /* Group of ? */,
+  4291 /* Id of ReduceAction1169 */,
+  4 /* Color of ReduceAction1169 */,
+  48 /* Group of ? */,
+  4283 /* Id of ReduceAction1170 */,
+  4 /* Color of ReduceAction1170 */,
+  48 /* Group of ? */,
+  4279 /* Id of ReduceAction1171 */,
+  4 /* Color of ReduceAction1171 */,
+  48 /* Group of ? */,
+  4275 /* Id of ReduceAction1172 */,
+  4 /* Color of ReduceAction1172 */,
+  48 /* Group of ? */,
+  4271 /* Id of ReduceAction1173 */,
+  4 /* Color of ReduceAction1173 */,
+  48 /* Group of ? */,
+  4267 /* Id of ReduceAction1174 */,
+  4 /* Color of ReduceAction1174 */,
+  48 /* Group of ? */,
+  4263 /* Id of ReduceAction1175 */,
+  4 /* Color of ReduceAction1175 */,
+  48 /* Group of ? */,
+  4259 /* Id of ReduceAction1176 */,
+  4 /* Color of ReduceAction1176 */,
+  48 /* Group of ? */,
+  4255 /* Id of ReduceAction1177 */,
+  4 /* Color of ReduceAction1177 */,
+  48 /* Group of ? */,
+  4251 /* Id of ReduceAction1178 */,
+  4 /* Color of ReduceAction1178 */,
+  48 /* Group of ? */,
+  4247 /* Id of ReduceAction1179 */,
+  4 /* Color of ReduceAction1179 */,
+  48 /* Group of ? */,
+  4239 /* Id of ReduceAction1180 */,
+  4 /* Color of ReduceAction1180 */,
+  48 /* Group of ? */,
+  4235 /* Id of ReduceAction1181 */,
+  4 /* Color of ReduceAction1181 */,
+  48 /* Group of ? */,
+  4231 /* Id of ReduceAction1182 */,
+  4 /* Color of ReduceAction1182 */,
+  48 /* Group of ? */,
+  4227 /* Id of ReduceAction1183 */,
+  4 /* Color of ReduceAction1183 */,
+  48 /* Group of ? */,
+  4223 /* Id of ReduceAction1184 */,
+  4 /* Color of ReduceAction1184 */,
+  48 /* Group of ? */,
+  4219 /* Id of ReduceAction1185 */,
+  4 /* Color of ReduceAction1185 */,
+  48 /* Group of ? */,
+  4215 /* Id of ReduceAction1186 */,
+  4 /* Color of ReduceAction1186 */,
+  48 /* Group of ? */,
+  4211 /* Id of ReduceAction1187 */,
+  4 /* Color of ReduceAction1187 */,
+  48 /* Group of ? */,
+  4207 /* Id of ReduceAction1188 */,
+  4 /* Color of ReduceAction1188 */,
+  48 /* Group of ? */,
+  4203 /* Id of ReduceAction1189 */,
+  4 /* Color of ReduceAction1189 */,
+  48 /* Group of ? */,
+  4195 /* Id of ReduceAction1190 */,
+  4 /* Color of ReduceAction1190 */,
+  48 /* Group of ? */,
+  4191 /* Id of ReduceAction1191 */,
+  4 /* Color of ReduceAction1191 */,
+  48 /* Group of ? */,
+  4187 /* Id of ReduceAction1192 */,
+  4 /* Color of ReduceAction1192 */,
+  48 /* Group of ? */,
+  4183 /* Id of ReduceAction1193 */,
+  4 /* Color of ReduceAction1193 */,
+  48 /* Group of ? */,
 };
 const char *LOCATE_parser_prod = "./parser//parser_prod.nit";
-const int SFT_parser_prod[261] = {
-  1 /* Property _parent */,
-  47 /* Property parent */,
-  48 /* Property parent= */,
-  49 /* Property remove_child */,
-  50 /* Property replace_child */,
-  51 /* Property replace_with */,
-  52 /* Property visit_all */,
-  53 /* Property visit_all_reverse */,
-  54 /* Property locate */,
-  55 /* Property line_number */,
-  56 /* Property printl */,
-  2 /* Property _first_token */,
-  3 /* Property _last_token */,
-  61 /* Property first_token */,
-  62 /* Property first_token= */,
-  63 /* Property last_token */,
-  64 /* Property last_token= */,
-  65 /* Property replace_with */,
+const int SFT_parser_prod[135] = {
+  2 /* Group of ? */,
+  52 /* Group of ? */,
+  65 /* Group of ? */,
   7 /* Id of Visitor */,
-  2 /* Color of Visitor */,
-  40 /* Color of Visitor */,
-  41 /* Property visit */,
-  69 /* Property empty_init */,
-  70 /* Property init_amodule */,
-  68 /* Property empty_init */,
-  69 /* Property init_apackagedecl */,
-  70 /* Property empty_init */,
-  71 /* Property init_aimport */,
-  70 /* Property empty_init */,
-  71 /* Property init_anoimport */,
-  69 /* Property empty_init */,
-  70 /* Property init_apublicvisibility */,
-  69 /* Property empty_init */,
-  70 /* Property init_aprivatevisibility */,
-  69 /* Property empty_init */,
-  70 /* Property init_aprotectedvisibility */,
-  69 /* Property empty_init */,
-  70 /* Property init_aintrudevisibility */,
-  76 /* Property empty_init */,
-  77 /* Property init_aclassdef */,
-  75 /* Property empty_init */,
-  76 /* Property init_atopclassdef */,
-  75 /* Property empty_init */,
-  76 /* Property init_amainclassdef */,
-  71 /* Property empty_init */,
-  72 /* Property init_aconcreteclasskind */,
-  71 /* Property empty_init */,
-  72 /* Property init_aabstractclasskind */,
-  71 /* Property empty_init */,
-  72 /* Property init_ainterfaceclasskind */,
-  71 /* Property empty_init */,
-  72 /* Property init_auniversalclasskind */,
-  70 /* Property empty_init */,
-  71 /* Property init_aformaldef */,
-  72 /* Property empty_init */,
-  73 /* Property init_asuperclass */,
-  80 /* Property empty_init */,
-  81 /* Property init_aattrpropdef */,
-  80 /* Property empty_init */,
-  81 /* Property init_amethpropdef */,
-  93 /* Property empty_init */,
-  94 /* Property init_adeferredmethpropdef */,
-  93 /* Property empty_init */,
-  94 /* Property init_ainternmethpropdef */,
-  93 /* Property empty_init */,
-  94 /* Property init_aexternmethpropdef */,
-  94 /* Property empty_init */,
-  95 /* Property init_aconcretemethpropdef */,
-  104 /* Property empty_init */,
-  105 /* Property init_aconcreteinitpropdef */,
-  101 /* Property empty_init */,
-  102 /* Property init_amainmethpropdef */,
-  78 /* Property empty_init */,
-  79 /* Property init_atypepropdef */,
-  70 /* Property empty_init */,
-  71 /* Property init_areadable */,
-  70 /* Property empty_init */,
-  71 /* Property init_awriteable */,
-  70 /* Property empty_init */,
-  71 /* Property init_aidmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_aplusmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_aminusmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_astarmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_aslashmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_apercentmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_aeqmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_anemethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_alemethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_agemethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_altmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_agtmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_abramethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_astarshipmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_aassignmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_abraassignmethid */,
-  70 /* Property empty_init */,
-  71 /* Property init_asignature */,
-  79 /* Property empty_init */,
-  80 /* Property init_aparam */,
-  74 /* Property empty_init */,
-  75 /* Property init_atype */,
-  76 /* Property empty_init */,
-  77 /* Property init_ablockexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_avardeclexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_areturnexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_abreakexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aabortexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_acontinueexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_adoexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_aifexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_aifexprexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_awhileexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_aforexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_aforvardeclexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_aassertexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_aonceexpr */,
-  97 /* Property empty_init */,
-  98 /* Property init_asendexpr */,
-  102 /* Property empty_init */,
-  103 /* Property init_abinopexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aorexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aandexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_anotexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_aeqexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aeeexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_aneexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_altexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_aleexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_agtexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_ageexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aisaexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_aplusexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_aminusexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_astarshipexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_astarexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_aslashexpr */,
-  107 /* Property empty_init */,
-  108 /* Property init_apercentexpr */,
-  102 /* Property empty_init */,
-  103 /* Property init_auminusexpr */,
-  94 /* Property empty_init */,
-  95 /* Property init_anewexpr */,
-  96 /* Property empty_init */,
-  97 /* Property init_aattrexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_aattrassignexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_aattrreassignexpr */,
-  109 /* Property empty_init */,
-  110 /* Property init_acallexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_acallassignexpr */,
-  109 /* Property empty_init */,
-  110 /* Property init_acallreassignexpr */,
-  95 /* Property empty_init */,
-  96 /* Property init_asuperexpr */,
-  102 /* Property empty_init */,
-  103 /* Property init_ainitexpr */,
-  105 /* Property empty_init */,
-  106 /* Property init_abraexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_abraassignexpr */,
-  105 /* Property empty_init */,
-  106 /* Property init_abrareassignexpr */,
-  82 /* Property empty_init */,
-  83 /* Property init_avarexpr */,
-  87 /* Property empty_init */,
-  88 /* Property init_avarassignexpr */,
-  89 /* Property empty_init */,
-  90 /* Property init_avarreassignexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_arangeexpr */,
-  84 /* Property empty_init */,
-  85 /* Property init_acrangeexpr */,
-  84 /* Property empty_init */,
-  85 /* Property init_aorangeexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aarrayexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_aselfexpr */,
-  81 /* Property empty_init */,
-  82 /* Property init_aimplicitselfexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_atrueexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_afalseexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_anullexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_aintexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_afloatexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_acharexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_astringexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_astartstringexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_amidstringexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_aendstringexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_asuperstringexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_aparexpr */,
-  76 /* Property empty_init */,
-  77 /* Property init_aascastexpr */,
-  69 /* Property empty_init */,
-  70 /* Property init_aplusassignop */,
-  69 /* Property empty_init */,
-  70 /* Property init_aminusassignop */,
-  68 /* Property empty_init */,
-  69 /* Property init_aqualified */,
-  68 /* Property empty_init */,
-  69 /* Property init_adoc */,
-  67 /* Property init */,
+  3 /* Color of Visitor */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  69 /* Group of ? */,
+  68 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  79 /* Group of ? */,
+  78 /* Group of ? */,
+  78 /* Group of ? */,
+  72 /* Group of ? */,
+  72 /* Group of ? */,
+  72 /* Group of ? */,
+  72 /* Group of ? */,
+  70 /* Group of ? */,
+  72 /* Group of ? */,
+  82 /* Group of ? */,
+  81 /* Group of ? */,
+  95 /* Group of ? */,
+  95 /* Group of ? */,
+  95 /* Group of ? */,
+  96 /* Group of ? */,
+  107 /* Group of ? */,
+  103 /* Group of ? */,
+  80 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  70 /* Group of ? */,
+  74 /* Group of ? */,
+  71 /* Group of ? */,
+  75 /* Group of ? */,
+  68 /* Group of ? */,
+  81 /* Group of ? */,
+  82 /* Group of ? */,
+  81 /* Group of ? */,
+  85 /* Group of ? */,
+  81 /* Group of ? */,
+  85 /* Group of ? */,
+  83 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  82 /* Group of ? */,
+  82 /* Group of ? */,
+  83 /* Group of ? */,
+  81 /* Group of ? */,
+  85 /* Group of ? */,
+  108 /* Group of ? */,
+  115 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  122 /* Group of ? */,
+  81 /* Group of ? */,
+  122 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  81 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  115 /* Group of ? */,
+  105 /* Group of ? */,
+  100 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  122 /* Group of ? */,
+  81 /* Group of ? */,
+  122 /* Group of ? */,
+  106 /* Group of ? */,
+  115 /* Group of ? */,
+  118 /* Group of ? */,
+  81 /* Group of ? */,
+  118 /* Group of ? */,
+  100 /* Group of ? */,
+  85 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  81 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  82 /* Group of ? */,
+  82 /* Group of ? */,
+  87 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  84 /* Group of ? */,
+  84 /* Group of ? */,
+  84 /* Group of ? */,
+  84 /* Group of ? */,
+  82 /* Group of ? */,
+  84 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  100 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  78 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
 };
 const char *LOCATE_lexer = "./parser//lexer.nit";
-const int SFT_lexer[125] = {
-  3 /* Property _text */,
-  4 /* Property _filename */,
-  5 /* Property _line */,
-  6 /* Property _pos */,
-  62 /* Property text */,
-  63 /* Property text= */,
-  64 /* Property filename */,
-  65 /* Property line */,
-  66 /* Property pos */,
-  67 /* Property parser_index */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  69 /* Property init */,
-  7 /* Property _message */,
-  71 /* Property message */,
-  72 /* Property message= */,
-  73 /* Property init_error */,
-  127 /* Id of Lexer */,
-  2 /* Color of Lexer */,
-  1 /* Property _token */,
-  2 /* Property _state */,
-  3 /* Property _filename */,
-  4 /* Property _stream */,
-  5 /* Property _stream_buf */,
-  6 /* Property _stream_pos */,
-  7 /* Property _line */,
-  8 /* Property _pos */,
-  9 /* Property _cr */,
-  10 /* Property _eof */,
-  11 /* Property _text */,
-  12 /* Property _goto_table */,
-  13 /* Property _accept_table */,
-  40 /* Color of Lexer */,
-  41 /* Property filename */,
-  42 /* Property state_initial */,
-  43 /* Property init */,
-  44 /* Property peek */,
-  45 /* Property next */,
-  46 /* Property get_token */,
-  47 /* Property get_char */,
-  48 /* Property push_back */,
-  49 /* Property build_goto_table */,
-  50 /* Property nil_array */,
-  51 /* Property build_accept_table */,
+const int SFT_lexer[96] = {
+  5 /* Group of ? */,
+  66 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  6 /* Group of ? */,
+  73 /* Group of ? */,
+  139 /* Id of Lexer */,
+  3 /* Color of Lexer */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
 };
 const char *LOCATE_parser_nodes = "./parser//parser_nodes.nit";
-const int SFT_parser_nodes[1257] = {
-  63 /* Id of PNode */,
-  2 /* Color of PNode */,
-  57 /* Color of PNode */,
-  183 /* Id of Token */,
-  3 /* Color of Token */,
-  68 /* Color of Token */,
-  2511 /* Id of Prod */,
-  3 /* Color of Prod */,
-  66 /* Color of Prod */,
-  2975 /* Id of TEol */,
-  4 /* Color of TEol */,
-  70 /* Color of TEol */,
-  2999 /* Id of TComment */,
-  4 /* Color of TComment */,
-  70 /* Color of TComment */,
-  2831 /* Id of TKwpackage */,
-  4 /* Color of TKwpackage */,
-  70 /* Color of TKwpackage */,
-  2887 /* Id of TKwimport */,
-  4 /* Color of TKwimport */,
-  70 /* Color of TKwimport */,
-  2923 /* Id of TKwclass */,
-  4 /* Color of TKwclass */,
-  70 /* Color of TKwclass */,
-  2947 /* Id of TKwabstract */,
-  4 /* Color of TKwabstract */,
-  70 /* Color of TKwabstract */,
-  2875 /* Id of TKwinterface */,
-  4 /* Color of TKwinterface */,
-  70 /* Color of TKwinterface */,
-  2783 /* Id of TKwuniversal */,
-  4 /* Color of TKwuniversal */,
-  70 /* Color of TKwuniversal */,
-  2803 /* Id of TKwspecial */,
-  4 /* Color of TKwspecial */,
-  70 /* Color of TKwspecial */,
-  2907 /* Id of TKwend */,
-  4 /* Color of TKwend */,
-  70 /* Color of TKwend */,
-  2855 /* Id of TKwmeth */,
-  4 /* Color of TKwmeth */,
-  70 /* Color of TKwmeth */,
-  2787 /* Id of TKwtype */,
-  4 /* Color of TKwtype */,
-  70 /* Color of TKwtype */,
-  2931 /* Id of TKwattr */,
-  4 /* Color of TKwattr */,
-  70 /* Color of TKwattr */,
-  2879 /* Id of TKwinit */,
-  4 /* Color of TKwinit */,
-  70 /* Color of TKwinit */,
-  2815 /* Id of TKwredef */,
-  4 /* Color of TKwredef */,
-  70 /* Color of TKwredef */,
-  2863 /* Id of TKwis */,
-  4 /* Color of TKwis */,
-  70 /* Color of TKwis */,
-  2915 /* Id of TKwdo */,
-  4 /* Color of TKwdo */,
-  70 /* Color of TKwdo */,
-  2819 /* Id of TKwreadable */,
-  4 /* Color of TKwreadable */,
-  70 /* Color of TKwreadable */,
-  2771 /* Id of TKwwritable */,
-  4 /* Color of TKwwritable */,
-  70 /* Color of TKwwritable */,
-  2779 /* Id of TKwvar */,
-  4 /* Color of TKwvar */,
-  70 /* Color of TKwvar */,
-  2871 /* Id of TKwintern */,
-  4 /* Color of TKwintern */,
-  70 /* Color of TKwintern */,
-  2903 /* Id of TKwextern */,
-  4 /* Color of TKwextern */,
-  70 /* Color of TKwextern */,
-  2823 /* Id of TKwprotected */,
-  4 /* Color of TKwprotected */,
-  70 /* Color of TKwprotected */,
-  2827 /* Id of TKwprivate */,
-  4 /* Color of TKwprivate */,
-  70 /* Color of TKwprivate */,
-  2867 /* Id of TKwintrude */,
-  4 /* Color of TKwintrude */,
-  70 /* Color of TKwintrude */,
-  2891 /* Id of TKwif */,
-  4 /* Color of TKwif */,
-  70 /* Color of TKwif */,
-  2795 /* Id of TKwthen */,
-  4 /* Color of TKwthen */,
-  70 /* Color of TKwthen */,
-  2911 /* Id of TKwelse */,
-  4 /* Color of TKwelse */,
-  70 /* Color of TKwelse */,
-  2775 /* Id of TKwwhile */,
-  4 /* Color of TKwwhile */,
-  70 /* Color of TKwwhile */,
-  2895 /* Id of TKwfor */,
-  4 /* Color of TKwfor */,
-  70 /* Color of TKwfor */,
-  2883 /* Id of TKwin */,
-  4 /* Color of TKwin */,
-  70 /* Color of TKwin */,
-  2943 /* Id of TKwand */,
-  4 /* Color of TKwand */,
-  70 /* Color of TKwand */,
-  2835 /* Id of TKwor */,
-  4 /* Color of TKwor */,
-  70 /* Color of TKwor */,
-  2847 /* Id of TKwnot */,
-  4 /* Color of TKwnot */,
-  70 /* Color of TKwnot */,
-  2811 /* Id of TKwreturn */,
-  4 /* Color of TKwreturn */,
-  70 /* Color of TKwreturn */,
-  2919 /* Id of TKwcontinue */,
-  4 /* Color of TKwcontinue */,
-  70 /* Color of TKwcontinue */,
-  2927 /* Id of TKwbreak */,
-  4 /* Color of TKwbreak */,
-  70 /* Color of TKwbreak */,
-  2951 /* Id of TKwabort */,
-  4 /* Color of TKwabort */,
-  70 /* Color of TKwabort */,
-  2935 /* Id of TKwassert */,
-  4 /* Color of TKwassert */,
-  70 /* Color of TKwassert */,
-  2851 /* Id of TKwnew */,
-  4 /* Color of TKwnew */,
-  70 /* Color of TKwnew */,
-  2859 /* Id of TKwisa */,
-  4 /* Color of TKwisa */,
-  70 /* Color of TKwisa */,
-  2839 /* Id of TKwonce */,
-  4 /* Color of TKwonce */,
-  70 /* Color of TKwonce */,
-  2799 /* Id of TKwsuper */,
-  4 /* Color of TKwsuper */,
-  70 /* Color of TKwsuper */,
-  2807 /* Id of TKwself */,
-  4 /* Color of TKwself */,
-  70 /* Color of TKwself */,
-  2791 /* Id of TKwtrue */,
-  4 /* Color of TKwtrue */,
-  70 /* Color of TKwtrue */,
-  2899 /* Id of TKwfalse */,
-  4 /* Color of TKwfalse */,
-  70 /* Color of TKwfalse */,
-  2843 /* Id of TKwnull */,
-  4 /* Color of TKwnull */,
-  70 /* Color of TKwnull */,
-  2939 /* Id of TKwas */,
-  4 /* Color of TKwas */,
-  70 /* Color of TKwas */,
-  2735 /* Id of TOpar */,
-  4 /* Color of TOpar */,
-  70 /* Color of TOpar */,
-  2995 /* Id of TCpar */,
-  4 /* Color of TCpar */,
-  70 /* Color of TCpar */,
-  2739 /* Id of TObra */,
-  4 /* Color of TObra */,
-  70 /* Color of TObra */,
-  3019 /* Id of TCbra */,
-  4 /* Color of TCbra */,
-  70 /* Color of TCbra */,
-  3003 /* Id of TComma */,
-  4 /* Color of TComma */,
-  70 /* Color of TComma */,
-  3007 /* Id of TColumn */,
-  4 /* Color of TColumn */,
-  70 /* Color of TColumn */,
-  2719 /* Id of TQuad */,
-  4 /* Color of TQuad */,
-  70 /* Color of TQuad */,
-  3027 /* Id of TAssign */,
-  4 /* Color of TAssign */,
-  70 /* Color of TAssign */,
-  2723 /* Id of TPluseq */,
-  4 /* Color of TPluseq */,
-  70 /* Color of TPluseq */,
-  2751 /* Id of TMinuseq */,
-  4 /* Color of TMinuseq */,
-  70 /* Color of TMinuseq */,
-  2983 /* Id of TDotdotdot */,
-  4 /* Color of TDotdotdot */,
-  70 /* Color of TDotdotdot */,
-  2987 /* Id of TDotdot */,
-  4 /* Color of TDotdot */,
-  70 /* Color of TDotdot */,
-  2991 /* Id of TDot */,
-  4 /* Color of TDot */,
-  70 /* Color of TDot */,
-  2727 /* Id of TPlus */,
-  4 /* Color of TPlus */,
-  70 /* Color of TPlus */,
-  2755 /* Id of TMinus */,
-  4 /* Color of TMinus */,
-  70 /* Color of TMinus */,
-  2711 /* Id of TStar */,
-  4 /* Color of TStar */,
-  70 /* Color of TStar */,
-  2715 /* Id of TSlash */,
-  4 /* Color of TSlash */,
-  70 /* Color of TSlash */,
-  2731 /* Id of TPercent */,
-  4 /* Color of TPercent */,
-  70 /* Color of TPercent */,
-  2971 /* Id of TEq */,
-  4 /* Color of TEq */,
-  70 /* Color of TEq */,
-  2747 /* Id of TNe */,
-  4 /* Color of TNe */,
-  70 /* Color of TNe */,
-  2763 /* Id of TLt */,
-  4 /* Color of TLt */,
-  70 /* Color of TLt */,
-  2767 /* Id of TLe */,
-  4 /* Color of TLe */,
-  70 /* Color of TLe */,
-  2959 /* Id of TGt */,
-  4 /* Color of TGt */,
-  70 /* Color of TGt */,
-  2963 /* Id of TGe */,
-  4 /* Color of TGe */,
-  70 /* Color of TGe */,
-  2707 /* Id of TStarship */,
-  4 /* Color of TStarship */,
-  70 /* Color of TStarship */,
-  3011 /* Id of TClassid */,
-  4 /* Color of TClassid */,
-  70 /* Color of TClassid */,
-  2955 /* Id of TId */,
-  4 /* Color of TId */,
-  70 /* Color of TId */,
-  3023 /* Id of TAttrid */,
-  4 /* Color of TAttrid */,
-  70 /* Color of TAttrid */,
-  2743 /* Id of TNumber */,
-  4 /* Color of TNumber */,
-  70 /* Color of TNumber */,
-  2967 /* Id of TFloat */,
-  4 /* Color of TFloat */,
-  70 /* Color of TFloat */,
-  3015 /* Id of TChar */,
-  4 /* Color of TChar */,
-  70 /* Color of TChar */,
-  2699 /* Id of TString */,
-  4 /* Color of TString */,
-  70 /* Color of TString */,
-  2703 /* Id of TStartString */,
-  4 /* Color of TStartString */,
-  70 /* Color of TStartString */,
-  2759 /* Id of TMidString */,
-  4 /* Color of TMidString */,
-  70 /* Color of TMidString */,
-  2979 /* Id of TEndString */,
-  4 /* Color of TEndString */,
-  70 /* Color of TEndString */,
-  3207 /* Id of EOF */,
-  4 /* Color of EOF */,
-  70 /* Color of EOF */,
-  3279 /* Id of PError */,
-  5 /* Color of PError */,
-  74 /* Color of PError */,
-  3079 /* Id of PModule */,
-  4 /* Color of PModule */,
-  67 /* Color of PModule */,
-  3075 /* Id of PPackagedecl */,
-  4 /* Color of PPackagedecl */,
-  67 /* Color of PPackagedecl */,
-  3087 /* Id of PImport */,
-  4 /* Color of PImport */,
-  69 /* Color of PImport */,
-  3047 /* Id of PVisibility */,
-  4 /* Color of PVisibility */,
-  68 /* Color of PVisibility */,
-  3107 /* Id of PClassdef */,
-  4 /* Color of PClassdef */,
-  73 /* Color of PClassdef */,
-  3103 /* Id of PClasskind */,
-  4 /* Color of PClasskind */,
-  70 /* Color of PClasskind */,
-  3091 /* Id of PFormaldef */,
-  4 /* Color of PFormaldef */,
-  67 /* Color of PFormaldef */,
-  3055 /* Id of PSuperclass */,
-  4 /* Color of PSuperclass */,
-  67 /* Color of PSuperclass */,
-  3067 /* Id of PPropdef */,
-  4 /* Color of PPropdef */,
-  4 /* Property _n_doc */,
-  71 /* Color of PPropdef */,
-  72 /* Property n_doc */,
-  73 /* Property n_doc= */,
-  3115 /* Id of PAble */,
-  4 /* Color of PAble */,
-  4 /* Property _n_kwredef */,
-  67 /* Color of PAble */,
-  68 /* Property n_kwredef */,
-  69 /* Property n_kwredef= */,
-  3083 /* Id of PMethid */,
-  4 /* Color of PMethid */,
-  69 /* Color of PMethid */,
-  3059 /* Id of PSignature */,
-  4 /* Color of PSignature */,
-  68 /* Color of PSignature */,
-  3071 /* Id of PParam */,
-  4 /* Color of PParam */,
-  7 /* Property _n_id */,
-  8 /* Property _n_type */,
-  73 /* Color of PParam */,
-  74 /* Property n_id */,
-  75 /* Property n_id= */,
-  76 /* Property n_type */,
-  77 /* Property n_type= */,
-  3051 /* Id of PType */,
-  4 /* Color of PType */,
-  72 /* Color of PType */,
-  3095 /* Id of PExpr */,
-  4 /* Color of PExpr */,
-  71 /* Color of PExpr */,
-  3111 /* Id of PAssignOp */,
-  4 /* Color of PAssignOp */,
-  68 /* Color of PAssignOp */,
-  3063 /* Id of PQualified */,
-  4 /* Color of PQualified */,
-  67 /* Color of PQualified */,
-  3099 /* Id of PDoc */,
-  4 /* Color of PDoc */,
-  67 /* Color of PDoc */,
-  3455 /* Id of AModule */,
+const int SFT_parser_nodes[829] = {
+  239 /* Id of ANode */,
+  3 /* Color of ANode */,
+  3 /* Group of ? */,
+  59 /* Group of ? */,
+  251 /* Id of Token */,
+  4 /* Color of Token */,
+  69 /* Group of ? */,
+  5059 /* Id of Prod */,
+  4 /* Color of Prod */,
+  66 /* Group of ? */,
+  5635 /* Id of TEol */,
+  5 /* Color of TEol */,
+  71 /* Group of ? */,
+  5659 /* Id of TComment */,
+  5 /* Color of TComment */,
+  71 /* Group of ? */,
+  5479 /* Id of TKwpackage */,
+  5 /* Color of TKwpackage */,
+  71 /* Group of ? */,
+  5551 /* Id of TKwimport */,
+  5 /* Color of TKwimport */,
+  71 /* Group of ? */,
+  5587 /* Id of TKwclass */,
+  5 /* Color of TKwclass */,
+  71 /* Group of ? */,
+  5607 /* Id of TKwabstract */,
+  5 /* Color of TKwabstract */,
+  71 /* Group of ? */,
+  5539 /* Id of TKwinterface */,
+  5 /* Color of TKwinterface */,
+  71 /* Group of ? */,
+  5431 /* Id of TKwuniversal */,
+  5 /* Color of TKwuniversal */,
+  71 /* Group of ? */,
+  5451 /* Id of TKwspecial */,
+  5 /* Color of TKwspecial */,
+  71 /* Group of ? */,
+  5571 /* Id of TKwend */,
+  5 /* Color of TKwend */,
+  71 /* Group of ? */,
+  5507 /* Id of TKwmeth */,
+  5 /* Color of TKwmeth */,
+  71 /* Group of ? */,
+  5435 /* Id of TKwtype */,
+  5 /* Color of TKwtype */,
+  71 /* Group of ? */,
+  5543 /* Id of TKwinit */,
+  5 /* Color of TKwinit */,
+  71 /* Group of ? */,
+  5463 /* Id of TKwredef */,
+  5 /* Color of TKwredef */,
+  71 /* Group of ? */,
+  5527 /* Id of TKwis */,
+  5 /* Color of TKwis */,
+  71 /* Group of ? */,
+  5579 /* Id of TKwdo */,
+  5 /* Color of TKwdo */,
+  71 /* Group of ? */,
+  5467 /* Id of TKwreadable */,
+  5 /* Color of TKwreadable */,
+  71 /* Group of ? */,
+  5419 /* Id of TKwwritable */,
+  5 /* Color of TKwwritable */,
+  71 /* Group of ? */,
+  5427 /* Id of TKwvar */,
+  5 /* Color of TKwvar */,
+  71 /* Group of ? */,
+  5535 /* Id of TKwintern */,
+  5 /* Color of TKwintern */,
+  71 /* Group of ? */,
+  5567 /* Id of TKwextern */,
+  5 /* Color of TKwextern */,
+  71 /* Group of ? */,
+  5471 /* Id of TKwprotected */,
+  5 /* Color of TKwprotected */,
+  71 /* Group of ? */,
+  5475 /* Id of TKwprivate */,
+  5 /* Color of TKwprivate */,
+  71 /* Group of ? */,
+  5531 /* Id of TKwintrude */,
+  5 /* Color of TKwintrude */,
+  71 /* Group of ? */,
+  5555 /* Id of TKwif */,
+  5 /* Color of TKwif */,
+  71 /* Group of ? */,
+  5443 /* Id of TKwthen */,
+  5 /* Color of TKwthen */,
+  71 /* Group of ? */,
+  5575 /* Id of TKwelse */,
+  5 /* Color of TKwelse */,
+  71 /* Group of ? */,
+  5423 /* Id of TKwwhile */,
+  5 /* Color of TKwwhile */,
+  71 /* Group of ? */,
+  5511 /* Id of TKwloop */,
+  5 /* Color of TKwloop */,
+  71 /* Group of ? */,
+  5559 /* Id of TKwfor */,
+  5 /* Color of TKwfor */,
+  71 /* Group of ? */,
+  5547 /* Id of TKwin */,
+  5 /* Color of TKwin */,
+  71 /* Group of ? */,
+  5603 /* Id of TKwand */,
+  5 /* Color of TKwand */,
+  71 /* Group of ? */,
+  5483 /* Id of TKwor */,
+  5 /* Color of TKwor */,
+  71 /* Group of ? */,
+  5499 /* Id of TKwnot */,
+  5 /* Color of TKwnot */,
+  71 /* Group of ? */,
+  5459 /* Id of TKwreturn */,
+  5 /* Color of TKwreturn */,
+  71 /* Group of ? */,
+  5583 /* Id of TKwcontinue */,
+  5 /* Color of TKwcontinue */,
+  71 /* Group of ? */,
+  5591 /* Id of TKwbreak */,
+  5 /* Color of TKwbreak */,
+  71 /* Group of ? */,
+  5611 /* Id of TKwabort */,
+  5 /* Color of TKwabort */,
+  71 /* Group of ? */,
+  5595 /* Id of TKwassert */,
+  5 /* Color of TKwassert */,
+  71 /* Group of ? */,
+  5503 /* Id of TKwnew */,
+  5 /* Color of TKwnew */,
+  71 /* Group of ? */,
+  5523 /* Id of TKwisa */,
+  5 /* Color of TKwisa */,
+  71 /* Group of ? */,
+  5487 /* Id of TKwonce */,
+  5 /* Color of TKwonce */,
+  71 /* Group of ? */,
+  5447 /* Id of TKwsuper */,
+  5 /* Color of TKwsuper */,
+  71 /* Group of ? */,
+  5455 /* Id of TKwself */,
+  5 /* Color of TKwself */,
+  71 /* Group of ? */,
+  5439 /* Id of TKwtrue */,
+  5 /* Color of TKwtrue */,
+  71 /* Group of ? */,
+  5563 /* Id of TKwfalse */,
+  5 /* Color of TKwfalse */,
+  71 /* Group of ? */,
+  5495 /* Id of TKwnull */,
+  5 /* Color of TKwnull */,
+  71 /* Group of ? */,
+  5599 /* Id of TKwas */,
+  5 /* Color of TKwas */,
+  71 /* Group of ? */,
+  5491 /* Id of TKwnullable */,
+  5 /* Color of TKwnullable */,
+  71 /* Group of ? */,
+  5519 /* Id of TKwisset */,
+  5 /* Color of TKwisset */,
+  71 /* Group of ? */,
+  5515 /* Id of TKwlabel */,
+  5 /* Color of TKwlabel */,
+  71 /* Group of ? */,
+  5383 /* Id of TOpar */,
+  5 /* Color of TOpar */,
+  71 /* Group of ? */,
+  5655 /* Id of TCpar */,
+  5 /* Color of TCpar */,
+  71 /* Group of ? */,
+  5387 /* Id of TObra */,
+  5 /* Color of TObra */,
+  71 /* Group of ? */,
+  5679 /* Id of TCbra */,
+  5 /* Color of TCbra */,
+  71 /* Group of ? */,
+  5663 /* Id of TComma */,
+  5 /* Color of TComma */,
+  71 /* Group of ? */,
+  5667 /* Id of TColumn */,
+  5 /* Color of TColumn */,
+  71 /* Group of ? */,
+  5367 /* Id of TQuad */,
+  5 /* Color of TQuad */,
+  71 /* Group of ? */,
+  5691 /* Id of TAssign */,
+  5 /* Color of TAssign */,
+  71 /* Group of ? */,
+  5371 /* Id of TPluseq */,
+  5 /* Color of TPluseq */,
+  71 /* Group of ? */,
+  5399 /* Id of TMinuseq */,
+  5 /* Color of TMinuseq */,
+  71 /* Group of ? */,
+  5643 /* Id of TDotdotdot */,
+  5 /* Color of TDotdotdot */,
+  71 /* Group of ? */,
+  5647 /* Id of TDotdot */,
+  5 /* Color of TDotdot */,
+  71 /* Group of ? */,
+  5651 /* Id of TDot */,
+  5 /* Color of TDot */,
+  71 /* Group of ? */,
+  5375 /* Id of TPlus */,
+  5 /* Color of TPlus */,
+  71 /* Group of ? */,
+  5403 /* Id of TMinus */,
+  5 /* Color of TMinus */,
+  71 /* Group of ? */,
+  5359 /* Id of TStar */,
+  5 /* Color of TStar */,
+  71 /* Group of ? */,
+  5363 /* Id of TSlash */,
+  5 /* Color of TSlash */,
+  71 /* Group of ? */,
+  5379 /* Id of TPercent */,
+  5 /* Color of TPercent */,
+  71 /* Group of ? */,
+  5631 /* Id of TEq */,
+  5 /* Color of TEq */,
+  71 /* Group of ? */,
+  5395 /* Id of TNe */,
+  5 /* Color of TNe */,
+  71 /* Group of ? */,
+  5411 /* Id of TLt */,
+  5 /* Color of TLt */,
+  71 /* Group of ? */,
+  5415 /* Id of TLe */,
+  5 /* Color of TLe */,
+  71 /* Group of ? */,
+  5619 /* Id of TGt */,
+  5 /* Color of TGt */,
+  71 /* Group of ? */,
+  5623 /* Id of TGe */,
+  5 /* Color of TGe */,
+  71 /* Group of ? */,
+  5355 /* Id of TStarship */,
+  5 /* Color of TStarship */,
+  71 /* Group of ? */,
+  5683 /* Id of TBang */,
+  5 /* Color of TBang */,
+  71 /* Group of ? */,
+  5671 /* Id of TClassid */,
+  5 /* Color of TClassid */,
+  71 /* Group of ? */,
+  5615 /* Id of TId */,
+  5 /* Color of TId */,
+  71 /* Group of ? */,
+  5687 /* Id of TAttrid */,
+  5 /* Color of TAttrid */,
+  71 /* Group of ? */,
+  5391 /* Id of TNumber */,
+  5 /* Color of TNumber */,
+  71 /* Group of ? */,
+  5627 /* Id of TFloat */,
+  5 /* Color of TFloat */,
+  71 /* Group of ? */,
+  5675 /* Id of TChar */,
+  5 /* Color of TChar */,
+  71 /* Group of ? */,
+  5347 /* Id of TString */,
+  5 /* Color of TString */,
+  71 /* Group of ? */,
+  5351 /* Id of TStartString */,
+  5 /* Color of TStartString */,
+  71 /* Group of ? */,
+  5407 /* Id of TMidString */,
+  5 /* Color of TMidString */,
+  71 /* Group of ? */,
+  5639 /* Id of TEndString */,
+  5 /* Color of TEndString */,
+  71 /* Group of ? */,
+  5883 /* Id of EOF */,
+  5 /* Color of EOF */,
+  71 /* Group of ? */,
+  6299 /* Id of AError */,
+  6 /* Color of AError */,
+  76 /* Group of ? */,
+  5947 /* Id of AModule */,
   5 /* Color of AModule */,
-  4 /* Property _n_packagedecl */,
-  5 /* Property _n_imports */,
-  6 /* Property _n_classdefs */,
-  71 /* Color of AModule */,
-  72 /* Property n_packagedecl */,
-  73 /* Property n_packagedecl= */,
-  74 /* Property n_imports */,
-  75 /* Property n_imports= */,
-  76 /* Property n_classdefs */,
-  77 /* Property n_classdefs= */,
-  3439 /* Id of APackagedecl */,
+  6 /* Group of ? */,
+  71 /* Group of ? */,
+  5943 /* Id of APackagedecl */,
   5 /* Color of APackagedecl */,
-  4 /* Property _n_doc */,
-  5 /* Property _n_kwpackage */,
-  6 /* Property _n_id */,
-  70 /* Color of APackagedecl */,
-  71 /* Property n_doc */,
-  72 /* Property n_doc= */,
-  73 /* Property n_kwpackage */,
-  74 /* Property n_kwpackage= */,
-  75 /* Property n_id */,
-  76 /* Property n_id= */,
-  3495 /* Id of AImport */,
+  6 /* Group of ? */,
+  70 /* Group of ? */,
+  5963 /* Id of AImport */,
   5 /* Color of AImport */,
-  4 /* Property _n_visibility */,
-  5 /* Property _n_kwimport */,
-  6 /* Property _n_id */,
-  72 /* Color of AImport */,
-  73 /* Property n_visibility */,
-  74 /* Property n_visibility= */,
-  75 /* Property n_kwimport */,
-  76 /* Property n_kwimport= */,
-  77 /* Property n_id */,
-  78 /* Property n_id= */,
-  3447 /* Id of ANoImport */,
-  5 /* Color of ANoImport */,
-  4 /* Property _n_visibility */,
-  5 /* Property _n_kwimport */,
-  6 /* Property _n_kwend */,
-  72 /* Color of ANoImport */,
-  73 /* Property n_visibility */,
-  74 /* Property n_visibility= */,
-  75 /* Property n_kwimport */,
-  76 /* Property n_kwimport= */,
-  77 /* Property n_kwend */,
-  78 /* Property n_kwend= */,
-  3407 /* Id of APublicVisibility */,
-  5 /* Color of APublicVisibility */,
-  71 /* Color of APublicVisibility */,
-  3419 /* Id of APrivateVisibility */,
-  5 /* Color of APrivateVisibility */,
-  4 /* Property _n_kwprivate */,
-  71 /* Color of APrivateVisibility */,
-  72 /* Property n_kwprivate */,
-  73 /* Property n_kwprivate= */,
-  3415 /* Id of AProtectedVisibility */,
-  5 /* Color of AProtectedVisibility */,
-  4 /* Property _n_kwprotected */,
-  71 /* Color of AProtectedVisibility */,
-  72 /* Property n_kwprotected */,
-  73 /* Property n_kwprotected= */,
-  3483 /* Id of AIntrudeVisibility */,
-  5 /* Color of AIntrudeVisibility */,
-  4 /* Property _n_kwintrude */,
-  71 /* Color of AIntrudeVisibility */,
-  72 /* Property n_kwintrude */,
-  73 /* Property n_kwintrude= */,
-  3551 /* Id of AClassdef */,
+  70 /* Group of ? */,
+  6143 /* Id of AStdImport */,
+  6 /* Color of AStdImport */,
+  6 /* Group of ? */,
+  73 /* Group of ? */,
+  6219 /* Id of ANoImport */,
+  6 /* Color of ANoImport */,
+  6 /* Group of ? */,
+  73 /* Group of ? */,
+  5915 /* Id of AVisibility */,
+  5 /* Color of AVisibility */,
+  69 /* Group of ? */,
+  6187 /* Id of APublicVisibility */,
+  6 /* Color of APublicVisibility */,
+  72 /* Group of ? */,
+  6199 /* Id of APrivateVisibility */,
+  6 /* Color of APrivateVisibility */,
+  6 /* Group of ? */,
+  72 /* Group of ? */,
+  6195 /* Id of AProtectedVisibility */,
+  6 /* Color of AProtectedVisibility */,
+  6 /* Group of ? */,
+  72 /* Group of ? */,
+  6255 /* Id of AIntrudeVisibility */,
+  6 /* Color of AIntrudeVisibility */,
+  6 /* Group of ? */,
+  72 /* Group of ? */,
+  5991 /* Id of AClassdef */,
   5 /* Color of AClassdef */,
-  5 /* Property _n_doc */,
-  6 /* Property _n_kwredef */,
-  7 /* Property _n_visibility */,
-  8 /* Property _n_classkind */,
-  9 /* Property _n_id */,
-  10 /* Property _n_formaldefs */,
-  11 /* Property _n_superclasses */,
-  12 /* Property _n_propdefs */,
-  78 /* Color of AClassdef */,
-  79 /* Property n_doc */,
-  80 /* Property n_doc= */,
-  81 /* Property n_kwredef */,
-  82 /* Property n_kwredef= */,
-  83 /* Property n_visibility */,
-  84 /* Property n_visibility= */,
-  85 /* Property n_classkind */,
-  86 /* Property n_classkind= */,
-  87 /* Property n_id */,
-  88 /* Property n_id= */,
-  89 /* Property n_formaldefs */,
-  90 /* Property n_formaldefs= */,
-  91 /* Property n_superclasses */,
-  92 /* Property n_superclasses= */,
-  93 /* Property n_propdefs */,
-  94 /* Property n_propdefs= */,
-  3351 /* Id of ATopClassdef */,
-  5 /* Color of ATopClassdef */,
-  5 /* Property _n_propdefs */,
-  77 /* Color of ATopClassdef */,
-  78 /* Property n_propdefs */,
-  79 /* Property n_propdefs= */,
-  3471 /* Id of AMainClassdef */,
-  5 /* Color of AMainClassdef */,
-  5 /* Property _n_propdefs */,
-  77 /* Color of AMainClassdef */,
-  78 /* Property n_propdefs */,
-  79 /* Property n_propdefs= */,
-  3547 /* Id of AConcreteClasskind */,
-  5 /* Color of AConcreteClasskind */,
-  4 /* Property _n_kwclass */,
-  73 /* Color of AConcreteClasskind */,
-  74 /* Property n_kwclass */,
-  75 /* Property n_kwclass= */,
-  3607 /* Id of AAbstractClasskind */,
-  5 /* Color of AAbstractClasskind */,
-  4 /* Property _n_kwabstract */,
-  5 /* Property _n_kwclass */,
-  73 /* Color of AAbstractClasskind */,
-  74 /* Property n_kwabstract */,
-  75 /* Property n_kwabstract= */,
-  76 /* Property n_kwclass */,
-  77 /* Property n_kwclass= */,
-  3487 /* Id of AInterfaceClasskind */,
-  5 /* Color of AInterfaceClasskind */,
-  4 /* Property _n_kwinterface */,
-  73 /* Color of AInterfaceClasskind */,
-  74 /* Property n_kwinterface */,
-  75 /* Property n_kwinterface= */,
-  3339 /* Id of AUniversalClasskind */,
-  5 /* Color of AUniversalClasskind */,
-  4 /* Property _n_kwuniversal */,
-  73 /* Color of AUniversalClasskind */,
-  74 /* Property n_kwuniversal */,
-  75 /* Property n_kwuniversal= */,
-  3519 /* Id of AFormaldef */,
+  76 /* Group of ? */,
+  6147 /* Id of AStdClassdef */,
+  6 /* Color of AStdClassdef */,
+  8 /* Group of ? */,
+  81 /* Group of ? */,
+  6131 /* Id of ATopClassdef */,
+  6 /* Color of ATopClassdef */,
+  8 /* Group of ? */,
+  80 /* Group of ? */,
+  6239 /* Id of AMainClassdef */,
+  6 /* Color of AMainClassdef */,
+  8 /* Group of ? */,
+  80 /* Group of ? */,
+  5987 /* Id of AClasskind */,
+  5 /* Color of AClasskind */,
+  71 /* Group of ? */,
+  6311 /* Id of AConcreteClasskind */,
+  6 /* Color of AConcreteClasskind */,
+  6 /* Group of ? */,
+  74 /* Group of ? */,
+  6371 /* Id of AAbstractClasskind */,
+  6 /* Color of AAbstractClasskind */,
+  6 /* Group of ? */,
+  74 /* Group of ? */,
+  6259 /* Id of AInterfaceClasskind */,
+  6 /* Color of AInterfaceClasskind */,
+  6 /* Group of ? */,
+  74 /* Group of ? */,
+  6119 /* Id of AUniversalClasskind */,
+  6 /* Color of AUniversalClasskind */,
+  6 /* Group of ? */,
+  74 /* Group of ? */,
+  5967 /* Id of AFormaldef */,
   5 /* Color of AFormaldef */,
-  5 /* Property _n_id */,
-  6 /* Property _n_type */,
-  72 /* Color of AFormaldef */,
-  73 /* Property n_id */,
-  74 /* Property n_id= */,
-  75 /* Property n_type */,
-  76 /* Property n_type= */,
-  3359 /* Id of ASuperclass */,
+  7 /* Group of ? */,
+  72 /* Group of ? */,
+  5923 /* Id of ASuperclass */,
   5 /* Color of ASuperclass */,
-  5 /* Property _n_kwspecial */,
-  6 /* Property _n_type */,
-  74 /* Color of ASuperclass */,
-  75 /* Property n_kwspecial */,
-  76 /* Property n_kwspecial= */,
-  77 /* Property n_type */,
-  78 /* Property n_type= */,
-  3579 /* Id of AAttrPropdef */,
-  5 /* Color of AAttrPropdef */,
-  8 /* Property _n_kwredef */,
-  9 /* Property _n_visibility */,
-  10 /* Property _n_kwattr */,
-  11 /* Property _n_id */,
-  12 /* Property _n_type */,
-  13 /* Property _n_readable */,
-  14 /* Property _n_writable */,
-  15 /* Property _n_expr */,
-  82 /* Color of AAttrPropdef */,
-  83 /* Property n_kwredef */,
-  84 /* Property n_kwredef= */,
-  85 /* Property n_visibility */,
-  86 /* Property n_visibility= */,
-  87 /* Property n_kwattr */,
-  88 /* Property n_kwattr= */,
-  89 /* Property n_id */,
-  90 /* Property n_id= */,
-  91 /* Property n_type */,
-  92 /* Property n_type= */,
-  93 /* Property n_readable */,
-  94 /* Property n_readable= */,
-  95 /* Property n_writable */,
-  96 /* Property n_writable= */,
-  97 /* Property n_expr */,
-  98 /* Property n_expr= */,
-  3467 /* Id of AMethPropdef */,
-  5 /* Color of AMethPropdef */,
-  7 /* Property _n_kwredef */,
-  8 /* Property _n_visibility */,
-  9 /* Property _n_methid */,
-  10 /* Property _n_signature */,
-  82 /* Color of AMethPropdef */,
-  83 /* Property n_kwredef */,
-  84 /* Property n_kwredef= */,
-  85 /* Property n_visibility */,
-  86 /* Property n_visibility= */,
-  87 /* Property n_methid */,
-  88 /* Property n_methid= */,
-  89 /* Property n_signature */,
-  90 /* Property n_signature= */,
-  3747 /* Id of ADeferredMethPropdef */,
-  6 /* Color of ADeferredMethPropdef */,
-  11 /* Property _n_kwmeth */,
-  95 /* Color of ADeferredMethPropdef */,
-  96 /* Property n_kwmeth */,
-  97 /* Property n_kwmeth= */,
-  3719 /* Id of AInternMethPropdef */,
-  6 /* Color of AInternMethPropdef */,
-  11 /* Property _n_kwmeth */,
-  95 /* Color of AInternMethPropdef */,
-  96 /* Property n_kwmeth */,
-  97 /* Property n_kwmeth= */,
-  3735 /* Id of AExternMethPropdef */,
-  6 /* Color of AExternMethPropdef */,
-  11 /* Property _n_kwmeth */,
-  12 /* Property _n_extern */,
-  95 /* Color of AExternMethPropdef */,
-  96 /* Property n_kwmeth */,
-  97 /* Property n_kwmeth= */,
-  98 /* Property n_extern */,
-  99 /* Property n_extern= */,
-  3759 /* Id of AConcreteMethPropdef */,
-  6 /* Color of AConcreteMethPropdef */,
-  11 /* Property _n_kwmeth */,
-  12 /* Property _n_block */,
-  96 /* Color of AConcreteMethPropdef */,
-  97 /* Property n_kwmeth */,
-  98 /* Property n_kwmeth= */,
-  99 /* Property n_block */,
-  100 /* Property n_block= */,
-  3803 /* Id of AConcreteInitPropdef */,
-  7 /* Color of AConcreteInitPropdef */,
-  15 /* Property _n_kwinit */,
-  106 /* Color of AConcreteInitPropdef */,
-  107 /* Property n_kwinit */,
-  108 /* Property n_kwinit= */,
-  3799 /* Id of AMainMethPropdef */,
-  7 /* Color of AMainMethPropdef */,
-  103 /* Color of AMainMethPropdef */,
-  3343 /* Id of ATypePropdef */,
-  5 /* Color of ATypePropdef */,
-  6 /* Property _n_kwredef */,
-  7 /* Property _n_visibility */,
-  8 /* Property _n_kwtype */,
-  9 /* Property _n_id */,
-  10 /* Property _n_type */,
-  80 /* Color of ATypePropdef */,
-  81 /* Property n_kwredef */,
-  82 /* Property n_kwredef= */,
-  83 /* Property n_visibility */,
-  84 /* Property n_visibility= */,
-  85 /* Property n_kwtype */,
-  86 /* Property n_kwtype= */,
-  87 /* Property n_id */,
-  88 /* Property n_id= */,
-  89 /* Property n_type */,
-  90 /* Property n_type= */,
-  3395 /* Id of AReadAble */,
-  5 /* Color of AReadAble */,
-  5 /* Property _n_kwreadable */,
-  72 /* Color of AReadAble */,
-  73 /* Property n_kwreadable */,
-  74 /* Property n_kwreadable= */,
-  3327 /* Id of AWriteAble */,
-  5 /* Color of AWriteAble */,
-  5 /* Property _n_kwwritable */,
-  72 /* Color of AWriteAble */,
-  73 /* Property n_kwwritable */,
-  74 /* Property n_kwwritable= */,
-  3507 /* Id of AIdMethid */,
-  5 /* Color of AIdMethid */,
-  5 /* Property _n_id */,
-  72 /* Color of AIdMethid */,
-  73 /* Property n_id */,
-  74 /* Property n_id= */,
-  3423 /* Id of APlusMethid */,
-  5 /* Color of APlusMethid */,
-  5 /* Property _n_plus */,
-  72 /* Color of APlusMethid */,
-  73 /* Property n_plus */,
-  74 /* Property n_plus= */,
-  3459 /* Id of AMinusMethid */,
-  5 /* Color of AMinusMethid */,
-  5 /* Property _n_minus */,
-  72 /* Color of AMinusMethid */,
-  73 /* Property n_minus */,
-  74 /* Property n_minus= */,
-  3371 /* Id of AStarMethid */,
-  5 /* Color of AStarMethid */,
-  5 /* Property _n_star */,
-  72 /* Color of AStarMethid */,
-  73 /* Property n_star */,
-  74 /* Property n_star= */,
-  3375 /* Id of ASlashMethid */,
-  5 /* Color of ASlashMethid */,
-  5 /* Property _n_slash */,
-  72 /* Color of ASlashMethid */,
-  73 /* Property n_slash */,
-  74 /* Property n_slash= */,
-  3431 /* Id of APercentMethid */,
-  5 /* Color of APercentMethid */,
-  5 /* Property _n_percent */,
-  72 /* Color of APercentMethid */,
-  73 /* Property n_percent */,
-  74 /* Property n_percent= */,
-  3531 /* Id of AEqMethid */,
-  5 /* Color of AEqMethid */,
-  5 /* Property _n_eq */,
-  72 /* Color of AEqMethid */,
-  73 /* Property n_eq */,
-  74 /* Property n_eq= */,
-  3451 /* Id of ANeMethid */,
-  5 /* Color of ANeMethid */,
-  5 /* Property _n_ne */,
-  72 /* Color of ANeMethid */,
-  73 /* Property n_ne */,
-  74 /* Property n_ne= */,
-  3479 /* Id of ALeMethid */,
-  5 /* Color of ALeMethid */,
-  5 /* Property _n_le */,
-  72 /* Color of ALeMethid */,
-  73 /* Property n_le */,
-  74 /* Property n_le= */,
-  3515 /* Id of AGeMethid */,
-  5 /* Color of AGeMethid */,
-  5 /* Property _n_ge */,
-  72 /* Color of AGeMethid */,
-  73 /* Property n_ge */,
-  74 /* Property n_ge= */,
-  3475 /* Id of ALtMethid */,
-  5 /* Color of ALtMethid */,
-  5 /* Property _n_lt */,
-  72 /* Color of ALtMethid */,
-  73 /* Property n_lt */,
-  74 /* Property n_lt= */,
-  3511 /* Id of AGtMethid */,
-  5 /* Color of AGtMethid */,
-  5 /* Property _n_gt */,
-  72 /* Color of AGtMethid */,
-  73 /* Property n_gt */,
-  74 /* Property n_gt= */,
-  3563 /* Id of ABraMethid */,
-  5 /* Color of ABraMethid */,
-  5 /* Property _n_obra */,
-  6 /* Property _n_cbra */,
-  72 /* Color of ABraMethid */,
-  73 /* Property n_obra */,
-  74 /* Property n_obra= */,
-  75 /* Property n_cbra */,
-  76 /* Property n_cbra= */,
-  3367 /* Id of AStarshipMethid */,
-  5 /* Color of AStarshipMethid */,
-  5 /* Property _n_starship */,
-  72 /* Color of AStarshipMethid */,
-  73 /* Property n_starship */,
-  74 /* Property n_starship= */,
-  3587 /* Id of AAssignMethid */,
-  5 /* Color of AAssignMethid */,
-  5 /* Property _n_id */,
-  6 /* Property _n_assign */,
-  72 /* Color of AAssignMethid */,
-  73 /* Property n_id */,
-  74 /* Property n_id= */,
-  75 /* Property n_assign */,
-  76 /* Property n_assign= */,
-  3559 /* Id of ABraassignMethid */,
-  5 /* Color of ABraassignMethid */,
-  5 /* Property _n_obra */,
-  6 /* Property _n_cbra */,
-  7 /* Property _n_assign */,
-  72 /* Color of ABraassignMethid */,
-  73 /* Property n_obra */,
-  74 /* Property n_obra= */,
-  75 /* Property n_cbra */,
-  76 /* Property n_cbra= */,
-  77 /* Property n_assign */,
-  78 /* Property n_assign= */,
-  3379 /* Id of ASignature */,
+  7 /* Group of ? */,
+  74 /* Group of ? */,
+  5935 /* Id of APropdef */,
+  5 /* Color of APropdef */,
+  6 /* Group of ? */,
+  73 /* Group of ? */,
+  6343 /* Id of AAttrPropdef */,
+  6 /* Color of AAttrPropdef */,
+  11 /* Group of ? */,
+  84 /* Group of ? */,
+  6235 /* Id of AMethPropdef */,
+  6 /* Color of AMethPropdef */,
+  10 /* Group of ? */,
+  83 /* Group of ? */,
+  6507 /* Id of ADeferredMethPropdef */,
+  7 /* Color of ADeferredMethPropdef */,
+  14 /* Group of ? */,
+  97 /* Group of ? */,
+  6483 /* Id of AInternMethPropdef */,
+  7 /* Color of AInternMethPropdef */,
+  14 /* Group of ? */,
+  97 /* Group of ? */,
+  6495 /* Id of AExternMethPropdef */,
+  7 /* Color of AExternMethPropdef */,
+  14 /* Group of ? */,
+  97 /* Group of ? */,
+  6519 /* Id of AConcreteMethPropdef */,
+  7 /* Color of AConcreteMethPropdef */,
+  14 /* Group of ? */,
+  98 /* Group of ? */,
+  6579 /* Id of AConcreteInitPropdef */,
+  8 /* Color of AConcreteInitPropdef */,
+  18 /* Group of ? */,
+  109 /* Group of ? */,
+  6575 /* Id of AMainMethPropdef */,
+  8 /* Color of AMainMethPropdef */,
+  105 /* Group of ? */,
+  6123 /* Id of ATypePropdef */,
+  6 /* Color of ATypePropdef */,
+  9 /* Group of ? */,
+  82 /* Group of ? */,
+  5999 /* Id of AAble */,
+  5 /* Color of AAble */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  6179 /* Id of AReadAble */,
+  6 /* Color of AReadAble */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6103 /* Id of AWriteAble */,
+  6 /* Color of AWriteAble */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  5951 /* Id of AMethid */,
+  5 /* Color of AMethid */,
+  70 /* Group of ? */,
+  6275 /* Id of AIdMethid */,
+  6 /* Color of AIdMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6203 /* Id of APlusMethid */,
+  6 /* Color of APlusMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6227 /* Id of AMinusMethid */,
+  6 /* Color of AMinusMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6155 /* Id of AStarMethid */,
+  6 /* Color of AStarMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6159 /* Id of ASlashMethid */,
+  6 /* Color of ASlashMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6211 /* Id of APercentMethid */,
+  6 /* Color of APercentMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6303 /* Id of AEqMethid */,
+  6 /* Color of AEqMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6223 /* Id of ANeMethid */,
+  6 /* Color of ANeMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6251 /* Id of ALeMethid */,
+  6 /* Color of ALeMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6283 /* Id of AGeMethid */,
+  6 /* Color of AGeMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6243 /* Id of ALtMethid */,
+  6 /* Color of ALtMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6279 /* Id of AGtMethid */,
+  6 /* Color of AGtMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6331 /* Id of ABraMethid */,
+  6 /* Color of ABraMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6151 /* Id of AStarshipMethid */,
+  6 /* Color of AStarshipMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6351 /* Id of AAssignMethid */,
+  6 /* Color of AAssignMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  6327 /* Id of ABraassignMethid */,
+  6 /* Color of ABraassignMethid */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  5927 /* Id of ASignature */,
   5 /* Color of ASignature */,
-  4 /* Property _n_params */,
-  5 /* Property _n_type */,
-  72 /* Color of ASignature */,
-  73 /* Property n_params */,
-  74 /* Property n_params= */,
-  75 /* Property n_type */,
-  76 /* Property n_type= */,
-  3435 /* Id of AParam */,
+  6 /* Group of ? */,
+  72 /* Group of ? */,
+  5939 /* Id of AParam */,
   5 /* Color of AParam */,
-  9 /* Property _n_dotdotdot */,
-  81 /* Color of AParam */,
-  82 /* Property n_dotdotdot */,
-  83 /* Property n_dotdotdot= */,
-  3347 /* Id of AType */,
+  9 /* Group of ? */,
+  76 /* Group of ? */,
+  5983 /* Id of AClosureDecl */,
+  5 /* Color of AClosureDecl */,
+  8 /* Group of ? */,
+  73 /* Group of ? */,
+  5919 /* Id of AType */,
   5 /* Color of AType */,
-  7 /* Property _n_id */,
-  8 /* Property _n_types */,
-  76 /* Color of AType */,
-  77 /* Property n_id */,
-  78 /* Property n_id= */,
-  79 /* Property n_types */,
-  80 /* Property n_types= */,
-  3571 /* Id of ABlockExpr */,
-  5 /* Color of ABlockExpr */,
-  6 /* Property _n_expr */,
-  78 /* Color of ABlockExpr */,
-  79 /* Property n_expr */,
-  80 /* Property n_expr= */,
-  3331 /* Id of AVardeclExpr */,
-  5 /* Color of AVardeclExpr */,
-  7 /* Property _n_kwvar */,
-  8 /* Property _n_id */,
-  9 /* Property _n_type */,
-  10 /* Property _n_assign */,
-  11 /* Property _n_expr */,
-  81 /* Color of AVardeclExpr */,
-  82 /* Property n_kwvar */,
-  83 /* Property n_kwvar= */,
-  84 /* Property n_id */,
-  85 /* Property n_id= */,
-  86 /* Property n_type */,
-  87 /* Property n_type= */,
-  88 /* Property n_assign */,
-  89 /* Property n_assign= */,
-  90 /* Property n_expr */,
-  91 /* Property n_expr= */,
-  3387 /* Id of AReturnExpr */,
-  5 /* Color of AReturnExpr */,
-  6 /* Property _n_kwreturn */,
-  7 /* Property _n_expr */,
-  79 /* Color of AReturnExpr */,
-  80 /* Property n_kwreturn */,
-  81 /* Property n_kwreturn= */,
-  82 /* Property n_expr */,
-  83 /* Property n_expr= */,
-  3763 /* Id of ABreakExpr */,
-  6 /* Color of ABreakExpr */,
-  7 /* Property _n_kwbreak */,
-  81 /* Color of ABreakExpr */,
-  82 /* Property n_kwbreak */,
-  83 /* Property n_kwbreak= */,
-  3615 /* Id of AAbortExpr */,
-  5 /* Color of AAbortExpr */,
-  6 /* Property _n_kwabort */,
-  79 /* Color of AAbortExpr */,
-  80 /* Property n_kwabort */,
-  81 /* Property n_kwabort= */,
-  3755 /* Id of AContinueExpr */,
-  6 /* Color of AContinueExpr */,
-  7 /* Property _n_kwcontinue */,
-  81 /* Color of AContinueExpr */,
-  82 /* Property n_kwcontinue */,
-  83 /* Property n_kwcontinue= */,
-  3539 /* Id of ADoExpr */,
-  5 /* Color of ADoExpr */,
-  6 /* Property _n_kwdo */,
-  7 /* Property _n_block */,
-  78 /* Color of ADoExpr */,
-  79 /* Property n_kwdo */,
-  80 /* Property n_kwdo= */,
-  81 /* Property n_block */,
-  82 /* Property n_block= */,
-  3503 /* Id of AIfExpr */,
-  5 /* Color of AIfExpr */,
-  6 /* Property _n_kwif */,
-  7 /* Property _n_expr */,
-  8 /* Property _n_then */,
-  9 /* Property _n_else */,
-  78 /* Color of AIfExpr */,
-  79 /* Property n_kwif */,
-  80 /* Property n_kwif= */,
-  81 /* Property n_expr */,
-  82 /* Property n_expr= */,
-  83 /* Property n_then */,
-  84 /* Property n_then= */,
-  85 /* Property n_else */,
-  86 /* Property n_else= */,
-  3499 /* Id of AIfexprExpr */,
-  5 /* Color of AIfexprExpr */,
-  6 /* Property _n_kwif */,
-  7 /* Property _n_expr */,
-  8 /* Property _n_kwthen */,
-  9 /* Property _n_then */,
-  10 /* Property _n_kwelse */,
-  11 /* Property _n_else */,
-  78 /* Color of AIfexprExpr */,
-  79 /* Property n_kwif */,
-  80 /* Property n_kwif= */,
-  81 /* Property n_expr */,
-  82 /* Property n_expr= */,
-  83 /* Property n_kwthen */,
-  84 /* Property n_kwthen= */,
-  85 /* Property n_then */,
-  86 /* Property n_then= */,
-  87 /* Property n_kwelse */,
-  88 /* Property n_kwelse= */,
-  89 /* Property n_else */,
-  90 /* Property n_else= */,
-  3655 /* Id of AWhileExpr */,
-  6 /* Color of AWhileExpr */,
-  6 /* Property _n_kwwhile */,
-  7 /* Property _n_expr */,
-  8 /* Property _n_kwdo */,
-  9 /* Property _n_block */,
-  81 /* Color of AWhileExpr */,
-  82 /* Property n_kwwhile */,
-  83 /* Property n_kwwhile= */,
-  84 /* Property n_expr */,
-  85 /* Property n_expr= */,
-  86 /* Property n_kwdo */,
-  87 /* Property n_kwdo= */,
-  88 /* Property n_block */,
-  89 /* Property n_block= */,
-  3727 /* Id of AForExpr */,
-  6 /* Color of AForExpr */,
-  6 /* Property _n_vardecl */,
-  7 /* Property _n_kwdo */,
-  8 /* Property _n_block */,
-  81 /* Color of AForExpr */,
-  82 /* Property n_vardecl */,
-  83 /* Property n_vardecl= */,
-  84 /* Property n_kwdo */,
-  85 /* Property n_kwdo= */,
-  86 /* Property n_block */,
-  87 /* Property n_block= */,
-  3523 /* Id of AForVardeclExpr */,
-  5 /* Color of AForVardeclExpr */,
-  7 /* Property _n_kwfor */,
-  8 /* Property _n_id */,
-  9 /* Property _n_expr */,
-  81 /* Color of AForVardeclExpr */,
-  82 /* Property n_kwfor */,
-  83 /* Property n_kwfor= */,
-  84 /* Property n_id */,
-  85 /* Property n_id= */,
-  86 /* Property n_expr */,
-  87 /* Property n_expr= */,
-  3595 /* Id of AAssertExpr */,
-  5 /* Color of AAssertExpr */,
-  6 /* Property _n_kwassert */,
-  7 /* Property _n_id */,
-  8 /* Property _n_expr */,
-  78 /* Color of AAssertExpr */,
-  79 /* Property n_kwassert */,
-  80 /* Property n_kwassert= */,
-  81 /* Property n_id */,
-  82 /* Property n_id= */,
-  83 /* Property n_expr */,
-  84 /* Property n_expr= */,
-  3591 /* Id of AAssignFormExpr */,
-  6 /* Color of AAssignFormExpr */,
-  8 /* Property _n_assign */,
-  9 /* Property _n_value */,
-  81 /* Color of AAssignFormExpr */,
-  82 /* Property n_assign */,
-  83 /* Property n_assign= */,
-  84 /* Property n_value */,
-  85 /* Property n_value= */,
-  3391 /* Id of AReassignFormExpr */,
-  6 /* Color of AReassignFormExpr */,
-  9 /* Property _n_assign_op */,
-  10 /* Property _n_value */,
-  83 /* Color of AReassignFormExpr */,
-  84 /* Property n_assign_op */,
-  85 /* Property n_assign_op= */,
-  86 /* Property n_value */,
-  87 /* Property n_value= */,
-  3699 /* Id of AOnceExpr */,
-  6 /* Color of AOnceExpr */,
-  7 /* Property _n_kwonce */,
-  82 /* Color of AOnceExpr */,
-  83 /* Property n_kwonce */,
-  84 /* Property n_kwonce= */,
-  3795 /* Id of ASendExpr */,
-  8 /* Color of ASendExpr */,
-  11 /* Property _n_expr */,
-  99 /* Color of ASendExpr */,
-  100 /* Property n_expr */,
-  101 /* Property n_expr= */,
-  3827 /* Id of ABinopExpr */,
-  9 /* Color of ABinopExpr */,
-  12 /* Property _n_expr2 */,
-  104 /* Color of ABinopExpr */,
-  105 /* Property n_expr2 */,
-  106 /* Property n_expr2= */,
-  3567 /* Id of ABoolExpr */,
-  5 /* Color of ABoolExpr */,
-  76 /* Color of ABoolExpr */,
-  3695 /* Id of AOrExpr */,
-  6 /* Color of AOrExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_expr2 */,
-  79 /* Color of AOrExpr */,
-  80 /* Property n_expr */,
-  81 /* Property n_expr= */,
-  82 /* Property n_expr2 */,
-  83 /* Property n_expr2= */,
-  3779 /* Id of AAndExpr */,
-  6 /* Color of AAndExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_expr2 */,
-  79 /* Color of AAndExpr */,
-  80 /* Property n_expr */,
-  81 /* Property n_expr= */,
-  82 /* Property n_expr2 */,
-  83 /* Property n_expr2= */,
-  3703 /* Id of ANotExpr */,
-  6 /* Color of ANotExpr */,
-  6 /* Property _n_kwnot */,
-  7 /* Property _n_expr */,
-  79 /* Color of ANotExpr */,
-  80 /* Property n_kwnot */,
-  81 /* Property n_kwnot= */,
-  82 /* Property n_expr */,
-  83 /* Property n_expr= */,
-  3875 /* Id of AEqExpr */,
-  10 /* Color of AEqExpr */,
-  109 /* Color of AEqExpr */,
-  3743 /* Id of AEeExpr */,
-  6 /* Color of AEeExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_expr2 */,
-  79 /* Color of AEeExpr */,
-  80 /* Property n_expr */,
-  81 /* Property n_expr= */,
-  82 /* Property n_expr2 */,
-  83 /* Property n_expr2= */,
-  3851 /* Id of ANeExpr */,
-  10 /* Color of ANeExpr */,
-  109 /* Color of ANeExpr */,
-  3859 /* Id of ALtExpr */,
-  10 /* Color of ALtExpr */,
-  109 /* Color of ALtExpr */,
-  3863 /* Id of ALeExpr */,
-  10 /* Color of ALeExpr */,
-  109 /* Color of ALeExpr */,
-  3867 /* Id of AGtExpr */,
-  10 /* Color of AGtExpr */,
-  109 /* Color of AGtExpr */,
-  3871 /* Id of AGeExpr */,
-  10 /* Color of AGeExpr */,
-  109 /* Color of AGeExpr */,
-  3715 /* Id of AIsaExpr */,
-  6 /* Color of AIsaExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_type */,
-  79 /* Color of AIsaExpr */,
-  80 /* Property n_expr */,
-  81 /* Property n_expr= */,
-  82 /* Property n_type */,
-  83 /* Property n_type= */,
-  3843 /* Id of APlusExpr */,
-  10 /* Color of APlusExpr */,
-  109 /* Color of APlusExpr */,
-  3855 /* Id of AMinusExpr */,
-  10 /* Color of AMinusExpr */,
-  109 /* Color of AMinusExpr */,
-  3831 /* Id of AStarshipExpr */,
-  10 /* Color of AStarshipExpr */,
-  109 /* Color of AStarshipExpr */,
-  3835 /* Id of AStarExpr */,
-  10 /* Color of AStarExpr */,
-  109 /* Color of AStarExpr */,
-  3839 /* Id of ASlashExpr */,
-  10 /* Color of ASlashExpr */,
-  109 /* Color of ASlashExpr */,
-  3847 /* Id of APercentExpr */,
-  10 /* Color of APercentExpr */,
-  109 /* Color of APercentExpr */,
-  3807 /* Id of AUminusExpr */,
-  9 /* Color of AUminusExpr */,
-  12 /* Property _n_minus */,
-  104 /* Color of AUminusExpr */,
-  105 /* Property n_minus */,
-  106 /* Property n_minus= */,
-  3707 /* Id of ANewExpr */,
-  6 /* Color of ANewExpr */,
-  8 /* Property _n_kwnew */,
-  9 /* Property _n_type */,
-  10 /* Property _n_id */,
-  11 /* Property _n_args */,
-  96 /* Color of ANewExpr */,
-  97 /* Property n_kwnew */,
-  98 /* Property n_kwnew= */,
-  99 /* Property n_type */,
-  100 /* Property n_type= */,
-  101 /* Property n_id */,
-  102 /* Property n_id= */,
-  103 /* Property n_args */,
-  104 /* Property n_args= */,
-  3583 /* Id of AAttrFormExpr */,
+  8 /* Group of ? */,
+  77 /* Group of ? */,
+  5959 /* Id of ALabel */,
+  5 /* Color of ALabel */,
+  6 /* Group of ? */,
+  70 /* Group of ? */,
+  5971 /* Id of AExpr */,
+  6 /* Color of AExpr */,
+  74 /* Group of ? */,
+  6339 /* Id of ABlockExpr */,
+  7 /* Color of ABlockExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6111 /* Id of AVardeclExpr */,
+  7 /* Color of AVardeclExpr */,
+  12 /* Group of ? */,
+  84 /* Group of ? */,
+  6171 /* Id of AReturnExpr */,
+  7 /* Color of AReturnExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  5955 /* Id of ALabelable */,
+  5 /* Color of ALabelable */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  6527 /* Id of ABreakExpr */,
+  8 /* Color of ABreakExpr */,
+  12 /* Group of ? */,
+  87 /* Group of ? */,
+  6379 /* Id of AAbortExpr */,
+  7 /* Color of AAbortExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6515 /* Id of AContinueExpr */,
+  8 /* Color of AContinueExpr */,
+  12 /* Group of ? */,
+  87 /* Group of ? */,
+  6307 /* Id of ADoExpr */,
+  7 /* Color of ADoExpr */,
+  12 /* Group of ? */,
+  85 /* Group of ? */,
+  6271 /* Id of AIfExpr */,
+  7 /* Color of AIfExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6267 /* Id of AIfexprExpr */,
+  7 /* Color of AIfexprExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6107 /* Id of AWhileExpr */,
+  7 /* Color of AWhileExpr */,
+  12 /* Group of ? */,
+  84 /* Group of ? */,
+  6247 /* Id of ALoopExpr */,
+  7 /* Color of ALoopExpr */,
+  12 /* Group of ? */,
+  84 /* Group of ? */,
+  6287 /* Id of AForExpr */,
+  7 /* Color of AForExpr */,
+  13 /* Group of ? */,
+  85 /* Group of ? */,
+  6359 /* Id of AAssertExpr */,
+  7 /* Color of AAssertExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6355 /* Id of AAssignFormExpr */,
+  7 /* Color of AAssignFormExpr */,
+  13 /* Group of ? */,
+  85 /* Group of ? */,
+  6175 /* Id of AReassignFormExpr */,
+  7 /* Color of AReassignFormExpr */,
+  14 /* Group of ? */,
+  87 /* Group of ? */,
+  6463 /* Id of AOnceExpr */,
+  8 /* Color of AOnceExpr */,
+  12 /* Group of ? */,
+  87 /* Group of ? */,
+  6587 /* Id of ASendExpr */,
+  10 /* Color of ASendExpr */,
+  18 /* Group of ? */,
+  110 /* Group of ? */,
+  6611 /* Id of ABinopExpr */,
+  11 /* Color of ABinopExpr */,
+  20 /* Group of ? */,
+  117 /* Group of ? */,
+  6335 /* Id of ABoolExpr */,
+  7 /* Color of ABoolExpr */,
+  70 /* Group of ? */,
+  6459 /* Id of AOrExpr */,
+  8 /* Color of AOrExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6547 /* Id of AAndExpr */,
+  8 /* Color of AAndExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6467 /* Id of ANotExpr */,
+  8 /* Color of ANotExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6659 /* Id of AEqExpr */,
+  12 /* Color of AEqExpr */,
+  124 /* Group of ? */,
+  6503 /* Id of AEeExpr */,
+  8 /* Color of AEeExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6635 /* Id of ANeExpr */,
+  12 /* Color of ANeExpr */,
+  124 /* Group of ? */,
+  6643 /* Id of ALtExpr */,
+  12 /* Color of ALtExpr */,
+  122 /* Group of ? */,
+  6647 /* Id of ALeExpr */,
+  12 /* Color of ALeExpr */,
+  122 /* Group of ? */,
+  6651 /* Id of AGtExpr */,
+  12 /* Color of AGtExpr */,
+  122 /* Group of ? */,
+  6655 /* Id of AGeExpr */,
+  12 /* Color of AGeExpr */,
+  122 /* Group of ? */,
+  6479 /* Id of AIsaExpr */,
+  8 /* Color of AIsaExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6627 /* Id of APlusExpr */,
+  12 /* Color of APlusExpr */,
+  122 /* Group of ? */,
+  6639 /* Id of AMinusExpr */,
+  12 /* Color of AMinusExpr */,
+  122 /* Group of ? */,
+  6615 /* Id of AStarshipExpr */,
+  12 /* Color of AStarshipExpr */,
+  122 /* Group of ? */,
+  6619 /* Id of AStarExpr */,
+  12 /* Color of AStarExpr */,
+  122 /* Group of ? */,
+  6623 /* Id of ASlashExpr */,
+  12 /* Color of ASlashExpr */,
+  122 /* Group of ? */,
+  6631 /* Id of APercentExpr */,
+  12 /* Color of APercentExpr */,
+  122 /* Group of ? */,
+  6591 /* Id of AUminusExpr */,
+  11 /* Color of AUminusExpr */,
+  20 /* Group of ? */,
+  117 /* Group of ? */,
+  6571 /* Id of ANewExpr */,
+  9 /* Color of ANewExpr */,
+  18 /* Group of ? */,
+  107 /* Group of ? */,
+  6347 /* Id of AAttrFormExpr */,
   5 /* Color of AAttrFormExpr */,
-  13 /* Property _n_expr */,
-  14 /* Property _n_id */,
-  91 /* Color of AAttrFormExpr */,
-  92 /* Property n_expr */,
-  93 /* Property n_expr= */,
-  94 /* Property n_id */,
-  95 /* Property n_id= */,
-  3771 /* Id of AAttrExpr */,
-  6 /* Color of AAttrExpr */,
-  98 /* Color of AAttrExpr */,
-  3775 /* Id of AAttrAssignExpr */,
-  7 /* Color of AAttrAssignExpr */,
-  78 /* Color of AAttrAssignExpr */,
-  3819 /* Id of ACallFormExpr */,
-  10 /* Color of ACallFormExpr */,
-  13 /* Property _n_id */,
-  14 /* Property _n_args */,
-  104 /* Color of ACallFormExpr */,
-  105 /* Property n_id */,
-  106 /* Property n_id= */,
-  107 /* Property n_args */,
-  108 /* Property n_args= */,
-  3767 /* Id of AAttrReassignExpr */,
-  7 /* Color of AAttrReassignExpr */,
-  78 /* Color of AAttrReassignExpr */,
-  3883 /* Id of ACallExpr */,
-  11 /* Color of ACallExpr */,
-  111 /* Color of ACallExpr */,
-  3887 /* Id of ACallAssignExpr */,
-  9 /* Color of ACallAssignExpr */,
-  80 /* Color of ACallAssignExpr */,
-  3879 /* Id of ACallReassignExpr */,
-  11 /* Color of ACallReassignExpr */,
-  111 /* Color of ACallReassignExpr */,
-  3791 /* Id of ASuperExpr */,
-  8 /* Color of ASuperExpr */,
-  9 /* Property _n_qualified */,
-  10 /* Property _n_kwsuper */,
-  11 /* Property _n_args */,
-  97 /* Color of ASuperExpr */,
-  98 /* Property n_qualified */,
-  99 /* Property n_qualified= */,
-  100 /* Property n_kwsuper */,
-  101 /* Property n_kwsuper= */,
-  102 /* Property n_args */,
-  103 /* Property n_args= */,
-  3815 /* Id of AInitExpr */,
-  9 /* Color of AInitExpr */,
-  12 /* Property _n_kwinit */,
-  13 /* Property _n_args */,
-  104 /* Color of AInitExpr */,
-  105 /* Property n_kwinit */,
-  106 /* Property n_kwinit= */,
-  107 /* Property n_args */,
-  108 /* Property n_args= */,
-  3823 /* Id of ABraFormExpr */,
-  10 /* Color of ABraFormExpr */,
-  13 /* Property _n_args */,
-  102 /* Color of ABraFormExpr */,
-  103 /* Property n_args */,
-  104 /* Property n_args= */,
-  3895 /* Id of ABraExpr */,
-  11 /* Color of ABraExpr */,
-  107 /* Color of ABraExpr */,
-  3899 /* Id of ABraAssignExpr */,
-  9 /* Color of ABraAssignExpr */,
-  80 /* Color of ABraAssignExpr */,
-  3335 /* Id of AVarFormExpr */,
+  18 /* Group of ? */,
+  95 /* Group of ? */,
+  6535 /* Id of AAttrExpr */,
+  7 /* Color of AAttrExpr */,
+  102 /* Group of ? */,
+  6539 /* Id of AAttrAssignExpr */,
+  8 /* Color of AAttrAssignExpr */,
+  70 /* Group of ? */,
+  6603 /* Id of ACallFormExpr */,
+  12 /* Color of ACallFormExpr */,
+  20 /* Group of ? */,
+  117 /* Group of ? */,
+  6531 /* Id of AAttrReassignExpr */,
+  8 /* Color of AAttrReassignExpr */,
+  70 /* Group of ? */,
+  6667 /* Id of ACallExpr */,
+  13 /* Color of ACallExpr */,
+  124 /* Group of ? */,
+  6671 /* Id of ACallAssignExpr */,
+  11 /* Color of ACallAssignExpr */,
+  83 /* Group of ? */,
+  6663 /* Id of ACallReassignExpr */,
+  13 /* Color of ACallReassignExpr */,
+  124 /* Group of ? */,
+  6583 /* Id of ASuperExpr */,
+  10 /* Color of ASuperExpr */,
+  19 /* Group of ? */,
+  108 /* Group of ? */,
+  6599 /* Id of AInitExpr */,
+  11 /* Color of AInitExpr */,
+  20 /* Group of ? */,
+  117 /* Group of ? */,
+  6607 /* Id of ABraFormExpr */,
+  12 /* Color of ABraFormExpr */,
+  20 /* Group of ? */,
+  115 /* Group of ? */,
+  6679 /* Id of ABraExpr */,
+  13 /* Color of ABraExpr */,
+  120 /* Group of ? */,
+  6683 /* Id of ABraAssignExpr */,
+  11 /* Color of ABraAssignExpr */,
+  83 /* Group of ? */,
+  6115 /* Id of AVarFormExpr */,
   5 /* Color of AVarFormExpr */,
-  7 /* Property _n_id */,
-  78 /* Color of AVarFormExpr */,
-  79 /* Property n_id */,
-  80 /* Property n_id= */,
-  3891 /* Id of ABraReassignExpr */,
-  11 /* Color of ABraReassignExpr */,
-  107 /* Color of ABraReassignExpr */,
-  3663 /* Id of AVarExpr */,
-  6 /* Color of AVarExpr */,
-  84 /* Color of AVarExpr */,
-  3667 /* Id of AVarAssignExpr */,
-  7 /* Color of AVarAssignExpr */,
-  89 /* Color of AVarAssignExpr */,
-  3659 /* Id of AVarReassignExpr */,
-  7 /* Color of AVarReassignExpr */,
-  91 /* Color of AVarReassignExpr */,
-  3399 /* Id of ARangeExpr */,
-  5 /* Color of ARangeExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_expr2 */,
-  79 /* Color of ARangeExpr */,
-  80 /* Property n_expr */,
-  81 /* Property n_expr= */,
-  82 /* Property n_expr2 */,
-  83 /* Property n_expr2= */,
-  3751 /* Id of ACrangeExpr */,
-  6 /* Color of ACrangeExpr */,
-  86 /* Color of ACrangeExpr */,
-  3691 /* Id of AOrangeExpr */,
-  6 /* Color of AOrangeExpr */,
-  86 /* Color of AOrangeExpr */,
-  3603 /* Id of AArrayExpr */,
-  5 /* Color of AArrayExpr */,
-  6 /* Property _n_exprs */,
-  79 /* Color of AArrayExpr */,
-  80 /* Property n_exprs */,
-  81 /* Property n_exprs= */,
-  3383 /* Id of ASelfExpr */,
-  5 /* Color of ASelfExpr */,
-  6 /* Property _n_kwself */,
-  78 /* Color of ASelfExpr */,
-  79 /* Property n_kwself */,
-  80 /* Property n_kwself= */,
-  3723 /* Id of AImplicitSelfExpr */,
-  6 /* Color of AImplicitSelfExpr */,
-  83 /* Color of AImplicitSelfExpr */,
-  3671 /* Id of ATrueExpr */,
-  6 /* Color of ATrueExpr */,
-  6 /* Property _n_kwtrue */,
-  79 /* Color of ATrueExpr */,
-  80 /* Property n_kwtrue */,
-  81 /* Property n_kwtrue= */,
-  3731 /* Id of AFalseExpr */,
-  6 /* Color of AFalseExpr */,
-  6 /* Property _n_kwfalse */,
-  79 /* Color of AFalseExpr */,
-  80 /* Property n_kwfalse */,
-  81 /* Property n_kwfalse= */,
-  3443 /* Id of ANullExpr */,
-  5 /* Color of ANullExpr */,
-  6 /* Property _n_kwnull */,
-  78 /* Color of ANullExpr */,
-  79 /* Property n_kwnull */,
-  80 /* Property n_kwnull= */,
-  3491 /* Id of AIntExpr */,
-  5 /* Color of AIntExpr */,
-  6 /* Property _n_number */,
-  78 /* Color of AIntExpr */,
-  79 /* Property n_number */,
-  80 /* Property n_number= */,
-  3527 /* Id of AFloatExpr */,
-  5 /* Color of AFloatExpr */,
-  6 /* Property _n_float */,
-  78 /* Color of AFloatExpr */,
-  79 /* Property n_float */,
-  80 /* Property n_float= */,
-  3555 /* Id of ACharExpr */,
-  5 /* Color of ACharExpr */,
-  6 /* Property _n_char */,
-  78 /* Color of ACharExpr */,
-  79 /* Property n_char */,
-  80 /* Property n_char= */,
-  3363 /* Id of AStringFormExpr */,
-  5 /* Color of AStringFormExpr */,
-  78 /* Color of AStringFormExpr */,
-  3679 /* Id of AStringExpr */,
-  6 /* Color of AStringExpr */,
-  8 /* Property _n_string */,
-  81 /* Color of AStringExpr */,
-  82 /* Property n_string */,
-  83 /* Property n_string= */,
-  3683 /* Id of AStartStringExpr */,
-  6 /* Color of AStartStringExpr */,
-  8 /* Property _n_string */,
-  81 /* Color of AStartStringExpr */,
-  82 /* Property n_string */,
-  83 /* Property n_string= */,
-  3711 /* Id of AMidStringExpr */,
-  6 /* Color of AMidStringExpr */,
-  8 /* Property _n_string */,
-  81 /* Color of AMidStringExpr */,
-  82 /* Property n_string */,
-  83 /* Property n_string= */,
-  3739 /* Id of AEndStringExpr */,
-  6 /* Color of AEndStringExpr */,
-  8 /* Property _n_string */,
-  81 /* Color of AEndStringExpr */,
-  82 /* Property n_string */,
-  83 /* Property n_string= */,
-  3355 /* Id of ASuperstringExpr */,
-  5 /* Color of ASuperstringExpr */,
-  6 /* Property _n_exprs */,
-  78 /* Color of ASuperstringExpr */,
-  79 /* Property n_exprs */,
-  80 /* Property n_exprs= */,
-  3687 /* Id of AParExpr */,
-  6 /* Color of AParExpr */,
-  81 /* Color of AParExpr */,
-  3411 /* Id of AProxyExpr */,
-  5 /* Color of AProxyExpr */,
-  6 /* Property _n_expr */,
-  76 /* Color of AProxyExpr */,
-  77 /* Property n_expr */,
-  78 /* Property n_expr= */,
-  3599 /* Id of AAsCastExpr */,
-  5 /* Color of AAsCastExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_kwas */,
-  8 /* Property _n_type */,
-  78 /* Color of AAsCastExpr */,
-  79 /* Property n_expr */,
-  80 /* Property n_expr= */,
-  81 /* Property n_kwas */,
-  82 /* Property n_kwas= */,
-  83 /* Property n_type */,
-  84 /* Property n_type= */,
-  3427 /* Id of APlusAssignOp */,
-  5 /* Color of APlusAssignOp */,
-  4 /* Property _n_pluseq */,
-  71 /* Color of APlusAssignOp */,
-  72 /* Property n_pluseq */,
-  73 /* Property n_pluseq= */,
-  3463 /* Id of AMinusAssignOp */,
-  5 /* Color of AMinusAssignOp */,
-  4 /* Property _n_minuseq */,
-  71 /* Color of AMinusAssignOp */,
-  72 /* Property n_minuseq */,
-  73 /* Property n_minuseq= */,
-  3403 /* Id of AQualified */,
+  12 /* Group of ? */,
+  82 /* Group of ? */,
+  6675 /* Id of ABraReassignExpr */,
+  13 /* Color of ABraReassignExpr */,
+  120 /* Group of ? */,
+  6523 /* Id of AClosureCallExpr */,
+  7 /* Color of AClosureCallExpr */,
+  14 /* Group of ? */,
+  102 /* Group of ? */,
+  6431 /* Id of AVarExpr */,
+  7 /* Color of AVarExpr */,
+  87 /* Group of ? */,
+  6435 /* Id of AVarAssignExpr */,
+  8 /* Color of AVarAssignExpr */,
+  70 /* Group of ? */,
+  6427 /* Id of AVarReassignExpr */,
+  8 /* Color of AVarReassignExpr */,
+  70 /* Group of ? */,
+  6183 /* Id of ARangeExpr */,
+  7 /* Color of ARangeExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6511 /* Id of ACrangeExpr */,
+  8 /* Color of ACrangeExpr */,
+  90 /* Group of ? */,
+  6455 /* Id of AOrangeExpr */,
+  8 /* Color of AOrangeExpr */,
+  90 /* Group of ? */,
+  6367 /* Id of AArrayExpr */,
+  7 /* Color of AArrayExpr */,
+  11 /* Group of ? */,
+  84 /* Group of ? */,
+  6167 /* Id of ASelfExpr */,
+  7 /* Color of ASelfExpr */,
+  12 /* Group of ? */,
+  84 /* Group of ? */,
+  6487 /* Id of AImplicitSelfExpr */,
+  8 /* Color of AImplicitSelfExpr */,
+  89 /* Group of ? */,
+  6439 /* Id of ATrueExpr */,
+  8 /* Color of ATrueExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6491 /* Id of AFalseExpr */,
+  8 /* Color of AFalseExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6215 /* Id of ANullExpr */,
+  7 /* Color of ANullExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6263 /* Id of AIntExpr */,
+  7 /* Color of AIntExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6291 /* Id of AFloatExpr */,
+  7 /* Color of AFloatExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6319 /* Id of ACharExpr */,
+  7 /* Color of ACharExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6139 /* Id of AStringFormExpr */,
+  7 /* Color of AStringFormExpr */,
+  83 /* Group of ? */,
+  6443 /* Id of AStringExpr */,
+  8 /* Color of AStringExpr */,
+  13 /* Group of ? */,
+  86 /* Group of ? */,
+  6447 /* Id of AStartStringExpr */,
+  8 /* Color of AStartStringExpr */,
+  13 /* Group of ? */,
+  86 /* Group of ? */,
+  6471 /* Id of AMidStringExpr */,
+  8 /* Color of AMidStringExpr */,
+  13 /* Group of ? */,
+  86 /* Group of ? */,
+  6499 /* Id of AEndStringExpr */,
+  8 /* Color of AEndStringExpr */,
+  13 /* Group of ? */,
+  86 /* Group of ? */,
+  6135 /* Id of ASuperstringExpr */,
+  7 /* Color of ASuperstringExpr */,
+  12 /* Group of ? */,
+  84 /* Group of ? */,
+  6451 /* Id of AParExpr */,
+  8 /* Color of AParExpr */,
+  86 /* Group of ? */,
+  6191 /* Id of AProxyExpr */,
+  7 /* Color of AProxyExpr */,
+  11 /* Group of ? */,
+  81 /* Group of ? */,
+  6543 /* Id of AAsCastExpr */,
+  7 /* Color of AAsCastExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6363 /* Id of AAsNotnullExpr */,
+  7 /* Color of AAsNotnullExpr */,
+  11 /* Group of ? */,
+  83 /* Group of ? */,
+  6475 /* Id of AIssetAttrExpr */,
+  7 /* Color of AIssetAttrExpr */,
+  20 /* Group of ? */,
+  102 /* Group of ? */,
+  5995 /* Id of AAssignOp */,
+  5 /* Color of AAssignOp */,
+  69 /* Group of ? */,
+  6207 /* Id of APlusAssignOp */,
+  6 /* Color of APlusAssignOp */,
+  6 /* Group of ? */,
+  72 /* Group of ? */,
+  6231 /* Id of AMinusAssignOp */,
+  6 /* Color of AMinusAssignOp */,
+  6 /* Group of ? */,
+  72 /* Group of ? */,
+  6315 /* Id of AClosureDef */,
+  6 /* Color of AClosureDef */,
+  12 /* Group of ? */,
+  80 /* Group of ? */,
+  5979 /* Id of AClosureId */,
+  5 /* Color of AClosureId */,
+  69 /* Group of ? */,
+  6163 /* Id of ASimpleClosureId */,
+  6 /* Color of ASimpleClosureId */,
+  6 /* Group of ? */,
+  72 /* Group of ? */,
+  6323 /* Id of ABreakClosureId */,
+  6 /* Color of ABreakClosureId */,
+  6 /* Group of ? */,
+  72 /* Group of ? */,
+  5931 /* Id of AQualified */,
   5 /* Color of AQualified */,
-  4 /* Property _n_id */,
-  5 /* Property _n_classid */,
-  70 /* Color of AQualified */,
-  71 /* Property n_id */,
-  72 /* Property n_id= */,
-  73 /* Property n_classid */,
-  74 /* Property n_classid= */,
-  3535 /* Id of ADoc */,
+  6 /* Group of ? */,
+  70 /* Group of ? */,
+  5975 /* Id of ADoc */,
   5 /* Color of ADoc */,
-  4 /* Property _n_comment */,
-  70 /* Color of ADoc */,
-  71 /* Property n_comment */,
-  72 /* Property n_comment= */,
-  3031 /* Id of Start */,
-  4 /* Color of Start */,
-  4 /* Property _n_base */,
-  5 /* Property _n_eof */,
-  68 /* Color of Start */,
-  69 /* Property n_base */,
-  70 /* Property n_base= */,
-  71 /* Property n_eof */,
-  72 /* Property n_eof= */,
+  6 /* Group of ? */,
+  70 /* Group of ? */,
+  5695 /* Id of Start */,
+  5 /* Color of Start */,
+  6 /* Group of ? */,
+  69 /* Group of ? */,
+};
+const char *LOCATE_location = "./location.nit";
+const int SFT_location[4] = {
+  5175 /* Id of Location */,
+  5 /* Color of Location */,
+  2 /* Group of ? */,
+  60 /* Group of ? */,
 };
 const char *LOCATE_standard = "./../lib/standard//standard.nit";
 const char *LOCATE_environ = "./../lib/standard//environ.nit";
 const int SFT_environ[2] = {
-  40 /* Property environ */,
-  40 /* Property get_environ */,
+  45 /* Group of ? */,
+  45 /* Group of ? */,
 };
 const char *LOCATE_symbol = "./../lib/standard//symbol.nit";
-const int SFT_symbol[6] = {
-  98 /* Property to_symbol */,
-  27 /* Id of Symbol */,
-  2 /* Color of Symbol */,
-  1 /* Property _string */,
-  41 /* Color of Symbol */,
-  42 /* Property init */,
-};
-const char *LOCATE_hash = "./../lib/standard//hash.nit";
-const int SFT_hash[57] = {
-  15 /* Property hash */,
-  2627 /* Id of HashCollection */,
-  3 /* Color of HashCollection */,
-  1 /* Property _array */,
-  2 /* Property _capacity */,
-  3 /* Property _length */,
-  4 /* Property _first_item */,
-  5 /* Property _last_item */,
-  6 /* Property _last_accessed_index */,
-  7 /* Property _last_accessed_key */,
-  42 /* Color of HashCollection */,
-  43 /* Property first_item */,
-  44 /* Property index_at */,
-  45 /* Property store */,
-  46 /* Property remove_index */,
-  47 /* Property raz */,
-  48 /* Property enlarge */,
-  139 /* Id of HashNode */,
-  2 /* Color of HashNode */,
-  1 /* Property _next_item */,
-  2 /* Property _prev_item */,
-  40 /* Color of HashNode */,
-  41 /* Property key */,
-  42 /* Property next_item */,
-  43 /* Property next_item= */,
-  44 /* Property prev_item */,
-  45 /* Property prev_item= */,
-  3639 /* Id of HashMap */,
-  7 /* Color of HashMap */,
-  51 /* Color of HashMap */,
-  52 /* Property init */,
-  2623 /* Id of HashMapNode */,
-  4 /* Color of HashMapNode */,
-  52 /* Color of HashMapNode */,
-  53 /* Property init */,
-  3195 /* Id of HashMapIterator */,
-  4 /* Color of HashMapIterator */,
-  1 /* Property _map */,
-  2 /* Property _node */,
-  48 /* Color of HashMapIterator */,
-  49 /* Property init */,
-  3635 /* Id of HashSet */,
-  8 /* Color of HashSet */,
-  50 /* Color of HashSet */,
-  51 /* Property init */,
-  2615 /* Id of HashSetNode */,
-  3 /* Color of HashSetNode */,
-  3 /* Property _key */,
-  46 /* Color of HashSetNode */,
-  47 /* Property key= */,
-  48 /* Property init */,
-  2619 /* Id of HashSetIterator */,
-  3 /* Color of HashSetIterator */,
-  1 /* Property _set */,
-  2 /* Property _node */,
-  45 /* Color of HashSetIterator */,
-  46 /* Property init */,
+const int SFT_symbol[5] = {
+  115 /* Group of ? */,
+  23 /* Id of Symbol */,
+  3 /* Color of Symbol */,
+  2 /* Group of ? */,
+  46 /* Group of ? */,
 };
 const char *LOCATE_string = "./../lib/standard//string.nit";
-const int SFT_string[54] = {
-  3783 /* Id of String */,
-  11 /* Color of String */,
-  2 /* Property _items */,
-  3 /* Property _capacity */,
-  99 /* Color of String */,
-  100 /* Property append */,
-  101 /* Property + */,
-  102 /* Property * */,
-  103 /* Property to_i */,
-  104 /* Property to_hex */,
-  105 /* Property a_to */,
-  106 /* Property to_cstring */,
-  107 /* Property substring */,
-  108 /* Property substring_from */,
-  109 /* Property has_substring */,
-  110 /* Property has_prefix */,
-  111 /* Property has_suffix */,
-  112 /* Property init */,
-  113 /* Property from */,
-  114 /* Property with_capacity */,
-  115 /* Property with_native */,
-  116 /* Property from_cstring */,
-  117 /* Property filled_with */,
-  118 /* Property to_upper */,
-  119 /* Property to_lower */,
-  120 /* Property items */,
-  121 /* Property capacity */,
-  16 /* Property to_s */,
-  17 /* Property inspect */,
-  18 /* Property inspect_head */,
-  19 /* Property args */,
-  62 /* Property fill_string */,
-  63 /* Property to_hex */,
-  64 /* Property to_base */,
-  40 /* Property to_precision */,
-  56 /* Property join */,
-  73 /* Property map_join */,
+const int SFT_string[24] = {
+  6419 /* Id of AbstractString */,
+  13 /* Color of AbstractString */,
+  3 /* Group of ? */,
+  103 /* Group of ? */,
+  6555 /* Id of String */,
+  6 /* Color of String */,
+  116 /* Group of ? */,
+  6559 /* Id of Buffer */,
+  15 /* Color of Buffer */,
+  4 /* Group of ? */,
+  115 /* Group of ? */,
+  34 /* Group of ? */,
+  66 /* Group of ? */,
+  45 /* Group of ? */,
+  60 /* Group of ? */,
+  83 /* Group of ? */,
   -5 /* Id of NativeString */,
-  2 /* Color of NativeString */,
-  41 /* Color of NativeString */,
-  42 /* Property [] */,
-  43 /* Property []= */,
-  44 /* Property copy_to */,
-  45 /* Property cstring_length */,
-  46 /* Property atoi */,
-  31 /* Id of StringCapable */,
-  2 /* Color of StringCapable */,
-  40 /* Color of StringCapable */,
-  41 /* Property calloc_string */,
-  1 /* Property _args_cache */,
-  41 /* Property program_name */,
-  42 /* Property init_args */,
-  43 /* Property native_argc */,
-  44 /* Property native_argv */,
-};
-const char *LOCATE_array = "./../lib/standard//array.nit";
-const int SFT_array[61] = {
-  3651 /* Id of AbstractArray */,
-  10 /* Color of AbstractArray */,
-  1 /* Property _length */,
-  90 /* Color of AbstractArray */,
-  91 /* Property enlarge */,
-  92 /* Property insert */,
-  93 /* Property last_index_of */,
-  94 /* Property index_of_from */,
-  95 /* Property last_index_of_from */,
-  96 /* Property reversed */,
-  97 /* Property copy_to */,
-  3787 /* Id of Array */,
-  3 /* Color of Array */,
-  2 /* Property _items */,
-  3 /* Property _capacity */,
-  42 /* Color of Array */,
-  43 /* Property init */,
-  44 /* Property with */,
-  45 /* Property with_capacity */,
-  46 /* Property filled_with */,
-  47 /* Property with_native */,
-  3323 /* Id of ArrayIterator */,
-  5 /* Color of ArrayIterator */,
-  1 /* Property _index */,
-  2 /* Property _array */,
-  50 /* Color of ArrayIterator */,
-  51 /* Property init */,
-  3643 /* Id of ArraySet */,
-  8 /* Color of ArraySet */,
-  1 /* Property _array */,
-  73 /* Color of ArraySet */,
-  74 /* Property enlarge */,
-  75 /* Property remove_at */,
-  76 /* Property init */,
-  77 /* Property with_capacity */,
-  2675 /* Id of ArraySetIterator */,
-  3 /* Color of ArraySetIterator */,
-  1 /* Property _iter */,
-  45 /* Color of ArraySetIterator */,
-  46 /* Property init */,
-  3647 /* Id of ArrayMap */,
-  9 /* Color of ArrayMap */,
-  1 /* Property _items */,
-  2 /* Property _last_index */,
-  80 /* Color of ArrayMap */,
-  81 /* Property enlarge */,
-  82 /* Property remove_at_index */,
-  83 /* Property index */,
-  84 /* Property init */,
-  40 /* Property to_a */,
-  57 /* Property to_a */,
-  171 /* Id of ArrayCapable */,
-  2 /* Color of ArrayCapable */,
-  40 /* Color of ArrayCapable */,
-  41 /* Property calloc_array */,
-  -9 /* Id of NativeArray */,
-  2 /* Color of NativeArray */,
-  40 /* Color of NativeArray */,
-  41 /* Property [] */,
-  42 /* Property []= */,
-  43 /* Property copy_to */,
-};
-const char *LOCATE_abstract_collection = "./../lib/standard//abstract_collection.nit";
-const int SFT_abstract_collection[94] = {
-  163 /* Id of Collection */,
+  3 /* Color of NativeString */,
+  46 /* Group of ? */,
+  27 /* Id of StringCapable */,
+  3 /* Color of StringCapable */,
+  45 /* Group of ? */,
+  2 /* Group of ? */,
+  46 /* Group of ? */,
+};
+const char *LOCATE_collection = "./../lib/standard//collection//collection.nit";
+const char *LOCATE_range = "./../lib/standard//collection//range.nit";
+const int SFT_range[8] = {
+  5055 /* Id of Range */,
+  6 /* Color of Range */,
+  2 /* Group of ? */,
+  70 /* Group of ? */,
+  5179 /* Id of IteratorRange */,
+  4 /* Color of IteratorRange */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+};
+const char *LOCATE_abstract_collection = "./../lib/standard//collection//abstract_collection.nit";
+const int SFT_abstract_collection[55] = {
+  219 /* Id of Collection */,
   5 /* Color of Collection */,
-  58 /* Color of Collection */,
-  59 /* Property iterator */,
-  60 /* Property is_empty */,
-  61 /* Property length */,
-  62 /* Property has */,
-  63 /* Property has_only */,
-  64 /* Property count */,
-  65 /* Property first */,
-  2539 /* Id of NaiveCollection */,
+  62 /* Group of ? */,
+  5095 /* Id of NaiveCollection */,
   6 /* Color of NaiveCollection */,
-  66 /* Color of NaiveCollection */,
-  131 /* Id of Iterator */,
-  2 /* Color of Iterator */,
-  41 /* Color of Iterator */,
-  42 /* Property item */,
-  43 /* Property next */,
-  44 /* Property is_ok */,
-  2651 /* Id of Container */,
+  70 /* Group of ? */,
+  143 /* Id of Iterator */,
+  3 /* Color of Iterator */,
+  46 /* Group of ? */,
+  5255 /* Id of Container */,
   6 /* Color of Container */,
-  1 /* Property _item */,
-  66 /* Color of Container */,
-  67 /* Property init */,
-  68 /* Property item */,
-  69 /* Property item= */,
-  2647 /* Id of ContainerIterator */,
-  3 /* Color of ContainerIterator */,
-  1 /* Property _is_ok */,
-  2 /* Property _container */,
-  45 /* Color of ContainerIterator */,
-  46 /* Property init */,
-  211 /* Id of RemovableCollection */,
+  2 /* Group of ? */,
+  70 /* Group of ? */,
+  5251 /* Id of ContainerIterator */,
+  4 /* Color of ContainerIterator */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+  275 /* Id of RemovableCollection */,
   6 /* Color of RemovableCollection */,
-  66 /* Color of RemovableCollection */,
-  67 /* Property clear */,
-  68 /* Property remove */,
-  69 /* Property remove_all */,
-  3035 /* Id of SimpleCollection */,
-  7 /* Color of SimpleCollection */,
-  70 /* Color of SimpleCollection */,
-  71 /* Property add */,
-  72 /* Property add_all */,
-  3275 /* Id of Set */,
-  4 /* Color of Set */,
-  49 /* Color of Set */,
-  3143 /* Id of Map */,
-  8 /* Color of Map */,
-  74 /* Color of Map */,
-  75 /* Property [] */,
-  76 /* Property []= */,
-  77 /* Property has_key */,
-  78 /* Property remove_at */,
-  79 /* Property recover_with */,
-  2547 /* Id of MapIterator */,
-  3 /* Color of MapIterator */,
-  45 /* Color of MapIterator */,
-  46 /* Property key */,
-  47 /* Property item= */,
-  3303 /* Id of IndexedCollection */,
-  9 /* Color of IndexedCollection */,
-  80 /* Color of IndexedCollection */,
-  81 /* Property first= */,
-  82 /* Property last */,
-  83 /* Property last= */,
-  84 /* Property push */,
-  85 /* Property append */,
-  86 /* Property pop */,
-  87 /* Property unshift */,
-  88 /* Property shift */,
-  89 /* Property index_of */,
-  3183 /* Id of IndexedIterator */,
-  4 /* Color of IndexedIterator */,
-  48 /* Color of IndexedIterator */,
-  49 /* Property index */,
-  3319 /* Id of CoupleMap */,
-  4 /* Color of CoupleMap */,
-  49 /* Color of CoupleMap */,
-  50 /* Property couple_at */,
-  3211 /* Id of CoupleMapIterator */,
-  4 /* Color of CoupleMapIterator */,
-  1 /* Property _iter */,
-  48 /* Color of CoupleMapIterator */,
-  49 /* Property init */,
-  143 /* Id of Couple */,
-  3 /* Color of Couple */,
-  3 /* Property _first */,
-  4 /* Property _second */,
-  46 /* Color of Couple */,
-  47 /* Property first */,
-  48 /* Property first= */,
-  49 /* Property second */,
-  50 /* Property second= */,
-  51 /* Property init */,
+  70 /* Group of ? */,
+  5699 /* Id of SimpleCollection */,
+  8 /* Color of SimpleCollection */,
+  77 /* Group of ? */,
+  6035 /* Id of Set */,
+  7 /* Color of Set */,
+  55 /* Group of ? */,
+  5111 /* Id of MapRead */,
+  7 /* Color of MapRead */,
+  74 /* Group of ? */,
+  5743 /* Id of Map */,
+  10 /* Color of Map */,
+  84 /* Group of ? */,
+  5115 /* Id of MapIterator */,
+  4 /* Color of MapIterator */,
+  50 /* Group of ? */,
+  5703 /* Id of SequenceRead */,
+  9 /* Color of SequenceRead */,
+  80 /* Group of ? */,
+  6039 /* Id of Sequence */,
+  11 /* Color of Sequence */,
+  88 /* Group of ? */,
+  5783 /* Id of IndexedIterator */,
+  5 /* Color of IndexedIterator */,
+  52 /* Group of ? */,
+  6091 /* Id of CoupleMap */,
+  8 /* Color of CoupleMap */,
+  55 /* Group of ? */,
+  5887 /* Id of CoupleMapIterator */,
+  5 /* Color of CoupleMapIterator */,
+  2 /* Group of ? */,
+  52 /* Group of ? */,
+  203 /* Id of Couple */,
+  4 /* Color of Couple */,
+  4 /* Group of ? */,
+  52 /* Group of ? */,
 };
 const char *LOCATE_kernel = "./../lib/standard//kernel.nit";
-const int SFT_kernel[72] = {
+const int SFT_kernel[27] = {
   3 /* Id of Object */,
-  1 /* Color of Object */,
-  20 /* Color of Object */,
-  21 /* Property object_id */,
-  22 /* Property is_same_type */,
-  23 /* Property == */,
-  24 /* Property != */,
-  25 /* Property output */,
-  26 /* Property exit */,
-  27 /* Property sys */,
-  23 /* Id of Sys */,
-  2 /* Color of Sys */,
-  45 /* Color of Sys */,
-  46 /* Property main */,
-  155 /* Id of Comparable */,
+  2 /* Color of Object */,
+  19 /* Group of ? */,
+  19 /* Id of Sys */,
+  3 /* Color of Sys */,
+  50 /* Group of ? */,
+  211 /* Id of Comparable */,
   4 /* Color of Comparable */,
-  47 /* Color of Comparable */,
-  48 /* Property < */,
-  49 /* Property <= */,
-  50 /* Property >= */,
-  51 /* Property > */,
-  52 /* Property <=> */,
-  53 /* Property is_between */,
-  54 /* Property max */,
-  55 /* Property min */,
-  2643 /* Id of Discrete */,
-  2 /* Color of Discrete */,
-  56 /* Color of Discrete */,
-  57 /* Property succ */,
-  58 /* Property prec */,
-  59 /* Property + */,
-  60 /* Property - */,
-  61 /* Property distance */,
-  -17 /* Id of Bool */,
-  2 /* Color of Bool */,
-  40 /* Color of Bool */,
-  -13 /* Id of Float */,
-  2 /* Color of Float */,
-  41 /* Color of Float */,
-  42 /* Property <= */,
-  43 /* Property < */,
-  44 /* Property >= */,
-  45 /* Property > */,
-  46 /* Property + */,
-  47 /* Property unary - */,
-  48 /* Property - */,
-  49 /* Property * */,
-  50 /* Property / */,
-  51 /* Property to_i */,
-  -33 /* Id of Int */,
-  5 /* Color of Int */,
-  65 /* Color of Int */,
-  66 /* Property unary - */,
-  67 /* Property * */,
-  68 /* Property / */,
-  69 /* Property % */,
-  70 /* Property lshift */,
-  71 /* Property rshift */,
-  72 /* Property to_f */,
-  73 /* Property ascii */,
-  74 /* Property digit_count */,
-  75 /* Property to_c */,
-  -37 /* Id of Char */,
-  5 /* Color of Char */,
-  62 /* Color of Char */,
-  63 /* Property to_i */,
-  64 /* Property ascii */,
-  65 /* Property to_lower */,
-  66 /* Property to_upper */,
+  51 /* Group of ? */,
+  5247 /* Id of Discrete */,
+  5 /* Color of Discrete */,
+  60 /* Group of ? */,
+  -13 /* Id of Bool */,
+  3 /* Color of Bool */,
+  45 /* Group of ? */,
+  -9 /* Id of Float */,
+  3 /* Color of Float */,
+  46 /* Group of ? */,
+  -29 /* Id of Int */,
+  6 /* Color of Int */,
+  69 /* Group of ? */,
+  -33 /* Id of Char */,
+  6 /* Color of Char */,
+  66 /* Group of ? */,
   -1 /* Id of Pointer */,
-  2 /* Color of Pointer */,
-  40 /* Color of Pointer */,
+  3 /* Color of Pointer */,
+  45 /* Group of ? */,
+};
+const char *LOCATE_list = "./../lib/standard//collection//list.nit";
+const int SFT_list[12] = {
+  6399 /* Id of List */,
+  12 /* Color of List */,
+  2 /* Group of ? */,
+  96 /* Group of ? */,
+  6055 /* Id of ListIterator */,
+  6 /* Color of ListIterator */,
+  2 /* Group of ? */,
+  54 /* Group of ? */,
+  5779 /* Id of ListNode */,
+  7 /* Color of ListNode */,
+  3 /* Group of ? */,
+  74 /* Group of ? */,
+};
+const char *LOCATE_sorter = "./../lib/standard//collection//sorter.nit";
+const int SFT_sorter[6] = {
+  231 /* Id of AbstractSorter */,
+  3 /* Color of AbstractSorter */,
+  45 /* Group of ? */,
+  5267 /* Id of ComparableSorter */,
+  4 /* Color of ComparableSorter */,
+  52 /* Group of ? */,
+};
+const char *LOCATE_array = "./../lib/standard//collection//array.nit";
+const int SFT_array[35] = {
+  6099 /* Id of AbstractArrayRead */,
+  12 /* Color of AbstractArrayRead */,
+  2 /* Group of ? */,
+  96 /* Group of ? */,
+  6423 /* Id of AbstractArray */,
+  14 /* Color of AbstractArray */,
+  48 /* Group of ? */,
+  6563 /* Id of Array */,
+  4 /* Color of Array */,
+  3 /* Group of ? */,
+  51 /* Group of ? */,
+  6095 /* Id of ArrayIterator */,
+  6 /* Color of ArrayIterator */,
+  2 /* Group of ? */,
+  54 /* Group of ? */,
+  6411 /* Id of ArraySet */,
+  9 /* Color of ArraySet */,
+  2 /* Group of ? */,
+  80 /* Group of ? */,
+  5295 /* Id of ArraySetIterator */,
+  4 /* Color of ArraySetIterator */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+  6415 /* Id of ArrayMap */,
+  11 /* Color of ArrayMap */,
+  2 /* Group of ? */,
+  88 /* Group of ? */,
+  45 /* Group of ? */,
+  61 /* Group of ? */,
+  227 /* Id of ArrayCapable */,
+  3 /* Color of ArrayCapable */,
+  45 /* Group of ? */,
+  83 /* Id of NativeArray */,
+  3 /* Color of NativeArray */,
+  45 /* Group of ? */,
+};
+const char *LOCATE_hash_collection = "./../lib/standard//collection//hash_collection.nit";
+const int SFT_hash_collection[29] = {
+  5227 /* Id of HashCollection */,
+  4 /* Color of HashCollection */,
+  2 /* Group of ? */,
+  47 /* Group of ? */,
+  191 /* Id of HashNode */,
+  3 /* Color of HashNode */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  6407 /* Id of HashMap */,
+  9 /* Color of HashMap */,
+  57 /* Group of ? */,
+  5223 /* Id of HashMapNode */,
+  5 /* Color of HashMapNode */,
+  58 /* Group of ? */,
+  5871 /* Id of HashMapIterator */,
+  5 /* Color of HashMapIterator */,
+  2 /* Group of ? */,
+  52 /* Group of ? */,
+  6403 /* Id of HashSet */,
+  9 /* Color of HashSet */,
+  56 /* Group of ? */,
+  5215 /* Id of HashSetNode */,
+  4 /* Color of HashSetNode */,
+  4 /* Group of ? */,
+  52 /* Group of ? */,
+  5219 /* Id of HashSetIterator */,
+  4 /* Color of HashSetIterator */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+};
+const char *LOCATE_hash = "./../lib/standard//hash.nit";
+const int SFT_hash[1] = {
+  38 /* Group of ? */,
 };
 const char *LOCATE_time = "./../lib/standard//time.nit";
 const int SFT_time[1] = {
-  28 /* Property get_time */,
-};
-const char *LOCATE_sorter = "./../lib/standard//sorter.nit";
-const int SFT_sorter[12] = {
-  175 /* Id of AbstractSorter */,
-  2 /* Color of AbstractSorter */,
-  40 /* Color of AbstractSorter */,
-  41 /* Property compare */,
-  42 /* Property sort */,
-  43 /* Property sub_sort */,
-  44 /* Property quick_sort */,
-  45 /* Property bubble_sort */,
-  2659 /* Id of ComparableSorter */,
-  3 /* Color of ComparableSorter */,
-  46 /* Color of ComparableSorter */,
-  47 /* Property init */,
+  18 /* Group of ? */,
 };
 const char *LOCATE_file = "./../lib/standard//file.nit";
-const int SFT_file[73] = {
-  29 /* Property printn */,
-  30 /* Property print */,
-  31 /* Property getc */,
-  32 /* Property gets */,
-  33 /* Property stdin */,
-  34 /* Property stdout */,
-  35 /* Property stderr */,
-  2635 /* Id of FStream */,
-  6 /* Color of FStream */,
-  1 /* Property _path */,
-  2 /* Property _file */,
-  46 /* Color of FStream */,
-  47 /* Property path */,
-  48 /* Property file_stat */,
-  3311 /* Id of IFStream */,
-  7 /* Color of IFStream */,
-  5 /* Property _end_reached */,
-  67 /* Color of IFStream */,
-  68 /* Property reopen */,
-  69 /* Property open */,
-  70 /* Property without_file */,
-  3139 /* Id of OFStream */,
-  5 /* Color of OFStream */,
-  3 /* Property _writable */,
-  56 /* Color of OFStream */,
-  57 /* Property write_native */,
-  58 /* Property open */,
-  59 /* Property without_file */,
-  3619 /* Id of Stdin */,
-  8 /* Color of Stdin */,
-  71 /* Color of Stdin */,
-  72 /* Property init */,
-  3267 /* Id of Stdout */,
-  7 /* Color of Stdout */,
-  60 /* Color of Stdout */,
-  61 /* Property init */,
-  3271 /* Id of Stderr */,
-  7 /* Color of Stderr */,
-  60 /* Color of Stderr */,
-  61 /* Property init */,
-  122 /* Property file_exists */,
-  123 /* Property file_stat */,
-  124 /* Property strip_extension */,
-  125 /* Property basename */,
-  126 /* Property dirname */,
-  127 /* Property file_path */,
-  128 /* Property mkdir */,
-  47 /* Property file_exists */,
-  48 /* Property file_stat */,
-  49 /* Property file_mkdir */,
-  -29 /* Id of FileStat */,
-  3 /* Color of FileStat */,
-  41 /* Color of FileStat */,
-  42 /* Property mode */,
-  43 /* Property atime */,
-  44 /* Property ctime */,
-  45 /* Property mtime */,
-  46 /* Property size */,
-  -25 /* Id of NativeFile */,
-  3 /* Color of NativeFile */,
-  41 /* Color of NativeFile */,
-  42 /* Property io_read */,
-  43 /* Property io_write */,
-  44 /* Property io_close */,
-  45 /* Property file_stat */,
-  75 /* Id of NativeFileCapable */,
-  2 /* Color of NativeFileCapable */,
-  40 /* Color of NativeFileCapable */,
-  41 /* Property io_open_read */,
-  42 /* Property io_open_write */,
-  43 /* Property native_stdin */,
-  44 /* Property native_stdout */,
-  45 /* Property native_stderr */,
+const int SFT_file[33] = {
+  27 /* Group of ? */,
+  5235 /* Id of FStream */,
+  7 /* Color of FStream */,
+  2 /* Group of ? */,
+  51 /* Group of ? */,
+  6079 /* Id of IFStream */,
+  8 /* Color of IFStream */,
+  6 /* Group of ? */,
+  71 /* Group of ? */,
+  5735 /* Id of OFStream */,
+  6 /* Color of OFStream */,
+  4 /* Group of ? */,
+  60 /* Group of ? */,
+  6383 /* Id of Stdin */,
+  9 /* Color of Stdin */,
+  76 /* Group of ? */,
+  6027 /* Id of Stdout */,
+  8 /* Color of Stdout */,
+  65 /* Group of ? */,
+  6031 /* Id of Stderr */,
+  8 /* Color of Stderr */,
+  65 /* Group of ? */,
+  122 /* Group of ? */,
+  53 /* Group of ? */,
+  -25 /* Id of FileStat */,
+  4 /* Color of FileStat */,
+  46 /* Group of ? */,
+  -21 /* Id of NativeFile */,
+  4 /* Color of NativeFile */,
+  46 /* Group of ? */,
+  79 /* Id of NativeFileCapable */,
+  3 /* Color of NativeFileCapable */,
+  45 /* Group of ? */,
 };
 const char *LOCATE_stream = "./../lib/standard//stream.nit";
-const int SFT_stream[52] = {
-  135 /* Id of IOS */,
-  3 /* Color of IOS */,
-  51 /* Color of IOS */,
-  52 /* Property close */,
-  2611 /* Id of IStream */,
-  5 /* Color of IStream */,
-  56 /* Color of IStream */,
-  57 /* Property read_char */,
-  58 /* Property read */,
-  59 /* Property read_line */,
-  60 /* Property read_all */,
-  61 /* Property append_line_to */,
-  62 /* Property eof */,
-  2535 /* Id of OStream */,
-  4 /* Color of OStream */,
-  53 /* Color of OStream */,
-  54 /* Property write */,
-  55 /* Property is_writable */,
-  3235 /* Id of BufferedIStream */,
-  4 /* Color of BufferedIStream */,
-  3 /* Property _buffer */,
-  4 /* Property _buffer_pos */,
-  63 /* Color of BufferedIStream */,
-  64 /* Property fill_buffer */,
-  65 /* Property end_reached */,
-  66 /* Property prepare_buffer */,
-  3191 /* Id of IOStream */,
-  8 /* Color of IOStream */,
-  69 /* Color of IOStream */,
-  2639 /* Id of FDStream */,
-  2 /* Color of FDStream */,
-  1 /* Property _fd */,
-  40 /* Color of FDStream */,
-  41 /* Property native_close */,
-  42 /* Property native_read_char */,
-  43 /* Property native_read */,
-  44 /* Property native_write */,
-  45 /* Property init */,
-  3203 /* Id of FDIStream */,
-  7 /* Color of FDIStream */,
-  3 /* Property _eof */,
-  48 /* Color of FDIStream */,
-  49 /* Property init */,
-  3199 /* Id of FDOStream */,
-  6 /* Color of FDOStream */,
-  2 /* Property _is_writable */,
-  46 /* Color of FDOStream */,
-  47 /* Property init */,
-  3315 /* Id of FDIOStream */,
-  9 /* Color of FDIOStream */,
-  63 /* Color of FDIOStream */,
-  64 /* Property init */,
+const int SFT_stream[31] = {
+  155 /* Id of IOS */,
+  4 /* Color of IOS */,
+  54 /* Group of ? */,
+  5187 /* Id of IStream */,
+  6 /* Color of IStream */,
+  60 /* Group of ? */,
+  5091 /* Id of OStream */,
+  5 /* Color of OStream */,
+  57 /* Group of ? */,
+  5907 /* Id of BufferedIStream */,
+  5 /* Color of BufferedIStream */,
+  4 /* Group of ? */,
+  67 /* Group of ? */,
+  5803 /* Id of IOStream */,
+  9 /* Color of IOStream */,
+  73 /* Group of ? */,
+  5239 /* Id of FDStream */,
+  3 /* Color of FDStream */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  5879 /* Id of FDIStream */,
+  8 /* Color of FDIStream */,
+  4 /* Group of ? */,
+  67 /* Group of ? */,
+  5875 /* Id of FDOStream */,
+  7 /* Color of FDOStream */,
+  3 /* Group of ? */,
+  51 /* Group of ? */,
+  6087 /* Id of FDIOStream */,
+  10 /* Color of FDIOStream */,
+  69 /* Group of ? */,
 };
 const char *LOCATE_string_search = "./../lib/standard//string_search.nit";
-const int SFT_string_search[35] = {
-  51 /* Id of Pattern */,
+const int SFT_string_search[12] = {
+  59 /* Id of Pattern */,
   3 /* Color of Pattern */,
-  42 /* Color of Pattern */,
-  43 /* Property search_index_in */,
-  44 /* Property search_in */,
-  45 /* Property search_all_in */,
-  46 /* Property split_in */,
-  2671 /* Id of BM_Pattern */,
+  45 /* Group of ? */,
+  5287 /* Id of BM_Pattern */,
   4 /* Color of BM_Pattern */,
-  1 /* Property _motif */,
-  2 /* Property _length */,
-  3 /* Property _gs */,
-  4 /* Property _bc_table */,
-  47 /* Color of BM_Pattern */,
-  48 /* Property init */,
-  49 /* Property bc */,
-  50 /* Property compute_bc */,
-  51 /* Property suffixes */,
-  52 /* Property compute_gs */,
-  83 /* Id of Match */,
-  2 /* Color of Match */,
-  1 /* Property _string */,
-  2 /* Property _from */,
-  3 /* Property _length */,
-  40 /* Color of Match */,
-  41 /* Property string */,
-  42 /* Property from */,
-  43 /* Property length */,
-  44 /* Property after */,
-  45 /* Property init */,
-  129 /* Property search */,
-  130 /* Property search_from */,
-  131 /* Property search_all */,
-  132 /* Property split_with */,
-  133 /* Property split */,
+  2 /* Group of ? */,
+  51 /* Group of ? */,
+  91 /* Id of Match */,
+  3 /* Color of Match */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  130 /* Group of ? */,
 };
 const char *LOCATE_exec = "./../lib/standard//exec.nit";
-const int SFT_exec[44] = {
-  43 /* Id of Process */,
-  2 /* Color of Process */,
-  1 /* Property _data */,
-  40 /* Color of Process */,
-  41 /* Property id */,
-  42 /* Property is_finished */,
-  43 /* Property wait */,
-  44 /* Property status */,
-  45 /* Property kill */,
-  46 /* Property term */,
-  47 /* Property init */,
-  48 /* Property init_ */,
-  49 /* Property execute */,
-  50 /* Property basic_exec_execute */,
-  3187 /* Id of IProcess */,
-  7 /* Color of IProcess */,
-  3 /* Property _in */,
-  66 /* Color of IProcess */,
-  67 /* Property init */,
-  68 /* Property init_ */,
-  3135 /* Id of OProcess */,
-  6 /* Color of OProcess */,
-  2 /* Property _out */,
-  63 /* Color of OProcess */,
-  64 /* Property init */,
-  65 /* Property init_ */,
-  3307 /* Id of IOProcess */,
-  9 /* Color of IOProcess */,
-  70 /* Color of IOProcess */,
-  71 /* Property init */,
-  72 /* Property init_ */,
-  40 /* Property system */,
-  50 /* Property system */,
-  -21 /* Id of NativeProcess */,
-  3 /* Color of NativeProcess */,
-  41 /* Color of NativeProcess */,
-  42 /* Property id */,
-  43 /* Property is_finished */,
-  44 /* Property status */,
-  45 /* Property wait */,
-  46 /* Property kill */,
-  47 /* Property in_fd */,
-  48 /* Property out_fd */,
-  49 /* Property err_fd */,
-};
-const char *LOCATE_list = "./../lib/standard//list.nit";
-const int SFT_list[28] = {
-  3631 /* Id of List */,
-  10 /* Color of List */,
-  1 /* Property _head */,
-  2 /* Property _tail */,
-  90 /* Color of List */,
-  91 /* Property link */,
-  92 /* Property init */,
-  93 /* Property from */,
-  94 /* Property get_node */,
-  95 /* Property search_node_after */,
-  96 /* Property remove_node */,
-  97 /* Property insert_before */,
-  3299 /* Id of ListIterator */,
-  5 /* Color of ListIterator */,
-  1 /* Property _node */,
-  2 /* Property _index */,
-  50 /* Color of ListIterator */,
-  51 /* Property init */,
-  3179 /* Id of ListNode */,
-  7 /* Color of ListNode */,
-  2 /* Property _next */,
-  3 /* Property _prev */,
-  70 /* Color of ListNode */,
-  71 /* Property init */,
-  72 /* Property next */,
-  73 /* Property next= */,
-  74 /* Property prev */,
-  75 /* Property prev= */,
-};
-const char *LOCATE_range = "./../lib/standard//range.nit";
-const int SFT_range[16] = {
-  2507 /* Id of Range */,
-  6 /* Color of Range */,
-  1 /* Property _first */,
-  2 /* Property _last */,
-  3 /* Property _after */,
-  66 /* Color of Range */,
-  67 /* Property last */,
-  68 /* Property after */,
-  69 /* Property init */,
-  70 /* Property without_last */,
-  2607 /* Id of IteratorRange */,
-  3 /* Color of IteratorRange */,
-  1 /* Property _range */,
-  2 /* Property _item */,
-  45 /* Color of IteratorRange */,
-  46 /* Property init */,
+const int SFT_exec[20] = {
+  51 /* Id of Process */,
+  3 /* Color of Process */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  5795 /* Id of IProcess */,
+  8 /* Color of IProcess */,
+  4 /* Group of ? */,
+  70 /* Group of ? */,
+  5731 /* Id of OProcess */,
+  7 /* Color of OProcess */,
+  3 /* Group of ? */,
+  67 /* Group of ? */,
+  6067 /* Id of IOProcess */,
+  10 /* Color of IOProcess */,
+  74 /* Group of ? */,
+  45 /* Group of ? */,
+  57 /* Group of ? */,
+  -17 /* Id of NativeProcess */,
+  4 /* Color of NativeProcess */,
+  46 /* Group of ? */,
 };
 const char *LOCATE_math = "./../lib/standard//math.nit";
-const int SFT_math[16] = {
-  76 /* Property rand */,
-  52 /* Property sqrt */,
-  53 /* Property cos */,
-  54 /* Property sin */,
-  55 /* Property tan */,
-  56 /* Property acos */,
-  57 /* Property asin */,
-  58 /* Property atan */,
-  59 /* Property pow */,
-  60 /* Property log */,
-  61 /* Property exp */,
-  62 /* Property rand */,
-  36 /* Property atan2 */,
-  37 /* Property pi */,
-  38 /* Property srand_from */,
-  39 /* Property srand */,
+const int SFT_math[3] = {
+  80 /* Group of ? */,
+  57 /* Group of ? */,
+  39 /* Group of ? */,
 };
 const char *LOCATE_parser_tables = "./parser//parser_tables.nit";
-const int SFT_parser_tables[1174] = {
-  59 /* Id of ParserTable */,
-  2 /* Color of ParserTable */,
-  1 /* Property _action_table */,
-  2 /* Property _goto_table */,
-  40 /* Color of ParserTable */,
-  41 /* Property build_action_table */,
-  42 /* Property action_table_row1 */,
-  43 /* Property action_table_row2 */,
-  44 /* Property action_table_row3 */,
-  45 /* Property action_table_row4 */,
-  46 /* Property action_table_row5 */,
-  47 /* Property action_table_row6 */,
-  48 /* Property action_table_row7 */,
-  49 /* Property action_table_row8 */,
-  50 /* Property action_table_row9 */,
-  51 /* Property action_table_row10 */,
-  52 /* Property action_table_row11 */,
-  53 /* Property action_table_row12 */,
-  54 /* Property action_table_row13 */,
-  55 /* Property action_table_row14 */,
-  56 /* Property action_table_row15 */,
-  57 /* Property action_table_row16 */,
-  58 /* Property action_table_row17 */,
-  59 /* Property action_table_row18 */,
-  60 /* Property action_table_row19 */,
-  61 /* Property action_table_row20 */,
-  62 /* Property action_table_row21 */,
-  63 /* Property action_table_row22 */,
-  64 /* Property action_table_row23 */,
-  65 /* Property action_table_row24 */,
-  66 /* Property action_table_row25 */,
-  67 /* Property action_table_row26 */,
-  68 /* Property action_table_row27 */,
-  69 /* Property action_table_row28 */,
-  70 /* Property action_table_row29 */,
-  71 /* Property action_table_row30 */,
-  72 /* Property action_table_row31 */,
-  73 /* Property action_table_row32 */,
-  74 /* Property action_table_row33 */,
-  75 /* Property action_table_row34 */,
-  76 /* Property action_table_row35 */,
-  77 /* Property action_table_row36 */,
-  78 /* Property action_table_row37 */,
-  79 /* Property action_table_row38 */,
-  80 /* Property action_table_row39 */,
-  81 /* Property action_table_row40 */,
-  82 /* Property action_table_row41 */,
-  83 /* Property action_table_row42 */,
-  84 /* Property action_table_row43 */,
-  85 /* Property action_table_row44 */,
-  86 /* Property action_table_row45 */,
-  87 /* Property action_table_row46 */,
-  88 /* Property action_table_row47 */,
-  89 /* Property action_table_row48 */,
-  90 /* Property action_table_row49 */,
-  91 /* Property action_table_row50 */,
-  92 /* Property action_table_row51 */,
-  93 /* Property action_table_row52 */,
-  94 /* Property action_table_row53 */,
-  95 /* Property action_table_row54 */,
-  96 /* Property action_table_row55 */,
-  97 /* Property action_table_row56 */,
-  98 /* Property action_table_row57 */,
-  99 /* Property action_table_row58 */,
-  100 /* Property action_table_row59 */,
-  101 /* Property action_table_row60 */,
-  102 /* Property action_table_row61 */,
-  103 /* Property action_table_row62 */,
-  104 /* Property action_table_row63 */,
-  105 /* Property action_table_row64 */,
-  106 /* Property action_table_row65 */,
-  107 /* Property action_table_row66 */,
-  108 /* Property action_table_row67 */,
-  109 /* Property action_table_row68 */,
-  110 /* Property action_table_row69 */,
-  111 /* Property action_table_row70 */,
-  112 /* Property action_table_row71 */,
-  113 /* Property action_table_row72 */,
-  114 /* Property action_table_row73 */,
-  115 /* Property action_table_row74 */,
-  116 /* Property action_table_row75 */,
-  117 /* Property action_table_row76 */,
-  118 /* Property action_table_row77 */,
-  119 /* Property action_table_row78 */,
-  120 /* Property action_table_row79 */,
-  121 /* Property action_table_row80 */,
-  122 /* Property action_table_row81 */,
-  123 /* Property action_table_row82 */,
-  124 /* Property action_table_row83 */,
-  125 /* Property action_table_row84 */,
-  126 /* Property action_table_row85 */,
-  127 /* Property action_table_row86 */,
-  128 /* Property action_table_row87 */,
-  129 /* Property action_table_row88 */,
-  130 /* Property action_table_row89 */,
-  131 /* Property action_table_row90 */,
-  132 /* Property action_table_row91 */,
-  133 /* Property action_table_row92 */,
-  134 /* Property action_table_row93 */,
-  135 /* Property action_table_row94 */,
-  136 /* Property action_table_row95 */,
-  137 /* Property action_table_row96 */,
-  138 /* Property action_table_row97 */,
-  139 /* Property action_table_row98 */,
-  140 /* Property action_table_row99 */,
-  141 /* Property action_table_row100 */,
-  142 /* Property action_table_row101 */,
-  143 /* Property action_table_row102 */,
-  144 /* Property action_table_row103 */,
-  145 /* Property action_table_row104 */,
-  146 /* Property action_table_row105 */,
-  147 /* Property action_table_row106 */,
-  148 /* Property action_table_row107 */,
-  149 /* Property action_table_row108 */,
-  150 /* Property action_table_row109 */,
-  151 /* Property action_table_row110 */,
-  152 /* Property action_table_row111 */,
-  153 /* Property action_table_row112 */,
-  154 /* Property action_table_row113 */,
-  155 /* Property action_table_row114 */,
-  156 /* Property action_table_row115 */,
-  157 /* Property action_table_row116 */,
-  158 /* Property action_table_row117 */,
-  159 /* Property action_table_row118 */,
-  160 /* Property action_table_row119 */,
-  161 /* Property action_table_row120 */,
-  162 /* Property action_table_row121 */,
-  163 /* Property action_table_row122 */,
-  164 /* Property action_table_row123 */,
-  165 /* Property action_table_row124 */,
-  166 /* Property action_table_row125 */,
-  167 /* Property action_table_row126 */,
-  168 /* Property action_table_row127 */,
-  169 /* Property action_table_row128 */,
-  170 /* Property action_table_row129 */,
-  171 /* Property action_table_row130 */,
-  172 /* Property action_table_row131 */,
-  173 /* Property action_table_row132 */,
-  174 /* Property action_table_row133 */,
-  175 /* Property action_table_row134 */,
-  176 /* Property action_table_row135 */,
-  177 /* Property action_table_row136 */,
-  178 /* Property action_table_row137 */,
-  179 /* Property action_table_row138 */,
-  180 /* Property action_table_row139 */,
-  181 /* Property action_table_row140 */,
-  182 /* Property action_table_row141 */,
-  183 /* Property action_table_row142 */,
-  184 /* Property action_table_row143 */,
-  185 /* Property action_table_row144 */,
-  186 /* Property action_table_row145 */,
-  187 /* Property action_table_row146 */,
-  188 /* Property action_table_row147 */,
-  189 /* Property action_table_row148 */,
-  190 /* Property action_table_row149 */,
-  191 /* Property action_table_row150 */,
-  192 /* Property action_table_row151 */,
-  193 /* Property action_table_row152 */,
-  194 /* Property action_table_row153 */,
-  195 /* Property action_table_row154 */,
-  196 /* Property action_table_row155 */,
-  197 /* Property action_table_row156 */,
-  198 /* Property action_table_row157 */,
-  199 /* Property action_table_row158 */,
-  200 /* Property action_table_row159 */,
-  201 /* Property action_table_row160 */,
-  202 /* Property action_table_row161 */,
-  203 /* Property action_table_row162 */,
-  204 /* Property action_table_row163 */,
-  205 /* Property action_table_row164 */,
-  206 /* Property action_table_row165 */,
-  207 /* Property action_table_row166 */,
-  208 /* Property action_table_row167 */,
-  209 /* Property action_table_row168 */,
-  210 /* Property action_table_row169 */,
-  211 /* Property action_table_row170 */,
-  212 /* Property action_table_row171 */,
-  213 /* Property action_table_row172 */,
-  214 /* Property action_table_row173 */,
-  215 /* Property action_table_row174 */,
-  216 /* Property action_table_row175 */,
-  217 /* Property action_table_row176 */,
-  218 /* Property action_table_row177 */,
-  219 /* Property action_table_row178 */,
-  220 /* Property action_table_row179 */,
-  221 /* Property action_table_row180 */,
-  222 /* Property action_table_row181 */,
-  223 /* Property action_table_row182 */,
-  224 /* Property action_table_row183 */,
-  225 /* Property action_table_row184 */,
-  226 /* Property action_table_row185 */,
-  227 /* Property action_table_row186 */,
-  228 /* Property action_table_row187 */,
-  229 /* Property action_table_row188 */,
-  230 /* Property action_table_row189 */,
-  231 /* Property action_table_row190 */,
-  232 /* Property action_table_row191 */,
-  233 /* Property action_table_row192 */,
-  234 /* Property action_table_row193 */,
-  235 /* Property action_table_row194 */,
-  236 /* Property action_table_row195 */,
-  237 /* Property action_table_row196 */,
-  238 /* Property action_table_row197 */,
-  239 /* Property action_table_row198 */,
-  240 /* Property action_table_row199 */,
-  241 /* Property action_table_row200 */,
-  242 /* Property action_table_row201 */,
-  243 /* Property action_table_row202 */,
-  244 /* Property action_table_row203 */,
-  245 /* Property action_table_row204 */,
-  246 /* Property action_table_row205 */,
-  247 /* Property action_table_row206 */,
-  248 /* Property action_table_row207 */,
-  249 /* Property action_table_row208 */,
-  250 /* Property action_table_row209 */,
-  251 /* Property action_table_row210 */,
-  252 /* Property action_table_row211 */,
-  253 /* Property action_table_row212 */,
-  254 /* Property action_table_row213 */,
-  255 /* Property action_table_row214 */,
-  256 /* Property action_table_row215 */,
-  257 /* Property action_table_row216 */,
-  258 /* Property action_table_row217 */,
-  259 /* Property action_table_row218 */,
-  260 /* Property action_table_row219 */,
-  261 /* Property action_table_row220 */,
-  262 /* Property action_table_row221 */,
-  263 /* Property action_table_row222 */,
-  264 /* Property action_table_row223 */,
-  265 /* Property action_table_row224 */,
-  266 /* Property action_table_row225 */,
-  267 /* Property action_table_row226 */,
-  268 /* Property action_table_row227 */,
-  269 /* Property action_table_row228 */,
-  270 /* Property action_table_row229 */,
-  271 /* Property action_table_row230 */,
-  272 /* Property action_table_row231 */,
-  273 /* Property action_table_row232 */,
-  274 /* Property action_table_row233 */,
-  275 /* Property action_table_row234 */,
-  276 /* Property action_table_row235 */,
-  277 /* Property action_table_row236 */,
-  278 /* Property action_table_row237 */,
-  279 /* Property action_table_row238 */,
-  280 /* Property action_table_row239 */,
-  281 /* Property action_table_row240 */,
-  282 /* Property action_table_row241 */,
-  283 /* Property action_table_row242 */,
-  284 /* Property action_table_row243 */,
-  285 /* Property action_table_row244 */,
-  286 /* Property action_table_row245 */,
-  287 /* Property action_table_row246 */,
-  288 /* Property action_table_row247 */,
-  289 /* Property action_table_row248 */,
-  290 /* Property action_table_row249 */,
-  291 /* Property action_table_row250 */,
-  292 /* Property action_table_row251 */,
-  293 /* Property action_table_row252 */,
-  294 /* Property action_table_row253 */,
-  295 /* Property action_table_row254 */,
-  296 /* Property action_table_row255 */,
-  297 /* Property action_table_row256 */,
-  298 /* Property action_table_row257 */,
-  299 /* Property action_table_row258 */,
-  300 /* Property action_table_row259 */,
-  301 /* Property action_table_row260 */,
-  302 /* Property action_table_row261 */,
-  303 /* Property action_table_row262 */,
-  304 /* Property action_table_row263 */,
-  305 /* Property action_table_row264 */,
-  306 /* Property action_table_row265 */,
-  307 /* Property action_table_row266 */,
-  308 /* Property action_table_row267 */,
-  309 /* Property action_table_row268 */,
-  310 /* Property action_table_row269 */,
-  311 /* Property action_table_row270 */,
-  312 /* Property action_table_row271 */,
-  313 /* Property action_table_row272 */,
-  314 /* Property action_table_row273 */,
-  315 /* Property action_table_row274 */,
-  316 /* Property action_table_row275 */,
-  317 /* Property action_table_row276 */,
-  318 /* Property action_table_row277 */,
-  319 /* Property action_table_row278 */,
-  320 /* Property action_table_row279 */,
-  321 /* Property action_table_row280 */,
-  322 /* Property action_table_row281 */,
-  323 /* Property action_table_row282 */,
-  324 /* Property action_table_row283 */,
-  325 /* Property action_table_row284 */,
-  326 /* Property action_table_row285 */,
-  327 /* Property action_table_row286 */,
-  328 /* Property action_table_row287 */,
-  329 /* Property action_table_row288 */,
-  330 /* Property action_table_row289 */,
-  331 /* Property action_table_row290 */,
-  332 /* Property action_table_row291 */,
-  333 /* Property action_table_row292 */,
-  334 /* Property action_table_row293 */,
-  335 /* Property action_table_row294 */,
-  336 /* Property action_table_row295 */,
-  337 /* Property action_table_row296 */,
-  338 /* Property action_table_row297 */,
-  339 /* Property action_table_row298 */,
-  340 /* Property action_table_row299 */,
-  341 /* Property action_table_row300 */,
-  342 /* Property action_table_row301 */,
-  343 /* Property action_table_row302 */,
-  344 /* Property action_table_row303 */,
-  345 /* Property action_table_row304 */,
-  346 /* Property action_table_row305 */,
-  347 /* Property action_table_row306 */,
-  348 /* Property action_table_row307 */,
-  349 /* Property action_table_row308 */,
-  350 /* Property action_table_row309 */,
-  351 /* Property action_table_row310 */,
-  352 /* Property action_table_row311 */,
-  353 /* Property action_table_row312 */,
-  354 /* Property action_table_row313 */,
-  355 /* Property action_table_row314 */,
-  356 /* Property action_table_row315 */,
-  357 /* Property action_table_row316 */,
-  358 /* Property action_table_row317 */,
-  359 /* Property action_table_row318 */,
-  360 /* Property action_table_row319 */,
-  361 /* Property action_table_row320 */,
-  362 /* Property action_table_row321 */,
-  363 /* Property action_table_row322 */,
-  364 /* Property action_table_row323 */,
-  365 /* Property action_table_row324 */,
-  366 /* Property action_table_row325 */,
-  367 /* Property action_table_row326 */,
-  368 /* Property action_table_row327 */,
-  369 /* Property action_table_row328 */,
-  370 /* Property action_table_row329 */,
-  371 /* Property action_table_row330 */,
-  372 /* Property action_table_row331 */,
-  373 /* Property action_table_row332 */,
-  374 /* Property action_table_row333 */,
-  375 /* Property action_table_row334 */,
-  376 /* Property action_table_row335 */,
-  377 /* Property action_table_row336 */,
-  378 /* Property action_table_row337 */,
-  379 /* Property action_table_row338 */,
-  380 /* Property action_table_row339 */,
-  381 /* Property action_table_row340 */,
-  382 /* Property action_table_row341 */,
-  383 /* Property action_table_row342 */,
-  384 /* Property action_table_row343 */,
-  385 /* Property action_table_row344 */,
-  386 /* Property action_table_row345 */,
-  387 /* Property action_table_row346 */,
-  388 /* Property action_table_row347 */,
-  389 /* Property action_table_row348 */,
-  390 /* Property action_table_row349 */,
-  391 /* Property action_table_row350 */,
-  392 /* Property action_table_row351 */,
-  393 /* Property action_table_row352 */,
-  394 /* Property action_table_row353 */,
-  395 /* Property action_table_row354 */,
-  396 /* Property action_table_row355 */,
-  397 /* Property action_table_row356 */,
-  398 /* Property action_table_row357 */,
-  399 /* Property action_table_row358 */,
-  400 /* Property action_table_row359 */,
-  401 /* Property action_table_row360 */,
-  402 /* Property action_table_row361 */,
-  403 /* Property action_table_row362 */,
-  404 /* Property action_table_row363 */,
-  405 /* Property action_table_row364 */,
-  406 /* Property action_table_row365 */,
-  407 /* Property action_table_row366 */,
-  408 /* Property action_table_row367 */,
-  409 /* Property action_table_row368 */,
-  410 /* Property action_table_row369 */,
-  411 /* Property action_table_row370 */,
-  412 /* Property action_table_row371 */,
-  413 /* Property action_table_row372 */,
-  414 /* Property action_table_row373 */,
-  415 /* Property action_table_row374 */,
-  416 /* Property action_table_row375 */,
-  417 /* Property action_table_row376 */,
-  418 /* Property action_table_row377 */,
-  419 /* Property action_table_row378 */,
-  420 /* Property action_table_row379 */,
-  421 /* Property action_table_row380 */,
-  422 /* Property action_table_row381 */,
-  423 /* Property action_table_row382 */,
-  424 /* Property action_table_row383 */,
-  425 /* Property action_table_row384 */,
-  426 /* Property action_table_row385 */,
-  427 /* Property action_table_row386 */,
-  428 /* Property action_table_row387 */,
-  429 /* Property action_table_row388 */,
-  430 /* Property action_table_row389 */,
-  431 /* Property action_table_row390 */,
-  432 /* Property action_table_row391 */,
-  433 /* Property action_table_row392 */,
-  434 /* Property action_table_row393 */,
-  435 /* Property action_table_row394 */,
-  436 /* Property action_table_row395 */,
-  437 /* Property action_table_row396 */,
-  438 /* Property action_table_row397 */,
-  439 /* Property action_table_row398 */,
-  440 /* Property action_table_row399 */,
-  441 /* Property action_table_row400 */,
-  442 /* Property action_table_row401 */,
-  443 /* Property action_table_row402 */,
-  444 /* Property action_table_row403 */,
-  445 /* Property action_table_row404 */,
-  446 /* Property action_table_row405 */,
-  447 /* Property action_table_row406 */,
-  448 /* Property action_table_row407 */,
-  449 /* Property action_table_row408 */,
-  450 /* Property action_table_row409 */,
-  451 /* Property action_table_row410 */,
-  452 /* Property action_table_row411 */,
-  453 /* Property action_table_row412 */,
-  454 /* Property action_table_row413 */,
-  455 /* Property action_table_row414 */,
-  456 /* Property action_table_row415 */,
-  457 /* Property action_table_row416 */,
-  458 /* Property action_table_row417 */,
-  459 /* Property action_table_row418 */,
-  460 /* Property action_table_row419 */,
-  461 /* Property action_table_row420 */,
-  462 /* Property action_table_row421 */,
-  463 /* Property action_table_row422 */,
-  464 /* Property action_table_row423 */,
-  465 /* Property action_table_row424 */,
-  466 /* Property action_table_row425 */,
-  467 /* Property action_table_row426 */,
-  468 /* Property action_table_row427 */,
-  469 /* Property action_table_row428 */,
-  470 /* Property action_table_row429 */,
-  471 /* Property action_table_row430 */,
-  472 /* Property action_table_row431 */,
-  473 /* Property action_table_row432 */,
-  474 /* Property action_table_row433 */,
-  475 /* Property action_table_row434 */,
-  476 /* Property action_table_row435 */,
-  477 /* Property action_table_row436 */,
-  478 /* Property action_table_row437 */,
-  479 /* Property action_table_row438 */,
-  480 /* Property action_table_row439 */,
-  481 /* Property action_table_row440 */,
-  482 /* Property action_table_row441 */,
-  483 /* Property action_table_row442 */,
-  484 /* Property action_table_row443 */,
-  485 /* Property action_table_row444 */,
-  486 /* Property action_table_row445 */,
-  487 /* Property action_table_row446 */,
-  488 /* Property action_table_row447 */,
-  489 /* Property action_table_row448 */,
-  490 /* Property action_table_row449 */,
-  491 /* Property action_table_row450 */,
-  492 /* Property action_table_row451 */,
-  493 /* Property action_table_row452 */,
-  494 /* Property action_table_row453 */,
-  495 /* Property action_table_row454 */,
-  496 /* Property action_table_row455 */,
-  497 /* Property action_table_row456 */,
-  498 /* Property action_table_row457 */,
-  499 /* Property action_table_row458 */,
-  500 /* Property action_table_row459 */,
-  501 /* Property action_table_row460 */,
-  502 /* Property action_table_row461 */,
-  503 /* Property action_table_row462 */,
-  504 /* Property action_table_row463 */,
-  505 /* Property action_table_row464 */,
-  506 /* Property action_table_row465 */,
-  507 /* Property action_table_row466 */,
-  508 /* Property action_table_row467 */,
-  509 /* Property action_table_row468 */,
-  510 /* Property action_table_row469 */,
-  511 /* Property action_table_row470 */,
-  512 /* Property action_table_row471 */,
-  513 /* Property action_table_row472 */,
-  514 /* Property action_table_row473 */,
-  515 /* Property action_table_row474 */,
-  516 /* Property action_table_row475 */,
-  517 /* Property action_table_row476 */,
-  518 /* Property action_table_row477 */,
-  519 /* Property action_table_row478 */,
-  520 /* Property action_table_row479 */,
-  521 /* Property action_table_row480 */,
-  522 /* Property action_table_row481 */,
-  523 /* Property action_table_row482 */,
-  524 /* Property action_table_row483 */,
-  525 /* Property action_table_row484 */,
-  526 /* Property action_table_row485 */,
-  527 /* Property action_table_row486 */,
-  528 /* Property action_table_row487 */,
-  529 /* Property action_table_row488 */,
-  530 /* Property action_table_row489 */,
-  531 /* Property action_table_row490 */,
-  532 /* Property action_table_row491 */,
-  533 /* Property action_table_row492 */,
-  534 /* Property action_table_row493 */,
-  535 /* Property action_table_row494 */,
-  536 /* Property action_table_row495 */,
-  537 /* Property action_table_row496 */,
-  538 /* Property action_table_row497 */,
-  539 /* Property action_table_row498 */,
-  540 /* Property action_table_row499 */,
-  541 /* Property action_table_row500 */,
-  542 /* Property action_table_row501 */,
-  543 /* Property action_table_row502 */,
-  544 /* Property action_table_row503 */,
-  545 /* Property action_table_row504 */,
-  546 /* Property action_table_row505 */,
-  547 /* Property action_table_row506 */,
-  548 /* Property action_table_row507 */,
-  549 /* Property action_table_row508 */,
-  550 /* Property action_table_row509 */,
-  551 /* Property action_table_row510 */,
-  552 /* Property action_table_row511 */,
-  553 /* Property action_table_row512 */,
-  554 /* Property action_table_row513 */,
-  555 /* Property action_table_row514 */,
-  556 /* Property action_table_row515 */,
-  557 /* Property action_table_row516 */,
-  558 /* Property action_table_row517 */,
-  559 /* Property action_table_row518 */,
-  560 /* Property action_table_row519 */,
-  561 /* Property action_table_row520 */,
-  562 /* Property action_table_row521 */,
-  563 /* Property action_table_row522 */,
-  564 /* Property action_table_row523 */,
-  565 /* Property action_table_row524 */,
-  566 /* Property action_table_row525 */,
-  567 /* Property action_table_row526 */,
-  568 /* Property action_table_row527 */,
-  569 /* Property action_table_row528 */,
-  570 /* Property action_table_row529 */,
-  571 /* Property action_table_row530 */,
-  572 /* Property action_table_row531 */,
-  573 /* Property action_table_row532 */,
-  574 /* Property action_table_row533 */,
-  575 /* Property action_table_row534 */,
-  576 /* Property action_table_row535 */,
-  577 /* Property action_table_row536 */,
-  578 /* Property action_table_row537 */,
-  579 /* Property action_table_row538 */,
-  580 /* Property action_table_row539 */,
-  581 /* Property action_table_row540 */,
-  582 /* Property action_table_row541 */,
-  583 /* Property action_table_row542 */,
-  584 /* Property action_table_row543 */,
-  585 /* Property action_table_row544 */,
-  586 /* Property action_table_row545 */,
-  587 /* Property action_table_row546 */,
-  588 /* Property action_table_row547 */,
-  589 /* Property action_table_row548 */,
-  590 /* Property action_table_row549 */,
-  591 /* Property action_table_row550 */,
-  592 /* Property action_table_row551 */,
-  593 /* Property action_table_row552 */,
-  594 /* Property action_table_row553 */,
-  595 /* Property action_table_row554 */,
-  596 /* Property action_table_row555 */,
-  597 /* Property action_table_row556 */,
-  598 /* Property action_table_row557 */,
-  599 /* Property action_table_row558 */,
-  600 /* Property action_table_row559 */,
-  601 /* Property action_table_row560 */,
-  602 /* Property action_table_row561 */,
-  603 /* Property action_table_row562 */,
-  604 /* Property action_table_row563 */,
-  605 /* Property action_table_row564 */,
-  606 /* Property action_table_row565 */,
-  607 /* Property action_table_row566 */,
-  608 /* Property action_table_row567 */,
-  609 /* Property action_table_row568 */,
-  610 /* Property action_table_row569 */,
-  611 /* Property action_table_row570 */,
-  612 /* Property action_table_row571 */,
-  613 /* Property action_table_row572 */,
-  614 /* Property action_table_row573 */,
-  615 /* Property action_table_row574 */,
-  616 /* Property action_table_row575 */,
-  617 /* Property action_table_row576 */,
-  618 /* Property action_table_row577 */,
-  619 /* Property action_table_row578 */,
-  620 /* Property action_table_row579 */,
-  621 /* Property action_table_row580 */,
-  622 /* Property action_table_row581 */,
-  623 /* Property action_table_row582 */,
-  624 /* Property action_table_row583 */,
-  625 /* Property action_table_row584 */,
-  626 /* Property action_table_row585 */,
-  627 /* Property action_table_row586 */,
-  628 /* Property action_table_row587 */,
-  629 /* Property action_table_row588 */,
-  630 /* Property action_table_row589 */,
-  631 /* Property action_table_row590 */,
-  632 /* Property action_table_row591 */,
-  633 /* Property action_table_row592 */,
-  634 /* Property action_table_row593 */,
-  635 /* Property action_table_row594 */,
-  636 /* Property action_table_row595 */,
-  637 /* Property action_table_row596 */,
-  638 /* Property action_table_row597 */,
-  639 /* Property action_table_row598 */,
-  640 /* Property action_table_row599 */,
-  641 /* Property action_table_row600 */,
-  642 /* Property action_table_row601 */,
-  643 /* Property action_table_row602 */,
-  644 /* Property action_table_row603 */,
-  645 /* Property action_table_row604 */,
-  646 /* Property action_table_row605 */,
-  647 /* Property action_table_row606 */,
-  648 /* Property action_table_row607 */,
-  649 /* Property action_table_row608 */,
-  650 /* Property action_table_row609 */,
-  651 /* Property action_table_row610 */,
-  652 /* Property action_table_row611 */,
-  653 /* Property action_table_row612 */,
-  654 /* Property action_table_row613 */,
-  655 /* Property action_table_row614 */,
-  656 /* Property action_table_row615 */,
-  657 /* Property action_table_row616 */,
-  658 /* Property action_table_row617 */,
-  659 /* Property action_table_row618 */,
-  660 /* Property action_table_row619 */,
-  661 /* Property action_table_row620 */,
-  662 /* Property action_table_row621 */,
-  663 /* Property action_table_row622 */,
-  664 /* Property action_table_row623 */,
-  665 /* Property action_table_row624 */,
-  666 /* Property action_table_row625 */,
-  667 /* Property action_table_row626 */,
-  668 /* Property action_table_row627 */,
-  669 /* Property action_table_row628 */,
-  670 /* Property action_table_row629 */,
-  671 /* Property action_table_row630 */,
-  672 /* Property action_table_row631 */,
-  673 /* Property action_table_row632 */,
-  674 /* Property action_table_row633 */,
-  675 /* Property action_table_row634 */,
-  676 /* Property action_table_row635 */,
-  677 /* Property action_table_row636 */,
-  678 /* Property action_table_row637 */,
-  679 /* Property action_table_row638 */,
-  680 /* Property action_table_row639 */,
-  681 /* Property action_table_row640 */,
-  682 /* Property action_table_row641 */,
-  683 /* Property action_table_row642 */,
-  684 /* Property action_table_row643 */,
-  685 /* Property action_table_row644 */,
-  686 /* Property action_table_row645 */,
-  687 /* Property action_table_row646 */,
-  688 /* Property action_table_row647 */,
-  689 /* Property action_table_row648 */,
-  690 /* Property action_table_row649 */,
-  691 /* Property action_table_row650 */,
-  692 /* Property action_table_row651 */,
-  693 /* Property action_table_row652 */,
-  694 /* Property action_table_row653 */,
-  695 /* Property action_table_row654 */,
-  696 /* Property action_table_row655 */,
-  697 /* Property action_table_row656 */,
-  698 /* Property action_table_row657 */,
-  699 /* Property action_table_row658 */,
-  700 /* Property action_table_row659 */,
-  701 /* Property action_table_row660 */,
-  702 /* Property action_table_row661 */,
-  703 /* Property action_table_row662 */,
-  704 /* Property action_table_row663 */,
-  705 /* Property action_table_row664 */,
-  706 /* Property action_table_row665 */,
-  707 /* Property action_table_row666 */,
-  708 /* Property action_table_row667 */,
-  709 /* Property action_table_row668 */,
-  710 /* Property action_table_row669 */,
-  711 /* Property action_table_row670 */,
-  712 /* Property action_table_row671 */,
-  713 /* Property action_table_row672 */,
-  714 /* Property action_table_row673 */,
-  715 /* Property action_table_row674 */,
-  716 /* Property action_table_row675 */,
-  717 /* Property action_table_row676 */,
-  718 /* Property action_table_row677 */,
-  719 /* Property action_table_row678 */,
-  720 /* Property action_table_row679 */,
-  721 /* Property action_table_row680 */,
-  722 /* Property action_table_row681 */,
-  723 /* Property action_table_row682 */,
-  724 /* Property action_table_row683 */,
-  725 /* Property action_table_row684 */,
-  726 /* Property action_table_row685 */,
-  727 /* Property action_table_row686 */,
-  728 /* Property action_table_row687 */,
-  729 /* Property action_table_row688 */,
-  730 /* Property action_table_row689 */,
-  731 /* Property action_table_row690 */,
-  732 /* Property action_table_row691 */,
-  733 /* Property action_table_row692 */,
-  734 /* Property action_table_row693 */,
-  735 /* Property action_table_row694 */,
-  736 /* Property action_table_row695 */,
-  737 /* Property action_table_row696 */,
-  738 /* Property action_table_row697 */,
-  739 /* Property action_table_row698 */,
-  740 /* Property action_table_row699 */,
-  741 /* Property action_table_row700 */,
-  742 /* Property action_table_row701 */,
-  743 /* Property action_table_row702 */,
-  744 /* Property action_table_row703 */,
-  745 /* Property action_table_row704 */,
-  746 /* Property action_table_row705 */,
-  747 /* Property action_table_row706 */,
-  748 /* Property action_table_row707 */,
-  749 /* Property action_table_row708 */,
-  750 /* Property action_table_row709 */,
-  751 /* Property action_table_row710 */,
-  752 /* Property action_table_row711 */,
-  753 /* Property action_table_row712 */,
-  754 /* Property action_table_row713 */,
-  755 /* Property action_table_row714 */,
-  756 /* Property action_table_row715 */,
-  757 /* Property action_table_row716 */,
-  758 /* Property action_table_row717 */,
-  759 /* Property action_table_row718 */,
-  760 /* Property action_table_row719 */,
-  761 /* Property action_table_row720 */,
-  762 /* Property action_table_row721 */,
-  763 /* Property action_table_row722 */,
-  764 /* Property action_table_row723 */,
-  765 /* Property action_table_row724 */,
-  766 /* Property action_table_row725 */,
-  767 /* Property action_table_row726 */,
-  768 /* Property action_table_row727 */,
-  769 /* Property action_table_row728 */,
-  770 /* Property action_table_row729 */,
-  771 /* Property action_table_row730 */,
-  772 /* Property action_table_row731 */,
-  773 /* Property action_table_row732 */,
-  774 /* Property action_table_row733 */,
-  775 /* Property action_table_row734 */,
-  776 /* Property action_table_row735 */,
-  777 /* Property action_table_row736 */,
-  778 /* Property action_table_row737 */,
-  779 /* Property action_table_row738 */,
-  780 /* Property action_table_row739 */,
-  781 /* Property action_table_row740 */,
-  782 /* Property action_table_row741 */,
-  783 /* Property action_table_row742 */,
-  784 /* Property action_table_row743 */,
-  785 /* Property action_table_row744 */,
-  786 /* Property action_table_row745 */,
-  787 /* Property action_table_row746 */,
-  788 /* Property action_table_row747 */,
-  789 /* Property action_table_row748 */,
-  790 /* Property action_table_row749 */,
-  791 /* Property action_table_row750 */,
-  792 /* Property action_table_row751 */,
-  793 /* Property action_table_row752 */,
-  794 /* Property action_table_row753 */,
-  795 /* Property action_table_row754 */,
-  796 /* Property action_table_row755 */,
-  797 /* Property action_table_row756 */,
-  798 /* Property action_table_row757 */,
-  799 /* Property action_table_row758 */,
-  800 /* Property action_table_row759 */,
-  801 /* Property action_table_row760 */,
-  802 /* Property action_table_row761 */,
-  803 /* Property action_table_row762 */,
-  804 /* Property action_table_row763 */,
-  805 /* Property action_table_row764 */,
-  806 /* Property action_table_row765 */,
-  807 /* Property action_table_row766 */,
-  808 /* Property action_table_row767 */,
-  809 /* Property action_table_row768 */,
-  810 /* Property action_table_row769 */,
-  811 /* Property action_table_row770 */,
-  812 /* Property action_table_row771 */,
-  813 /* Property action_table_row772 */,
-  814 /* Property action_table_row773 */,
-  815 /* Property action_table_row774 */,
-  816 /* Property action_table_row775 */,
-  817 /* Property action_table_row776 */,
-  818 /* Property action_table_row777 */,
-  819 /* Property action_table_row778 */,
-  820 /* Property action_table_row779 */,
-  821 /* Property action_table_row780 */,
-  822 /* Property action_table_row781 */,
-  823 /* Property action_table_row782 */,
-  824 /* Property action_table_row783 */,
-  825 /* Property action_table_row784 */,
-  826 /* Property action_table_row785 */,
-  827 /* Property action_table_row786 */,
-  828 /* Property action_table_row787 */,
-  829 /* Property action_table_row788 */,
-  830 /* Property action_table_row789 */,
-  831 /* Property action_table_row790 */,
-  832 /* Property action_table_row791 */,
-  833 /* Property action_table_row792 */,
-  834 /* Property action_table_row793 */,
-  835 /* Property action_table_row794 */,
-  836 /* Property action_table_row795 */,
-  837 /* Property action_table_row796 */,
-  838 /* Property action_table_row797 */,
-  839 /* Property action_table_row798 */,
-  840 /* Property action_table_row799 */,
-  841 /* Property action_table_row800 */,
-  842 /* Property action_table_row801 */,
-  843 /* Property action_table_row802 */,
-  844 /* Property action_table_row803 */,
-  845 /* Property action_table_row804 */,
-  846 /* Property action_table_row805 */,
-  847 /* Property action_table_row806 */,
-  848 /* Property action_table_row807 */,
-  849 /* Property action_table_row808 */,
-  850 /* Property action_table_row809 */,
-  851 /* Property action_table_row810 */,
-  852 /* Property action_table_row811 */,
-  853 /* Property action_table_row812 */,
-  854 /* Property action_table_row813 */,
-  855 /* Property action_table_row814 */,
-  856 /* Property action_table_row815 */,
-  857 /* Property action_table_row816 */,
-  858 /* Property action_table_row817 */,
-  859 /* Property action_table_row818 */,
-  860 /* Property action_table_row819 */,
-  861 /* Property action_table_row820 */,
-  862 /* Property action_table_row821 */,
-  863 /* Property action_table_row822 */,
-  864 /* Property action_table_row823 */,
-  865 /* Property action_table_row824 */,
-  866 /* Property action_table_row825 */,
-  867 /* Property action_table_row826 */,
-  868 /* Property action_table_row827 */,
-  869 /* Property action_table_row828 */,
-  870 /* Property action_table_row829 */,
-  871 /* Property action_table_row830 */,
-  872 /* Property action_table_row831 */,
-  873 /* Property action_table_row832 */,
-  874 /* Property action_table_row833 */,
-  875 /* Property action_table_row834 */,
-  876 /* Property action_table_row835 */,
-  877 /* Property action_table_row836 */,
-  878 /* Property action_table_row837 */,
-  879 /* Property action_table_row838 */,
-  880 /* Property action_table_row839 */,
-  881 /* Property action_table_row840 */,
-  882 /* Property action_table_row841 */,
-  883 /* Property action_table_row842 */,
-  884 /* Property action_table_row843 */,
-  885 /* Property action_table_row844 */,
-  886 /* Property action_table_row845 */,
-  887 /* Property action_table_row846 */,
-  888 /* Property action_table_row847 */,
-  889 /* Property action_table_row848 */,
-  890 /* Property action_table_row849 */,
-  891 /* Property action_table_row850 */,
-  892 /* Property action_table_row851 */,
-  893 /* Property action_table_row852 */,
-  894 /* Property action_table_row853 */,
-  895 /* Property action_table_row854 */,
-  896 /* Property action_table_row855 */,
-  897 /* Property action_table_row856 */,
-  898 /* Property action_table_row857 */,
-  899 /* Property action_table_row858 */,
-  900 /* Property action_table_row859 */,
-  901 /* Property action_table_row860 */,
-  902 /* Property action_table_row861 */,
-  903 /* Property action_table_row862 */,
-  904 /* Property action_table_row863 */,
-  905 /* Property action_table_row864 */,
-  906 /* Property action_table_row865 */,
-  907 /* Property action_table_row866 */,
-  908 /* Property action_table_row867 */,
-  909 /* Property action_table_row868 */,
-  910 /* Property action_table_row869 */,
-  911 /* Property action_table_row870 */,
-  912 /* Property action_table_row871 */,
-  913 /* Property action_table_row872 */,
-  914 /* Property action_table_row873 */,
-  915 /* Property action_table_row874 */,
-  916 /* Property action_table_row875 */,
-  917 /* Property action_table_row876 */,
-  918 /* Property action_table_row877 */,
-  919 /* Property action_table_row878 */,
-  920 /* Property action_table_row879 */,
-  921 /* Property action_table_row880 */,
-  922 /* Property action_table_row881 */,
-  923 /* Property action_table_row882 */,
-  924 /* Property action_table_row883 */,
-  925 /* Property action_table_row884 */,
-  926 /* Property action_table_row885 */,
-  927 /* Property action_table_row886 */,
-  928 /* Property action_table_row887 */,
-  929 /* Property action_table_row888 */,
-  930 /* Property action_table_row889 */,
-  931 /* Property action_table_row890 */,
-  932 /* Property action_table_row891 */,
-  933 /* Property action_table_row892 */,
-  934 /* Property action_table_row893 */,
-  935 /* Property action_table_row894 */,
-  936 /* Property action_table_row895 */,
-  937 /* Property action_table_row896 */,
-  938 /* Property action_table_row897 */,
-  939 /* Property action_table_row898 */,
-  940 /* Property action_table_row899 */,
-  941 /* Property action_table_row900 */,
-  942 /* Property action_table_row901 */,
-  943 /* Property action_table_row902 */,
-  944 /* Property action_table_row903 */,
-  945 /* Property action_table_row904 */,
-  946 /* Property action_table_row905 */,
-  947 /* Property action_table_row906 */,
-  948 /* Property action_table_row907 */,
-  949 /* Property action_table_row908 */,
-  950 /* Property action_table_row909 */,
-  951 /* Property action_table_row910 */,
-  952 /* Property action_table_row911 */,
-  953 /* Property action_table_row912 */,
-  954 /* Property action_table_row913 */,
-  955 /* Property action_table_row914 */,
-  956 /* Property action_table_row915 */,
-  957 /* Property action_table_row916 */,
-  958 /* Property action_table_row917 */,
-  959 /* Property action_table_row918 */,
-  960 /* Property action_table_row919 */,
-  961 /* Property action_table_row920 */,
-  962 /* Property action_table_row921 */,
-  963 /* Property action_table_row922 */,
-  964 /* Property action_table_row923 */,
-  965 /* Property action_table_row924 */,
-  966 /* Property action_table_row925 */,
-  967 /* Property action_table_row926 */,
-  968 /* Property action_table_row927 */,
-  969 /* Property action_table_row928 */,
-  970 /* Property action_table_row929 */,
-  971 /* Property action_table_row930 */,
-  972 /* Property action_table_row931 */,
-  973 /* Property action_table_row932 */,
-  974 /* Property action_table_row933 */,
-  975 /* Property action_table_row934 */,
-  976 /* Property action_table_row935 */,
-  977 /* Property action_table_row936 */,
-  978 /* Property action_table_row937 */,
-  979 /* Property action_table_row938 */,
-  980 /* Property action_table_row939 */,
-  981 /* Property action_table_row940 */,
-  982 /* Property action_table_row941 */,
-  983 /* Property action_table_row942 */,
-  984 /* Property action_table_row943 */,
-  985 /* Property action_table_row944 */,
-  986 /* Property action_table_row945 */,
-  987 /* Property action_table_row946 */,
-  988 /* Property action_table_row947 */,
-  989 /* Property action_table_row948 */,
-  990 /* Property action_table_row949 */,
-  991 /* Property action_table_row950 */,
-  992 /* Property action_table_row951 */,
-  993 /* Property action_table_row952 */,
-  994 /* Property action_table_row953 */,
-  995 /* Property action_table_row954 */,
-  996 /* Property action_table_row955 */,
-  997 /* Property action_table_row956 */,
-  998 /* Property action_table_row957 */,
-  999 /* Property action_table_row958 */,
-  1000 /* Property action_table_row959 */,
-  1001 /* Property action_table_row960 */,
-  1002 /* Property action_table_row961 */,
-  1003 /* Property action_table_row962 */,
-  1004 /* Property action_table_row963 */,
-  1005 /* Property action_table_row964 */,
-  1006 /* Property action_table_row965 */,
-  1007 /* Property action_table_row966 */,
-  1008 /* Property action_table_row967 */,
-  1009 /* Property action_table_row968 */,
-  1010 /* Property action_table_row969 */,
-  1011 /* Property action_table_row970 */,
-  1012 /* Property action_table_row971 */,
-  1013 /* Property action_table_row972 */,
-  1014 /* Property action_table_row973 */,
-  1015 /* Property action_table_row974 */,
-  1016 /* Property action_table_row975 */,
-  1017 /* Property action_table_row976 */,
-  1018 /* Property action_table_row977 */,
-  1019 /* Property action_table_row978 */,
-  1020 /* Property action_table_row979 */,
-  1021 /* Property action_table_row980 */,
-  1022 /* Property action_table_row981 */,
-  1023 /* Property action_table_row982 */,
-  1024 /* Property action_table_row983 */,
-  1025 /* Property action_table_row984 */,
-  1026 /* Property action_table_row985 */,
-  1027 /* Property action_table_row986 */,
-  1028 /* Property action_table_row987 */,
-  1029 /* Property action_table_row988 */,
-  1030 /* Property action_table_row989 */,
-  1031 /* Property action_table_row990 */,
-  1032 /* Property action_table_row991 */,
-  1033 /* Property action_table_row992 */,
-  1034 /* Property action_table_row993 */,
-  1035 /* Property action_table_row994 */,
-  1036 /* Property action_table_row995 */,
-  1037 /* Property action_table_row996 */,
-  1038 /* Property action_table_row997 */,
-  1039 /* Property action_table_row998 */,
-  1040 /* Property action_table_row999 */,
-  1041 /* Property action_table_row1000 */,
-  1042 /* Property action_table_row1001 */,
-  1043 /* Property action_table_row1002 */,
-  1044 /* Property action_table_row1003 */,
-  1045 /* Property action_table_row1004 */,
-  1046 /* Property action_table_row1005 */,
-  1047 /* Property action_table_row1006 */,
-  1048 /* Property action_table_row1007 */,
-  1049 /* Property action_table_row1008 */,
-  1050 /* Property action_table_row1009 */,
-  1051 /* Property action_table_row1010 */,
-  1052 /* Property action_table_row1011 */,
-  1053 /* Property action_table_row1012 */,
-  1054 /* Property action_table_row1013 */,
-  1055 /* Property action_table_row1014 */,
-  1056 /* Property action_table_row1015 */,
-  1057 /* Property action_table_row1016 */,
-  1058 /* Property action_table_row1017 */,
-  1059 /* Property action_table_row1018 */,
-  1060 /* Property action_table_row1019 */,
-  1061 /* Property action_table_row1020 */,
-  1062 /* Property action_table_row1021 */,
-  1063 /* Property action_table_row1022 */,
-  1064 /* Property action_table_row1023 */,
-  1065 /* Property action_table_row1024 */,
-  1066 /* Property action_table_row1025 */,
-  1067 /* Property action_table_row1026 */,
-  1068 /* Property action_table_row1027 */,
-  1069 /* Property action_table_row1028 */,
-  1070 /* Property action_table_row1029 */,
-  1071 /* Property action_table_row1030 */,
-  1072 /* Property action_table_row1031 */,
-  1073 /* Property action_table_row1032 */,
-  1074 /* Property action_table_row1033 */,
-  1075 /* Property action_table_row1034 */,
-  1076 /* Property action_table_row1035 */,
-  1077 /* Property action_table_row1036 */,
-  1078 /* Property action_table_row1037 */,
-  1079 /* Property action_table_row1038 */,
-  1080 /* Property action_table_row1039 */,
-  1081 /* Property action_table_row1040 */,
-  1082 /* Property action_table_row1041 */,
-  1083 /* Property action_table_row1042 */,
-  1084 /* Property action_table_row1043 */,
-  1085 /* Property action_table_row1044 */,
-  1086 /* Property action_table_row1045 */,
-  1087 /* Property action_table_row1046 */,
-  1088 /* Property action_table_row1047 */,
-  1089 /* Property action_table_row1048 */,
-  1090 /* Property action_table_row1049 */,
-  1091 /* Property action_table_row1050 */,
-  1092 /* Property action_table_row1051 */,
-  1093 /* Property action_table_row1052 */,
-  1094 /* Property action_table_row1053 */,
-  1095 /* Property action_table_row1054 */,
-  1096 /* Property action_table_row1055 */,
-  1097 /* Property action_table_row1056 */,
-  1098 /* Property action_table_row1057 */,
-  1099 /* Property action_table_row1058 */,
-  1100 /* Property action_table_row1059 */,
-  1101 /* Property action_table_row1060 */,
-  1102 /* Property action_table_row1061 */,
-  1103 /* Property action_table_row1062 */,
-  1104 /* Property action_table_row1063 */,
-  1105 /* Property action_table_row1064 */,
-  1106 /* Property action_table_row1065 */,
-  1107 /* Property action_table_row1066 */,
-  1108 /* Property action_table_row1067 */,
-  1109 /* Property action_table_row1068 */,
-  1110 /* Property action_table_row1069 */,
-  1111 /* Property action_table_row1070 */,
-  1112 /* Property action_table_row1071 */,
-  1113 /* Property action_table_row1072 */,
-  1114 /* Property action_table_row1073 */,
-  1115 /* Property action_table_row1074 */,
-  1116 /* Property action_table_row1075 */,
-  1117 /* Property action_table_row1076 */,
-  1118 /* Property action_table_row1077 */,
-  1119 /* Property action_table_row1078 */,
-  1120 /* Property action_table_row1079 */,
-  1121 /* Property action_table_row1080 */,
-  1122 /* Property action_table_row1081 */,
-  1123 /* Property action_table_row1082 */,
-  1124 /* Property action_table_row1083 */,
-  1125 /* Property action_table_row1084 */,
-  1126 /* Property action_table_row1085 */,
-  1127 /* Property action_table_row1086 */,
-  1128 /* Property action_table_row1087 */,
-  1129 /* Property action_table_row1088 */,
-  1130 /* Property action_table_row1089 */,
-  1131 /* Property action_table_row1090 */,
-  1132 /* Property action_table_row1091 */,
-  1133 /* Property action_table_row1092 */,
-  1134 /* Property action_table_row1093 */,
-  1135 /* Property action_table_row1094 */,
-  1136 /* Property action_table_row1095 */,
-  1137 /* Property action_table_row1096 */,
-  1138 /* Property action_table_row1097 */,
-  1139 /* Property action_table_row1098 */,
-  1140 /* Property action_table_row1099 */,
-  1141 /* Property action_table_row1100 */,
-  1142 /* Property action_table_row1101 */,
-  1143 /* Property action_table_row1102 */,
-  1144 /* Property action_table_row1103 */,
-  1145 /* Property action_table_row1104 */,
-  1146 /* Property action_table_row1105 */,
-  1147 /* Property action_table_row1106 */,
-  1148 /* Property action_table_row1107 */,
-  1149 /* Property action_table_row1108 */,
-  1150 /* Property action_table_row1109 */,
-  1151 /* Property action_table_row1110 */,
-  1152 /* Property action_table_row1111 */,
-  1153 /* Property action_table_row1112 */,
-  1154 /* Property action_table_row1113 */,
-  1155 /* Property action_table_row1114 */,
-  1156 /* Property action_table_row1115 */,
-  1157 /* Property action_table_row1116 */,
-  1158 /* Property action_table_row1117 */,
-  1159 /* Property action_table_row1118 */,
-  1160 /* Property action_table_row1119 */,
-  1161 /* Property action_table_row1120 */,
-  1162 /* Property action_table_row1121 */,
-  1163 /* Property action_table_row1122 */,
-  1164 /* Property action_table_row1123 */,
-  1165 /* Property action_table_row1124 */,
-  1166 /* Property action_table_row1125 */,
-  1167 /* Property action_table_row1126 */,
-  1168 /* Property action_table_row1127 */,
-  1169 /* Property action_table_row1128 */,
-  1170 /* Property action_table_row1129 */,
-  1171 /* Property action_table_row1130 */,
-  1172 /* Property action_table_row1131 */,
-  1173 /* Property action_table_row1132 */,
-  1174 /* Property action_table_row1133 */,
-  1175 /* Property action_table_row1134 */,
-  1176 /* Property action_table_row1135 */,
-  1177 /* Property action_table_row1136 */,
-  1178 /* Property action_table_row1137 */,
-  1179 /* Property action_table_row1138 */,
-  1180 /* Property action_table_row1139 */,
-  1181 /* Property action_table_row1140 */,
-  1182 /* Property action_table_row1141 */,
-  1183 /* Property action_table_row1142 */,
-  1184 /* Property action_table_row1143 */,
-  1185 /* Property action_table_row1144 */,
-  1186 /* Property action_table_row1145 */,
-  1187 /* Property action_table_row1146 */,
-  1188 /* Property action_table_row1147 */,
-  1189 /* Property action_table_row1148 */,
-  1190 /* Property action_table_row1149 */,
-  1191 /* Property action_table_row1150 */,
-  1192 /* Property action_table_row1151 */,
-  1193 /* Property action_table_row1152 */,
-  1194 /* Property action_table_row1153 */,
-  1195 /* Property action_table_row1154 */,
-  1196 /* Property action_table_row1155 */,
-  1197 /* Property action_table_row1156 */,
-  1198 /* Property action_table_row1157 */,
-  1199 /* Property action_table_row1158 */,
-  1200 /* Property action_table_row1159 */,
-  1201 /* Property action_table_row1160 */,
-  1202 /* Property action_table_row1161 */,
-  1203 /* Property action_table_row1162 */,
-  1204 /* Property action_table_row1163 */,
-  1205 /* Property action_table_row1164 */,
-  1206 /* Property action_table_row1165 */,
-  1207 /* Property build_goto_table */,
-  1208 /* Property error_messages */,
-  1209 /* Property errors */,
+const int SFT_parser_tables[4] = {
+  67 /* Id of ParserTable */,
+  3 /* Color of ParserTable */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
 };
 const char *LOCATE_mmloader = "./mmloader.nit";
-const int SFT_mmloader[52] = {
-  179 /* Id of ToolContext */,
-  3 /* Color of ToolContext */,
-  14 /* Property _error_count */,
-  15 /* Property _warning_count */,
-  16 /* Property _paths */,
-  17 /* Property _loaders */,
-  18 /* Property _option_context */,
-  19 /* Property _opt_warn */,
-  20 /* Property _opt_path */,
-  21 /* Property _opt_log */,
-  22 /* Property _opt_only_metamodel */,
-  23 /* Property _opt_only_parse */,
-  24 /* Property _opt_help */,
-  25 /* Property _processing_modules */,
-  26 /* Property _path_dirs */,
-  66 /* Color of ToolContext */,
-  67 /* Property error_count */,
-  68 /* Property warning_count */,
-  69 /* Property error */,
-  70 /* Property warning */,
-  71 /* Property paths */,
-  72 /* Property option_context */,
-  73 /* Property opt_warn */,
-  74 /* Property opt_path */,
-  75 /* Property opt_log */,
-  76 /* Property opt_only_metamodel */,
-  77 /* Property opt_only_parse */,
-  78 /* Property opt_help */,
-  79 /* Property init */,
-  80 /* Property process_options */,
-  81 /* Property try_to_load */,
-  82 /* Property get_module_from_filename */,
-  83 /* Property get_module */,
-  84 /* Property directory_for */,
-  85 /* Property register_loader */,
-  79 /* Id of ModuleLoader */,
-  2 /* Color of ModuleLoader */,
-  40 /* Color of ModuleLoader */,
-  41 /* Property file_type */,
-  42 /* Property try_to_load_dir */,
-  43 /* Property can_handle */,
-  44 /* Property load_and_process_module */,
-  45 /* Property load_module */,
-  46 /* Property parse_file */,
-  47 /* Property process_metamodel */,
-  1 /* Property _filename */,
-  2 /* Property _mtime */,
-  41 /* Property filename */,
-  42 /* Property filename= */,
-  43 /* Property mtime */,
-  44 /* Property mtime= */,
-  45 /* Property import_supers_modules */,
+const int SFT_mmloader[12] = {
+  5107 /* Id of Message */,
+  5 /* Color of Message */,
+  2 /* Group of ? */,
+  60 /* Group of ? */,
+  247 /* Id of ToolContext */,
+  4 /* Color of ToolContext */,
+  7 /* Group of ? */,
+  55 /* Group of ? */,
+  87 /* Id of ModuleLoader */,
+  3 /* Color of ModuleLoader */,
+  45 /* Group of ? */,
+  48 /* Group of ? */,
 };
 const char *LOCATE_metamodel = "./metamodel//metamodel.nit";
 const char *LOCATE_vararg = "./metamodel//vararg.nit";
-const int SFT_vararg[6] = {
-  1 /* Property _vararg_rank */,
-  40 /* Property vararg_rank */,
-  41 /* Property vararg_rank= */,
-  42 /* Property has_vararg */,
-  43 /* Property adaptation_to */,
-  44 /* Property init */,
+const int SFT_vararg[2] = {
+  2 /* Group of ? */,
+  47 /* Group of ? */,
 };
 const char *LOCATE_genericity = "./metamodel//genericity.nit";
-const int SFT_genericity[29] = {
-  1 /* Property _types */,
-  2 /* Property _formals_types */,
-  43 /* Property get_formal */,
-  44 /* Property register_formal */,
-  45 /* Property get_instantiate_type */,
-  46 /* Property formals_types */,
-  47 /* Property get_type */,
-  48 /* Property is_generic */,
-  46 /* Property is_generic */,
-  3155 /* Id of MMTypeGeneric */,
-  4 /* Color of MMTypeGeneric */,
-  2 /* Property _params */,
-  59 /* Color of MMTypeGeneric */,
-  60 /* Property params */,
-  61 /* Property upcast_for */,
-  62 /* Property params_equals */,
-  63 /* Property to_s */,
-  64 /* Property is_subtype */,
-  65 /* Property init */,
-  3159 /* Id of MMTypeFormalParameter */,
-  4 /* Color of MMTypeFormalParameter */,
-  3 /* Property _def_class */,
-  4 /* Property _position */,
-  61 /* Color of MMTypeFormalParameter */,
-  62 /* Property def_class */,
-  63 /* Property position */,
-  64 /* Property bound= */,
-  65 /* Property with_bound */,
-  66 /* Property init */,
+const int SFT_genericity[11] = {
+  2 /* Group of ? */,
+  48 /* Group of ? */,
+  50 /* Group of ? */,
+  5755 /* Id of MMTypeGeneric */,
+  5 /* Color of MMTypeGeneric */,
+  4 /* Group of ? */,
+  68 /* Group of ? */,
+  5759 /* Id of MMTypeFormalParameter */,
+  5 /* Color of MMTypeFormalParameter */,
+  5 /* Group of ? */,
+  70 /* Group of ? */,
 };
 const char *LOCATE_type_formal = "./metamodel//type_formal.nit";
-const int SFT_type_formal[9] = {
-  47 /* Property direct_type */,
-  2559 /* Id of MMTypeFormal */,
-  3 /* Color of MMTypeFormal */,
-  1 /* Property _name */,
-  2 /* Property _bound */,
-  57 /* Color of MMTypeFormal */,
-  58 /* Property name */,
-  59 /* Property bound */,
-  60 /* Property init */,
+const int SFT_type_formal[5] = {
+  51 /* Group of ? */,
+  5127 /* Id of MMTypeFormal */,
+  4 /* Color of MMTypeFormal */,
+  3 /* Group of ? */,
+  66 /* Group of ? */,
 };
 const char *LOCATE_inheritance = "./metamodel//inheritance.nit";
-const int SFT_inheritance[40] = {
-  46 /* Property type_any */,
-  47 /* Property import_global_classes */,
-  48 /* Property import_local_classes */,
-  3 /* Property _direct_parents */,
-  4 /* Property _computing_super */,
-  49 /* Property compute_super_classes */,
-  50 /* Property compute_ancestors */,
-  51 /* Property inherit_global_properties */,
-  52 /* Property add_direct_parent */,
-  53 /* Property computed_super_classes */,
-  54 /* Property computed_ancestors */,
-  55 /* Property ancestor_for */,
-  56 /* Property [] */,
-  57 /* Property add_default_any_class */,
-  58 /* Property add_super_classes */,
-  59 /* Property add_explicit_classes */,
-  60 /* Property compute_super_parents */,
-  61 /* Property build_ancestors */,
-  62 /* Property group_ancestors */,
-  63 /* Property merge_ancestors */,
-  64 /* Property inherit_local_property */,
-  45 /* Property inherit_global */,
-  40 /* Property add_in */,
-  2587 /* Id of MMImplicitLocalClass */,
-  3 /* Color of MMImplicitLocalClass */,
-  104 /* Color of MMImplicitLocalClass */,
-  105 /* Property init */,
-  2579 /* Id of MMRefineAncestor */,
-  3 /* Color of MMRefineAncestor */,
-  3 /* Property _local_class */,
-  49 /* Color of MMRefineAncestor */,
-  50 /* Property init */,
-  2575 /* Id of MMSpecAncestor */,
-  3 /* Color of MMSpecAncestor */,
-  49 /* Color of MMSpecAncestor */,
-  50 /* Property init */,
-  2591 /* Id of MMDefaultAncestor */,
-  3 /* Color of MMDefaultAncestor */,
-  49 /* Color of MMDefaultAncestor */,
-  50 /* Property init */,
+const int SFT_inheritance[18] = {
+  49 /* Group of ? */,
+  4 /* Group of ? */,
+  54 /* Group of ? */,
+  48 /* Group of ? */,
+  45 /* Group of ? */,
+  5159 /* Id of MMImplicitLocalClass */,
+  4 /* Color of MMImplicitLocalClass */,
+  108 /* Group of ? */,
+  5147 /* Id of MMRefineAncestor */,
+  4 /* Color of MMRefineAncestor */,
+  4 /* Group of ? */,
+  55 /* Group of ? */,
+  5143 /* Id of MMSpecAncestor */,
+  4 /* Color of MMSpecAncestor */,
+  55 /* Group of ? */,
+  5163 /* Id of MMDefaultAncestor */,
+  4 /* Color of MMDefaultAncestor */,
+  55 /* Group of ? */,
 };
 const char *LOCATE_static_type = "./metamodel//static_type.nit";
-const int SFT_static_type[63] = {
-  5 /* Property _base_type_cache */,
-  6 /* Property _ancestors */,
-  65 /* Property get_type */,
-  66 /* Property add_ancestor */,
-  67 /* Property ancestors */,
-  68 /* Property ancestor */,
-  2 /* Property _signature */,
-  3 /* Property _signatures_cache */,
-  46 /* Property signature */,
-  47 /* Property signature= */,
-  48 /* Property signature_for */,
-  91 /* Id of MMSignature */,
-  2 /* Color of MMSignature */,
-  2 /* Property _recv */,
-  3 /* Property _params */,
-  4 /* Property _return_type */,
-  45 /* Color of MMSignature */,
-  46 /* Property recv */,
-  47 /* Property return_type */,
-  48 /* Property arity */,
-  49 /* Property < */,
-  50 /* Property [] */,
-  51 /* Property adaptation_to */,
-  52 /* Property init */,
-  123 /* Id of MMAncestor */,
-  2 /* Color of MMAncestor */,
-  1 /* Property _stype */,
-  2 /* Property _inheriter */,
-  41 /* Color of MMAncestor */,
-  42 /* Property stype */,
-  43 /* Property stype= */,
-  44 /* Property inheriter */,
-  45 /* Property inheriter= */,
-  46 /* Property is_reffinement */,
-  47 /* Property is_specialisation */,
-  48 /* Property local_class */,
-  87 /* Id of MMType */,
-  2 /* Color of MMType */,
-  48 /* Color of MMType */,
-  49 /* Property module */,
-  50 /* Property local_class */,
-  51 /* Property < */,
-  52 /* Property is_supertype */,
-  53 /* Property for_module */,
-  54 /* Property adapt_to */,
-  55 /* Property upcast_for */,
-  56 /* Property not_for_self */,
-  2563 /* Id of MMTypeClass */,
-  3 /* Color of MMTypeClass */,
-  1 /* Property _local_class */,
-  57 /* Color of MMTypeClass */,
-  58 /* Property init */,
-  3151 /* Id of MMTypeSimpleClass */,
-  4 /* Color of MMTypeSimpleClass */,
-  59 /* Color of MMTypeSimpleClass */,
-  60 /* Property init */,
-  2555 /* Id of MMTypeNone */,
-  3 /* Color of MMTypeNone */,
-  1 /* Property _module */,
-  57 /* Color of MMTypeNone */,
-  58 /* Property init */,
-  3 /* Property _type_none */,
-  49 /* Property type_none */,
+const int SFT_static_type[37] = {
+  7 /* Group of ? */,
+  70 /* Group of ? */,
+  2 /* Group of ? */,
+  49 /* Group of ? */,
+  99 /* Id of MMSignature */,
+  3 /* Color of MMSignature */,
+  3 /* Group of ? */,
+  53 /* Group of ? */,
+  131 /* Id of MMClosure */,
+  3 /* Color of MMClosure */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  135 /* Id of MMAncestor */,
+  3 /* Color of MMAncestor */,
+  2 /* Group of ? */,
+  46 /* Group of ? */,
+  95 /* Id of MMType */,
+  3 /* Color of MMType */,
+  2 /* Group of ? */,
+  52 /* Group of ? */,
+  5151 /* Id of MMNullableType */,
+  4 /* Color of MMNullableType */,
+  3 /* Group of ? */,
+  66 /* Group of ? */,
+  5131 /* Id of MMTypeClass */,
+  4 /* Color of MMTypeClass */,
+  3 /* Group of ? */,
+  66 /* Group of ? */,
+  5751 /* Id of MMTypeSimpleClass */,
+  5 /* Color of MMTypeSimpleClass */,
+  68 /* Group of ? */,
+  5123 /* Id of MMTypeNone */,
+  4 /* Color of MMTypeNone */,
+  3 /* Group of ? */,
+  66 /* Group of ? */,
+  2 /* Group of ? */,
+  52 /* Group of ? */,
 };
 const char *LOCATE_abstractmetamodel = "./metamodel//abstractmetamodel.nit";
-const int SFT_abstractmetamodel[179] = {
-  119 /* Id of MMContext */,
-  2 /* Color of MMContext */,
-  1 /* Property _module_hierarchy */,
-  2 /* Property _class_hierarchy */,
-  3 /* Property _global_classes */,
-  4 /* Property _modules */,
-  40 /* Color of MMContext */,
-  41 /* Property init */,
-  42 /* Property module_hierarchy */,
-  43 /* Property class_hierarchy */,
-  44 /* Property modules */,
-  45 /* Property add_module */,
-  46 /* Property add_global_class */,
-  47 /* Property add_local_class */,
-  115 /* Id of MMDirectory */,
-  2 /* Color of MMDirectory */,
-  1 /* Property _name */,
-  2 /* Property _path */,
-  3 /* Property _parent */,
-  4 /* Property _owner */,
-  5 /* Property _modules */,
-  6 /* Property _dhe */,
-  40 /* Color of MMDirectory */,
-  41 /* Property name */,
-  42 /* Property path */,
-  43 /* Property parent */,
-  44 /* Property owner */,
-  45 /* Property owner= */,
-  46 /* Property modules */,
-  47 /* Property add_module */,
-  48 /* Property dhe */,
-  49 /* Property init */,
-  50 /* Property full_name_for */,
-  95 /* Id of MMModule */,
-  2 /* Color of MMModule */,
-  4 /* Property _context */,
-  5 /* Property _name */,
-  6 /* Property _full_name */,
-  7 /* Property _directory */,
-  8 /* Property _mhe */,
-  9 /* Property _global_classes */,
-  10 /* Property _local_classes */,
-  11 /* Property _class_specialization_hierarchy */,
-  12 /* Property _intrude_modules */,
-  13 /* Property _public_modules */,
-  14 /* Property _private_modules */,
-  15 /* Property _explicit_imported_modules */,
-  16 /* Property _local_class_by_global */,
-  17 /* Property _global_class_by_name */,
-  50 /* Color of MMModule */,
-  51 /* Property context */,
-  52 /* Property name */,
-  53 /* Property full_name */,
-  54 /* Property directory */,
-  55 /* Property mhe */,
-  56 /* Property global_classes */,
-  57 /* Property local_classes */,
-  58 /* Property class_specialization_hierarchy */,
-  59 /* Property explicit_imported_modules */,
-  60 /* Property init */,
-  61 /* Property add_super_module */,
-  62 /* Property visibility_for */,
-  63 /* Property [] */,
-  64 /* Property add_local_class */,
-  65 /* Property class_by_name */,
-  66 /* Property has_global_class_named */,
-  67 /* Property global_class_named */,
-  68 /* Property set_supers_class */,
-  69 /* Property register_global_class */,
-  111 /* Id of MMGlobalClass */,
-  2 /* Color of MMGlobalClass */,
-  1 /* Property _intro */,
-  2 /* Property _class_refinement_hierarchy */,
-  3 /* Property _is_interface */,
-  4 /* Property _is_abstract */,
-  5 /* Property _is_universal */,
-  6 /* Property _visibility_level */,
-  44 /* Color of MMGlobalClass */,
-  45 /* Property intro */,
-  46 /* Property class_refinement_hierarchy */,
-  47 /* Property init */,
-  48 /* Property name */,
-  49 /* Property module */,
-  50 /* Property register_local_class */,
-  51 /* Property is_interface */,
-  52 /* Property is_interface= */,
-  53 /* Property is_abstract */,
-  54 /* Property is_abstract= */,
-  55 /* Property is_universal */,
-  56 /* Property is_universal= */,
-  57 /* Property visibility_level */,
-  58 /* Property visibility_level= */,
-  103 /* Id of MMLocalClass */,
-  2 /* Color of MMLocalClass */,
-  7 /* Property _name */,
-  8 /* Property _arity */,
-  9 /* Property _module */,
-  10 /* Property _abstract */,
-  11 /* Property _global */,
-  12 /* Property _crhe */,
-  13 /* Property _cshe */,
-  14 /* Property _che */,
-  15 /* Property _local_property_by_global */,
-  16 /* Property _global_properties */,
-  17 /* Property _properties_by_name */,
-  69 /* Color of MMLocalClass */,
-  70 /* Property name */,
-  71 /* Property arity */,
-  72 /* Property module */,
-  73 /* Property abstract */,
-  74 /* Property abstract= */,
-  75 /* Property global */,
-  76 /* Property crhe */,
-  77 /* Property cshe */,
-  78 /* Property che */,
-  79 /* Property local_property_by_global */,
-  80 /* Property global_properties */,
-  81 /* Property properties_by_name */,
-  82 /* Property init */,
-  83 /* Property for_module */,
-  84 /* Property new_global */,
-  85 /* Property set_global */,
-  86 /* Property has_global_property_by_name */,
-  87 /* Property get_property_by_name */,
-  88 /* Property attribute */,
-  89 /* Property method */,
-  90 /* Property select_method */,
-  91 /* Property select_attribute */,
-  92 /* Property super_methods_named */,
-  93 /* Property register_local_property */,
-  94 /* Property register_global_property */,
-  95 /* Property [] */,
-  96 /* Property context */,
-  107 /* Id of MMGlobalProperty */,
-  2 /* Color of MMGlobalProperty */,
-  2 /* Property _intro */,
-  3 /* Property _property_hierarchy */,
-  4 /* Property _is_init */,
-  5 /* Property _visibility_level */,
-  47 /* Color of MMGlobalProperty */,
-  48 /* Property intro */,
-  49 /* Property local_class */,
-  50 /* Property property_hierarchy */,
-  51 /* Property init */,
-  52 /* Property add_local_property */,
-  53 /* Property is_attribute */,
-  54 /* Property is_method */,
-  55 /* Property is_init */,
-  56 /* Property is_init= */,
-  57 /* Property visibility_level */,
-  58 /* Property visibility_level= */,
-  99 /* Id of MMLocalProperty */,
-  2 /* Color of MMLocalProperty */,
-  4 /* Property _name */,
-  5 /* Property _local_class */,
-  6 /* Property _global */,
-  7 /* Property _prhe */,
-  8 /* Property _need_super */,
-  49 /* Color of MMLocalProperty */,
-  50 /* Property name */,
-  51 /* Property local_class */,
-  52 /* Property global */,
-  53 /* Property prhe */,
-  54 /* Property module */,
-  55 /* Property full_name */,
-  56 /* Property set_global */,
-  57 /* Property new_global */,
-  58 /* Property need_super */,
-  59 /* Property need_super= */,
-  60 /* Property init */,
-  2599 /* Id of MMAttribute */,
-  3 /* Color of MMAttribute */,
-  62 /* Color of MMAttribute */,
-  2583 /* Id of MMMethod */,
-  3 /* Color of MMMethod */,
-  64 /* Color of MMMethod */,
-  2595 /* Id of MMConcreteClass */,
-  3 /* Color of MMConcreteClass */,
-  104 /* Color of MMConcreteClass */,
+const int SFT_abstractmetamodel[37] = {
+  127 /* Id of MMContext */,
+  3 /* Color of MMContext */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  123 /* Id of MMDirectory */,
+  3 /* Color of MMDirectory */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  103 /* Id of MMModule */,
+  3 /* Color of MMModule */,
+  3 /* Group of ? */,
+  54 /* Group of ? */,
+  119 /* Id of MMGlobalClass */,
+  3 /* Color of MMGlobalClass */,
+  2 /* Group of ? */,
+  46 /* Group of ? */,
+  111 /* Id of MMLocalClass */,
+  3 /* Color of MMLocalClass */,
+  9 /* Group of ? */,
+  74 /* Group of ? */,
+  115 /* Id of MMGlobalProperty */,
+  3 /* Color of MMGlobalProperty */,
+  2 /* Group of ? */,
+  47 /* Group of ? */,
+  107 /* Id of MMLocalProperty */,
+  3 /* Color of MMLocalProperty */,
+  4 /* Group of ? */,
+  52 /* Group of ? */,
+  5171 /* Id of MMAttribute */,
+  4 /* Color of MMAttribute */,
+  68 /* Group of ? */,
+  5155 /* Id of MMMethod */,
+  4 /* Color of MMMethod */,
+  69 /* Group of ? */,
+  5167 /* Id of MMConcreteClass */,
+  4 /* Color of MMConcreteClass */,
+  112 /* Group of ? */,
 };
 const char *LOCATE_partial_order = "./metamodel//partial_order.nit";
-const int SFT_partial_order[49] = {
-  2515 /* Id of PartialOrder */,
+const int SFT_partial_order[8] = {
+  5063 /* Id of PartialOrder */,
   6 /* Color of PartialOrder */,
-  1 /* Property _elements */,
-  2 /* Property _elements_list */,
-  3 /* Property _roots */,
-  66 /* Color of PartialOrder */,
-  67 /* Property roots */,
-  68 /* Property [] */,
-  69 /* Property to_dot */,
-  70 /* Property to_dot_header */,
-  71 /* Property to_dot_node */,
-  72 /* Property to_dot_edge */,
-  73 /* Property select_smallests */,
-  74 /* Property add */,
-  75 /* Property has_all */,
-  76 /* Property new_poe */,
-  77 /* Property add_to_smallests */,
-  78 /* Property compute_smallers_for */,
-  79 /* Property init */,
-  55 /* Id of PartialOrderElement */,
-  2 /* Color of PartialOrderElement */,
-  1 /* Property _order */,
-  2 /* Property _value */,
-  3 /* Property _rank */,
-  4 /* Property _direct_greaters */,
-  5 /* Property _direct_smallers */,
-  6 /* Property _greaters */,
-  7 /* Property _greaters_and_self_cache */,
-  8 /* Property _smallers_last_length */,
-  9 /* Property _smallers_cache */,
-  10 /* Property _linear_extension_cache */,
-  11 /* Property _reverse_linear_extension_cache */,
-  40 /* Color of PartialOrderElement */,
-  41 /* Property order */,
-  42 /* Property value */,
-  43 /* Property rank */,
-  44 /* Property direct_greaters */,
-  45 /* Property direct_smallers */,
-  46 /* Property greaters */,
-  47 /* Property greaters_and_self */,
-  48 /* Property smallers */,
-  49 /* Property linear_extension */,
-  50 /* Property reverse_linear_extension */,
-  51 /* Property < */,
-  52 /* Property <= */,
-  53 /* Property > */,
-  54 /* Property >= */,
-  55 /* Property register_direct_smallers */,
-  56 /* Property init */,
+  2 /* Group of ? */,
+  70 /* Group of ? */,
+  63 /* Id of PartialOrderElement */,
+  3 /* Color of PartialOrderElement */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
 };
 const char *LOCATE_virtualtype = "./metamodel//virtualtype.nit";
-const int SFT_virtualtype[17] = {
-  46 /* Property is_virtual_type */,
-  2551 /* Id of MMTypeProperty */,
-  3 /* Color of MMTypeProperty */,
-  9 /* Property _stypes_cache */,
-  61 /* Color of MMTypeProperty */,
-  62 /* Property stype_for */,
-  63 /* Property real_stype_for */,
-  3147 /* Id of MMVirtualType */,
-  4 /* Color of MMVirtualType */,
-  3 /* Property _property */,
-  4 /* Property _recv */,
-  61 /* Color of MMVirtualType */,
-  62 /* Property property */,
-  63 /* Property recv */,
-  64 /* Property init */,
-  97 /* Property virtual_type */,
-  98 /* Property select_virtual_type */,
+const int SFT_virtualtype[10] = {
+  46 /* Group of ? */,
+  5119 /* Id of MMTypeProperty */,
+  4 /* Color of MMTypeProperty */,
+  10 /* Group of ? */,
+  67 /* Group of ? */,
+  5747 /* Id of MMVirtualType */,
+  5 /* Color of MMVirtualType */,
+  5 /* Group of ? */,
+  70 /* Group of ? */,
+  100 /* Group of ? */,
 };
 const char *LOCATE_opts = "./../lib/opts.nit";
-const int SFT_opts[69] = {
-  71 /* Id of Option */,
-  2 /* Color of Option */,
-  1 /* Property _names */,
-  2 /* Property _helptext */,
-  3 /* Property _mandatory */,
-  4 /* Property _context */,
-  5 /* Property _value */,
-  6 /* Property _default_value */,
-  40 /* Color of Option */,
-  41 /* Property names */,
-  42 /* Property helptext */,
-  43 /* Property mandatory */,
-  44 /* Property mandatory= */,
-  45 /* Property context */,
-  46 /* Property context= */,
-  47 /* Property value */,
-  48 /* Property value= */,
-  49 /* Property default_value */,
-  50 /* Property default_value= */,
-  51 /* Property init_opt */,
-  52 /* Property add_aliases */,
-  53 /* Property pretty */,
-  54 /* Property pretty_default */,
-  55 /* Property read_param */,
-  2523 /* Id of OptionText */,
-  3 /* Color of OptionText */,
-  56 /* Color of OptionText */,
-  57 /* Property init */,
-  2531 /* Id of OptionBool */,
-  3 /* Color of OptionBool */,
-  56 /* Color of OptionBool */,
-  57 /* Property init */,
-  2527 /* Id of OptionParameter */,
-  3 /* Color of OptionParameter */,
-  56 /* Color of OptionParameter */,
-  57 /* Property convert */,
-  58 /* Property init_opt */,
-  3119 /* Id of OptionString */,
-  4 /* Color of OptionString */,
-  59 /* Color of OptionString */,
-  60 /* Property init */,
-  3127 /* Id of OptionEnum */,
-  4 /* Color of OptionEnum */,
-  7 /* Property _enum */,
-  59 /* Color of OptionEnum */,
-  60 /* Property init */,
-  3123 /* Id of OptionInt */,
-  4 /* Color of OptionInt */,
-  59 /* Color of OptionInt */,
-  60 /* Property init */,
-  3131 /* Id of OptionArray */,
-  4 /* Color of OptionArray */,
-  7 /* Property _values */,
-  59 /* Color of OptionArray */,
-  60 /* Property init */,
-  67 /* Id of OptionContext */,
-  2 /* Color of OptionContext */,
-  1 /* Property _options */,
-  2 /* Property _rest */,
-  3 /* Property _optmap */,
-  40 /* Color of OptionContext */,
-  41 /* Property options */,
-  42 /* Property rest */,
-  43 /* Property usage */,
-  44 /* Property parse */,
-  45 /* Property parse_intern */,
-  46 /* Property add_option */,
-  47 /* Property init */,
-  48 /* Property build */,
-};
-const char *LOCATE_control_flow = "./syntax//control_flow.nit";
-const int SFT_control_flow[59] = {
-  91 /* Property do_control_flow */,
-  3215 /* Id of ControlFlowVisitor */,
-  4 /* Color of ControlFlowVisitor */,
-  5 /* Property _once_count */,
-  6 /* Property _control_flow_ctx */,
-  64 /* Color of ControlFlowVisitor */,
-  65 /* Property once_count */,
-  66 /* Property once_count= */,
-  67 /* Property control_flow_ctx */,
-  68 /* Property control_flow_ctx= */,
-  69 /* Property check_is_set */,
-  70 /* Property mark_is_set */,
-  71 /* Property init */,
-  147 /* Id of ControlFlowContext */,
-  2 /* Color of ControlFlowContext */,
-  1 /* Property _prev */,
-  2 /* Property _has_return */,
-  3 /* Property _unreash */,
-  4 /* Property _already_unreash */,
-  5 /* Property _base_block */,
-  6 /* Property _set_variables */,
-  40 /* Color of ControlFlowContext */,
-  41 /* Property prev */,
-  42 /* Property has_return */,
-  43 /* Property has_return= */,
-  44 /* Property unreash */,
-  45 /* Property unreash= */,
-  46 /* Property already_unreash */,
-  47 /* Property already_unreash= */,
-  48 /* Property base_block */,
-  49 /* Property base_block= */,
-  50 /* Property set_variables */,
-  51 /* Property is_set */,
-  52 /* Property sub */,
-  53 /* Property init */,
-  54 /* Property with */,
-  58 /* Property accept_control_flow */,
-  91 /* Property accept_control_flow */,
-  93 /* Property accept_control_flow */,
-  78 /* Property accept_control_flow */,
-  76 /* Property accept_control_flow */,
-  76 /* Property accept_control_flow */,
-  3575 /* Id of ABlockControler */,
-  5 /* Color of ABlockControler */,
-  6 /* Property _block */,
-  76 /* Color of ABlockControler */,
-  77 /* Property block */,
-  78 /* Property accept_control_flow */,
-  78 /* Property accept_control_flow */,
-  76 /* Property accept_control_flow */,
-  3543 /* Id of AControlableBlock */,
-  5 /* Color of AControlableBlock */,
-  77 /* Color of AControlableBlock */,
-  78 /* Property accept_control_flow */,
-  76 /* Property accept_control_flow */,
-  81 /* Property accept_control_flow */,
-  86 /* Property accept_control_flow */,
-  88 /* Property accept_control_flow */,
-  79 /* Property accept_control_flow */,
+const int SFT_opts[34] = {
+  75 /* Id of Option */,
+  3 /* Color of Option */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  5075 /* Id of OptionText */,
+  4 /* Color of OptionText */,
+  59 /* Group of ? */,
+  5087 /* Id of OptionBool */,
+  4 /* Color of OptionBool */,
+  59 /* Group of ? */,
+  5083 /* Id of OptionCount */,
+  4 /* Color of OptionCount */,
+  59 /* Group of ? */,
+  5079 /* Id of OptionParameter */,
+  4 /* Color of OptionParameter */,
+  59 /* Group of ? */,
+  5715 /* Id of OptionString */,
+  5 /* Color of OptionString */,
+  62 /* Group of ? */,
+  5723 /* Id of OptionEnum */,
+  5 /* Color of OptionEnum */,
+  7 /* Group of ? */,
+  62 /* Group of ? */,
+  5719 /* Id of OptionInt */,
+  5 /* Color of OptionInt */,
+  62 /* Group of ? */,
+  5727 /* Id of OptionArray */,
+  5 /* Color of OptionArray */,
+  7 /* Group of ? */,
+  62 /* Group of ? */,
+  71 /* Id of OptionContext */,
+  3 /* Color of OptionContext */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+};
+const char *LOCATE_icode_generation = "./syntax//icode_generation.nit";
+const int SFT_icode_generation[25] = {
+  5307 /* Id of A2IContext */,
+  4 /* Color of A2IContext */,
+  7 /* Group of ? */,
+  70 /* Group of ? */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  89 /* Group of ? */,
+  10 /* Group of ? */,
+  69 /* Group of ? */,
+  10 /* Group of ? */,
+  72 /* Group of ? */,
+  6003 /* Id of A2IVisitor */,
+  5 /* Color of A2IVisitor */,
+  7 /* Group of ? */,
+  80 /* Group of ? */,
+  62 /* Group of ? */,
+  101 /* Group of ? */,
+  92 /* Group of ? */,
+  79 /* Group of ? */,
+  75 /* Group of ? */,
+  11 /* Group of ? */,
+  81 /* Group of ? */,
+  92 /* Group of ? */,
+  7 /* Group of ? */,
+  71 /* Group of ? */,
+};
+const char *LOCATE_icode = "./icode//icode.nit";
+const char *LOCATE_icode_tools = "./icode//icode_tools.nit";
+const int SFT_icode_tools[12] = {
+  163 /* Id of ICodeVisitor */,
+  3 /* Color of ICodeVisitor */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  167 /* Id of ICodeDupContext */,
+  3 /* Color of ICodeDupContext */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  51 /* Group of ? */,
+  62 /* Group of ? */,
+};
+const char *LOCATE_icode_builder = "./icode//icode_builder.nit";
+const int SFT_icode_builder[5] = {
+  175 /* Id of ICodeBuilder */,
+  3 /* Color of ICodeBuilder */,
+  3 /* Group of ? */,
+  47 /* Group of ? */,
+  45 /* Group of ? */,
+};
+const char *LOCATE_icode_base = "./icode//icode_base.nit";
+const int SFT_icode_base[128] = {
+  151 /* Id of IRegister */,
+  3 /* Color of IRegister */,
+  6 /* Group of ? */,
+  53 /* Group of ? */,
+  159 /* Id of IEscapeMark */,
+  3 /* Color of IEscapeMark */,
+  45 /* Group of ? */,
+  183 /* Id of IClosureDecl */,
+  3 /* Color of IClosureDecl */,
+  2 /* Group of ? */,
+  46 /* Group of ? */,
+  147 /* Id of IRoutine */,
+  3 /* Color of IRoutine */,
+  4 /* Group of ? */,
+  53 /* Group of ? */,
+  5211 /* Id of IClosureDef */,
+  4 /* Color of IClosureDef */,
+  66 /* Group of ? */,
+  179 /* Id of ICode */,
+  3 /* Color of ICode */,
+  2 /* Group of ? */,
+  53 /* Group of ? */,
+  5207 /* Id of ICode0 */,
+  4 /* Color of ICode0 */,
+  61 /* Group of ? */,
+  5203 /* Id of ICode1 */,
+  4 /* Color of ICode1 */,
+  4 /* Group of ? */,
+  61 /* Group of ? */,
+  5199 /* Id of ICode2 */,
+  4 /* Color of ICode2 */,
+  4 /* Group of ? */,
+  61 /* Group of ? */,
+  5195 /* Id of ICodeN */,
+  4 /* Color of ICodeN */,
+  4 /* Group of ? */,
+  62 /* Group of ? */,
+  5791 /* Id of ISeq */,
+  5 /* Color of ISeq */,
+  4 /* Group of ? */,
+  63 /* Group of ? */,
+  6075 /* Id of ILoop */,
+  6 /* Color of ILoop */,
+  68 /* Group of ? */,
+  5827 /* Id of IIf */,
+  5 /* Color of IIf */,
+  5 /* Group of ? */,
+  64 /* Group of ? */,
+  5835 /* Id of IEscape */,
+  5 /* Color of IEscape */,
+  4 /* Group of ? */,
+  62 /* Group of ? */,
+  5867 /* Id of IAbort */,
+  5 /* Color of IAbort */,
+  4 /* Group of ? */,
+  62 /* Group of ? */,
+  5863 /* Id of IAbsCall */,
+  5 /* Color of IAbsCall */,
+  6 /* Group of ? */,
+  68 /* Group of ? */,
+  6083 /* Id of ICall */,
+  6 /* Color of ICall */,
+  71 /* Group of ? */,
+  6059 /* Id of ISuper */,
+  6 /* Color of ISuper */,
+  71 /* Group of ? */,
+  6071 /* Id of INew */,
+  6 /* Color of INew */,
+  7 /* Group of ? */,
+  71 /* Group of ? */,
+  5859 /* Id of IAllocateInstance */,
+  5 /* Color of IAllocateInstance */,
+  4 /* Group of ? */,
+  62 /* Group of ? */,
+  6063 /* Id of IStaticCall */,
+  6 /* Color of IStaticCall */,
+  71 /* Group of ? */,
+  5843 /* Id of ICheckInstance */,
+  5 /* Color of ICheckInstance */,
+  5 /* Group of ? */,
+  64 /* Group of ? */,
+  5823 /* Id of IInitAttributes */,
+  5 /* Color of IInitAttributes */,
+  5 /* Group of ? */,
+  64 /* Group of ? */,
+  5839 /* Id of IClosCall */,
+  5 /* Color of IClosCall */,
+  6 /* Group of ? */,
+  67 /* Group of ? */,
+  5811 /* Id of INative */,
+  5 /* Color of INative */,
+  6 /* Group of ? */,
+  67 /* Group of ? */,
+  5815 /* Id of IMove */,
+  5 /* Color of IMove */,
+  64 /* Group of ? */,
+  5851 /* Id of IAttrRead */,
+  5 /* Color of IAttrRead */,
+  5 /* Group of ? */,
+  64 /* Group of ? */,
+  5847 /* Id of IAttrWrite */,
+  5 /* Color of IAttrWrite */,
+  6 /* Group of ? */,
+  65 /* Group of ? */,
+  5855 /* Id of IAttrIsset */,
+  5 /* Color of IAttrIsset */,
+  5 /* Group of ? */,
+  64 /* Group of ? */,
+  5787 /* Id of ITypeCheck */,
+  5 /* Color of ITypeCheck */,
+  5 /* Group of ? */,
+  64 /* Group of ? */,
+  5819 /* Id of IIs */,
+  5 /* Color of IIs */,
+  65 /* Group of ? */,
+  5807 /* Id of INot */,
+  5 /* Color of INot */,
+  64 /* Group of ? */,
+  5799 /* Id of IOnce */,
+  5 /* Color of IOnce */,
+  4 /* Group of ? */,
+  62 /* Group of ? */,
+  5831 /* Id of IHasClos */,
+  5 /* Color of IHasClos */,
+  4 /* Group of ? */,
+  62 /* Group of ? */,
+  67 /* Group of ? */,
+  68 /* Group of ? */,
 };
 const char *LOCATE_typing = "./syntax//typing.nit";
-const int SFT_typing[94] = {
-  92 /* Property do_typing */,
-  2683 /* Id of TypingVisitor */,
-  4 /* Color of TypingVisitor */,
-  5 /* Property _variable_ctx */,
-  6 /* Property _self_type */,
-  7 /* Property _top_block */,
-  8 /* Property _explicit_super_init_calls */,
-  9 /* Property _explicit_other_init_call */,
-  64 /* Color of TypingVisitor */,
-  65 /* Property variable_ctx */,
-  66 /* Property variable_ctx= */,
-  67 /* Property self_type */,
-  68 /* Property self_type= */,
-  69 /* Property top_block */,
-  70 /* Property top_block= */,
-  71 /* Property explicit_super_init_calls */,
-  72 /* Property explicit_super_init_calls= */,
-  73 /* Property explicit_other_init_call */,
-  74 /* Property explicit_other_init_call= */,
-  75 /* Property init */,
-  76 /* Property get_default_constructor_for */,
+const int SFT_typing[55] = {
+  90 /* Group of ? */,
+  5311 /* Id of TypingVisitor */,
+  5 /* Color of TypingVisitor */,
+  7 /* Group of ? */,
+  80 /* Group of ? */,
+  5 /* Group of ? */,
+  63 /* Group of ? */,
+  77 /* Group of ? */,
+  7 /* Group of ? */,
+  102 /* Group of ? */,
+  94 /* Group of ? */,
+  95 /* Group of ? */,
+  103 /* Group of ? */,
+  13 /* Group of ? */,
+  84 /* Group of ? */,
+  11 /* Group of ? */,
+  7 /* Group of ? */,
+  76 /* Group of ? */,
+  11 /* Group of ? */,
+  11 /* Group of ? */,
+  81 /* Group of ? */,
+  11 /* Group of ? */,
+  81 /* Group of ? */,
+  11 /* Group of ? */,
+  81 /* Group of ? */,
+  11 /* Group of ? */,
+  81 /* Group of ? */,
+  11 /* Group of ? */,
+  13 /* Group of ? */,
+  85 /* Group of ? */,
+  68 /* Group of ? */,
+  11 /* Group of ? */,
+  11 /* Group of ? */,
+  81 /* Group of ? */,
+  18 /* Group of ? */,
+  16 /* Group of ? */,
+  92 /* Group of ? */,
+  11 /* Group of ? */,
+  93 /* Group of ? */,
+  16 /* Group of ? */,
+  99 /* Group of ? */,
+  68 /* Group of ? */,
+  105 /* Group of ? */,
+  6 /* Group of ? */,
+  120 /* Group of ? */,
+  120 /* Group of ? */,
+  115 /* Group of ? */,
+  13 /* Group of ? */,
+  68 /* Group of ? */,
+  8 /* Group of ? */,
+  72 /* Group of ? */,
+  6127 /* Id of ATypeCheckExpr */,
+  5 /* Color of ATypeCheckExpr */,
+  68 /* Group of ? */,
+  84 /* Group of ? */,
+};
+const char *LOCATE_escape = "./syntax//escape.nit";
+const int SFT_escape[19] = {
+  195 /* Id of EscapableContext */,
+  3 /* Color of EscapableContext */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  199 /* Id of EscapableBlock */,
+  3 /* Color of EscapableBlock */,
+  6 /* Group of ? */,
+  53 /* Group of ? */,
+  5283 /* Id of BreakOnlyEscapableBlock */,
+  4 /* Color of BreakOnlyEscapableBlock */,
+  60 /* Group of ? */,
+  5243 /* Id of EscapableClosure */,
+  4 /* Color of EscapableClosure */,
+  8 /* Group of ? */,
+  60 /* Group of ? */,
+  6295 /* Id of AEscapeExpr */,
+  7 /* Color of AEscapeExpr */,
+  11 /* Group of ? */,
+  81 /* Group of ? */,
+};
+const char *LOCATE_control_flow = "./syntax//control_flow.nit";
+const int SFT_control_flow[12] = {
   11 /* Id of VariableContext */,
-  2 /* Color of VariableContext */,
-  1 /* Property _dico */,
-  40 /* Color of VariableContext */,
-  41 /* Property [] */,
-  42 /* Property add */,
-  43 /* Property stype */,
-  44 /* Property sub */,
-  45 /* Property sub_with */,
-  46 /* Property init */,
-  199 /* Id of SubVariableContext */,
-  3 /* Color of SubVariableContext */,
-  2 /* Property _prev */,
-  3 /* Property _variable */,
-  4 /* Property _var_type */,
-  47 /* Color of SubVariableContext */,
-  48 /* Property prev */,
-  49 /* Property with */,
-  59 /* Property accept_typing */,
-  60 /* Property after_typing */,
-  74 /* Property accept_typing */,
-  99 /* Property accept_typing */,
-  92 /* Property accept_typing */,
-  13 /* Property _super_init_calls */,
-  14 /* Property _explicit_super_init_calls */,
-  101 /* Property super_init_calls */,
-  102 /* Property explicit_super_init_calls */,
-  103 /* Property accept_typing */,
-  4 /* Property _stype */,
-  73 /* Property stype */,
-  4 /* Property _stype */,
-  5 /* Property _if_true_variable_ctx */,
-  72 /* Property is_implicit_self */,
-  73 /* Property is_self */,
-  74 /* Property is_variable */,
-  75 /* Property if_true_variable_ctx */,
-  81 /* Property accept_typing */,
-  8 /* Property _assign_method */,
-  81 /* Property do_lvalue_typing */,
-  82 /* Property assign_method */,
-  67 /* Property method_name */,
-  76 /* Property stype= */,
-  8 /* Property _init_in_superclass */,
-  94 /* Property init_in_superclass */,
-  11 /* Property _prop */,
-  12 /* Property _attr_type */,
-  88 /* Property prop */,
-  89 /* Property attr_type */,
-  90 /* Property do_typing */,
-  3611 /* Id of AAbsSendExpr */,
-  5 /* Color of AAbsSendExpr */,
-  6 /* Property _prop */,
-  7 /* Property _arguments */,
-  88 /* Color of AAbsSendExpr */,
-  89 /* Property do_typing */,
-  90 /* Property get_property */,
-  91 /* Property process_signature */,
-  92 /* Property prop */,
-  93 /* Property arguments */,
-  3675 /* Id of ASuperInitCall */,
-  7 /* Color of ASuperInitCall */,
-  76 /* Color of ASuperInitCall */,
-  77 /* Property register_super_init_call */,
-  94 /* Property name */,
-  95 /* Property raw_arguments */,
-  96 /* Property do_all_typing */,
-  3811 /* Id of ASendReassignExpr */,
-  9 /* Color of ASendReassignExpr */,
-  12 /* Property _read_prop */,
-  78 /* Color of ASendReassignExpr */,
-  79 /* Property read_prop */,
-  102 /* Property after_typing */,
-  103 /* Property variable_create */,
+  3 /* Color of VariableContext */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  271 /* Id of RootVariableContext */,
+  4 /* Color of RootVariableContext */,
+  64 /* Group of ? */,
+  263 /* Id of SubVariableContext */,
+  4 /* Color of SubVariableContext */,
+  10 /* Group of ? */,
+  64 /* Group of ? */,
+  45 /* Group of ? */,
+};
+const char *LOCATE_primitive_info = "./primitive_info.nit";
+const int SFT_primitive_info[7] = {
+  20 /* Group of ? */,
+  102 /* Group of ? */,
+  55 /* Id of PrimitiveInfo */,
+  3 /* Color of PrimitiveInfo */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  45 /* Group of ? */,
+};
+const char *LOCATE_nit_version = "./nit_version.nit";
+const int SFT_nit_version[1] = {
+  17 /* Group of ? */,
 };
 const char *LOCATE_compiling = "./compiling//compiling.nit";
-const int SFT_compiling[3] = {
-  70 /* Property compile_prog_to_c */,
-  71 /* Property compile_main */,
-  72 /* Property compile_separate_module */,
+const int SFT_compiling[2] = {
+  45 /* Group of ? */,
+  74 /* Group of ? */,
 };
 const char *LOCATE_compiling_global = "./compiling//compiling_global.nit";
-const int SFT_compiling_global[140] = {
-  159 /* Id of ColorContext */,
-  2 /* Color of ColorContext */,
-  1 /* Property _colors */,
-  40 /* Color of ColorContext */,
-  41 /* Property color */,
-  42 /* Property has_color */,
-  43 /* Property color= */,
-  2631 /* Id of GlobalAnalysis */,
-  3 /* Color of GlobalAnalysis */,
-  2 /* Property _compiled_classes */,
-  3 /* Property _module */,
-  4 /* Property _max_class_table_length */,
-  44 /* Color of GlobalAnalysis */,
-  45 /* Property compiled_classes */,
-  46 /* Property module */,
-  47 /* Property max_class_table_length */,
-  48 /* Property max_class_table_length= */,
-  49 /* Property init */,
-  1 /* Property _global_analysis */,
-  40 /* Property global_analysis */,
-  41 /* Property global_analysis= */,
-  2655 /* Id of CompiledClass */,
-  3 /* Color of CompiledClass */,
-  2 /* Property _local_class */,
-  3 /* Property _id */,
-  4 /* Property _class_table */,
-  5 /* Property _instance_table */,
-  6 /* Property _class_layout */,
-  7 /* Property _instance_layout */,
-  44 /* Color of CompiledClass */,
-  45 /* Property local_class */,
-  46 /* Property id */,
-  47 /* Property id= */,
-  48 /* Property class_table */,
-  49 /* Property class_table= */,
-  50 /* Property instance_table */,
-  51 /* Property instance_table= */,
-  52 /* Property class_layout */,
-  53 /* Property class_layout= */,
-  54 /* Property instance_layout */,
-  55 /* Property instance_layout= */,
-  56 /* Property init */,
-  1 /* Property _pos_of */,
-  40 /* Property pos_of */,
-  41 /* Property pos_of= */,
-  20 /* Property _base_attr_pos */,
-  21 /* Property _class_color_pos */,
-  22 /* Property _class_layout */,
-  23 /* Property _instance_layout */,
-  105 /* Property base_attr_pos */,
-  106 /* Property class_color_pos */,
-  107 /* Property class_layout */,
-  108 /* Property instance_layout */,
-  109 /* Property build_layout_in */,
-  18 /* Property _local_table */,
-  73 /* Property local_analysis */,
-  74 /* Property global_analysis */,
-  75 /* Property append_to_table */,
-  76 /* Property build_tables */,
-  77 /* Property colorize */,
-  78 /* Property free_color */,
-  79 /* Property compile_tables_to_c */,
-  80 /* Property declare_class_tables_to_c */,
-  81 /* Property compile_main_part */,
-  82 /* Property compile_mod_to_c */,
-  83 /* Property compile_local_table_to_c */,
-  19 /* Id of TableElt */,
-  2 /* Color of TableElt */,
-  40 /* Color of TableElt */,
-  41 /* Property is_related_to */,
-  42 /* Property length */,
-  43 /* Property item */,
-  44 /* Property compile_to_c */,
-  2603 /* Id of LocalTableElt */,
-  3 /* Color of LocalTableElt */,
-  45 /* Color of LocalTableElt */,
-  46 /* Property symbol */,
-  47 /* Property value */,
-  2687 /* Id of TableEltPropPos */,
-  4 /* Color of TableEltPropPos */,
-  1 /* Property _property */,
-  48 /* Color of TableEltPropPos */,
-  49 /* Property init */,
-  3247 /* Id of TableEltMethPos */,
-  5 /* Color of TableEltMethPos */,
-  50 /* Color of TableEltMethPos */,
-  51 /* Property init */,
-  3243 /* Id of TableEltSuperPos */,
-  5 /* Color of TableEltSuperPos */,
-  50 /* Color of TableEltSuperPos */,
-  51 /* Property init */,
-  3263 /* Id of TableEltAttrPos */,
-  5 /* Color of TableEltAttrPos */,
-  50 /* Color of TableEltAttrPos */,
-  51 /* Property init */,
-  2691 /* Id of TableEltClassPos */,
-  4 /* Color of TableEltClassPos */,
-  1 /* Property _local_class */,
-  48 /* Color of TableEltClassPos */,
-  49 /* Property init */,
-  3255 /* Id of TableEltClassIdPos */,
-  5 /* Color of TableEltClassIdPos */,
-  50 /* Color of TableEltClassIdPos */,
-  51 /* Property init */,
-  3251 /* Id of TableEltClassInitTablePos */,
-  5 /* Color of TableEltClassInitTablePos */,
-  50 /* Color of TableEltClassInitTablePos */,
-  51 /* Property init */,
-  3259 /* Id of TableEltClassColorPos */,
-  5 /* Color of TableEltClassColorPos */,
-  50 /* Color of TableEltClassColorPos */,
-  51 /* Property init */,
-  2695 /* Id of TableEltBaseAttrPos */,
-  4 /* Color of TableEltBaseAttrPos */,
-  1 /* Property _local_class */,
-  48 /* Color of TableEltBaseAttrPos */,
-  49 /* Property init */,
-  191 /* Id of TableEltComposite */,
-  3 /* Color of TableEltComposite */,
-  1 /* Property _table */,
-  2 /* Property _cc */,
-  3 /* Property _offsets */,
-  45 /* Color of TableEltComposite */,
-  46 /* Property add */,
-  47 /* Property init */,
-  195 /* Id of TableEltClassSelfId */,
-  3 /* Color of TableEltClassSelfId */,
-  45 /* Color of TableEltClassSelfId */,
-  46 /* Property init */,
-  187 /* Id of TableEltVftPointer */,
-  3 /* Color of TableEltVftPointer */,
-  45 /* Color of TableEltVftPointer */,
-  46 /* Property init */,
-  2663 /* Id of ClassSorter */,
-  3 /* Color of ClassSorter */,
-  46 /* Color of ClassSorter */,
-  47 /* Property init */,
-  99 /* Property compare */,
-  100 /* Property declare_tables_to_c */,
-  101 /* Property compile_tables_to_c */,
-};
-const char *LOCATE_compiling_methods = "./compiling//compiling_methods.nit";
-const int SFT_compiling_methods[55] = {
-  2 /* Property _variable_index */,
-  3 /* Property _variable_index_max */,
-  4 /* Property _varnames */,
-  5 /* Property _has_return */,
-  6 /* Property _method_params */,
-  7 /* Property _method */,
-  8 /* Property _return_label */,
-  9 /* Property _break_label */,
-  10 /* Property _continue_label */,
-  11 /* Property _return_value */,
-  42 /* Property compile_stmt */,
-  43 /* Property compile_expr */,
-  44 /* Property ensure_var */,
-  45 /* Property add_assignment */,
-  46 /* Property variable */,
-  47 /* Property get_var */,
-  48 /* Property free_var */,
-  49 /* Property clear */,
-  50 /* Property varnames */,
-  51 /* Property has_return */,
-  52 /* Property has_return= */,
-  53 /* Property method_params */,
-  54 /* Property method_params= */,
-  55 /* Property method */,
-  56 /* Property method= */,
-  57 /* Property return_label */,
-  58 /* Property return_label= */,
-  59 /* Property break_label */,
-  60 /* Property break_label= */,
-  61 /* Property continue_label */,
-  62 /* Property continue_label= */,
-  63 /* Property return_value */,
-  64 /* Property return_value= */,
-  65 /* Property printf_locate_error */,
-  66 /* Property init */,
-  67 /* Property invoke_super_init_calls_after */,
-  61 /* Property compile_call */,
-  62 /* Property compile_constructor_call */,
-  63 /* Property compile_super_call */,
-  61 /* Property compile_access */,
-  40 /* Property compile_property_to_c */,
-  65 /* Property decl_csignature */,
-  66 /* Property do_compile_inside */,
-  40 /* Property compile_cast */,
-  41 /* Property compile_type_check */,
-  74 /* Property do_compile_inside */,
-  67 /* Property compile_expr */,
-  68 /* Property prepare_compile_stmt */,
-  69 /* Property compile_stmt */,
-  76 /* Property compile_inside_block */,
-  6 /* Property _cstring */,
-  7 /* Property _cstring_length */,
-  76 /* Property string_text */,
-  77 /* Property compute_string_info */,
-  76 /* Property propname */,
+const int SFT_compiling_global[13] = {
+  5231 /* Id of GlobalCompilerVisitor */,
+  4 /* Color of GlobalCompilerVisitor */,
+  8 /* Group of ? */,
+  62 /* Group of ? */,
+  48 /* Group of ? */,
+  75 /* Group of ? */,
+  45 /* Group of ? */,
+  48 /* Group of ? */,
+  53 /* Group of ? */,
+  55 /* Group of ? */,
+  22 /* Group of ? */,
+  104 /* Group of ? */,
+  67 /* Group of ? */,
+};
+const char *LOCATE_table_computation = "./compiling//table_computation.nit";
+const int SFT_table_computation[80] = {
+  215 /* Id of ColorContext */,
+  3 /* Color of ColorContext */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  255 /* Id of TableInformation */,
+  4 /* Color of TableInformation */,
+  3 /* Group of ? */,
+  50 /* Group of ? */,
+  5263 /* Id of CompiledClass */,
+  4 /* Color of CompiledClass */,
+  3 /* Group of ? */,
+  50 /* Group of ? */,
+  25 /* Group of ? */,
+  108 /* Group of ? */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+  18 /* Group of ? */,
+  78 /* Group of ? */,
+  235 /* Id of AbsTableElt */,
+  3 /* Color of AbsTableElt */,
+  46 /* Group of ? */,
+  259 /* Id of TableElt */,
+  4 /* Color of TableElt */,
+  49 /* Group of ? */,
+  5099 /* Id of ModuleTableElt */,
+  5 /* Color of ModuleTableElt */,
+  54 /* Group of ? */,
+  5739 /* Id of ModuleTableEltGroup */,
+  6 /* Color of ModuleTableEltGroup */,
+  2 /* Group of ? */,
+  55 /* Group of ? */,
+  5319 /* Id of TableEltProp */,
+  5 /* Color of TableEltProp */,
+  2 /* Group of ? */,
+  53 /* Group of ? */,
+  6011 /* Id of TableEltMeth */,
+  6 /* Color of TableEltMeth */,
+  56 /* Group of ? */,
+  6007 /* Id of TableEltSuper */,
+  6 /* Color of TableEltSuper */,
+  56 /* Group of ? */,
+  6023 /* Id of TableEltAttr */,
+  6 /* Color of TableEltAttr */,
+  56 /* Group of ? */,
+  5299 /* Id of AbsTableEltClass */,
+  6 /* Color of AbsTableEltClass */,
+  2 /* Group of ? */,
+  56 /* Group of ? */,
+  5343 /* Id of TableEltClass */,
+  7 /* Color of TableEltClass */,
+  59 /* Group of ? */,
+  5339 /* Id of TableEltClassId */,
+  4 /* Color of TableEltClassId */,
+  48 /* Group of ? */,
+  6015 /* Id of TableEltClassInitTable */,
+  8 /* Color of TableEltClassInitTable */,
+  60 /* Group of ? */,
+  6019 /* Id of TableEltClassColor */,
+  8 /* Color of TableEltClassColor */,
+  60 /* Group of ? */,
+  5327 /* Id of TableEltComposite */,
+  5 /* Color of TableEltComposite */,
+  2 /* Group of ? */,
+  53 /* Group of ? */,
+  5331 /* Id of TableEltClassSelfId */,
+  5 /* Color of TableEltClassSelfId */,
+  53 /* Group of ? */,
+  5335 /* Id of TableEltClassObjectSize */,
+  5 /* Color of TableEltClassObjectSize */,
+  53 /* Group of ? */,
+  5323 /* Id of TableEltObjectId */,
+  5 /* Color of TableEltObjectId */,
+  53 /* Group of ? */,
+  5315 /* Id of TableEltVftPointer */,
+  5 /* Color of TableEltVftPointer */,
+  53 /* Group of ? */,
+  5275 /* Id of ClassSorter */,
+  4 /* Color of ClassSorter */,
+  52 /* Group of ? */,
+  107 /* Group of ? */,
+};
+const char *LOCATE_program = "./program.nit";
+const int SFT_program[4] = {
+  47 /* Id of Program */,
+  3 /* Color of Program */,
+  4 /* Group of ? */,
+  58 /* Group of ? */,
+};
+const char *LOCATE_compiling_icode = "./compiling//compiling_icode.nit";
+const int SFT_compiling_icode[8] = {
+  187 /* Id of I2CCompilerVisitor */,
+  3 /* Color of I2CCompilerVisitor */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  45 /* Group of ? */,
+  45 /* Group of ? */,
+  67 /* Group of ? */,
+  65 /* Group of ? */,
+};
+const char *LOCATE_analysis = "./analysis//analysis.nit";
+const int SFT_analysis[1] = {
+  48 /* Group of ? */,
+};
+const char *LOCATE_icode_dump = "./analysis//icode_dump.nit";
+const int SFT_icode_dump[8] = {
+  49 /* Group of ? */,
+  45 /* Group of ? */,
+  171 /* Id of ICodeDumper */,
+  3 /* Color of ICodeDumper */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  49 /* Group of ? */,
+  61 /* Group of ? */,
+};
+const char *LOCATE_allocate_iregister_slots = "./analysis//allocate_iregister_slots.nit";
+const int SFT_allocate_iregister_slots[12] = {
+  5191 /* Id of IRegisterSlotAllocationVisitor */,
+  4 /* Color of IRegisterSlotAllocationVisitor */,
+  3 /* Group of ? */,
+  53 /* Group of ? */,
+  35 /* Id of SlotGroup */,
+  3 /* Color of SlotGroup */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+};
+const char *LOCATE_inline_methods = "./analysis//inline_methods.nit";
+const int SFT_inline_methods[6] = {
+  5183 /* Id of InlineMethodVisitor */,
+  4 /* Color of InlineMethodVisitor */,
+  3 /* Group of ? */,
+  53 /* Group of ? */,
+  73 /* Group of ? */,
+  64 /* Group of ? */,
 };
 const char *LOCATE_compiling_base = "./compiling//compiling_base.nit";
-const int SFT_compiling_base[88] = {
-  5 /* Property _global */,
-  6 /* Property _attr_sim */,
-  7 /* Property _compdir */,
-  8 /* Property _clibdir */,
-  9 /* Property _bindir */,
-  10 /* Property _output_file */,
-  11 /* Property _boost */,
-  12 /* Property _no_cc */,
-  13 /* Property _ext_prefix */,
-  48 /* Property global */,
-  49 /* Property global= */,
-  50 /* Property attr_sim */,
-  51 /* Property attr_sim= */,
-  52 /* Property compdir */,
-  53 /* Property compdir= */,
-  54 /* Property clibdir */,
-  55 /* Property clibdir= */,
-  56 /* Property bindir */,
-  57 /* Property bindir= */,
-  58 /* Property output_file */,
-  59 /* Property output_file= */,
-  60 /* Property boost */,
-  61 /* Property boost= */,
-  62 /* Property no_cc */,
-  63 /* Property no_cc= */,
-  64 /* Property ext_prefix */,
-  65 /* Property ext_prefix= */,
-  151 /* Id of CompilerVisitor */,
-  2 /* Color of CompilerVisitor */,
-  12 /* Property _number_cpt */,
-  13 /* Property _module */,
-  14 /* Property _ctx */,
-  15 /* Property _indent_level */,
-  16 /* Property _tc */,
-  68 /* Color of CompilerVisitor */,
-  69 /* Property add_decl */,
-  70 /* Property add_instr */,
-  71 /* Property new_number */,
-  72 /* Property indent */,
-  73 /* Property unindent */,
-  74 /* Property module */,
-  75 /* Property module= */,
-  76 /* Property ctx */,
-  77 /* Property ctx= */,
-  78 /* Property indent_level */,
-  79 /* Property indent_level= */,
-  80 /* Property tc */,
-  81 /* Property tc= */,
-  82 /* Property init */,
-  167 /* Id of CContext */,
-  2 /* Color of CContext */,
-  1 /* Property _decls */,
-  2 /* Property _instrs */,
-  40 /* Color of CContext */,
-  41 /* Property decls */,
-  42 /* Property instrs */,
-  43 /* Property append */,
-  44 /* Property init */,
-  42 /* Property meth_call */,
-  43 /* Property attr_access */,
-  44 /* Property color_id */,
-  40 /* Property id_id */,
-  41 /* Property color_id */,
-  42 /* Property init_table_pos_id */,
-  18 /* Property _primitive_info_cache */,
-  19 /* Property _primitive_info_b */,
-  102 /* Property primitive_info */,
-  103 /* Property primitive_ctypes */,
-  47 /* Id of PrimitiveInfo */,
-  2 /* Color of PrimitiveInfo */,
-  1 /* Property _name */,
-  2 /* Property _tagged */,
-  3 /* Property _cname */,
-  40 /* Color of PrimitiveInfo */,
-  41 /* Property name */,
-  42 /* Property name= */,
-  43 /* Property tagged */,
-  44 /* Property tagged= */,
-  45 /* Property cname */,
-  46 /* Property cname= */,
-  47 /* Property init */,
-  42 /* Property cname */,
-  43 /* Property default_cvalue */,
-  44 /* Property boxtype */,
-  45 /* Property unboxtype */,
-  1 /* Property _cname_cache */,
-  41 /* Property cname */,
-  42 /* Property color_id_for_super */,
+const int SFT_compiling_base[14] = {
+  25 /* Group of ? */,
+  81 /* Group of ? */,
+  207 /* Id of CompilerVisitor */,
+  3 /* Color of CompilerVisitor */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  223 /* Id of CContext */,
+  3 /* Color of CContext */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  60 /* Group of ? */,
+  64 /* Group of ? */,
+  9 /* Group of ? */,
+  65 /* Group of ? */,
 };
 const char *LOCATE_utils = "./utils.nit";
-const int SFT_utils[2] = {
-  13 /* Property cmangle */,
-  14 /* Property cmangle_table */,
+const int SFT_utils[1] = {
+  43 /* Group of ? */,
 };
 const char *LOCATE_nitc = "./nitc.nit";
-const int SFT_nitc[23] = {
-  3283 /* Id of NitCompiler */,
-  5 /* Color of NitCompiler */,
-  27 /* Property _opt_output */,
-  28 /* Property _opt_boost */,
-  29 /* Property _opt_no_cc */,
-  30 /* Property _opt_attr_sim */,
-  31 /* Property _opt_global */,
-  32 /* Property _opt_clibdir */,
-  33 /* Property _opt_bindir */,
-  34 /* Property _opt_compdir */,
-  35 /* Property _opt_extension_prefix */,
-  91 /* Color of NitCompiler */,
-  92 /* Property opt_output */,
-  93 /* Property opt_boost */,
-  94 /* Property opt_no_cc */,
-  95 /* Property opt_attr_sim */,
-  96 /* Property opt_global */,
-  97 /* Property opt_clibdir */,
-  98 /* Property opt_bindir */,
-  99 /* Property opt_compdir */,
-  100 /* Property opt_extension_prefix */,
-  101 /* Property init */,
-  102 /* Property process_options */,
-};
-const classtable_elt_t VFT_NitCompiler[103] = {
-  {(bigint) 3283 /* 0: Identity */},
-  {(bigint) 3 /* 1: NitCompiler < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 2: NitCompiler < MMContext: superclass typecheck marker */},
-  {(bigint) 179 /* 3: NitCompiler < ToolContext: superclass typecheck marker */},
-  {(bigint) 3239 /* 4: NitCompiler < AbstractCompiler: superclass typecheck marker */},
-  {(bigint) 3283 /* 5: NitCompiler < NitCompiler: superclass typecheck marker */},
+const int SFT_nitc[4] = {
+  6043 /* Id of NitCompiler */,
+  6 /* Color of NitCompiler */,
+  34 /* Group of ? */,
+  103 /* Group of ? */,
+};
+const classtable_elt_t VFT_NitCompiler[116] = {
+  {(bigint) 6043 /* 0: Identity */},
+  {(bigint) 43 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: NitCompiler < Object: superclass typecheck marker */},
+  {(bigint) 127 /* 3: NitCompiler < MMContext: superclass typecheck marker */},
+  {(bigint) 247 /* 4: NitCompiler < ToolContext: superclass typecheck marker */},
+  {(bigint) 5911 /* 5: NitCompiler < AbstractCompiler: superclass typecheck marker */},
+  {(bigint) 6043 /* 6: NitCompiler < NitCompiler: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7197,14 +24017,12 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 3 /* 20: NitCompiler < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: NitCompiler < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -7212,7 +24030,6 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7220,11 +24037,18 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: NitCompiler < MMContext: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: NitCompiler < MMContext: superclass init_table position */},
   {(bigint) abstractmetamodel___MMContext___init},
   {(bigint) abstractmetamodel___MMContext___module_hierarchy},
   {(bigint) abstractmetamodel___MMContext___class_hierarchy},
@@ -7232,29 +24056,16 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {(bigint) abstractmetamodel___MMContext___add_module},
   {(bigint) abstractmetamodel___MMContext___add_global_class},
   {(bigint) abstractmetamodel___MMContext___add_local_class},
-  {(bigint) compiling_base___ToolContext___global},
-  {(bigint) compiling_base___ToolContext___global__eq},
-  {(bigint) compiling_base___ToolContext___attr_sim},
-  {(bigint) compiling_base___ToolContext___attr_sim__eq},
-  {(bigint) compiling_base___ToolContext___compdir},
-  {(bigint) compiling_base___ToolContext___compdir__eq},
-  {(bigint) compiling_base___ToolContext___clibdir},
-  {(bigint) compiling_base___ToolContext___clibdir__eq},
-  {(bigint) compiling_base___ToolContext___bindir},
-  {(bigint) compiling_base___ToolContext___bindir__eq},
-  {(bigint) compiling_base___ToolContext___output_file},
-  {(bigint) compiling_base___ToolContext___output_file__eq},
-  {(bigint) compiling_base___ToolContext___boost},
-  {(bigint) compiling_base___ToolContext___boost__eq},
-  {(bigint) compiling_base___ToolContext___no_cc},
-  {(bigint) compiling_base___ToolContext___no_cc__eq},
-  {(bigint) compiling_base___ToolContext___ext_prefix},
-  {(bigint) compiling_base___ToolContext___ext_prefix__eq},
-  {(bigint) 1 /* 66: NitCompiler < ToolContext: superclass init_table position */},
+  {(bigint) syntax___ToolContext___keep_ast},
+  {(bigint) syntax___ToolContext___keep_ast__eq},
+  {(bigint) 1 /* 55: NitCompiler < ToolContext: superclass init_table position */},
   {(bigint) mmloader___ToolContext___error_count},
   {(bigint) mmloader___ToolContext___warning_count},
+  {(bigint) mmloader___ToolContext___check_errors},
   {(bigint) mmloader___ToolContext___error},
+  {(bigint) mmloader___ToolContext___fatal_error},
   {(bigint) mmloader___ToolContext___warning},
+  {(bigint) mmloader___ToolContext___info},
   {(bigint) mmloader___ToolContext___paths},
   {(bigint) mmloader___ToolContext___option_context},
   {(bigint) mmloader___ToolContext___opt_warn},
@@ -7263,6 +24074,9 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {(bigint) mmloader___ToolContext___opt_only_metamodel},
   {(bigint) mmloader___ToolContext___opt_only_parse},
   {(bigint) mmloader___ToolContext___opt_help},
+  {(bigint) mmloader___ToolContext___opt_version},
+  {(bigint) mmloader___ToolContext___opt_verbose},
+  {(bigint) mmloader___ToolContext___verbose_level},
   {(bigint) mmloader___ToolContext___init},
   {(bigint) nitc___NitCompiler___process_options},
   {(bigint) mmloader___ToolContext___try_to_load},
@@ -7270,256 +24084,938 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {(bigint) mmloader___ToolContext___get_module},
   {(bigint) mmloader___ToolContext___directory_for},
   {(bigint) mmloader___ToolContext___register_loader},
-  {(bigint) 0 /* 86: NitCompiler < AbstractCompiler: superclass init_table position */},
+  {(bigint) compiling_base___ToolContext___global},
+  {(bigint) compiling_base___ToolContext___global__eq},
+  {(bigint) compiling_base___ToolContext___compdir},
+  {(bigint) compiling_base___ToolContext___compdir__eq},
+  {(bigint) compiling_base___ToolContext___clibdir},
+  {(bigint) compiling_base___ToolContext___clibdir__eq},
+  {(bigint) compiling_base___ToolContext___bindir},
+  {(bigint) compiling_base___ToolContext___bindir__eq},
+  {(bigint) compiling_base___ToolContext___output_file},
+  {(bigint) compiling_base___ToolContext___output_file__eq},
+  {(bigint) compiling_base___ToolContext___boost},
+  {(bigint) compiling_base___ToolContext___boost__eq},
+  {(bigint) compiling_base___ToolContext___no_cc},
+  {(bigint) compiling_base___ToolContext___no_cc__eq},
+  {(bigint) compiling_base___ToolContext___ext_prefix},
+  {(bigint) compiling_base___ToolContext___ext_prefix__eq},
+  {(bigint) 0 /* 97: NitCompiler < AbstractCompiler: superclass init_table position */},
   {(bigint) abstracttool___AbstractCompiler___init},
+  {(bigint) abstracttool___AbstractCompiler___tool_name},
   {(bigint) abstracttool___AbstractCompiler___exec_cmd_line},
   {(bigint) nitc___NitCompiler___perform_work},
   {(bigint) abstracttool___AbstractCompiler___dump_context_info},
-  {(bigint) 4 /* 91: NitCompiler < NitCompiler: superclass init_table position */},
+  {(bigint) 4 /* 103: NitCompiler < NitCompiler: superclass init_table position */},
   {(bigint) nitc___NitCompiler___opt_output},
   {(bigint) nitc___NitCompiler___opt_boost},
   {(bigint) nitc___NitCompiler___opt_no_cc},
-  {(bigint) nitc___NitCompiler___opt_attr_sim},
   {(bigint) nitc___NitCompiler___opt_global},
   {(bigint) nitc___NitCompiler___opt_clibdir},
   {(bigint) nitc___NitCompiler___opt_bindir},
   {(bigint) nitc___NitCompiler___opt_compdir},
   {(bigint) nitc___NitCompiler___opt_extension_prefix},
+  {(bigint) nitc___NitCompiler___opt_dump},
   {(bigint) nitc___NitCompiler___init},
   {(bigint) mmloader___ToolContext___process_options},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute NitCompiler::_module_hierarchy */
-/* 2: Attribute NitCompiler::_class_hierarchy */
-/* 3: Attribute NitCompiler::_global_classes */
-/* 4: Attribute NitCompiler::_modules */
-/* 5: Attribute NitCompiler::_global */
-/* 6: Attribute NitCompiler::_attr_sim */
-/* 7: Attribute NitCompiler::_compdir */
-/* 8: Attribute NitCompiler::_clibdir */
-/* 9: Attribute NitCompiler::_bindir */
-/* 10: Attribute NitCompiler::_output_file */
-/* 11: Attribute NitCompiler::_boost */
-/* 12: Attribute NitCompiler::_no_cc */
-/* 13: Attribute NitCompiler::_ext_prefix */
-/* 14: Attribute NitCompiler::_error_count */
-/* 15: Attribute NitCompiler::_warning_count */
-/* 16: Attribute NitCompiler::_paths */
-/* 17: Attribute NitCompiler::_loaders */
-/* 18: Attribute NitCompiler::_option_context */
-/* 19: Attribute NitCompiler::_opt_warn */
-/* 20: Attribute NitCompiler::_opt_path */
-/* 21: Attribute NitCompiler::_opt_log */
-/* 22: Attribute NitCompiler::_opt_only_metamodel */
-/* 23: Attribute NitCompiler::_opt_only_parse */
-/* 24: Attribute NitCompiler::_opt_help */
-/* 25: Attribute NitCompiler::_processing_modules */
-/* 26: Attribute NitCompiler::_path_dirs */
-/* 27: Attribute NitCompiler::_opt_output */
-/* 28: Attribute NitCompiler::_opt_boost */
-/* 29: Attribute NitCompiler::_opt_no_cc */
-/* 30: Attribute NitCompiler::_opt_attr_sim */
-/* 31: Attribute NitCompiler::_opt_global */
-/* 32: Attribute NitCompiler::_opt_clibdir */
-/* 33: Attribute NitCompiler::_opt_bindir */
-/* 34: Attribute NitCompiler::_opt_compdir */
-/* 35: Attribute NitCompiler::_opt_extension_prefix */
-val_t NEW_NitCompiler(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  val_t variable3;
-  val_t variable4;
-  val_t variable5;
-  val_t variable6;
-  val_t variable7;
-  val_t variable8;
-  val_t variable9;
-  val_t variable10;
-  val_t variable11;
-  val_t variable12;
-  val_t variable13;
-  val_t variable14;
-  val_t variable15;
-  val_t variable16;
-  val_t variable17;
-  val_t variable18;
-  val_t variable19;
-  val_t variable20;
-  val_t variable21;
-  val_t variable22;
-  val_t variable23;
-  val_t variable24;
-  val_t variable25;
-  val_t variable26;
-  val_t variable27;
-  val_t variable28;
-  val_t variable29;
-  val_t variable30;
-  val_t variable31;
-  val_t variable32;
-  val_t variable33;
-  val_t variable34;
-  val_t variable35;
-  val_t variable36;
-  val_t variable37;
-  val_t variable38;
-  val_t variable39;
-  val_t variable40;
-  val_t variable41;
-  val_t variable42;
-  val_t variable43;
-  val_t variable44;
-  val_t variable45;
-  val_t variable46;
-  val_t variable47;
-  val_t variable48;
-  val_t variable49;
-  val_t variable50;
-  val_t variable51;
-  val_t variable52;
-  val_t variable53;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 36);
+  {(bigint) nitc___NitCompiler___dump_intermediate_code},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute NitCompiler::_module_hierarchy */
+/* 3: Attribute NitCompiler::_class_hierarchy */
+/* 4: Attribute NitCompiler::_global_classes */
+/* 5: Attribute NitCompiler::_modules */
+/* 6: Attribute NitCompiler::_keep_ast */
+/* 7: Attribute NitCompiler::_error_count */
+/* 8: Attribute NitCompiler::_warning_count */
+/* 9: Attribute NitCompiler::_messages */
+/* 10: Attribute NitCompiler::_message_sorter */
+/* 11: Attribute NitCompiler::_paths */
+/* 12: Attribute NitCompiler::_loaders */
+/* 13: Attribute NitCompiler::_option_context */
+/* 14: Attribute NitCompiler::_opt_warn */
+/* 15: Attribute NitCompiler::_opt_path */
+/* 16: Attribute NitCompiler::_opt_log */
+/* 17: Attribute NitCompiler::_opt_only_metamodel */
+/* 18: Attribute NitCompiler::_opt_only_parse */
+/* 19: Attribute NitCompiler::_opt_help */
+/* 20: Attribute NitCompiler::_opt_version */
+/* 21: Attribute NitCompiler::_opt_verbose */
+/* 22: Attribute NitCompiler::_verbose_level */
+/* 23: Attribute NitCompiler::_processing_modules */
+/* 24: Attribute NitCompiler::_path_dirs */
+/* 25: Attribute NitCompiler::_global */
+/* 26: Attribute NitCompiler::_compdir */
+/* 27: Attribute NitCompiler::_clibdir */
+/* 28: Attribute NitCompiler::_bindir */
+/* 29: Attribute NitCompiler::_output_file */
+/* 30: Attribute NitCompiler::_boost */
+/* 31: Attribute NitCompiler::_no_cc */
+/* 32: Attribute NitCompiler::_ext_prefix */
+/* 33: Attribute NitCompiler::_tool_name */
+/* 34: Attribute NitCompiler::_opt_output */
+/* 35: Attribute NitCompiler::_opt_boost */
+/* 36: Attribute NitCompiler::_opt_no_cc */
+/* 37: Attribute NitCompiler::_opt_global */
+/* 38: Attribute NitCompiler::_opt_clibdir */
+/* 39: Attribute NitCompiler::_opt_bindir */
+/* 40: Attribute NitCompiler::_opt_compdir */
+/* 41: Attribute NitCompiler::_opt_extension_prefix */
+/* 42: Attribute NitCompiler::_opt_dump */
+void INIT_ATTRIBUTES__NitCompiler(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 */
+  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_21; /* Once value */
+  static val_t once_value_22; /* 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 */
+  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_36; /* 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 */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__NitCompiler;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  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] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:29 */
+  ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:32 */
+  ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:36 */
+  ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:39 */
+  ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:52 */
+  ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:55 */
+  ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:58 */
+  ATTR_mmloader___ToolContext____messages(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ComparableSorter_sorter___ComparableSorter___init();
+  /* ./mmloader.nit:60 */
+  ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:111 */
+  ATTR_mmloader___ToolContext____paths(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:114 */
+  ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_OptionContext_opts___OptionContext___init();
+  /* ./mmloader.nit:117 */
+  ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:121 */
+  if (!once_value_1) {
+    fra.me.REG[1] = BOX_NativeString("Show warnings");
+    REGB0 = TAG_Int(13);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_1 = fra.me.REG[1];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[1] = once_value_1;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_2) {
+    fra.me.REG[3] = BOX_NativeString("-W");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(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;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_3) {
+    fra.me.REG[3] = BOX_NativeString("--warn");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(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;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:120 */
+  ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:124 */
+  if (!once_value_4) {
+    fra.me.REG[2] = BOX_NativeString("Set include path for loaders (may be used more than once)");
+    REGB0 = TAG_Int(57);
+    fra.me.REG[2] = NEW_String_string___String___with_native(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;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_5) {
+    fra.me.REG[3] = BOX_NativeString("-I");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_5 = fra.me.REG[3];
+    register_static_object(&once_value_5);
+  } else fra.me.REG[3] = once_value_5;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_6) {
+    fra.me.REG[3] = BOX_NativeString("--path");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_6 = fra.me.REG[3];
+    register_static_object(&once_value_6);
+  } else fra.me.REG[3] = once_value_6;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:123 */
+  ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:127 */
+  if (!once_value_7) {
+    fra.me.REG[1] = BOX_NativeString("Generate various log files");
+    REGB0 = TAG_Int(26);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_7 = fra.me.REG[1];
+    register_static_object(&once_value_7);
+  } else fra.me.REG[1] = once_value_7;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_8) {
+    fra.me.REG[3] = BOX_NativeString("--log");
+    REGB0 = TAG_Int(5);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_8 = fra.me.REG[3];
+    register_static_object(&once_value_8);
+  } else fra.me.REG[3] = once_value_8;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:126 */
+  ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:130 */
+  if (!once_value_9) {
+    fra.me.REG[2] = BOX_NativeString("Stop after meta-model processing");
+    REGB0 = TAG_Int(32);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_9 = fra.me.REG[2];
+    register_static_object(&once_value_9);
+  } else fra.me.REG[2] = once_value_9;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_10) {
+    fra.me.REG[3] = BOX_NativeString("--only-metamodel");
+    REGB0 = TAG_Int(16);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_10 = fra.me.REG[3];
+    register_static_object(&once_value_10);
+  } else fra.me.REG[3] = once_value_10;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:129 */
+  ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:133 */
+  if (!once_value_11) {
+    fra.me.REG[1] = BOX_NativeString("Only proceed to parse step of loaders");
+    REGB0 = TAG_Int(37);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_11 = fra.me.REG[1];
+    register_static_object(&once_value_11);
+  } else fra.me.REG[1] = once_value_11;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_12) {
+    fra.me.REG[3] = BOX_NativeString("--only-parse");
+    REGB0 = TAG_Int(12);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_12 = fra.me.REG[3];
+    register_static_object(&once_value_12);
+  } else fra.me.REG[3] = once_value_12;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:132 */
+  ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:136 */
+  if (!once_value_13) {
+    fra.me.REG[2] = BOX_NativeString("Show Help (This screen)");
+    REGB0 = TAG_Int(23);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_13 = fra.me.REG[2];
+    register_static_object(&once_value_13);
+  } else fra.me.REG[2] = once_value_13;
+  REGB0 = TAG_Int(2);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_14) {
+    fra.me.REG[3] = BOX_NativeString("-h");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_14 = fra.me.REG[3];
+    register_static_object(&once_value_14);
+  } else fra.me.REG[3] = once_value_14;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_15) {
+    fra.me.REG[3] = BOX_NativeString("-?");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_15 = fra.me.REG[3];
+    register_static_object(&once_value_15);
+  } else fra.me.REG[3] = once_value_15;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_16) {
+    fra.me.REG[3] = BOX_NativeString("--help");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_16 = fra.me.REG[3];
+    register_static_object(&once_value_16);
+  } else fra.me.REG[3] = once_value_16;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:135 */
+  ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:139 */
+  if (!once_value_17) {
+    fra.me.REG[1] = BOX_NativeString("Show version and exit");
+    REGB0 = TAG_Int(21);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_17 = fra.me.REG[1];
+    register_static_object(&once_value_17);
+  } else fra.me.REG[1] = once_value_17;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_18) {
+    fra.me.REG[3] = BOX_NativeString("--version");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_18 = fra.me.REG[3];
+    register_static_object(&once_value_18);
+  } else fra.me.REG[3] = once_value_18;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:138 */
+  ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:142 */
+  if (!once_value_19) {
+    fra.me.REG[2] = BOX_NativeString("Verbose");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_19 = fra.me.REG[2];
+    register_static_object(&once_value_19);
+  } else fra.me.REG[2] = once_value_19;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_20) {
+    fra.me.REG[3] = BOX_NativeString("-v");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_20 = fra.me.REG[3];
+    register_static_object(&once_value_20);
+  } else fra.me.REG[3] = once_value_20;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_21) {
+    fra.me.REG[3] = BOX_NativeString("--verbose");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_21 = fra.me.REG[3];
+    register_static_object(&once_value_21);
+  } else fra.me.REG[3] = once_value_21;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:141 */
+  ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:144 */
+  ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./mmloader.nit:220 */
+  ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./mmloader.nit:288 */
+  ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//syntax.nit:85 */
+  ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:25 */
+  ATTR_compiling_base___ToolContext____global(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:26 */
+  ATTR_compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:27 */
+  ATTR_compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:28 */
+  ATTR_compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:29 */
+  ATTR_compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:30 */
+  ATTR_compiling_base___ToolContext____boost(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:31 */
+  ATTR_compiling_base___ToolContext____no_cc(fra.me.REG[0]) = REGB0;
+  /* ./compiling//compiling_base.nit:32 */
+  if (!once_value_22) {
+    fra.me.REG[1] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_22 = fra.me.REG[1];
+    register_static_object(&once_value_22);
+  } else fra.me.REG[1] = once_value_22;
+  ATTR_compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./nitc.nit:29 */
+  if (!once_value_23) {
+    fra.me.REG[1] = BOX_NativeString("Output file");
+    REGB0 = TAG_Int(11);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_23 = fra.me.REG[1];
+    register_static_object(&once_value_23);
+  } else fra.me.REG[1] = once_value_23;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_24) {
+    fra.me.REG[3] = BOX_NativeString("-o");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_24 = fra.me.REG[3];
+    register_static_object(&once_value_24);
+  } else fra.me.REG[3] = once_value_24;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_25) {
+    fra.me.REG[3] = BOX_NativeString("--output");
+    REGB0 = TAG_Int(8);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_25 = fra.me.REG[3];
+    register_static_object(&once_value_25);
+  } else fra.me.REG[3] = once_value_25;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./nitc.nit:30 */
+  if (!once_value_26) {
+    fra.me.REG[2] = BOX_NativeString("Optimize compilation");
+    REGB0 = TAG_Int(20);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_26 = fra.me.REG[2];
+    register_static_object(&once_value_26);
+  } else fra.me.REG[2] = once_value_26;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_27) {
+    fra.me.REG[3] = BOX_NativeString("-O");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_27 = fra.me.REG[3];
+    register_static_object(&once_value_27);
+  } else fra.me.REG[3] = once_value_27;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_28) {
+    fra.me.REG[3] = BOX_NativeString("--boost");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_28 = fra.me.REG[3];
+    register_static_object(&once_value_28);
+  } else fra.me.REG[3] = once_value_28;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./nitc.nit:31 */
+  if (!once_value_29) {
+    fra.me.REG[1] = BOX_NativeString("Do not invoke C compiler");
+    REGB0 = TAG_Int(24);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_29 = fra.me.REG[1];
+    register_static_object(&once_value_29);
+  } else fra.me.REG[1] = once_value_29;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_30) {
+    fra.me.REG[3] = BOX_NativeString("--no_cc");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_30 = fra.me.REG[3];
+    register_static_object(&once_value_30);
+  } else fra.me.REG[3] = once_value_30;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./nitc.nit:32 */
+  if (!once_value_31) {
+    fra.me.REG[2] = BOX_NativeString("Use global compilation");
+    REGB0 = TAG_Int(22);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_31 = fra.me.REG[2];
+    register_static_object(&once_value_31);
+  } else fra.me.REG[2] = once_value_31;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_32) {
+    fra.me.REG[3] = BOX_NativeString("--global");
+    REGB0 = TAG_Int(8);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_32 = fra.me.REG[3];
+    register_static_object(&once_value_32);
+  } else fra.me.REG[3] = once_value_32;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_nitc___NitCompiler____opt_global(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./nitc.nit:33 */
+  if (!once_value_33) {
+    fra.me.REG[1] = BOX_NativeString("NIT C library directory");
+    REGB0 = TAG_Int(23);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_33 = fra.me.REG[1];
+    register_static_object(&once_value_33);
+  } else fra.me.REG[1] = once_value_33;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_34) {
+    fra.me.REG[3] = BOX_NativeString("--clibdir");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_34 = fra.me.REG[3];
+    register_static_object(&once_value_34);
+  } else fra.me.REG[3] = once_value_34;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./nitc.nit:34 */
+  if (!once_value_35) {
+    fra.me.REG[2] = BOX_NativeString("NIT tools directory");
+    REGB0 = TAG_Int(19);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_35 = fra.me.REG[2];
+    register_static_object(&once_value_35);
+  } else fra.me.REG[2] = once_value_35;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_36) {
+    fra.me.REG[3] = BOX_NativeString("--bindir");
+    REGB0 = TAG_Int(8);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_36 = fra.me.REG[3];
+    register_static_object(&once_value_36);
+  } else fra.me.REG[3] = once_value_36;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionString_opts___OptionString___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./nitc.nit:35 */
+  if (!once_value_37) {
+    fra.me.REG[1] = BOX_NativeString("Intermediate compilation directory");
+    REGB0 = TAG_Int(34);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_37 = fra.me.REG[1];
+    register_static_object(&once_value_37);
+  } else fra.me.REG[1] = once_value_37;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_38) {
+    fra.me.REG[3] = BOX_NativeString("--compdir");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_38 = fra.me.REG[3];
+    register_static_object(&once_value_38);
+  } else fra.me.REG[3] = once_value_38;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./nitc.nit:36 */
+  if (!once_value_39) {
+    fra.me.REG[2] = BOX_NativeString("Append prefix to file extension");
+    REGB0 = TAG_Int(31);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_39 = fra.me.REG[2];
+    register_static_object(&once_value_39);
+  } else fra.me.REG[2] = once_value_39;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_40) {
+    fra.me.REG[3] = BOX_NativeString("-p");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_40 = fra.me.REG[3];
+    register_static_object(&once_value_40);
+  } else fra.me.REG[3] = once_value_40;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_41) {
+    fra.me.REG[3] = BOX_NativeString("--extension-prefix");
+    REGB0 = TAG_Int(18);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_41 = fra.me.REG[3];
+    register_static_object(&once_value_41);
+  } else fra.me.REG[3] = once_value_41;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionString_opts___OptionString___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./nitc.nit:37 */
+  if (!once_value_42) {
+    fra.me.REG[1] = BOX_NativeString("Dump intermediate code");
+    REGB0 = TAG_Int(22);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_42 = fra.me.REG[1];
+    register_static_object(&once_value_42);
+  } else fra.me.REG[1] = once_value_42;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_43) {
+    fra.me.REG[3] = BOX_NativeString("--dump");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_43 = fra.me.REG[3];
+    register_static_object(&once_value_43);
+  } else fra.me.REG[3] = once_value_43;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_dump(fra.me.REG[0]) = fra.me.REG[2];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_NitCompiler(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 43);
   obj->vft = (classtable_elt_t*)VFT_NitCompiler;
-  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMContext____module_hierarchy(obj) = variable0;
-  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMContext____class_hierarchy(obj) = variable1;
-  variable2 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMContext____global_classes(obj) = variable2;
-  variable3 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMContext____modules(obj) = variable3;
-  ATTR_mmloader___ToolContext____error_count(obj) = TAG_Int((bigint)0);
-  ATTR_mmloader___ToolContext____warning_count(obj) = TAG_Int((bigint)0);
-  variable4 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_mmloader___ToolContext____loaders(obj) = variable4;
-  variable5 = NEW_opts___OptionContext___init(); /*new OptionContext*/
-  ATTR_mmloader___ToolContext____option_context(obj) = variable5;
-  variable6 = NEW_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
-  variable7 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable8 = NEW_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*AbstractArray::add*/;
-  variable9 = NEW_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable9) /*AbstractArray::add*/;
-  variable8 = NEW_opts___OptionBool___init(variable6, variable7); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_warn(obj) = variable8;
-  variable9 = NEW_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
-  variable10 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable11 = NEW_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable11) /*AbstractArray::add*/;
-  variable12 = NEW_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable12) /*AbstractArray::add*/;
-  variable11 = NEW_opts___OptionArray___init(variable9, variable10); /*new OptionArray*/
-  ATTR_mmloader___ToolContext____opt_path(obj) = variable11;
-  variable12 = NEW_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
-  variable13 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable14 = NEW_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13, variable14) /*AbstractArray::add*/;
-  variable14 = NEW_opts___OptionBool___init(variable12, variable13); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_log(obj) = variable14;
-  variable15 = NEW_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
-  variable16 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable17 = NEW_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16, variable17) /*AbstractArray::add*/;
-  variable17 = NEW_opts___OptionBool___init(variable15, variable16); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable17;
-  variable18 = NEW_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
-  variable19 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable20 = NEW_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19, variable20) /*AbstractArray::add*/;
-  variable20 = NEW_opts___OptionBool___init(variable18, variable19); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable20;
-  variable21 = NEW_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
-  variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[E]*/
-  variable23 = NEW_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable23) /*AbstractArray::add*/;
-  variable24 = NEW_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable24) /*AbstractArray::add*/;
-  variable25 = NEW_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable25) /*AbstractArray::add*/;
-  variable23 = NEW_opts___OptionBool___init(variable21, variable22); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_help(obj) = variable23;
-  variable24 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_mmloader___ToolContext____processing_modules(obj) = variable24;
-  variable25 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_mmloader___ToolContext____path_dirs(obj) = variable25;
-  ATTR_compiling_base___ToolContext____global(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____attr_sim(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____boost(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____no_cc(obj) = TAG_Bool((int)0);
-  variable26 = NEW_string___String___with_native(BOX_NativeString("Output file"), TAG_Int(11)); /*new String*/
-  variable27 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable28 = NEW_string___String___with_native(BOX_NativeString("-o"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27, variable28) /*AbstractArray::add*/;
-  variable29 = NEW_string___String___with_native(BOX_NativeString("--output"), TAG_Int(8)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable27,COLOR_abstract_collection___SimpleCollection___add))(variable27, variable29) /*AbstractArray::add*/;
-  variable28 = NEW_opts___OptionString___init(variable26, variable27); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_output(obj) = variable28;
-  variable29 = NEW_string___String___with_native(BOX_NativeString("Optimize compilation"), TAG_Int(20)); /*new String*/
-  variable30 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable31 = NEW_string___String___with_native(BOX_NativeString("-O"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable31) /*AbstractArray::add*/;
-  variable32 = NEW_string___String___with_native(BOX_NativeString("--boost"), TAG_Int(7)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable30,COLOR_abstract_collection___SimpleCollection___add))(variable30, variable32) /*AbstractArray::add*/;
-  variable31 = NEW_opts___OptionBool___init(variable29, variable30); /*new OptionBool*/
-  ATTR_nitc___NitCompiler____opt_boost(obj) = variable31;
-  variable32 = NEW_string___String___with_native(BOX_NativeString("Do not invoke C compiler"), TAG_Int(24)); /*new String*/
-  variable33 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable34 = NEW_string___String___with_native(BOX_NativeString("--no_cc"), TAG_Int(7)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable33,COLOR_abstract_collection___SimpleCollection___add))(variable33, variable34) /*AbstractArray::add*/;
-  variable34 = NEW_opts___OptionBool___init(variable32, variable33); /*new OptionBool*/
-  ATTR_nitc___NitCompiler____opt_no_cc(obj) = variable34;
-  variable35 = NEW_string___String___with_native(BOX_NativeString("Use attribute simulation"), TAG_Int(24)); /*new String*/
-  variable36 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable37 = NEW_string___String___with_native(BOX_NativeString("--attr-sim"), TAG_Int(10)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable36,COLOR_abstract_collection___SimpleCollection___add))(variable36, variable37) /*AbstractArray::add*/;
-  variable37 = NEW_opts___OptionBool___init(variable35, variable36); /*new OptionBool*/
-  ATTR_nitc___NitCompiler____opt_attr_sim(obj) = variable37;
-  variable38 = NEW_string___String___with_native(BOX_NativeString("Use global compilation"), TAG_Int(22)); /*new String*/
-  variable39 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable40 = NEW_string___String___with_native(BOX_NativeString("--global"), TAG_Int(8)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable39,COLOR_abstract_collection___SimpleCollection___add))(variable39, variable40) /*AbstractArray::add*/;
-  variable40 = NEW_opts___OptionBool___init(variable38, variable39); /*new OptionBool*/
-  ATTR_nitc___NitCompiler____opt_global(obj) = variable40;
-  variable41 = NEW_string___String___with_native(BOX_NativeString("NIT C library directory"), TAG_Int(23)); /*new String*/
-  variable42 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable43 = NEW_string___String___with_native(BOX_NativeString("--clibdir"), TAG_Int(9)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable42,COLOR_abstract_collection___SimpleCollection___add))(variable42, variable43) /*AbstractArray::add*/;
-  variable43 = NEW_opts___OptionString___init(variable41, variable42); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_clibdir(obj) = variable43;
-  variable44 = NEW_string___String___with_native(BOX_NativeString("NIT tools directory"), TAG_Int(19)); /*new String*/
-  variable45 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable46 = NEW_string___String___with_native(BOX_NativeString("--bindir"), TAG_Int(8)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable45,COLOR_abstract_collection___SimpleCollection___add))(variable45, variable46) /*AbstractArray::add*/;
-  variable46 = NEW_opts___OptionString___init(variable44, variable45); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_bindir(obj) = variable46;
-  variable47 = NEW_string___String___with_native(BOX_NativeString("Intermediate compilation directory"), TAG_Int(34)); /*new String*/
-  variable48 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable49 = NEW_string___String___with_native(BOX_NativeString("--compdir"), TAG_Int(9)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable48,COLOR_abstract_collection___SimpleCollection___add))(variable48, variable49) /*AbstractArray::add*/;
-  variable49 = NEW_opts___OptionString___init(variable47, variable48); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_compdir(obj) = variable49;
-  variable50 = NEW_string___String___with_native(BOX_NativeString("Append prefix to file extension"), TAG_Int(31)); /*new String*/
-  variable51 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable52 = NEW_string___String___with_native(BOX_NativeString("-p"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51, variable52) /*AbstractArray::add*/;
-  variable53 = NEW_string___String___with_native(BOX_NativeString("--extension-prefix"), TAG_Int(18)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable51,COLOR_abstract_collection___SimpleCollection___add))(variable51, variable53) /*AbstractArray::add*/;
-  variable52 = NEW_opts___OptionString___init(variable50, variable51); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_extension_prefix(obj) = variable52;
-  return OBJ2VAL(obj);
-}
-val_t NEW_nitc___NitCompiler___init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_NitCompiler(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_NitCompiler;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_error_count");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_warning_count");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_messages");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_message_sorter");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_paths");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_loaders");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_option_context");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_warn");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_path");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_log");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_only_metamodel");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_only_parse");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_help");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_version");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_verbose");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_verbose_level");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_processing_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_path_dirs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_keep_ast");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tool_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____boost(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_boost");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____no_cc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_no_cc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____ext_prefix(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_ext_prefix");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_output");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_boost");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_no_cc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_clibdir");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_bindir");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_compdir");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_extension_prefix");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_dump(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_dump");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_NitCompiler_nitc___NitCompiler___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_NitCompiler();
-  nitc___NitCompiler___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_Sys[47] = {
-  {(bigint) 23 /* 0: Identity */},
-  {(bigint) 3 /* 1: Sys < Object: superclass typecheck marker */},
-  {(bigint) 23 /* 2: Sys < Sys: superclass typecheck marker */},
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39;
+  fra.me.meth = LOCATE_NEW_NitCompiler_nitc___NitCompiler___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_NitCompiler();
+  /* ./nitc.nit:39 */
+  INIT_ATTRIBUTES__NitCompiler(fra.me.REG[0]);
+  nitc___NitCompiler___init(fra.me.REG[0], init_table);
+  CHECKNEW_NitCompiler(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_Sys[53] = {
+  {(bigint) 19 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Sys < Object: superclass typecheck marker */},
+  {(bigint) 19 /* 3: Sys < Sys: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7530,14 +25026,12 @@ const classtable_elt_t VFT_Sys[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Sys___args},
-  {(bigint) 0 /* 20: Sys < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Sys < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -7545,7 +25039,6 @@ const classtable_elt_t VFT_Sys[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7553,29 +25046,82 @@ const classtable_elt_t VFT_Sys[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Sys___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) exec___Sys___system},
   {(bigint) string___Sys___program_name},
   {(bigint) string___Sys___init_args},
   {(bigint) string___Sys___native_argc},
   {(bigint) string___Sys___native_argv},
-  {(bigint) 1 /* 45: Sys < Sys: superclass init_table position */},
+  {(bigint) 1 /* 50: Sys < Sys: superclass init_table position */},
   {(bigint) nitc___Sys___main},
+  {(bigint) kernel___Sys___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Sys::_args_cache */
-val_t NEW_Sys(void) {
+/* 1: Object_id */
+/* 2: Attribute Sys::_args_cache */
+void INIT_ATTRIBUTES__Sys(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Sys;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Sys(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
+  obj = alloc(sizeof(val_t) * 3);
   obj->vft = (classtable_elt_t*)VFT_Sys;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_Object[40] = {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Sys(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Sys;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Sys_kernel___Sys___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_Sys_kernel___Sys___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_Sys();
+  INIT_ATTRIBUTES__Sys(fra.me.REG[0]);
+  kernel___Sys___init(fra.me.REG[0], init_table);
+  CHECKNEW_Sys(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_Object[45] = {
   {(bigint) 3 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object < Object: superclass typecheck marker */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Object < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7587,14 +25133,12 @@ const classtable_elt_t VFT_Object[40] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Object < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Object < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -7602,7 +25146,6 @@ const classtable_elt_t VFT_Object[40] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7610,24 +25153,58 @@ const classtable_elt_t VFT_Object[40] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_Object(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Object(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Object;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Object(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_Object;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_Comparable[56] = {
-  {(bigint) 155 /* 0: Identity */},
-  {(bigint) 3 /* 1: Comparable < Object: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Object(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Object;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Comparable[60] = {
+  {(bigint) 211 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Comparable < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 211 /* 4: Comparable < Comparable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 155 /* 4: Comparable < Comparable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7636,14 +25213,12 @@ const classtable_elt_t VFT_Comparable[56] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Comparable < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Comparable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -7651,7 +25226,6 @@ const classtable_elt_t VFT_Comparable[56] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7659,18 +25233,24 @@ const classtable_elt_t VFT_Comparable[56] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 47: Comparable < Comparable: superclass init_table position */},
+  {(bigint) 1 /* 51: Comparable < Comparable: superclass init_table position */},
   {(bigint) kernel___Comparable_____l},
   {(bigint) kernel___Comparable_____leq},
   {(bigint) kernel___Comparable_____geq},
@@ -7681,18 +25261,45 @@ const classtable_elt_t VFT_Comparable[56] = {
   {(bigint) kernel___Comparable___min},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_Comparable(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Comparable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Comparable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Comparable(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_Comparable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_Discrete[62] = {
-  {(bigint) 2643 /* 0: Identity */},
-  {(bigint) 3 /* 1: Discrete < Object: superclass typecheck marker */},
-  {(bigint) 2643 /* 2: Discrete < Discrete: superclass typecheck marker */},
+void CHECKNEW_Comparable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Comparable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Discrete[66] = {
+  {(bigint) 5247 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Discrete < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 155 /* 4: Discrete < Comparable: superclass typecheck marker */},
+  {(bigint) 211 /* 4: Discrete < Comparable: superclass typecheck marker */},
+  {(bigint) 5247 /* 5: Discrete < Discrete: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7701,14 +25308,12 @@ const classtable_elt_t VFT_Discrete[62] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Discrete < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Discrete < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -7716,7 +25321,6 @@ const classtable_elt_t VFT_Discrete[62] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7724,18 +25328,24 @@ const classtable_elt_t VFT_Discrete[62] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 47: Discrete < Comparable: superclass init_table position */},
+  {(bigint) 1 /* 51: Discrete < Comparable: superclass init_table position */},
   {(bigint) kernel___Comparable_____l},
   {(bigint) kernel___Comparable_____leq},
   {(bigint) kernel___Comparable_____geq},
@@ -7744,7 +25354,7 @@ const classtable_elt_t VFT_Discrete[62] = {
   {(bigint) kernel___Comparable___is_between},
   {(bigint) kernel___Comparable___max},
   {(bigint) kernel___Comparable___min},
-  {(bigint) 2 /* 56: Discrete < Discrete: superclass init_table position */},
+  {(bigint) 2 /* 60: Discrete < Discrete: superclass init_table position */},
   {(bigint) kernel___Discrete___succ},
   {(bigint) kernel___Discrete___prec},
   {(bigint) kernel___Discrete_____plus},
@@ -7752,16 +25362,43 @@ const classtable_elt_t VFT_Discrete[62] = {
   {(bigint) kernel___Discrete___distance},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_Discrete(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Discrete(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Discrete;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Discrete(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_Discrete;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_Bool[41] = {
-  {(bigint) -17 /* 0: Identity */},
-  {(bigint) 3 /* 1: Bool < Object: superclass typecheck marker */},
-  {(bigint) -17 /* 2: Bool < Bool: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Discrete(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Discrete;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Bool[46] = {
+  {(bigint) -13 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Bool < Object: superclass typecheck marker */},
+  {(bigint) -13 /* 3: Bool < Bool: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7772,14 +25409,12 @@ const classtable_elt_t VFT_Bool[41] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Bool___hash},
-  {(bigint) string___Bool___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Bool < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Bool < Object: superclass init_table position */},
   {(bigint) kernel___Bool___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Bool_____eqeq},
@@ -7787,7 +25422,6 @@ const classtable_elt_t VFT_Bool[41] = {
   {(bigint) kernel___Bool___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7795,17 +25429,26 @@ const classtable_elt_t VFT_Bool[41] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Bool___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Bool___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Bool < Bool: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Bool < Bool: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-const classtable_elt_t VFT_Float[63] = {
-  {(bigint) -13 /* 0: Identity */},
-  {(bigint) 3 /* 1: Float < Object: superclass typecheck marker */},
-  {(bigint) -13 /* 2: Float < Float: superclass typecheck marker */},
+/* 1: Object_id */
+const classtable_elt_t VFT_Float[68] = {
+  {(bigint) -9 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Float < Object: superclass typecheck marker */},
+  {(bigint) -9 /* 3: Float < Float: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7816,14 +25459,12 @@ const classtable_elt_t VFT_Float[63] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Float___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Float < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Float < Object: superclass init_table position */},
   {(bigint) kernel___Float___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -7831,7 +25472,6 @@ const classtable_elt_t VFT_Float[63] = {
   {(bigint) kernel___Float___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7839,12 +25479,19 @@ const classtable_elt_t VFT_Float[63] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Float___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) string___Float___to_precision},
-  {(bigint) 1 /* 41: Float < Float: superclass init_table position */},
+  {(bigint) 1 /* 46: Float < Float: superclass init_table position */},
   {(bigint) kernel___Float_____leq},
   {(bigint) kernel___Float_____l},
   {(bigint) kernel___Float_____geq},
@@ -7868,19 +25515,23 @@ const classtable_elt_t VFT_Float[63] = {
   {(bigint) math___Float___rand},
 };
 /* 0: Pointer to the classtable */
+/* 1: Object_id */
 val_t BOX_Float(float val) {
   struct TBOX_Float *box = (struct TBOX_Float*)alloc(sizeof(struct TBOX_Float));
   box->vft = VFT_Float;
   box->val = val;
+  box->object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_Int[77] = {
-  {(bigint) -33 /* 0: Identity */},
-  {(bigint) 3 /* 1: Int < Object: superclass typecheck marker */},
-  {(bigint) 2643 /* 2: Int < Discrete: superclass typecheck marker */},
+const classtable_elt_t VFT_Int[81] = {
+  {(bigint) -29 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Int < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 155 /* 4: Int < Comparable: superclass typecheck marker */},
-  {(bigint) -33 /* 5: Int < Int: superclass typecheck marker */},
+  {(bigint) 211 /* 4: Int < Comparable: superclass typecheck marker */},
+  {(bigint) 5247 /* 5: Int < Discrete: superclass typecheck marker */},
+  {(bigint) -29 /* 6: Int < Int: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7888,14 +25539,12 @@ const classtable_elt_t VFT_Int[77] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Int___hash},
-  {(bigint) string___Int___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Int < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Int < Object: superclass init_table position */},
   {(bigint) kernel___Int___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Int_____eqeq},
@@ -7903,7 +25552,6 @@ const classtable_elt_t VFT_Int[77] = {
   {(bigint) kernel___Int___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7911,18 +25559,24 @@ const classtable_elt_t VFT_Int[77] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Int___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Int___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 47: Int < Comparable: superclass init_table position */},
+  {(bigint) 1 /* 51: Int < Comparable: superclass init_table position */},
   {(bigint) kernel___Int_____l},
   {(bigint) kernel___Int_____leq},
   {(bigint) kernel___Int_____geq},
@@ -7931,16 +25585,16 @@ const classtable_elt_t VFT_Int[77] = {
   {(bigint) kernel___Int___is_between},
   {(bigint) kernel___Int___max},
   {(bigint) kernel___Int___min},
-  {(bigint) 2 /* 56: Int < Discrete: superclass init_table position */},
+  {(bigint) 2 /* 60: Int < Discrete: superclass init_table position */},
   {(bigint) kernel___Int___succ},
   {(bigint) kernel___Int___prec},
   {(bigint) kernel___Int_____plus},
   {(bigint) kernel___Int_____minus},
   {(bigint) kernel___Int___distance},
-  {(bigint) string___Int___fill_string},
+  {(bigint) string___Int___fill_buffer},
   {(bigint) string___Int___to_hex},
   {(bigint) string___Int___to_base},
-  {(bigint) 3 /* 65: Int < Int: superclass init_table position */},
+  {(bigint) 3 /* 69: Int < Int: superclass init_table position */},
   {(bigint) kernel___Int___unary__minus},
   {(bigint) kernel___Int_____star},
   {(bigint) kernel___Int_____slash},
@@ -7954,13 +25608,15 @@ const classtable_elt_t VFT_Int[77] = {
   {(bigint) math___Int___rand},
 };
 /* 0: Pointer to the classtable */
-const classtable_elt_t VFT_Char[67] = {
-  {(bigint) -37 /* 0: Identity */},
-  {(bigint) 3 /* 1: Char < Object: superclass typecheck marker */},
-  {(bigint) 2643 /* 2: Char < Discrete: superclass typecheck marker */},
-  {(bigint) 51 /* 3: Char < Pattern: superclass typecheck marker */},
-  {(bigint) 155 /* 4: Char < Comparable: superclass typecheck marker */},
-  {(bigint) -37 /* 5: Char < Char: superclass typecheck marker */},
+/* 1: Object_id */
+const classtable_elt_t VFT_Char[71] = {
+  {(bigint) -33 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Char < Object: superclass typecheck marker */},
+  {(bigint) 59 /* 3: Char < Pattern: superclass typecheck marker */},
+  {(bigint) 211 /* 4: Char < Comparable: superclass typecheck marker */},
+  {(bigint) 5247 /* 5: Char < Discrete: superclass typecheck marker */},
+  {(bigint) -33 /* 6: Char < Char: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7968,14 +25624,12 @@ const classtable_elt_t VFT_Char[67] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Char___hash},
-  {(bigint) string___Char___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Char < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 1 /* 19: Char < Object: superclass init_table position */},
   {(bigint) kernel___Char___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Char_____eqeq},
@@ -7983,7 +25637,6 @@ const classtable_elt_t VFT_Char[67] = {
   {(bigint) kernel___Char___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -7991,18 +25644,24 @@ const classtable_elt_t VFT_Char[67] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Char___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Char___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 3 /* 42: Char < Pattern: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 45: Char < Pattern: superclass init_table position */},
   {(bigint) string_search___Char___search_index_in},
   {(bigint) string_search___Char___search_in},
   {(bigint) string_search___Pattern___search_all_in},
   {(bigint) string_search___Pattern___split_in},
-  {(bigint) 1 /* 47: Char < Comparable: superclass init_table position */},
+  {(bigint) string_search___Pattern___init},
+  {(bigint) 2 /* 51: Char < Comparable: superclass init_table position */},
   {(bigint) kernel___Char_____l},
   {(bigint) kernel___Char_____leq},
   {(bigint) kernel___Char_____geq},
@@ -8011,23 +25670,25 @@ const classtable_elt_t VFT_Char[67] = {
   {(bigint) kernel___Comparable___is_between},
   {(bigint) kernel___Comparable___max},
   {(bigint) kernel___Comparable___min},
-  {(bigint) 2 /* 56: Char < Discrete: superclass init_table position */},
+  {(bigint) 3 /* 60: Char < Discrete: superclass init_table position */},
   {(bigint) kernel___Char___succ},
   {(bigint) kernel___Char___prec},
   {(bigint) kernel___Char_____plus},
   {(bigint) kernel___Char_____minus},
   {(bigint) kernel___Char___distance},
-  {(bigint) 4 /* 62: Char < Char: superclass init_table position */},
+  {(bigint) 4 /* 66: Char < Char: superclass init_table position */},
   {(bigint) kernel___Char___to_i},
   {(bigint) kernel___Char___ascii},
   {(bigint) kernel___Char___to_lower},
   {(bigint) kernel___Char___to_upper},
 };
 /* 0: Pointer to the classtable */
-const classtable_elt_t VFT_Pointer[41] = {
+/* 1: Object_id */
+const classtable_elt_t VFT_Pointer[46] = {
   {(bigint) -1 /* 0: Identity */},
-  {(bigint) 3 /* 1: Pointer < Object: superclass typecheck marker */},
-  {(bigint) -1 /* 2: Pointer < Pointer: superclass typecheck marker */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Pointer < Object: superclass typecheck marker */},
+  {(bigint) -1 /* 3: Pointer < Pointer: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8038,14 +25699,12 @@ const classtable_elt_t VFT_Pointer[41] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Pointer < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Pointer < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8053,7 +25712,6 @@ const classtable_elt_t VFT_Pointer[41] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8061,26 +25719,37 @@ const classtable_elt_t VFT_Pointer[41] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Pointer < Pointer: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Pointer < Pointer: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
+/* 1: Object_id */
 val_t BOX_Pointer(void * val) {
   struct TBOX_Pointer *box = (struct TBOX_Pointer*)alloc(sizeof(struct TBOX_Pointer));
   box->vft = VFT_Pointer;
   box->val = val;
+  box->object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_Collection[66] = {
-  {(bigint) 163 /* 0: Identity */},
-  {(bigint) 3 /* 1: Collection < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_Collection[70] = {
+  {(bigint) 219 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Collection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: Collection < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: Collection < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8088,14 +25757,12 @@ const classtable_elt_t VFT_Collection[66] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Collection < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Collection < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8103,7 +25770,6 @@ const classtable_elt_t VFT_Collection[66] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8111,11 +25777,17 @@ const classtable_elt_t VFT_Collection[66] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8133,7 +25805,7 @@ const classtable_elt_t VFT_Collection[66] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: Collection < Collection: superclass init_table position */},
+  {(bigint) 1 /* 62: Collection < Collection: superclass init_table position */},
   {(bigint) abstract_collection___Collection___iterator},
   {(bigint) abstract_collection___Collection___is_empty},
   {(bigint) abstract_collection___Collection___length},
@@ -8143,34 +25815,59 @@ const classtable_elt_t VFT_Collection[66] = {
   {(bigint) abstract_collection___Collection___first},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_Collection(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Collection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Collection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Collection(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_Collection;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_NaiveCollection[67] = {
-  {(bigint) 2539 /* 0: Identity */},
-  {(bigint) 3 /* 1: NaiveCollection < Object: superclass typecheck marker */},
+void CHECKNEW_Collection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Collection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_NaiveCollection[71] = {
+  {(bigint) 5095 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: NaiveCollection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: NaiveCollection < Collection: superclass typecheck marker */},
+  {(bigint) 5095 /* 6: NaiveCollection < NaiveCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: NaiveCollection < Collection: superclass typecheck marker */},
-  {(bigint) 2539 /* 6: NaiveCollection < NaiveCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: NaiveCollection < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: NaiveCollection < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8178,7 +25875,6 @@ const classtable_elt_t VFT_NaiveCollection[67] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8186,11 +25882,17 @@ const classtable_elt_t VFT_NaiveCollection[67] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8208,7 +25910,7 @@ const classtable_elt_t VFT_NaiveCollection[67] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: NaiveCollection < Collection: superclass init_table position */},
+  {(bigint) 1 /* 62: NaiveCollection < Collection: superclass init_table position */},
   {(bigint) abstract_collection___Collection___iterator},
   {(bigint) abstract_collection___NaiveCollection___is_empty},
   {(bigint) abstract_collection___NaiveCollection___length},
@@ -8216,19 +25918,46 @@ const classtable_elt_t VFT_NaiveCollection[67] = {
   {(bigint) abstract_collection___NaiveCollection___has_only},
   {(bigint) abstract_collection___NaiveCollection___count},
   {(bigint) abstract_collection___NaiveCollection___first},
-  {(bigint) 2 /* 66: NaiveCollection < NaiveCollection: superclass init_table position */},
+  {(bigint) 2 /* 70: NaiveCollection < NaiveCollection: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_NaiveCollection(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__NaiveCollection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__NaiveCollection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_NaiveCollection(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_NaiveCollection;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_Iterator[45] = {
-  {(bigint) 131 /* 0: Identity */},
-  {(bigint) 3 /* 1: Iterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: Iterator < Iterator: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_NaiveCollection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_NaiveCollection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Iterator[50] = {
+  {(bigint) 143 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Iterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: Iterator < Iterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8239,14 +25968,12 @@ const classtable_elt_t VFT_Iterator[45] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Iterator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Iterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8254,7 +25981,6 @@ const classtable_elt_t VFT_Iterator[45] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8262,45 +25988,77 @@ const classtable_elt_t VFT_Iterator[45] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: Iterator < Iterator: superclass init_table position */},
+  {(bigint) 1 /* 46: Iterator < Iterator: superclass init_table position */},
   {(bigint) abstract_collection___Iterator___item},
   {(bigint) abstract_collection___Iterator___next},
   {(bigint) abstract_collection___Iterator___is_ok},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_Iterator(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Iterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Iterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Iterator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_Iterator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_Container[70] = {
-  {(bigint) 2651 /* 0: Identity */},
-  {(bigint) 3 /* 1: Container < Object: superclass typecheck marker */},
+void CHECKNEW_Iterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Iterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Container[74] = {
+  {(bigint) 5255 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Container < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: Container < Collection: superclass typecheck marker */},
+  {(bigint) 5255 /* 6: Container < Container: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: Container < Collection: superclass typecheck marker */},
-  {(bigint) 2651 /* 6: Container < Container: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Container < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Container < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8308,7 +26066,6 @@ const classtable_elt_t VFT_Container[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8316,11 +26073,17 @@ const classtable_elt_t VFT_Container[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8338,7 +26101,7 @@ const classtable_elt_t VFT_Container[70] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: Container < Collection: superclass init_table position */},
+  {(bigint) 1 /* 62: Container < Collection: superclass init_table position */},
   {(bigint) abstract_collection___Container___iterator},
   {(bigint) abstract_collection___Container___is_empty},
   {(bigint) abstract_collection___Container___length},
@@ -8346,30 +26109,72 @@ const classtable_elt_t VFT_Container[70] = {
   {(bigint) abstract_collection___Container___has_only},
   {(bigint) abstract_collection___Container___count},
   {(bigint) abstract_collection___Container___first},
-  {(bigint) 2 /* 66: Container < Container: superclass init_table position */},
+  {(bigint) 2 /* 70: Container < Container: superclass init_table position */},
   {(bigint) abstract_collection___Container___init},
   {(bigint) abstract_collection___Container___item},
   {(bigint) abstract_collection___Container___item__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Container::_item */
-val_t NEW_Container(void) {
+/* 1: Object_id */
+/* 2: Attribute Container::_item */
+void INIT_ATTRIBUTES__Container(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Container;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Container(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
+  obj = alloc(sizeof(val_t) * 3);
   obj->vft = (classtable_elt_t*)VFT_Container;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_abstract_collection___Container___init(val_t p0) {
+void CHECKNEW_Container(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Container;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Container_abstract_collection___Container___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_Container();
-  abstract_collection___Container___init(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 147;
+  fra.me.meth = LOCATE_NEW_Container_abstract_collection___Container___init;
+  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;
+  fra.me.REG[1] = NEW_Container();
+  /* ./../lib/standard//collection//abstract_collection.nit:147 */
+  INIT_ATTRIBUTES__Container(fra.me.REG[1]);
+  abstract_collection___Container___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Container(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ContainerIterator[47] = {
-  {(bigint) 2647 /* 0: Identity */},
-  {(bigint) 3 /* 1: ContainerIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: ContainerIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2647 /* 3: ContainerIterator < ContainerIterator: superclass typecheck marker */},
+const classtable_elt_t VFT_ContainerIterator[52] = {
+  {(bigint) 5251 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ContainerIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: ContainerIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5251 /* 4: ContainerIterator < ContainerIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8379,14 +26184,12 @@ const classtable_elt_t VFT_ContainerIterator[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ContainerIterator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ContainerIterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8394,7 +26197,6 @@ const classtable_elt_t VFT_ContainerIterator[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8402,56 +26204,125 @@ const classtable_elt_t VFT_ContainerIterator[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: ContainerIterator < Iterator: superclass init_table position */},
+  {(bigint) 1 /* 46: ContainerIterator < Iterator: superclass init_table position */},
   {(bigint) abstract_collection___ContainerIterator___item},
   {(bigint) abstract_collection___ContainerIterator___next},
   {(bigint) abstract_collection___ContainerIterator___is_ok},
-  {(bigint) 2 /* 45: ContainerIterator < ContainerIterator: superclass init_table position */},
+  {(bigint) 2 /* 50: ContainerIterator < ContainerIterator: superclass init_table position */},
   {(bigint) abstract_collection___ContainerIterator___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ContainerIterator::_is_ok */
-/* 2: Attribute ContainerIterator::_container */
-val_t NEW_ContainerIterator(void) {
+/* 1: Object_id */
+/* 2: Attribute ContainerIterator::_is_ok */
+/* 3: Attribute ContainerIterator::_container */
+void INIT_ATTRIBUTES__ContainerIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ContainerIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(true);
+  /* ./../lib/standard//collection//abstract_collection.nit:163 */
+  ATTR_abstract_collection___ContainerIterator____is_ok(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ContainerIterator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
+  obj = alloc(sizeof(val_t) * 4);
   obj->vft = (classtable_elt_t*)VFT_ContainerIterator;
-  ATTR_abstract_collection___ContainerIterator____is_ok(obj) =  TAG_Bool(true);
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstract_collection___ContainerIterator___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ContainerIterator();
-  abstract_collection___ContainerIterator___init(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_RemovableCollection[70] = {
-  {(bigint) 211 /* 0: Identity */},
-  {(bigint) 3 /* 1: RemovableCollection < Object: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ContainerIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ContainerIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstract_collection___ContainerIterator____is_ok(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_ok");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstract_collection___ContainerIterator____container(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_container");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ContainerIterator_abstract_collection___ContainerIterator___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 161;
+  fra.me.meth = LOCATE_NEW_ContainerIterator_abstract_collection___ContainerIterator___init;
+  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;
+  fra.me.REG[1] = NEW_ContainerIterator();
+  /* ./../lib/standard//collection//abstract_collection.nit:161 */
+  INIT_ATTRIBUTES__ContainerIterator(fra.me.REG[1]);
+  abstract_collection___ContainerIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ContainerIterator(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_RemovableCollection[74] = {
+  {(bigint) 275 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: RemovableCollection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: RemovableCollection < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: RemovableCollection < RemovableCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: RemovableCollection < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: RemovableCollection < RemovableCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: RemovableCollection < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: RemovableCollection < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8459,7 +26330,6 @@ const classtable_elt_t VFT_RemovableCollection[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8467,11 +26337,17 @@ const classtable_elt_t VFT_RemovableCollection[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8489,7 +26365,7 @@ const classtable_elt_t VFT_RemovableCollection[70] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: RemovableCollection < Collection: superclass init_table position */},
+  {(bigint) 1 /* 62: RemovableCollection < Collection: superclass init_table position */},
   {(bigint) abstract_collection___Collection___iterator},
   {(bigint) abstract_collection___Collection___is_empty},
   {(bigint) abstract_collection___Collection___length},
@@ -8497,40 +26373,65 @@ const classtable_elt_t VFT_RemovableCollection[70] = {
   {(bigint) abstract_collection___Collection___has_only},
   {(bigint) abstract_collection___Collection___count},
   {(bigint) abstract_collection___Collection___first},
-  {(bigint) 2 /* 66: RemovableCollection < RemovableCollection: superclass init_table position */},
+  {(bigint) 2 /* 70: RemovableCollection < RemovableCollection: superclass init_table position */},
   {(bigint) abstract_collection___RemovableCollection___clear},
   {(bigint) abstract_collection___RemovableCollection___remove},
   {(bigint) abstract_collection___RemovableCollection___remove_all},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_RemovableCollection(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__RemovableCollection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__RemovableCollection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_RemovableCollection(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_RemovableCollection;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_SimpleCollection[73] = {
-  {(bigint) 3035 /* 0: Identity */},
-  {(bigint) 3 /* 1: SimpleCollection < Object: superclass typecheck marker */},
+void CHECKNEW_RemovableCollection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_RemovableCollection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_SimpleCollection[80] = {
+  {(bigint) 5699 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: SimpleCollection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: SimpleCollection < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: SimpleCollection < RemovableCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: SimpleCollection < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: SimpleCollection < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: SimpleCollection < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: SimpleCollection < SimpleCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: SimpleCollection < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: SimpleCollection < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8538,7 +26439,6 @@ const classtable_elt_t VFT_SimpleCollection[73] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8546,11 +26446,17 @@ const classtable_elt_t VFT_SimpleCollection[73] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8568,7 +26474,7 @@ const classtable_elt_t VFT_SimpleCollection[73] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: SimpleCollection < Collection: superclass init_table position */},
+  {(bigint) 1 /* 62: SimpleCollection < Collection: superclass init_table position */},
   {(bigint) abstract_collection___Collection___iterator},
   {(bigint) abstract_collection___Collection___is_empty},
   {(bigint) abstract_collection___Collection___length},
@@ -8576,43 +26482,71 @@ const classtable_elt_t VFT_SimpleCollection[73] = {
   {(bigint) abstract_collection___Collection___has_only},
   {(bigint) abstract_collection___Collection___count},
   {(bigint) abstract_collection___Collection___first},
-  {(bigint) 2 /* 66: SimpleCollection < RemovableCollection: superclass init_table position */},
+  {(bigint) 2 /* 70: SimpleCollection < RemovableCollection: superclass init_table position */},
   {(bigint) abstract_collection___RemovableCollection___clear},
   {(bigint) abstract_collection___RemovableCollection___remove},
   {(bigint) abstract_collection___RemovableCollection___remove_all},
-  {(bigint) 3 /* 70: SimpleCollection < SimpleCollection: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 77: SimpleCollection < SimpleCollection: superclass init_table position */},
   {(bigint) abstract_collection___SimpleCollection___add},
   {(bigint) abstract_collection___SimpleCollection___add_all},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_SimpleCollection(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__SimpleCollection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__SimpleCollection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_SimpleCollection(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_SimpleCollection;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_Set[73] = {
-  {(bigint) 3275 /* 0: Identity */},
-  {(bigint) 3 /* 1: Set < Object: superclass typecheck marker */},
+void CHECKNEW_SimpleCollection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_SimpleCollection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Set[80] = {
+  {(bigint) 6035 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Set < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3275 /* 4: Set < Set: superclass typecheck marker */},
-  {(bigint) 163 /* 5: Set < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: Set < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: Set < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 219 /* 5: Set < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: Set < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 6035 /* 7: Set < Set: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: Set < SimpleCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Set < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Set < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8620,7 +26554,6 @@ const classtable_elt_t VFT_Set[73] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8628,10 +26561,17 @@ const classtable_elt_t VFT_Set[73] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8641,16 +26581,15 @@ const classtable_elt_t VFT_Set[73] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 49: Set < Set: superclass init_table position */},
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 4 /* 55: Set < Set: superclass init_table position */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: Set < Collection: superclass init_table position */},
+  {(bigint) 1 /* 62: Set < Collection: superclass init_table position */},
   {(bigint) abstract_collection___Collection___iterator},
   {(bigint) abstract_collection___Collection___is_empty},
   {(bigint) abstract_collection___Collection___length},
@@ -8658,43 +26597,183 @@ const classtable_elt_t VFT_Set[73] = {
   {(bigint) abstract_collection___Set___has_only},
   {(bigint) abstract_collection___Set___count},
   {(bigint) abstract_collection___Collection___first},
-  {(bigint) 2 /* 66: Set < RemovableCollection: superclass init_table position */},
+  {(bigint) 2 /* 70: Set < RemovableCollection: superclass init_table position */},
   {(bigint) abstract_collection___RemovableCollection___clear},
   {(bigint) abstract_collection___RemovableCollection___remove},
   {(bigint) abstract_collection___Set___remove_all},
-  {(bigint) 3 /* 70: Set < SimpleCollection: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 77: Set < SimpleCollection: superclass init_table position */},
   {(bigint) abstract_collection___SimpleCollection___add},
   {(bigint) abstract_collection___SimpleCollection___add_all},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_Set(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Set(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Set;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Set(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_Set;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_Map[80] = {
-  {(bigint) 3143 /* 0: Identity */},
-  {(bigint) 3 /* 1: Map < Object: superclass typecheck marker */},
+void CHECKNEW_Set(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Set;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_MapRead[77] = {
+  {(bigint) 5111 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MapRead < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: MapRead < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: Map < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: Map < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: MapRead < MapRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3143 /* 8: Map < Map: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MapRead < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Collection___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Map < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: MapRead < Collection: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead___iterator},
+  {(bigint) abstract_collection___Collection___is_empty},
+  {(bigint) abstract_collection___Collection___length},
+  {(bigint) abstract_collection___Collection___has},
+  {(bigint) abstract_collection___Collection___has_only},
+  {(bigint) abstract_collection___Collection___count},
+  {(bigint) abstract_collection___Collection___first},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 74: MapRead < MapRead: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead_____bra},
+  {(bigint) abstract_collection___MapRead___has_key},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__MapRead(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MapRead;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MapRead(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_MapRead;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MapRead(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MapRead;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Map[88] = {
+  {(bigint) 5743 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Map < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: Map < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: Map < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: Map < MapRead: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 5743 /* 10: Map < Map: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Map < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8702,7 +26781,6 @@ const classtable_elt_t VFT_Map[80] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8710,11 +26788,17 @@ const classtable_elt_t VFT_Map[80] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8732,41 +26816,72 @@ const classtable_elt_t VFT_Map[80] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: Map < Collection: superclass init_table position */},
-  {(bigint) abstract_collection___Map___iterator},
+  {(bigint) 1 /* 62: Map < Collection: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead___iterator},
   {(bigint) abstract_collection___Collection___is_empty},
   {(bigint) abstract_collection___Collection___length},
   {(bigint) abstract_collection___Collection___has},
   {(bigint) abstract_collection___Collection___has_only},
   {(bigint) abstract_collection___Collection___count},
   {(bigint) abstract_collection___Collection___first},
-  {(bigint) 2 /* 66: Map < RemovableCollection: superclass init_table position */},
+  {(bigint) 2 /* 70: Map < RemovableCollection: superclass init_table position */},
   {(bigint) abstract_collection___RemovableCollection___clear},
   {(bigint) abstract_collection___RemovableCollection___remove},
   {(bigint) abstract_collection___RemovableCollection___remove_all},
+  {(bigint) 3 /* 74: Map < MapRead: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead_____bra},
+  {(bigint) abstract_collection___MapRead___has_key},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: Map < Map: superclass init_table position */},
-  {(bigint) abstract_collection___Map_____bra},
+  {(bigint) 4 /* 84: Map < Map: superclass init_table position */},
   {(bigint) abstract_collection___Map_____braeq},
-  {(bigint) abstract_collection___Map___has_key},
   {(bigint) abstract_collection___Map___remove_at},
   {(bigint) abstract_collection___Map___recover_with},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_Map(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Map(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Map;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Map(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_Map;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_MapIterator[48] = {
-  {(bigint) 2547 /* 0: Identity */},
-  {(bigint) 3 /* 1: MapIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: MapIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2547 /* 3: MapIterator < MapIterator: superclass typecheck marker */},
+void CHECKNEW_Map(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Map;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_MapIterator[52] = {
+  {(bigint) 5115 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MapIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: MapIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5115 /* 4: MapIterator < MapIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8776,14 +26891,12 @@ const classtable_elt_t VFT_MapIterator[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MapIterator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MapIterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8791,7 +26904,6 @@ const classtable_elt_t VFT_MapIterator[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8799,48 +26911,197 @@ const classtable_elt_t VFT_MapIterator[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: MapIterator < Iterator: superclass init_table position */},
+  {(bigint) 1 /* 46: MapIterator < Iterator: superclass init_table position */},
   {(bigint) abstract_collection___Iterator___item},
   {(bigint) abstract_collection___Iterator___next},
   {(bigint) abstract_collection___Iterator___is_ok},
-  {(bigint) 2 /* 45: MapIterator < MapIterator: superclass init_table position */},
+  {(bigint) 2 /* 50: MapIterator < MapIterator: superclass init_table position */},
   {(bigint) abstract_collection___MapIterator___key},
-  {(bigint) abstract_collection___MapIterator___item__eq},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_MapIterator(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__MapIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MapIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MapIterator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_MapIterator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_IndexedCollection[90] = {
-  {(bigint) 3303 /* 0: Identity */},
-  {(bigint) 3 /* 1: IndexedCollection < Object: superclass typecheck marker */},
+void CHECKNEW_MapIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MapIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_SequenceRead[83] = {
+  {(bigint) 5703 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: SequenceRead < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: SequenceRead < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: IndexedCollection < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: IndexedCollection < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: IndexedCollection < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3143 /* 8: IndexedCollection < Map: superclass typecheck marker */},
-  {(bigint) 3303 /* 9: IndexedCollection < IndexedCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: SequenceRead < MapRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5703 /* 9: SequenceRead < SequenceRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: SequenceRead < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Collection___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IndexedCollection < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: SequenceRead < Collection: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___iterator},
+  {(bigint) abstract_collection___Collection___is_empty},
+  {(bigint) abstract_collection___Collection___length},
+  {(bigint) abstract_collection___Collection___has},
+  {(bigint) abstract_collection___Collection___has_only},
+  {(bigint) abstract_collection___Collection___count},
+  {(bigint) abstract_collection___SequenceRead___first},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 74: SequenceRead < MapRead: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead_____bra},
+  {(bigint) abstract_collection___MapRead___has_key},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 80: SequenceRead < SequenceRead: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___last},
+  {(bigint) abstract_collection___SequenceRead___index_of},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__SequenceRead(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__SequenceRead;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_SequenceRead(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_SequenceRead;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_SequenceRead(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_SequenceRead;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Sequence[96] = {
+  {(bigint) 6039 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Sequence < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: Sequence < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: Sequence < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: Sequence < MapRead: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: Sequence < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 5703 /* 9: Sequence < SequenceRead: superclass typecheck marker */},
+  {(bigint) 5743 /* 10: Sequence < Map: superclass typecheck marker */},
+  {(bigint) 6039 /* 11: Sequence < Sequence: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Sequence < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8848,7 +27109,6 @@ const classtable_elt_t VFT_IndexedCollection[90] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8856,11 +27116,17 @@ const classtable_elt_t VFT_IndexedCollection[90] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8878,52 +27144,81 @@ const classtable_elt_t VFT_IndexedCollection[90] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: IndexedCollection < Collection: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedCollection___iterator},
+  {(bigint) 1 /* 62: Sequence < Collection: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___iterator},
   {(bigint) abstract_collection___Collection___is_empty},
   {(bigint) abstract_collection___Collection___length},
   {(bigint) abstract_collection___Collection___has},
   {(bigint) abstract_collection___Collection___has_only},
   {(bigint) abstract_collection___Collection___count},
-  {(bigint) abstract_collection___IndexedCollection___first},
-  {(bigint) 2 /* 66: IndexedCollection < RemovableCollection: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___first},
+  {(bigint) 4 /* 70: Sequence < RemovableCollection: superclass init_table position */},
   {(bigint) abstract_collection___RemovableCollection___clear},
   {(bigint) abstract_collection___RemovableCollection___remove},
   {(bigint) abstract_collection___RemovableCollection___remove_all},
-  {(bigint) 4 /* 70: IndexedCollection < SimpleCollection: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedCollection___add},
+  {(bigint) 2 /* 74: Sequence < MapRead: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead_____bra},
+  {(bigint) abstract_collection___MapRead___has_key},
+  {(bigint) 6 /* 77: Sequence < SimpleCollection: superclass init_table position */},
+  {(bigint) abstract_collection___Sequence___add},
   {(bigint) abstract_collection___SimpleCollection___add_all},
+  {(bigint) 3 /* 80: Sequence < SequenceRead: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___last},
+  {(bigint) abstract_collection___SequenceRead___index_of},
   {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: IndexedCollection < Map: superclass init_table position */},
-  {(bigint) abstract_collection___Map_____bra},
+  {(bigint) 5 /* 84: Sequence < Map: superclass init_table position */},
   {(bigint) abstract_collection___Map_____braeq},
-  {(bigint) abstract_collection___Map___has_key},
   {(bigint) abstract_collection___Map___remove_at},
   {(bigint) abstract_collection___Map___recover_with},
-  {(bigint) 5 /* 80: IndexedCollection < IndexedCollection: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedCollection___first__eq},
-  {(bigint) abstract_collection___IndexedCollection___last},
-  {(bigint) abstract_collection___IndexedCollection___last__eq},
-  {(bigint) abstract_collection___IndexedCollection___push},
-  {(bigint) abstract_collection___IndexedCollection___append},
-  {(bigint) abstract_collection___IndexedCollection___pop},
-  {(bigint) abstract_collection___IndexedCollection___unshift},
-  {(bigint) abstract_collection___IndexedCollection___shift},
-  {(bigint) abstract_collection___IndexedCollection___index_of},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_IndexedCollection(void) {
+  {(bigint) 7 /* 88: Sequence < Sequence: superclass init_table position */},
+  {(bigint) abstract_collection___Sequence___first__eq},
+  {(bigint) abstract_collection___Sequence___last__eq},
+  {(bigint) abstract_collection___Sequence___push},
+  {(bigint) abstract_collection___Sequence___append},
+  {(bigint) abstract_collection___Sequence___pop},
+  {(bigint) abstract_collection___Sequence___unshift},
+  {(bigint) abstract_collection___Sequence___shift},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Sequence(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Sequence;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Sequence(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_IndexedCollection;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_Sequence;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_IndexedIterator[50] = {
-  {(bigint) 3183 /* 0: Identity */},
-  {(bigint) 3 /* 1: IndexedIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: IndexedIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2547 /* 3: IndexedIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3183 /* 4: IndexedIterator < IndexedIterator: superclass typecheck marker */},
+void CHECKNEW_Sequence(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Sequence;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_IndexedIterator[54] = {
+  {(bigint) 5783 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IndexedIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: IndexedIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5115 /* 4: IndexedIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 5783 /* 5: IndexedIterator < IndexedIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8932,14 +27227,12 @@ const classtable_elt_t VFT_IndexedIterator[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IndexedIterator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IndexedIterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -8947,7 +27240,6 @@ const classtable_elt_t VFT_IndexedIterator[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -8955,50 +27247,81 @@ const classtable_elt_t VFT_IndexedIterator[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: IndexedIterator < Iterator: superclass init_table position */},
+  {(bigint) 1 /* 46: IndexedIterator < Iterator: superclass init_table position */},
   {(bigint) abstract_collection___Iterator___item},
   {(bigint) abstract_collection___Iterator___next},
   {(bigint) abstract_collection___Iterator___is_ok},
-  {(bigint) 2 /* 45: IndexedIterator < MapIterator: superclass init_table position */},
+  {(bigint) 2 /* 50: IndexedIterator < MapIterator: superclass init_table position */},
   {(bigint) abstract_collection___IndexedIterator___key},
-  {(bigint) abstract_collection___MapIterator___item__eq},
-  {(bigint) 3 /* 48: IndexedIterator < IndexedIterator: superclass init_table position */},
+  {(bigint) 3 /* 52: IndexedIterator < IndexedIterator: superclass init_table position */},
   {(bigint) abstract_collection___IndexedIterator___index},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_IndexedIterator(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__IndexedIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IndexedIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IndexedIterator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_IndexedIterator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_CoupleMap[80] = {
-  {(bigint) 3319 /* 0: Identity */},
-  {(bigint) 3 /* 1: CoupleMap < Object: superclass typecheck marker */},
+void CHECKNEW_IndexedIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IndexedIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_CoupleMap[88] = {
+  {(bigint) 6091 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: CoupleMap < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3319 /* 4: CoupleMap < CoupleMap: superclass typecheck marker */},
-  {(bigint) 163 /* 5: CoupleMap < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: CoupleMap < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 219 /* 5: CoupleMap < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: CoupleMap < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: CoupleMap < MapRead: superclass typecheck marker */},
+  {(bigint) 6091 /* 8: CoupleMap < CoupleMap: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3143 /* 8: CoupleMap < Map: superclass typecheck marker */},
+  {(bigint) 5743 /* 10: CoupleMap < Map: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: CoupleMap < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: CoupleMap < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -9006,7 +27329,6 @@ const classtable_elt_t VFT_CoupleMap[80] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9014,10 +27336,17 @@ const classtable_elt_t VFT_CoupleMap[80] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9027,51 +27356,81 @@ const classtable_elt_t VFT_CoupleMap[80] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 49: CoupleMap < CoupleMap: superclass init_table position */},
-  {(bigint) abstract_collection___CoupleMap___couple_at},
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 5 /* 55: CoupleMap < CoupleMap: superclass init_table position */},
+  {(bigint) abstract_collection___CoupleMap___couple_at},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: CoupleMap < Collection: superclass init_table position */},
-  {(bigint) abstract_collection___Map___iterator},
+  {(bigint) 1 /* 62: CoupleMap < Collection: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead___iterator},
   {(bigint) abstract_collection___Collection___is_empty},
   {(bigint) abstract_collection___Collection___length},
   {(bigint) abstract_collection___Collection___has},
   {(bigint) abstract_collection___Collection___has_only},
   {(bigint) abstract_collection___Collection___count},
   {(bigint) abstract_collection___Collection___first},
-  {(bigint) 2 /* 66: CoupleMap < RemovableCollection: superclass init_table position */},
+  {(bigint) 2 /* 70: CoupleMap < RemovableCollection: superclass init_table position */},
   {(bigint) abstract_collection___RemovableCollection___clear},
   {(bigint) abstract_collection___RemovableCollection___remove},
   {(bigint) abstract_collection___RemovableCollection___remove_all},
+  {(bigint) 3 /* 74: CoupleMap < MapRead: superclass init_table position */},
+  {(bigint) abstract_collection___CoupleMap_____bra},
+  {(bigint) abstract_collection___CoupleMap___has_key},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: CoupleMap < Map: superclass init_table position */},
-  {(bigint) abstract_collection___CoupleMap_____bra},
+  {(bigint) 4 /* 84: CoupleMap < Map: superclass init_table position */},
   {(bigint) abstract_collection___Map_____braeq},
-  {(bigint) abstract_collection___CoupleMap___has_key},
   {(bigint) abstract_collection___Map___remove_at},
   {(bigint) abstract_collection___Map___recover_with},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_CoupleMap(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__CoupleMap(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__CoupleMap;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CoupleMap(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_CoupleMap;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_CoupleMapIterator[50] = {
-  {(bigint) 3211 /* 0: Identity */},
-  {(bigint) 3 /* 1: CoupleMapIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: CoupleMapIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2547 /* 3: CoupleMapIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3211 /* 4: CoupleMapIterator < CoupleMapIterator: superclass typecheck marker */},
+void CHECKNEW_CoupleMap(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_CoupleMap;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_CoupleMapIterator[54] = {
+  {(bigint) 5887 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: CoupleMapIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: CoupleMapIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5115 /* 4: CoupleMapIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 5887 /* 5: CoupleMapIterator < CoupleMapIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9080,14 +27439,12 @@ const classtable_elt_t VFT_CoupleMapIterator[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: CoupleMapIterator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: CoupleMapIterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -9095,7 +27452,6 @@ const classtable_elt_t VFT_CoupleMapIterator[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9103,40 +27459,98 @@ const classtable_elt_t VFT_CoupleMapIterator[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: CoupleMapIterator < Iterator: superclass init_table position */},
+  {(bigint) 1 /* 46: CoupleMapIterator < Iterator: superclass init_table position */},
   {(bigint) abstract_collection___CoupleMapIterator___item},
   {(bigint) abstract_collection___CoupleMapIterator___next},
   {(bigint) abstract_collection___CoupleMapIterator___is_ok},
-  {(bigint) 2 /* 45: CoupleMapIterator < MapIterator: superclass init_table position */},
+  {(bigint) 2 /* 50: CoupleMapIterator < MapIterator: superclass init_table position */},
   {(bigint) abstract_collection___CoupleMapIterator___key},
-  {(bigint) abstract_collection___CoupleMapIterator___item__eq},
-  {(bigint) 3 /* 48: CoupleMapIterator < CoupleMapIterator: superclass init_table position */},
+  {(bigint) 3 /* 52: CoupleMapIterator < CoupleMapIterator: superclass init_table position */},
   {(bigint) abstract_collection___CoupleMapIterator___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute CoupleMapIterator::_iter */
-val_t NEW_CoupleMapIterator(void) {
+/* 1: Object_id */
+/* 2: Attribute CoupleMapIterator::_iter */
+void INIT_ATTRIBUTES__CoupleMapIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__CoupleMapIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CoupleMapIterator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
+  obj = alloc(sizeof(val_t) * 3);
   obj->vft = (classtable_elt_t*)VFT_CoupleMapIterator;
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstract_collection___CoupleMapIterator___init(val_t p0) {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_CoupleMapIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_CoupleMapIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_iter");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_CoupleMapIterator();
-  abstract_collection___CoupleMapIterator___init(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_Couple[52] = {
-  {(bigint) 143 /* 0: Identity */},
-  {(bigint) 3 /* 1: Couple < Object: superclass typecheck marker */},
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 413;
+  fra.me.meth = LOCATE_NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init;
+  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;
+  fra.me.REG[1] = NEW_CoupleMapIterator();
+  /* ./../lib/standard//collection//abstract_collection.nit:413 */
+  INIT_ATTRIBUTES__CoupleMapIterator(fra.me.REG[1]);
+  abstract_collection___CoupleMapIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_CoupleMapIterator(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_Couple[58] = {
+  {(bigint) 203 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Couple < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 143 /* 3: Couple < Couple: superclass typecheck marker */},
+  {(bigint) 203 /* 4: Couple < Couple: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9146,14 +27560,12 @@ const classtable_elt_t VFT_Couple[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Couple < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Couple < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -9161,7 +27573,6 @@ const classtable_elt_t VFT_Couple[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9169,17 +27580,25 @@ const classtable_elt_t VFT_Couple[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 46: Couple < Couple: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 52: Couple < Couple: superclass init_table position */},
   {(bigint) abstract_collection___Couple___first},
   {(bigint) abstract_collection___Couple___first__eq},
   {(bigint) abstract_collection___Couple___second},
@@ -9187,52 +27606,93 @@ const classtable_elt_t VFT_Couple[52] = {
   {(bigint) abstract_collection___Couple___init},
 };
 /* 0: Pointer to the classtable */
+/* 1: Object_id */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 3: Attribute Couple::_first */
-/* 4: Attribute Couple::_second */
-val_t NEW_Couple(void) {
+/* 4: Attribute Couple::_first */
+/* 5: Attribute Couple::_second */
+void INIT_ATTRIBUTES__Couple(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Couple;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Couple(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
+  obj = alloc(sizeof(val_t) * 6);
   obj->vft = (classtable_elt_t*)VFT_Couple;
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstract_collection___Couple___init(val_t p0, val_t p1) {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Couple(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Couple;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Couple_abstract_collection___Couple___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[2] = {0, 0};
-  val_t self = NEW_Couple();
-  abstract_collection___Couple___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 427;
+  fra.me.meth = LOCATE_NEW_Couple_abstract_collection___Couple___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_Couple();
+  /* ./../lib/standard//collection//abstract_collection.nit:427 */
+  INIT_ATTRIBUTES__Couple(fra.me.REG[2]);
+  abstract_collection___Couple___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_Couple(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AbstractArray[98] = {
-  {(bigint) 3651 /* 0: Identity */},
-  {(bigint) 3 /* 1: AbstractArray < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_Range[75] = {
+  {(bigint) 5055 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Range < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: Range < Collection: superclass typecheck marker */},
+  {(bigint) 5055 /* 6: Range < Range: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: AbstractArray < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: AbstractArray < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: AbstractArray < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3143 /* 8: AbstractArray < Map: superclass typecheck marker */},
-  {(bigint) 3303 /* 9: AbstractArray < IndexedCollection: superclass typecheck marker */},
-  {(bigint) 3651 /* 10: AbstractArray < AbstractArray: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AbstractArray < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Range < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
-  {(bigint) array___AbstractArray_____eqeq},
+  {(bigint) kernel___Object_____eqeq},
   {(bigint) kernel___Object_____neq},
-  {(bigint) array___AbstractArray___output},
+  {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9240,11 +27700,17 @@ const classtable_elt_t VFT_AbstractArray[98] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9262,205 +27728,137 @@ const classtable_elt_t VFT_AbstractArray[98] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: AbstractArray < Collection: superclass init_table position */},
-  {(bigint) array___AbstractArray___iterator},
-  {(bigint) array___AbstractArray___is_empty},
-  {(bigint) array___AbstractArray___length},
-  {(bigint) array___AbstractArray___has},
-  {(bigint) array___AbstractArray___has_only},
-  {(bigint) array___AbstractArray___count},
-  {(bigint) abstract_collection___IndexedCollection___first},
-  {(bigint) 2 /* 66: AbstractArray < RemovableCollection: superclass init_table position */},
-  {(bigint) array___AbstractArray___clear},
-  {(bigint) array___AbstractArray___remove},
-  {(bigint) array___AbstractArray___remove_all},
-  {(bigint) 4 /* 70: AbstractArray < SimpleCollection: superclass init_table position */},
-  {(bigint) array___AbstractArray___add},
-  {(bigint) abstract_collection___SimpleCollection___add_all},
-  {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: AbstractArray < Map: superclass init_table position */},
-  {(bigint) abstract_collection___Map_____bra},
-  {(bigint) abstract_collection___Map_____braeq},
-  {(bigint) array___AbstractArray___has_key},
-  {(bigint) array___AbstractArray___remove_at},
-  {(bigint) abstract_collection___Map___recover_with},
-  {(bigint) 5 /* 80: AbstractArray < IndexedCollection: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedCollection___first__eq},
-  {(bigint) abstract_collection___IndexedCollection___last},
-  {(bigint) abstract_collection___IndexedCollection___last__eq},
-  {(bigint) array___AbstractArray___push},
-  {(bigint) abstract_collection___IndexedCollection___append},
-  {(bigint) array___AbstractArray___pop},
-  {(bigint) array___AbstractArray___unshift},
-  {(bigint) array___AbstractArray___shift},
-  {(bigint) array___AbstractArray___index_of},
-  {(bigint) 6 /* 90: AbstractArray < AbstractArray: superclass init_table position */},
-  {(bigint) array___AbstractArray___enlarge},
-  {(bigint) array___AbstractArray___insert},
-  {(bigint) array___AbstractArray___last_index_of},
-  {(bigint) array___AbstractArray___index_of_from},
-  {(bigint) array___AbstractArray___last_index_of_from},
-  {(bigint) array___AbstractArray___reversed},
-  {(bigint) array___AbstractArray___copy_to},
+  {(bigint) 1 /* 62: Range < Collection: superclass init_table position */},
+  {(bigint) range___Range___iterator},
+  {(bigint) range___Range___is_empty},
+  {(bigint) range___Range___length},
+  {(bigint) range___Range___has},
+  {(bigint) range___Range___has_only},
+  {(bigint) range___Range___count},
+  {(bigint) range___Range___first},
+  {(bigint) 2 /* 70: Range < Range: superclass init_table position */},
+  {(bigint) range___Range___last},
+  {(bigint) range___Range___after},
+  {(bigint) range___Range___init},
+  {(bigint) range___Range___without_last},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AbstractArray::_length */
-val_t NEW_AbstractArray(void) {
+/* 1: Object_id */
+/* 2: Attribute Range::_first */
+/* 3: Attribute Range::_last */
+/* 4: Attribute Range::_after */
+void INIT_ATTRIBUTES__Range(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Range;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Range(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_AbstractArray;
-  ATTR_array___AbstractArray____length(obj) =  TAG_Int(0);
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_Range;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Range(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Range;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  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)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  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)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  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)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_Array[98] = {
-  {(bigint) 3787 /* 0: Identity */},
-  {(bigint) 3 /* 1: Array < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 2: Array < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 3787 /* 3: Array < Array: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: Array < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: Array < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: Array < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3143 /* 8: Array < Map: superclass typecheck marker */},
-  {(bigint) 3303 /* 9: Array < IndexedCollection: superclass typecheck marker */},
-  {(bigint) 3651 /* 10: Array < AbstractArray: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Array < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) array___AbstractArray_____eqeq},
-  {(bigint) kernel___Object_____neq},
-  {(bigint) array___AbstractArray___output},
-  {(bigint) kernel___Object___exit},
-  {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
-  {(bigint) file___Object___printn},
-  {(bigint) file___Object___print},
-  {(bigint) file___Object___getc},
-  {(bigint) file___Object___gets},
-  {(bigint) file___Object___stdin},
-  {(bigint) file___Object___stdout},
-  {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
-  {(bigint) math___Object___srand},
-  {(bigint) 7 /* 40: Array < ArrayCapable: superclass init_table position */},
-  {(bigint) array___ArrayCapable___calloc_array},
-  {(bigint) 8 /* 42: Array < Array: superclass init_table position */},
-  {(bigint) array___Array___init},
-  {(bigint) array___Array___with},
-  {(bigint) array___Array___with_capacity},
-  {(bigint) array___Array___filled_with},
-  {(bigint) array___Array___with_native},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+val_t NEW_Range_range___Range___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 57;
+  fra.me.meth = LOCATE_NEW_Range_range___Range___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_Range();
+  /* ./../lib/standard//collection//range.nit:57 */
+  INIT_ATTRIBUTES__Range(fra.me.REG[2]);
+  range___Range___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_Range(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_Range_range___Range___without_last(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 66;
+  fra.me.meth = LOCATE_NEW_Range_range___Range___without_last;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_Range();
+  /* ./../lib/standard//collection//range.nit:66 */
+  INIT_ATTRIBUTES__Range(fra.me.REG[2]);
+  range___Range___without_last(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_Range(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_IteratorRange[52] = {
+  {(bigint) 5179 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IteratorRange < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: IteratorRange < Iterator: superclass typecheck marker */},
+  {(bigint) 5179 /* 4: IteratorRange < IteratorRange: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) string___Collection___join},
-  {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: Array < Collection: superclass init_table position */},
-  {(bigint) array___AbstractArray___iterator},
-  {(bigint) array___AbstractArray___is_empty},
-  {(bigint) array___AbstractArray___length},
-  {(bigint) array___AbstractArray___has},
-  {(bigint) array___AbstractArray___has_only},
-  {(bigint) array___AbstractArray___count},
-  {(bigint) abstract_collection___IndexedCollection___first},
-  {(bigint) 2 /* 66: Array < RemovableCollection: superclass init_table position */},
-  {(bigint) array___AbstractArray___clear},
-  {(bigint) array___AbstractArray___remove},
-  {(bigint) array___AbstractArray___remove_all},
-  {(bigint) 4 /* 70: Array < SimpleCollection: superclass init_table position */},
-  {(bigint) array___AbstractArray___add},
-  {(bigint) abstract_collection___SimpleCollection___add_all},
-  {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: Array < Map: superclass init_table position */},
-  {(bigint) array___Array_____bra},
-  {(bigint) array___Array_____braeq},
-  {(bigint) array___AbstractArray___has_key},
-  {(bigint) array___AbstractArray___remove_at},
-  {(bigint) abstract_collection___Map___recover_with},
-  {(bigint) 5 /* 80: Array < IndexedCollection: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedCollection___first__eq},
-  {(bigint) abstract_collection___IndexedCollection___last},
-  {(bigint) abstract_collection___IndexedCollection___last__eq},
-  {(bigint) array___AbstractArray___push},
-  {(bigint) abstract_collection___IndexedCollection___append},
-  {(bigint) array___AbstractArray___pop},
-  {(bigint) array___AbstractArray___unshift},
-  {(bigint) array___AbstractArray___shift},
-  {(bigint) array___AbstractArray___index_of},
-  {(bigint) 6 /* 90: Array < AbstractArray: superclass init_table position */},
-  {(bigint) array___Array___enlarge},
-  {(bigint) array___AbstractArray___insert},
-  {(bigint) array___AbstractArray___last_index_of},
-  {(bigint) array___AbstractArray___index_of_from},
-  {(bigint) array___AbstractArray___last_index_of_from},
-  {(bigint) array___AbstractArray___reversed},
-  {(bigint) array___AbstractArray___copy_to},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute Array::_length */
-/* 2: Attribute Array::_items */
-/* 3: Attribute Array::_capacity */
-val_t NEW_Array(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_Array;
-  ATTR_array___AbstractArray____length(obj) =  TAG_Int(0);
-  ATTR_array___Array____capacity(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_array___Array___init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_Array();
-  array___Array___init(self, init_table);
-  return self;
-}
-val_t NEW_array___Array___with(val_t p0) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_Array();
-  array___Array___with(self, p0, init_table);
-  return self;
-}
-val_t NEW_array___Array___with_capacity(val_t p0) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_Array();
-  array___Array___with_capacity(self, p0, init_table);
-  return self;
-}
-val_t NEW_array___Array___filled_with(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_Array();
-  array___Array___filled_with(self, p0, p1, init_table);
-  return self;
-}
-val_t NEW_array___Array___with_native(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_Array();
-  array___Array___with_native(self, p0, p1, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ArrayIterator[52] = {
-  {(bigint) 3323 /* 0: Identity */},
-  {(bigint) 3 /* 1: ArrayIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: ArrayIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2547 /* 3: ArrayIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3183 /* 4: ArrayIterator < IndexedIterator: superclass typecheck marker */},
-  {(bigint) 3323 /* 5: ArrayIterator < ArrayIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9468,14 +27866,9 @@ const classtable_elt_t VFT_ArrayIterator[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ArrayIterator < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IteratorRange < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -9483,7 +27876,6 @@ const classtable_elt_t VFT_ArrayIterator[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9491,61 +27883,119 @@ const classtable_elt_t VFT_ArrayIterator[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: ArrayIterator < Iterator: superclass init_table position */},
-  {(bigint) array___ArrayIterator___item},
-  {(bigint) array___ArrayIterator___next},
-  {(bigint) array___ArrayIterator___is_ok},
-  {(bigint) 2 /* 45: ArrayIterator < MapIterator: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedIterator___key},
-  {(bigint) array___ArrayIterator___item__eq},
-  {(bigint) 3 /* 48: ArrayIterator < IndexedIterator: superclass init_table position */},
-  {(bigint) array___ArrayIterator___index},
-  {(bigint) 4 /* 50: ArrayIterator < ArrayIterator: superclass init_table position */},
-  {(bigint) array___ArrayIterator___init},
+  {(bigint) 1 /* 46: IteratorRange < Iterator: superclass init_table position */},
+  {(bigint) range___IteratorRange___item},
+  {(bigint) range___IteratorRange___next},
+  {(bigint) range___IteratorRange___is_ok},
+  {(bigint) 2 /* 50: IteratorRange < IteratorRange: superclass init_table position */},
+  {(bigint) range___IteratorRange___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ArrayIterator::_index */
-/* 2: Attribute ArrayIterator::_array */
-val_t NEW_ArrayIterator(void) {
+/* 1: Object_id */
+/* 2: Attribute IteratorRange::_range */
+/* 3: Attribute IteratorRange::_item */
+void INIT_ATTRIBUTES__IteratorRange(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IteratorRange;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IteratorRange(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_ArrayIterator;
-  ATTR_array___ArrayIterator____index(obj) = TAG_Int((bigint)0);
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_IteratorRange;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_array___ArrayIterator___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ArrayIterator();
-  array___ArrayIterator___init(self, p0, init_table);
-  return self;
+void CHECKNEW_IteratorRange(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IteratorRange;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  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)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_range___IteratorRange____item(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_item");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_ArraySet[78] = {
-  {(bigint) 3643 /* 0: Identity */},
-  {(bigint) 3 /* 1: ArraySet < Object: superclass typecheck marker */},
+val_t NEW_IteratorRange_range___IteratorRange___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 86;
+  fra.me.meth = LOCATE_NEW_IteratorRange_range___IteratorRange___init;
+  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;
+  fra.me.REG[1] = NEW_IteratorRange();
+  /* ./../lib/standard//collection//range.nit:86 */
+  INIT_ATTRIBUTES__IteratorRange(fra.me.REG[1]);
+  range___IteratorRange___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IteratorRange(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_List[104] = {
+  {(bigint) 6399 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: List < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3275 /* 4: ArraySet < Set: superclass typecheck marker */},
-  {(bigint) 163 /* 5: ArraySet < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: ArraySet < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: ArraySet < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3643 /* 8: ArraySet < ArraySet: superclass typecheck marker */},
+  {(bigint) 219 /* 5: List < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: List < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: List < MapRead: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: List < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 5703 /* 9: List < SequenceRead: superclass typecheck marker */},
+  {(bigint) 5743 /* 10: List < Map: superclass typecheck marker */},
+  {(bigint) 6039 /* 11: List < Sequence: superclass typecheck marker */},
+  {(bigint) 6399 /* 12: List < List: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ArraySet < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: List < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -9553,7 +28003,6 @@ const classtable_elt_t VFT_ArraySet[78] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9561,10 +28010,17 @@ const classtable_elt_t VFT_ArraySet[78] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9574,7 +28030,6 @@ const classtable_elt_t VFT_ArraySet[78] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 49: ArraySet < Set: superclass init_table position */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9583,52 +28038,132 @@ const classtable_elt_t VFT_ArraySet[78] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: ArraySet < Collection: superclass init_table position */},
-  {(bigint) array___ArraySet___iterator},
-  {(bigint) array___ArraySet___is_empty},
-  {(bigint) array___ArraySet___length},
-  {(bigint) array___ArraySet___has},
-  {(bigint) abstract_collection___Set___has_only},
-  {(bigint) abstract_collection___Set___count},
-  {(bigint) array___ArraySet___first},
-  {(bigint) 2 /* 66: ArraySet < RemovableCollection: superclass init_table position */},
-  {(bigint) array___ArraySet___clear},
-  {(bigint) array___ArraySet___remove},
-  {(bigint) array___ArraySet___remove_all},
-  {(bigint) 3 /* 70: ArraySet < SimpleCollection: superclass init_table position */},
-  {(bigint) array___ArraySet___add},
+  {(bigint) 1 /* 62: List < Collection: superclass init_table position */},
+  {(bigint) list___List___iterator},
+  {(bigint) list___List___is_empty},
+  {(bigint) list___List___length},
+  {(bigint) list___List___has},
+  {(bigint) list___List___has_only},
+  {(bigint) list___List___count},
+  {(bigint) list___List___first},
+  {(bigint) 4 /* 70: List < RemovableCollection: superclass init_table position */},
+  {(bigint) list___List___clear},
+  {(bigint) list___List___remove},
+  {(bigint) abstract_collection___RemovableCollection___remove_all},
+  {(bigint) 2 /* 74: List < MapRead: superclass init_table position */},
+  {(bigint) list___List_____bra},
+  {(bigint) list___List___has_key},
+  {(bigint) 6 /* 77: List < SimpleCollection: superclass init_table position */},
+  {(bigint) abstract_collection___Sequence___add},
   {(bigint) abstract_collection___SimpleCollection___add_all},
-  {(bigint) 5 /* 73: ArraySet < ArraySet: superclass init_table position */},
-  {(bigint) array___ArraySet___enlarge},
-  {(bigint) array___ArraySet___remove_at},
-  {(bigint) array___ArraySet___init},
-  {(bigint) array___ArraySet___with_capacity},
+  {(bigint) 3 /* 80: List < SequenceRead: superclass init_table position */},
+  {(bigint) list___List___last},
+  {(bigint) abstract_collection___SequenceRead___index_of},
+  {(bigint) string___Map___map_join},
+  {(bigint) 5 /* 84: List < Map: superclass init_table position */},
+  {(bigint) list___List_____braeq},
+  {(bigint) list___List___remove_at},
+  {(bigint) abstract_collection___Map___recover_with},
+  {(bigint) 7 /* 88: List < Sequence: superclass init_table position */},
+  {(bigint) list___List___first__eq},
+  {(bigint) list___List___last__eq},
+  {(bigint) list___List___push},
+  {(bigint) abstract_collection___Sequence___append},
+  {(bigint) list___List___pop},
+  {(bigint) list___List___unshift},
+  {(bigint) list___List___shift},
+  {(bigint) 8 /* 96: List < List: superclass init_table position */},
+  {(bigint) list___List___link},
+  {(bigint) list___List___init},
+  {(bigint) list___List___from},
+  {(bigint) list___List___get_node},
+  {(bigint) list___List___search_node_after},
+  {(bigint) list___List___remove_node},
+  {(bigint) list___List___insert_before},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ArraySet::_array */
-val_t NEW_ArraySet(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_ArraySet;
-  return OBJ2VAL(obj);
-}
-val_t NEW_array___ArraySet___init() {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ArraySet();
-  array___ArraySet___init(self, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute List::_head */
+/* 3: Attribute List::_tail */
+void INIT_ATTRIBUTES__List(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__List;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_array___ArraySet___with_capacity(val_t p0) {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ArraySet();
-  array___ArraySet___with_capacity(self, p0, init_table);
-  return self;
+val_t NEW_List(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_List;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_List(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_List;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_List_list___List___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 175;
+  fra.me.meth = LOCATE_NEW_List_list___List___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_List();
+  /* ./../lib/standard//collection//list.nit:175 */
+  INIT_ATTRIBUTES__List(fra.me.REG[0]);
+  list___List___init(fra.me.REG[0], init_table);
+  CHECKNEW_List(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_List_list___List___from(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 178;
+  fra.me.meth = LOCATE_NEW_List_list___List___from;
+  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;
+  fra.me.REG[1] = NEW_List();
+  /* ./../lib/standard//collection//list.nit:178 */
+  INIT_ATTRIBUTES__List(fra.me.REG[1]);
+  list___List___from(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_List(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ArraySetIterator[47] = {
-  {(bigint) 2675 /* 0: Identity */},
-  {(bigint) 3 /* 1: ArraySetIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: ArraySetIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2675 /* 3: ArraySetIterator < ArraySetIterator: superclass typecheck marker */},
+const classtable_elt_t VFT_ListIterator[59] = {
+  {(bigint) 6055 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ListIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: ListIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5115 /* 4: ListIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 5783 /* 5: ListIterator < IndexedIterator: superclass typecheck marker */},
+  {(bigint) 6055 /* 6: ListIterator < ListIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9638,14 +28173,10 @@ const classtable_elt_t VFT_ArraySetIterator[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ArraySetIterator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ListIterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -9653,7 +28184,6 @@ const classtable_elt_t VFT_ArraySetIterator[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9661,54 +28191,127 @@ const classtable_elt_t VFT_ArraySetIterator[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: ArraySetIterator < Iterator: superclass init_table position */},
-  {(bigint) array___ArraySetIterator___item},
-  {(bigint) array___ArraySetIterator___next},
-  {(bigint) array___ArraySetIterator___is_ok},
-  {(bigint) 2 /* 45: ArraySetIterator < ArraySetIterator: superclass init_table position */},
-  {(bigint) array___ArraySetIterator___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ArraySetIterator::_iter */
-val_t NEW_ArraySetIterator(void) {
+  {(bigint) 1 /* 46: ListIterator < Iterator: superclass init_table position */},
+  {(bigint) list___ListIterator___item},
+  {(bigint) list___ListIterator___next},
+  {(bigint) list___ListIterator___is_ok},
+  {(bigint) 2 /* 50: ListIterator < MapIterator: superclass init_table position */},
+  {(bigint) abstract_collection___IndexedIterator___key},
+  {(bigint) 3 /* 52: ListIterator < IndexedIterator: superclass init_table position */},
+  {(bigint) list___ListIterator___index},
+  {(bigint) 4 /* 54: ListIterator < ListIterator: superclass init_table position */},
+  {(bigint) list___ListIterator___item__eq},
+  {(bigint) list___ListIterator___init},
+  {(bigint) list___ListIterator___delete},
+  {(bigint) list___ListIterator___insert_before},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ListIterator::_list */
+/* 3: Attribute ListIterator::_node */
+/* 4: Attribute ListIterator::_index */
+void INIT_ATTRIBUTES__ListIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ListIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ListIterator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_ArraySetIterator;
-  return OBJ2VAL(obj);
-}
-val_t NEW_array___ArraySetIterator___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ArraySetIterator();
-  array___ArraySetIterator___init(self, p0, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_ListIterator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ListIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ListIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_list___ListIterator____list(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_list");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_list___ListIterator____index(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_index");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ListIterator_list___ListIterator___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 258;
+  fra.me.meth = LOCATE_NEW_ListIterator_list___ListIterator___init;
+  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;
+  fra.me.REG[1] = NEW_ListIterator();
+  /* ./../lib/standard//collection//list.nit:258 */
+  INIT_ATTRIBUTES__ListIterator(fra.me.REG[1]);
+  list___ListIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ListIterator(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ArrayMap[85] = {
-  {(bigint) 3647 /* 0: Identity */},
-  {(bigint) 3 /* 1: ArrayMap < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_ListNode[80] = {
+  {(bigint) 5779 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ListNode < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3319 /* 4: ArrayMap < CoupleMap: superclass typecheck marker */},
-  {(bigint) 163 /* 5: ArrayMap < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: ArrayMap < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 219 /* 5: ListNode < Collection: superclass typecheck marker */},
+  {(bigint) 5255 /* 6: ListNode < Container: superclass typecheck marker */},
+  {(bigint) 5779 /* 7: ListNode < ListNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3143 /* 8: ArrayMap < Map: superclass typecheck marker */},
-  {(bigint) 3647 /* 9: ArrayMap < ArrayMap: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ArrayMap < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ListNode < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -9716,7 +28319,6 @@ const classtable_elt_t VFT_ArrayMap[85] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9724,10 +28326,18 @@ const classtable_elt_t VFT_ArrayMap[85] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9737,8 +28347,6 @@ const classtable_elt_t VFT_ArrayMap[85] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 49: ArrayMap < CoupleMap: superclass init_table position */},
-  {(bigint) array___ArrayMap___couple_at},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9746,80 +28354,110 @@ const classtable_elt_t VFT_ArrayMap[85] = {
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: ArrayMap < Collection: superclass init_table position */},
-  {(bigint) array___ArrayMap___iterator},
-  {(bigint) array___ArrayMap___is_empty},
-  {(bigint) array___ArrayMap___length},
-  {(bigint) array___ArrayMap___has},
-  {(bigint) array___ArrayMap___has_only},
-  {(bigint) array___ArrayMap___count},
-  {(bigint) array___ArrayMap___first},
-  {(bigint) 2 /* 66: ArrayMap < RemovableCollection: superclass init_table position */},
-  {(bigint) array___ArrayMap___clear},
-  {(bigint) array___ArrayMap___remove},
-  {(bigint) array___ArrayMap___remove_all},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: ArrayMap < Map: superclass init_table position */},
-  {(bigint) array___ArrayMap_____bra},
-  {(bigint) array___ArrayMap_____braeq},
-  {(bigint) array___ArrayMap___has_key},
-  {(bigint) array___ArrayMap___remove_at},
-  {(bigint) abstract_collection___Map___recover_with},
-  {(bigint) 5 /* 80: ArrayMap < ArrayMap: superclass init_table position */},
-  {(bigint) array___ArrayMap___enlarge},
-  {(bigint) array___ArrayMap___remove_at_index},
-  {(bigint) array___ArrayMap___index},
-  {(bigint) array___ArrayMap___init},
+  {(bigint) 1 /* 62: ListNode < Collection: superclass init_table position */},
+  {(bigint) abstract_collection___Container___iterator},
+  {(bigint) abstract_collection___Container___is_empty},
+  {(bigint) abstract_collection___Container___length},
+  {(bigint) abstract_collection___Container___has},
+  {(bigint) abstract_collection___Container___has_only},
+  {(bigint) abstract_collection___Container___count},
+  {(bigint) abstract_collection___Container___first},
+  {(bigint) 2 /* 70: ListNode < Container: superclass init_table position */},
+  {(bigint) abstract_collection___Container___init},
+  {(bigint) abstract_collection___Container___item},
+  {(bigint) abstract_collection___Container___item__eq},
+  {(bigint) 3 /* 74: ListNode < ListNode: superclass init_table position */},
+  {(bigint) list___ListNode___init},
+  {(bigint) list___ListNode___next},
+  {(bigint) list___ListNode___next__eq},
+  {(bigint) list___ListNode___prev},
+  {(bigint) list___ListNode___prev__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ArrayMap::_items */
-/* 2: Attribute ArrayMap::_last_index */
-val_t NEW_ArrayMap(void) {
+/* 1: Object_id */
+/* 2: Attribute ListNode::_item */
+/* 3: Attribute ListNode::_next */
+/* 4: Attribute ListNode::_prev */
+void INIT_ATTRIBUTES__ListNode(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ListNode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ListNode(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_ArrayMap;
-  ATTR_array___ArrayMap____last_index(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_array___ArrayMap___init() {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ArrayMap();
-  array___ArrayMap___init(self, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_ListNode;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ListNode(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ListNode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ListNode_list___ListNode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 291;
+  fra.me.meth = LOCATE_NEW_ListNode_list___ListNode___init;
+  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;
+  fra.me.REG[1] = NEW_ListNode();
+  /* ./../lib/standard//collection//list.nit:291 */
+  INIT_ATTRIBUTES__ListNode(fra.me.REG[1]);
+  list___ListNode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ListNode(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ArrayCapable[42] = {
-  {(bigint) 171 /* 0: Identity */},
-  {(bigint) 3 /* 1: ArrayCapable < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 2: ArrayCapable < ArrayCapable: superclass typecheck marker */},
+const classtable_elt_t VFT_AbstractArrayRead[103] = {
+  {(bigint) 6099 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AbstractArrayRead < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: AbstractArrayRead < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5111 /* 7: AbstractArrayRead < MapRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5703 /* 9: AbstractArrayRead < SequenceRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 6099 /* 12: AbstractArrayRead < AbstractArrayRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ArrayCapable < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AbstractArrayRead < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
+  {(bigint) array___AbstractArrayRead_____eqeq},
   {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
+  {(bigint) array___AbstractArrayRead___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9827,24 +28465,17 @@ const classtable_elt_t VFT_ArrayCapable[42] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ArrayCapable < ArrayCapable: superclass init_table position */},
-  {(bigint) array___ArrayCapable___calloc_array},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_ArrayCapable(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_ArrayCapable;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_NativeArray[44] = {
-  {(bigint) -9 /* 0: Identity */},
-  {(bigint) 3 /* 1: NativeArray < Object: superclass typecheck marker */},
-  {(bigint) -9 /* 2: NativeArray < NativeArray: superclass typecheck marker */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9855,22 +28486,151 @@ const classtable_elt_t VFT_NativeArray[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: NativeArray < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: AbstractArrayRead < Collection: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___iterator},
+  {(bigint) array___AbstractArrayRead___is_empty},
+  {(bigint) array___AbstractArrayRead___length},
+  {(bigint) array___AbstractArrayRead___has},
+  {(bigint) array___AbstractArrayRead___has_only},
+  {(bigint) array___AbstractArrayRead___count},
+  {(bigint) abstract_collection___SequenceRead___first},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 74: AbstractArrayRead < MapRead: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead_____bra},
+  {(bigint) array___AbstractArrayRead___has_key},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 80: AbstractArrayRead < SequenceRead: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___last},
+  {(bigint) array___AbstractArrayRead___index_of},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 96: AbstractArrayRead < AbstractArrayRead: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___last_index_of},
+  {(bigint) array___AbstractArrayRead___index_of_from},
+  {(bigint) array___AbstractArrayRead___last_index_of_from},
+  {(bigint) array___AbstractArrayRead___reversed},
+  {(bigint) array___AbstractArrayRead___copy_to},
+  {(bigint) array___AbstractArrayRead___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AbstractArrayRead::_length */
+void INIT_ATTRIBUTES__AbstractArrayRead(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AbstractArrayRead;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:23 */
+  ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractArrayRead(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_AbstractArrayRead;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AbstractArrayRead(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AbstractArrayRead;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractArrayRead_array___AbstractArrayRead___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AbstractArrayRead_array___AbstractArrayRead___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AbstractArrayRead();
+  INIT_ATTRIBUTES__AbstractArrayRead(fra.me.REG[0]);
+  array___AbstractArrayRead___init(fra.me.REG[0], init_table);
+  CHECKNEW_AbstractArrayRead(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_AbstractArray[103] = {
+  {(bigint) 6423 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AbstractArray < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: AbstractArray < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: AbstractArray < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: AbstractArray < MapRead: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: AbstractArray < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 5703 /* 9: AbstractArray < SequenceRead: superclass typecheck marker */},
+  {(bigint) 5743 /* 10: AbstractArray < Map: superclass typecheck marker */},
+  {(bigint) 6039 /* 11: AbstractArray < Sequence: superclass typecheck marker */},
+  {(bigint) 6099 /* 12: AbstractArray < AbstractArrayRead: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 6423 /* 14: AbstractArray < AbstractArray: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AbstractArray < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
+  {(bigint) array___AbstractArrayRead_____eqeq},
   {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
+  {(bigint) array___AbstractArrayRead___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9878,52 +28638,172 @@ const classtable_elt_t VFT_NativeArray[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: NativeArray < NativeArray: superclass init_table position */},
-  {(bigint) array___NativeArray_____bra},
-  {(bigint) array___NativeArray_____braeq},
-  {(bigint) array___NativeArray___copy_to},
-};
-/* 0: Pointer to the classtable */
-val_t BOX_NativeArray(val_t * val) {
-  struct TBOX_NativeArray *box = (struct TBOX_NativeArray*)alloc(sizeof(struct TBOX_NativeArray));
-  box->vft = VFT_NativeArray;
-  box->val = val;
-  return OBJ2VAL(box);
-}
-const classtable_elt_t VFT_String[134] = {
-  {(bigint) 3783 /* 0: Identity */},
-  {(bigint) 3 /* 1: String < Object: superclass typecheck marker */},
-  {(bigint) 31 /* 2: String < StringCapable: superclass typecheck marker */},
-  {(bigint) 51 /* 3: String < Pattern: superclass typecheck marker */},
-  {(bigint) 155 /* 4: String < Comparable: superclass typecheck marker */},
-  {(bigint) 163 /* 5: String < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: String < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: String < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3143 /* 8: String < Map: superclass typecheck marker */},
-  {(bigint) 3303 /* 9: String < IndexedCollection: superclass typecheck marker */},
-  {(bigint) 3651 /* 10: String < AbstractArray: superclass typecheck marker */},
-  {(bigint) 3783 /* 11: String < String: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___String___hash},
-  {(bigint) string___String___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: String < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 9 /* 48: AbstractArray < AbstractArray: superclass init_table position */},
+  {(bigint) array___AbstractArray___enlarge},
+  {(bigint) array___AbstractArray___insert},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: AbstractArray < Collection: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___iterator},
+  {(bigint) array___AbstractArrayRead___is_empty},
+  {(bigint) array___AbstractArrayRead___length},
+  {(bigint) array___AbstractArrayRead___has},
+  {(bigint) array___AbstractArrayRead___has_only},
+  {(bigint) array___AbstractArrayRead___count},
+  {(bigint) abstract_collection___SequenceRead___first},
+  {(bigint) 5 /* 70: AbstractArray < RemovableCollection: superclass init_table position */},
+  {(bigint) array___AbstractArray___clear},
+  {(bigint) array___AbstractArray___remove},
+  {(bigint) array___AbstractArray___remove_all},
+  {(bigint) 2 /* 74: AbstractArray < MapRead: superclass init_table position */},
+  {(bigint) abstract_collection___MapRead_____bra},
+  {(bigint) array___AbstractArrayRead___has_key},
+  {(bigint) 7 /* 77: AbstractArray < SimpleCollection: superclass init_table position */},
+  {(bigint) array___AbstractArray___add},
+  {(bigint) abstract_collection___SimpleCollection___add_all},
+  {(bigint) 3 /* 80: AbstractArray < SequenceRead: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___last},
+  {(bigint) array___AbstractArrayRead___index_of},
+  {(bigint) string___Map___map_join},
+  {(bigint) 6 /* 84: AbstractArray < Map: superclass init_table position */},
+  {(bigint) abstract_collection___Map_____braeq},
+  {(bigint) array___AbstractArray___remove_at},
+  {(bigint) abstract_collection___Map___recover_with},
+  {(bigint) 8 /* 88: AbstractArray < Sequence: superclass init_table position */},
+  {(bigint) abstract_collection___Sequence___first__eq},
+  {(bigint) abstract_collection___Sequence___last__eq},
+  {(bigint) array___AbstractArray___push},
+  {(bigint) abstract_collection___Sequence___append},
+  {(bigint) array___AbstractArray___pop},
+  {(bigint) array___AbstractArray___unshift},
+  {(bigint) array___AbstractArray___shift},
+  {(bigint) 4 /* 96: AbstractArray < AbstractArrayRead: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___last_index_of},
+  {(bigint) array___AbstractArrayRead___index_of_from},
+  {(bigint) array___AbstractArrayRead___last_index_of_from},
+  {(bigint) array___AbstractArrayRead___reversed},
+  {(bigint) array___AbstractArrayRead___copy_to},
+  {(bigint) array___AbstractArrayRead___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AbstractArray::_length */
+void INIT_ATTRIBUTES__AbstractArray(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AbstractArray;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:23 */
+  ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractArray(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_AbstractArray;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AbstractArray(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AbstractArray;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractArray_array___AbstractArrayRead___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AbstractArray_array___AbstractArrayRead___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AbstractArray();
+  INIT_ATTRIBUTES__AbstractArray(fra.me.REG[0]);
+  array___AbstractArrayRead___init(fra.me.REG[0], init_table);
+  CHECKNEW_AbstractArray(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_Array[103] = {
+  {(bigint) 6563 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Array < Object: superclass typecheck marker */},
+  {(bigint) 227 /* 3: Array < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 6563 /* 4: Array < Array: superclass typecheck marker */},
+  {(bigint) 219 /* 5: Array < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: Array < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: Array < MapRead: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: Array < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 5703 /* 9: Array < SequenceRead: superclass typecheck marker */},
+  {(bigint) 5743 /* 10: Array < Map: superclass typecheck marker */},
+  {(bigint) 6039 /* 11: Array < Sequence: superclass typecheck marker */},
+  {(bigint) 6099 /* 12: Array < AbstractArrayRead: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 6423 /* 14: Array < AbstractArray: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Array < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
-  {(bigint) string___String_____eqeq},
+  {(bigint) array___AbstractArrayRead_____eqeq},
   {(bigint) kernel___Object_____neq},
-  {(bigint) string___String___output},
+  {(bigint) array___AbstractArrayRead___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -9931,157 +28811,257 @@ const classtable_elt_t VFT_String[134] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Array___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 8 /* 40: String < StringCapable: superclass init_table position */},
-  {(bigint) string___StringCapable___calloc_string},
-  {(bigint) 9 /* 42: String < Pattern: superclass init_table position */},
-  {(bigint) string_search___String___search_index_in},
-  {(bigint) string_search___String___search_in},
-  {(bigint) string_search___Pattern___search_all_in},
-  {(bigint) string_search___Pattern___split_in},
-  {(bigint) 7 /* 47: String < Comparable: superclass init_table position */},
-  {(bigint) string___String_____l},
-  {(bigint) kernel___Comparable_____leq},
-  {(bigint) kernel___Comparable_____geq},
-  {(bigint) kernel___Comparable_____g},
-  {(bigint) kernel___Comparable_____leqg},
-  {(bigint) kernel___Comparable___is_between},
-  {(bigint) kernel___Comparable___max},
-  {(bigint) kernel___Comparable___min},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 10 /* 45: Array < ArrayCapable: superclass init_table position */},
+  {(bigint) array___ArrayCapable___calloc_array},
+  {0} /* Class Hole :( */,
+  {(bigint) 9 /* 48: Array < AbstractArray: superclass init_table position */},
+  {(bigint) array___Array___enlarge},
+  {(bigint) array___AbstractArray___insert},
+  {(bigint) 11 /* 51: Array < Array: superclass init_table position */},
+  {(bigint) array___Array___init},
+  {(bigint) array___Array___with_items},
+  {(bigint) array___Array___with_capacity},
+  {(bigint) array___Array___filled_with},
+  {(bigint) array___Array___with_native},
+  {(bigint) array___Array___intern_items},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: String < Collection: superclass init_table position */},
-  {(bigint) array___AbstractArray___iterator},
-  {(bigint) array___AbstractArray___is_empty},
-  {(bigint) array___AbstractArray___length},
-  {(bigint) array___AbstractArray___has},
-  {(bigint) array___AbstractArray___has_only},
-  {(bigint) array___AbstractArray___count},
-  {(bigint) abstract_collection___IndexedCollection___first},
-  {(bigint) 2 /* 66: String < RemovableCollection: superclass init_table position */},
+  {(bigint) 1 /* 62: Array < Collection: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___iterator},
+  {(bigint) array___AbstractArrayRead___is_empty},
+  {(bigint) array___AbstractArrayRead___length},
+  {(bigint) array___AbstractArrayRead___has},
+  {(bigint) array___AbstractArrayRead___has_only},
+  {(bigint) array___AbstractArrayRead___count},
+  {(bigint) abstract_collection___SequenceRead___first},
+  {(bigint) 5 /* 70: Array < RemovableCollection: superclass init_table position */},
   {(bigint) array___AbstractArray___clear},
   {(bigint) array___AbstractArray___remove},
   {(bigint) array___AbstractArray___remove_all},
-  {(bigint) 4 /* 70: String < SimpleCollection: superclass init_table position */},
-  {(bigint) string___String___add},
+  {(bigint) 2 /* 74: Array < MapRead: superclass init_table position */},
+  {(bigint) array___Array_____bra},
+  {(bigint) array___AbstractArrayRead___has_key},
+  {(bigint) 7 /* 77: Array < SimpleCollection: superclass init_table position */},
+  {(bigint) array___Array___add},
   {(bigint) abstract_collection___SimpleCollection___add_all},
+  {(bigint) 3 /* 80: Array < SequenceRead: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___last},
+  {(bigint) array___AbstractArrayRead___index_of},
   {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: String < Map: superclass init_table position */},
-  {(bigint) string___String_____bra},
-  {(bigint) string___String_____braeq},
-  {(bigint) array___AbstractArray___has_key},
+  {(bigint) 6 /* 84: Array < Map: superclass init_table position */},
+  {(bigint) array___Array_____braeq},
   {(bigint) array___AbstractArray___remove_at},
   {(bigint) abstract_collection___Map___recover_with},
-  {(bigint) 5 /* 80: String < IndexedCollection: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedCollection___first__eq},
-  {(bigint) abstract_collection___IndexedCollection___last},
-  {(bigint) abstract_collection___IndexedCollection___last__eq},
+  {(bigint) 8 /* 88: Array < Sequence: superclass init_table position */},
+  {(bigint) abstract_collection___Sequence___first__eq},
+  {(bigint) abstract_collection___Sequence___last__eq},
   {(bigint) array___AbstractArray___push},
-  {(bigint) string___String___append},
+  {(bigint) abstract_collection___Sequence___append},
   {(bigint) array___AbstractArray___pop},
   {(bigint) array___AbstractArray___unshift},
   {(bigint) array___AbstractArray___shift},
-  {(bigint) array___AbstractArray___index_of},
-  {(bigint) 6 /* 90: String < AbstractArray: superclass init_table position */},
-  {(bigint) string___String___enlarge},
-  {(bigint) array___AbstractArray___insert},
-  {(bigint) array___AbstractArray___last_index_of},
-  {(bigint) array___AbstractArray___index_of_from},
-  {(bigint) array___AbstractArray___last_index_of_from},
-  {(bigint) array___AbstractArray___reversed},
-  {(bigint) array___AbstractArray___copy_to},
-  {(bigint) symbol___String___to_symbol},
-  {(bigint) 10 /* 99: String < String: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedCollection___append},
-  {(bigint) string___String_____plus},
-  {(bigint) string___String_____star},
-  {(bigint) string___String___to_i},
-  {(bigint) string___String___to_hex},
-  {(bigint) string___String___a_to},
-  {(bigint) string___String___to_cstring},
-  {(bigint) string___String___substring},
-  {(bigint) string___String___substring_from},
-  {(bigint) string___String___has_substring},
-  {(bigint) string___String___has_prefix},
-  {(bigint) string___String___has_suffix},
-  {(bigint) string___String___init},
-  {(bigint) string___String___from},
-  {(bigint) string___String___with_capacity},
-  {(bigint) string___String___with_native},
-  {(bigint) string___String___from_cstring},
-  {(bigint) string___String___filled_with},
-  {(bigint) string___String___to_upper},
-  {(bigint) string___String___to_lower},
-  {(bigint) string___String___items},
-  {(bigint) string___String___capacity},
-  {(bigint) file___String___file_exists},
-  {(bigint) file___String___file_stat},
-  {(bigint) file___String___strip_extension},
-  {(bigint) file___String___basename},
-  {(bigint) file___String___dirname},
-  {(bigint) file___String___file_path},
-  {(bigint) file___String___mkdir},
-  {(bigint) string_search___String___search},
-  {(bigint) string_search___String___search_from},
-  {(bigint) string_search___String___search_all},
-  {(bigint) string_search___String___split_with},
-  {(bigint) string_search___String___split},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute String::_length */
-/* 2: Attribute String::_items */
-/* 3: Attribute String::_capacity */
-val_t NEW_String(void) {
+  {(bigint) 4 /* 96: Array < AbstractArrayRead: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___last_index_of},
+  {(bigint) array___AbstractArrayRead___index_of_from},
+  {(bigint) array___AbstractArrayRead___last_index_of_from},
+  {(bigint) array___AbstractArrayRead___reversed},
+  {(bigint) array___AbstractArrayRead___copy_to},
+  {(bigint) array___AbstractArrayRead___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Array::_length */
+/* 3: Attribute Array::_items */
+/* 4: Attribute Array::_capacity */
+void INIT_ATTRIBUTES__Array(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Array;
+  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;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:23 */
+  ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//array.nit:317 */
+  ATTR_array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:324 */
+  ATTR_array___Array____capacity(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Array(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_String;
-  ATTR_array___AbstractArray____length(obj) =  TAG_Int(0);
-  ATTR_string___String____capacity(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_string___String___init() {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_String();
-  string___String___init(self, init_table);
-  return self;
-}
-val_t NEW_string___String___from(val_t p0) {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_String();
-  string___String___from(self, p0, init_table);
-  return self;
-}
-val_t NEW_string___String___with_capacity(val_t p0) {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_String();
-  string___String___with_capacity(self, p0, init_table);
-  return self;
-}
-val_t NEW_string___String___with_native(val_t p0, val_t p1) {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_String();
-  string___String___with_native(self, p0, p1, init_table);
-  return self;
-}
-val_t NEW_string___String___from_cstring(val_t p0) {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_String();
-  string___String___from_cstring(self, p0, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_Array;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Array(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Array;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_capacity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Array_array___Array___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 270;
+  fra.me.meth = LOCATE_NEW_Array_array___Array___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_Array();
+  /* ./../lib/standard//collection//array.nit:270 */
+  INIT_ATTRIBUTES__Array(fra.me.REG[0]);
+  array___Array___init(fra.me.REG[0], init_table);
+  CHECKNEW_Array(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_Array_array___Array___with_items(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 277;
+  fra.me.meth = LOCATE_NEW_Array_array___Array___with_items;
+  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;
+  fra.me.REG[1] = NEW_Array();
+  /* ./../lib/standard//collection//array.nit:277 */
+  INIT_ATTRIBUTES__Array(fra.me.REG[1]);
+  array___Array___with_items(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Array(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_Array_array___Array___with_capacity(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 285;
+  fra.me.meth = LOCATE_NEW_Array_array___Array___with_capacity;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = NEW_Array();
+  /* ./../lib/standard//collection//array.nit:285 */
+  INIT_ATTRIBUTES__Array(fra.me.REG[0]);
+  array___Array___with_capacity(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_Array(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_Array_array___Array___filled_with(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 294;
+  fra.me.meth = LOCATE_NEW_Array_array___Array___filled_with;
+  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;
+  REGB0 = p1;
+  fra.me.REG[1] = NEW_Array();
+  /* ./../lib/standard//collection//array.nit:294 */
+  INIT_ATTRIBUTES__Array(fra.me.REG[1]);
+  array___Array___filled_with(fra.me.REG[1], fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_Array(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-val_t NEW_string___String___filled_with(val_t p0, val_t p1) {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_String();
-  string___String___filled_with(self, p0, p1, init_table);
-  return self;
+val_t NEW_Array_array___Array___with_native(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 308;
+  fra.me.meth = LOCATE_NEW_Array_array___Array___with_native;
+  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;
+  REGB0 = p1;
+  fra.me.REG[1] = NEW_Array();
+  /* ./../lib/standard//collection//array.nit:308 */
+  INIT_ATTRIBUTES__Array(fra.me.REG[1]);
+  array___Array___with_native(fra.me.REG[1], fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_Array(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_NativeString[51] = {
-  {(bigint) -5 /* 0: Identity */},
-  {(bigint) 3 /* 1: NativeString < Object: superclass typecheck marker */},
-  {(bigint) -5 /* 2: NativeString < NativeString: superclass typecheck marker */},
+const classtable_elt_t VFT_ArrayIterator[56] = {
+  {(bigint) 6095 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ArrayIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: ArrayIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5115 /* 4: ArrayIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 5783 /* 5: ArrayIterator < IndexedIterator: superclass typecheck marker */},
+  {(bigint) 6095 /* 6: ArrayIterator < ArrayIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10092,14 +29072,9 @@ const classtable_elt_t VFT_NativeString[51] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: NativeString < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ArrayIterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10107,7 +29082,6 @@ const classtable_elt_t VFT_NativeString[51] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10115,35 +29089,119 @@ const classtable_elt_t VFT_NativeString[51] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) environ___NativeString___get_environ},
-  {(bigint) 1 /* 41: NativeString < NativeString: superclass init_table position */},
-  {(bigint) string___NativeString_____bra},
-  {(bigint) string___NativeString_____braeq},
-  {(bigint) string___NativeString___copy_to},
-  {(bigint) string___NativeString___cstring_length},
-  {(bigint) string___NativeString___atoi},
-  {(bigint) file___NativeString___file_exists},
-  {(bigint) file___NativeString___file_stat},
-  {(bigint) file___NativeString___file_mkdir},
-  {(bigint) exec___NativeString___system},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) array___Iterator___to_a},
+  {(bigint) 1 /* 46: ArrayIterator < Iterator: superclass init_table position */},
+  {(bigint) array___ArrayIterator___item},
+  {(bigint) array___ArrayIterator___next},
+  {(bigint) array___ArrayIterator___is_ok},
+  {(bigint) 2 /* 50: ArrayIterator < MapIterator: superclass init_table position */},
+  {(bigint) abstract_collection___IndexedIterator___key},
+  {(bigint) 3 /* 52: ArrayIterator < IndexedIterator: superclass init_table position */},
+  {(bigint) array___ArrayIterator___index},
+  {(bigint) 4 /* 54: ArrayIterator < ArrayIterator: superclass init_table position */},
+  {(bigint) array___ArrayIterator___init},
 };
 /* 0: Pointer to the classtable */
-val_t BOX_NativeString(char * val) {
-  struct TBOX_NativeString *box = (struct TBOX_NativeString*)alloc(sizeof(struct TBOX_NativeString));
-  box->vft = VFT_NativeString;
-  box->val = val;
-  return OBJ2VAL(box);
+/* 1: Object_id */
+/* 2: Attribute ArrayIterator::_index */
+/* 3: Attribute ArrayIterator::_array */
+void INIT_ATTRIBUTES__ArrayIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ArrayIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:345 */
+  ATTR_array___ArrayIterator____index(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ArrayIterator(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_ArrayIterator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ArrayIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ArrayIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_index");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_array___ArrayIterator____array(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_array");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ArrayIterator_array___ArrayIterator___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 339;
+  fra.me.meth = LOCATE_NEW_ArrayIterator_array___ArrayIterator___init;
+  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;
+  fra.me.REG[1] = NEW_ArrayIterator();
+  /* ./../lib/standard//collection//array.nit:339 */
+  INIT_ATTRIBUTES__ArrayIterator(fra.me.REG[1]);
+  array___ArrayIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ArrayIterator(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_StringCapable[42] = {
-  {(bigint) 31 /* 0: Identity */},
-  {(bigint) 3 /* 1: StringCapable < Object: superclass typecheck marker */},
-  {(bigint) 31 /* 2: StringCapable < StringCapable: superclass typecheck marker */},
+const classtable_elt_t VFT_ArraySet[85] = {
+  {(bigint) 6411 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ArraySet < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: ArraySet < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: ArraySet < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 6035 /* 7: ArraySet < Set: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: ArraySet < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 6411 /* 9: ArraySet < ArraySet: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10151,15 +29209,9 @@ const classtable_elt_t VFT_StringCapable[42] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: StringCapable < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ArraySet < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10167,7 +29219,6 @@ const classtable_elt_t VFT_StringCapable[42] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10175,27 +29226,17 @@ const classtable_elt_t VFT_StringCapable[42] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: StringCapable < StringCapable: superclass init_table position */},
-  {(bigint) string___StringCapable___calloc_string},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_StringCapable(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_StringCapable;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_HashCollection[66] = {
-  {(bigint) 2627 /* 0: Identity */},
-  {(bigint) 3 /* 1: HashCollection < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 2: HashCollection < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 2627 /* 3: HashCollection < HashCollection: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: HashCollection < Collection: superclass typecheck marker */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10203,85 +29244,130 @@ const classtable_elt_t VFT_HashCollection[66] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: HashCollection < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
-  {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
-  {(bigint) kernel___Object___exit},
-  {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
-  {(bigint) file___Object___printn},
-  {(bigint) file___Object___print},
-  {(bigint) file___Object___getc},
-  {(bigint) file___Object___gets},
-  {(bigint) file___Object___stdin},
-  {(bigint) file___Object___stdout},
-  {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
-  {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: HashCollection < ArrayCapable: superclass init_table position */},
-  {(bigint) array___ArrayCapable___calloc_array},
-  {(bigint) 3 /* 42: HashCollection < HashCollection: superclass init_table position */},
-  {(bigint) hash___HashCollection___first_item},
-  {(bigint) hash___HashCollection___index_at},
-  {(bigint) hash___HashCollection___store},
-  {(bigint) hash___HashCollection___remove_index},
-  {(bigint) hash___HashCollection___raz},
-  {(bigint) hash___HashCollection___enlarge},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 4 /* 55: ArraySet < Set: superclass init_table position */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: HashCollection < Collection: superclass init_table position */},
-  {(bigint) abstract_collection___Collection___iterator},
-  {(bigint) abstract_collection___Collection___is_empty},
-  {(bigint) hash___HashCollection___length},
-  {(bigint) abstract_collection___Collection___has},
-  {(bigint) abstract_collection___Collection___has_only},
-  {(bigint) abstract_collection___Collection___count},
-  {(bigint) abstract_collection___Collection___first},
+  {(bigint) 1 /* 62: ArraySet < Collection: superclass init_table position */},
+  {(bigint) array___ArraySet___iterator},
+  {(bigint) array___ArraySet___is_empty},
+  {(bigint) array___ArraySet___length},
+  {(bigint) array___ArraySet___has},
+  {(bigint) abstract_collection___Set___has_only},
+  {(bigint) abstract_collection___Set___count},
+  {(bigint) array___ArraySet___first},
+  {(bigint) 2 /* 70: ArraySet < RemovableCollection: superclass init_table position */},
+  {(bigint) array___ArraySet___clear},
+  {(bigint) array___ArraySet___remove},
+  {(bigint) array___ArraySet___remove_all},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 77: ArraySet < SimpleCollection: superclass init_table position */},
+  {(bigint) array___ArraySet___add},
+  {(bigint) abstract_collection___SimpleCollection___add_all},
+  {(bigint) 5 /* 80: ArraySet < ArraySet: superclass init_table position */},
+  {(bigint) array___ArraySet___enlarge},
+  {(bigint) array___ArraySet___remove_at},
+  {(bigint) array___ArraySet___init},
+  {(bigint) array___ArraySet___with_capacity},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute HashCollection::_array */
-/* 2: Attribute HashCollection::_capacity */
-/* 3: Attribute HashCollection::_length */
-/* 4: Attribute HashCollection::_first_item */
-/* 5: Attribute HashCollection::_last_item */
-/* 6: Attribute HashCollection::_last_accessed_index */
-/* 7: Attribute HashCollection::_last_accessed_key */
-val_t NEW_HashCollection(void) {
+/* 1: Object_id */
+/* 2: Attribute ArraySet::_array */
+void INIT_ATTRIBUTES__ArraySet(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ArraySet;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ArraySet(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_HashCollection;
-  ATTR_hash___HashCollection____array(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____capacity(obj) =  TAG_Int(0);
-  ATTR_hash___HashCollection____length(obj) =  TAG_Int(0);
-  ATTR_hash___HashCollection____first_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____last_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____last_accessed_index(obj) = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ATTR_hash___HashCollection____last_accessed_key(obj) =  NIT_NULL /*null*/;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_ArraySet;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ArraySet(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ArraySet;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_array");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ArraySet_array___ArraySet___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 392;
+  fra.me.meth = LOCATE_NEW_ArraySet_array___ArraySet___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ArraySet();
+  /* ./../lib/standard//collection//array.nit:392 */
+  INIT_ATTRIBUTES__ArraySet(fra.me.REG[0]);
+  array___ArraySet___init(fra.me.REG[0], init_table);
+  CHECKNEW_ArraySet(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ArraySet_array___ArraySet___with_capacity(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 395;
+  fra.me.meth = LOCATE_NEW_ArraySet_array___ArraySet___with_capacity;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = NEW_ArraySet();
+  /* ./../lib/standard//collection//array.nit:395 */
+  INIT_ATTRIBUTES__ArraySet(fra.me.REG[0]);
+  array___ArraySet___with_capacity(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_ArraySet(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_HashNode[46] = {
-  {(bigint) 139 /* 0: Identity */},
-  {(bigint) 3 /* 1: HashNode < Object: superclass typecheck marker */},
-  {(bigint) 139 /* 2: HashNode < HashNode: superclass typecheck marker */},
+const classtable_elt_t VFT_ArraySetIterator[52] = {
+  {(bigint) 5295 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ArraySetIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: ArraySetIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5295 /* 4: ArraySetIterator < ArraySetIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10292,14 +29378,11 @@ const classtable_elt_t VFT_HashNode[46] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: HashNode < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ArraySetIterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10307,7 +29390,6 @@ const classtable_elt_t VFT_HashNode[46] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10315,50 +29397,111 @@ const classtable_elt_t VFT_HashNode[46] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: HashNode < HashNode: superclass init_table position */},
-  {(bigint) hash___HashNode___key},
-  {(bigint) hash___HashNode___next_item},
-  {(bigint) hash___HashNode___next_item__eq},
-  {(bigint) hash___HashNode___prev_item},
-  {(bigint) hash___HashNode___prev_item__eq},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) array___Iterator___to_a},
+  {(bigint) 1 /* 46: ArraySetIterator < Iterator: superclass init_table position */},
+  {(bigint) array___ArraySetIterator___item},
+  {(bigint) array___ArraySetIterator___next},
+  {(bigint) array___ArraySetIterator___is_ok},
+  {(bigint) 2 /* 50: ArraySetIterator < ArraySetIterator: superclass init_table position */},
+  {(bigint) array___ArraySetIterator___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute HashNode::_next_item */
-/* 2: Attribute HashNode::_prev_item */
-val_t NEW_HashNode(void) {
+/* 1: Object_id */
+/* 2: Attribute ArraySetIterator::_iter */
+void INIT_ATTRIBUTES__ArraySetIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ArraySetIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ArraySetIterator(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_HashNode;
-  ATTR_hash___HashNode____next_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashNode____prev_item(obj) =  NIT_NULL /*null*/;
+  obj->vft = (classtable_elt_t*)VFT_ArraySetIterator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_HashMap[80] = {
-  {(bigint) 3639 /* 0: Identity */},
-  {(bigint) 3 /* 1: HashMap < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 2: HashMap < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 2627 /* 3: HashMap < HashCollection: superclass typecheck marker */},
-  {(bigint) 3319 /* 4: HashMap < CoupleMap: superclass typecheck marker */},
-  {(bigint) 163 /* 5: HashMap < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: HashMap < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3639 /* 7: HashMap < HashMap: superclass typecheck marker */},
-  {(bigint) 3143 /* 8: HashMap < Map: superclass typecheck marker */},
+void CHECKNEW_ArraySetIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ArraySetIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_iter");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ArraySetIterator_array___ArraySetIterator___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 409;
+  fra.me.meth = LOCATE_NEW_ArraySetIterator_array___ArraySetIterator___init;
+  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;
+  fra.me.REG[1] = NEW_ArraySetIterator();
+  /* ./../lib/standard//collection//array.nit:409 */
+  INIT_ATTRIBUTES__ArraySetIterator(fra.me.REG[1]);
+  array___ArraySetIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ArraySetIterator(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ArrayMap[93] = {
+  {(bigint) 6415 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ArrayMap < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: ArrayMap < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: ArrayMap < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: ArrayMap < MapRead: superclass typecheck marker */},
+  {(bigint) 6091 /* 8: ArrayMap < CoupleMap: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5743 /* 10: ArrayMap < Map: superclass typecheck marker */},
+  {(bigint) 6415 /* 11: ArrayMap < ArrayMap: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: HashMap < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ArrayMap < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10366,7 +29509,6 @@ const classtable_elt_t VFT_HashMap[80] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10374,84 +29516,148 @@ const classtable_elt_t VFT_HashMap[80] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 5 /* 40: HashMap < ArrayCapable: superclass init_table position */},
-  {(bigint) array___ArrayCapable___calloc_array},
-  {(bigint) 6 /* 42: HashMap < HashCollection: superclass init_table position */},
-  {(bigint) hash___HashCollection___first_item},
-  {(bigint) hash___HashCollection___index_at},
-  {(bigint) hash___HashCollection___store},
-  {(bigint) hash___HashCollection___remove_index},
-  {(bigint) hash___HashCollection___raz},
-  {(bigint) hash___HashCollection___enlarge},
-  {(bigint) 4 /* 49: HashMap < CoupleMap: superclass init_table position */},
-  {(bigint) hash___HashMap___couple_at},
-  {(bigint) 7 /* 51: HashMap < HashMap: superclass init_table position */},
-  {(bigint) hash___HashMap___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 5 /* 55: ArrayMap < CoupleMap: superclass init_table position */},
+  {(bigint) array___ArrayMap___couple_at},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) string___Collection___join},
   {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: HashMap < Collection: superclass init_table position */},
-  {(bigint) hash___HashMap___iterator},
-  {(bigint) hash___HashMap___is_empty},
-  {(bigint) hash___HashCollection___length},
-  {(bigint) hash___HashMap___has},
-  {(bigint) hash___HashMap___has_only},
-  {(bigint) hash___HashMap___count},
-  {(bigint) hash___HashMap___first},
-  {(bigint) 2 /* 66: HashMap < RemovableCollection: superclass init_table position */},
-  {(bigint) hash___HashMap___clear},
-  {(bigint) hash___HashMap___remove},
-  {(bigint) abstract_collection___RemovableCollection___remove_all},
+  {(bigint) 1 /* 62: ArrayMap < Collection: superclass init_table position */},
+  {(bigint) array___ArrayMap___iterator},
+  {(bigint) array___ArrayMap___is_empty},
+  {(bigint) array___ArrayMap___length},
+  {(bigint) array___ArrayMap___has},
+  {(bigint) array___ArrayMap___has_only},
+  {(bigint) array___ArrayMap___count},
+  {(bigint) array___ArrayMap___first},
+  {(bigint) 2 /* 70: ArrayMap < RemovableCollection: superclass init_table position */},
+  {(bigint) array___ArrayMap___clear},
+  {(bigint) array___ArrayMap___remove},
+  {(bigint) array___ArrayMap___remove_all},
+  {(bigint) 3 /* 74: ArrayMap < MapRead: superclass init_table position */},
+  {(bigint) array___ArrayMap_____bra},
+  {(bigint) array___ArrayMap___has_key},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: HashMap < Map: superclass init_table position */},
-  {(bigint) abstract_collection___CoupleMap_____bra},
-  {(bigint) hash___HashMap_____braeq},
-  {(bigint) abstract_collection___CoupleMap___has_key},
-  {(bigint) hash___HashMap___remove_at},
+  {(bigint) 4 /* 84: ArrayMap < Map: superclass init_table position */},
+  {(bigint) array___ArrayMap_____braeq},
+  {(bigint) array___ArrayMap___remove_at},
   {(bigint) abstract_collection___Map___recover_with},
+  {(bigint) 6 /* 88: ArrayMap < ArrayMap: superclass init_table position */},
+  {(bigint) array___ArrayMap___enlarge},
+  {(bigint) array___ArrayMap___remove_at_index},
+  {(bigint) array___ArrayMap___index},
+  {(bigint) array___ArrayMap___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute HashMap::_array */
-/* 2: Attribute HashMap::_capacity */
-/* 3: Attribute HashMap::_length */
-/* 4: Attribute HashMap::_first_item */
-/* 5: Attribute HashMap::_last_item */
-/* 6: Attribute HashMap::_last_accessed_index */
-/* 7: Attribute HashMap::_last_accessed_key */
-val_t NEW_HashMap(void) {
+/* 1: Object_id */
+/* 2: Attribute ArrayMap::_items */
+/* 3: Attribute ArrayMap::_last_index */
+void INIT_ATTRIBUTES__ArrayMap(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ArrayMap;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:529 */
+  ATTR_array___ArrayMap____last_index(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ArrayMap(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_HashMap;
-  ATTR_hash___HashCollection____array(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____capacity(obj) =  TAG_Int(0);
-  ATTR_hash___HashCollection____length(obj) =  TAG_Int(0);
-  ATTR_hash___HashCollection____first_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____last_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____last_accessed_index(obj) = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ATTR_hash___HashCollection____last_accessed_key(obj) =  NIT_NULL /*null*/;
-  return OBJ2VAL(obj);
-}
-val_t NEW_hash___HashMap___init() {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_HashMap();
-  hash___HashMap___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_HashMapNode[54] = {
-  {(bigint) 2623 /* 0: Identity */},
-  {(bigint) 3 /* 1: HashMapNode < Object: superclass typecheck marker */},
-  {(bigint) 139 /* 2: HashMapNode < HashNode: superclass typecheck marker */},
-  {(bigint) 143 /* 3: HashMapNode < Couple: superclass typecheck marker */},
-  {(bigint) 2623 /* 4: HashMapNode < HashMapNode: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_ArrayMap;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ArrayMap(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ArrayMap;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_items");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_array___ArrayMap____last_index(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_index");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ArrayMap_array___ArrayMap___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 550;
+  fra.me.meth = LOCATE_NEW_ArrayMap_array___ArrayMap___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ArrayMap();
+  /* ./../lib/standard//collection//array.nit:550 */
+  INIT_ATTRIBUTES__ArrayMap(fra.me.REG[0]);
+  array___ArrayMap___init(fra.me.REG[0], init_table);
+  CHECKNEW_ArrayMap(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ArrayCapable[47] = {
+  {(bigint) 227 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ArrayCapable < Object: superclass typecheck marker */},
+  {(bigint) 227 /* 3: ArrayCapable < ArrayCapable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10460,14 +29666,14 @@ const classtable_elt_t VFT_HashMapNode[54] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: HashMapNode < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ArrayCapable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10475,7 +29681,6 @@ const classtable_elt_t VFT_HashMapNode[54] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10483,50 +29688,58 @@ const classtable_elt_t VFT_HashMapNode[54] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: HashMapNode < HashNode: superclass init_table position */},
-  {(bigint) hash___HashMapNode___key},
-  {(bigint) hash___HashNode___next_item},
-  {(bigint) hash___HashNode___next_item__eq},
-  {(bigint) hash___HashNode___prev_item},
-  {(bigint) hash___HashNode___prev_item__eq},
-  {(bigint) 1 /* 46: HashMapNode < Couple: superclass init_table position */},
-  {(bigint) abstract_collection___Couple___first},
-  {(bigint) abstract_collection___Couple___first__eq},
-  {(bigint) abstract_collection___Couple___second},
-  {(bigint) abstract_collection___Couple___second__eq},
-  {(bigint) abstract_collection___Couple___init},
-  {(bigint) 3 /* 52: HashMapNode < HashMapNode: superclass init_table position */},
-  {(bigint) hash___HashMapNode___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ArrayCapable < ArrayCapable: superclass init_table position */},
+  {(bigint) array___ArrayCapable___calloc_array},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute HashMapNode::_next_item */
-/* 2: Attribute HashMapNode::_prev_item */
-/* 3: Attribute HashMapNode::_first */
-/* 4: Attribute HashMapNode::_second */
-val_t NEW_HashMapNode(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_HashMapNode;
-  ATTR_hash___HashNode____next_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashNode____prev_item(obj) =  NIT_NULL /*null*/;
-  return OBJ2VAL(obj);
-}
-val_t NEW_hash___HashMapNode___init(val_t p0, val_t p1) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_HashMapNode();
-  hash___HashMapNode___init(self, p0, p1, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ArrayCapable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ArrayCapable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_HashMapIterator[50] = {
-  {(bigint) 3195 /* 0: Identity */},
-  {(bigint) 3 /* 1: HashMapIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: HashMapIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2547 /* 3: HashMapIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3195 /* 4: HashMapIterator < HashMapIterator: superclass typecheck marker */},
+val_t NEW_ArrayCapable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ArrayCapable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ArrayCapable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ArrayCapable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_NativeArray[49] = {
+  {(bigint) 83 /* 0: Identity */},
+  {(bigint) -1 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: NativeArray < Object: superclass typecheck marker */},
+  {(bigint) 83 /* 3: NativeArray < NativeArray: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10535,14 +29748,14 @@ const classtable_elt_t VFT_HashMapIterator[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: HashMapIterator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: NativeArray < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10550,7 +29763,6 @@ const classtable_elt_t VFT_HashMapIterator[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10558,58 +29770,54 @@ const classtable_elt_t VFT_HashMapIterator[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: HashMapIterator < Iterator: superclass init_table position */},
-  {(bigint) hash___HashMapIterator___item},
-  {(bigint) hash___HashMapIterator___next},
-  {(bigint) hash___HashMapIterator___is_ok},
-  {(bigint) 2 /* 45: HashMapIterator < MapIterator: superclass init_table position */},
-  {(bigint) hash___HashMapIterator___key},
-  {(bigint) hash___HashMapIterator___item__eq},
-  {(bigint) 3 /* 48: HashMapIterator < HashMapIterator: superclass init_table position */},
-  {(bigint) hash___HashMapIterator___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: NativeArray < NativeArray: superclass init_table position */},
+  {(bigint) array___NativeArray_____bra},
+  {(bigint) array___NativeArray_____braeq},
+  {(bigint) array___NativeArray___copy_to},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute HashMapIterator::_map */
-/* 2: Attribute HashMapIterator::_node */
-val_t NEW_HashMapIterator(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_HashMapIterator;
-  return OBJ2VAL(obj);
-}
-val_t NEW_hash___HashMapIterator___init(val_t p0) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_HashMapIterator();
-  hash___HashMapIterator___init(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+val_t NEW_NativeArray(size_t length, size_t size) {
+  Nit_NativeArray array;
+  array = (Nit_NativeArray)alloc(sizeof(struct Nit_NativeArray) + ((length - 1) * size));
+  array->vft = (classtable_elt_t*)VFT_NativeArray;
+  array->object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  array->size = length;
+  return OBJ2VAL(array);
 }
-const classtable_elt_t VFT_HashSet[73] = {
-  {(bigint) 3635 /* 0: Identity */},
-  {(bigint) 3 /* 1: HashSet < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 2: HashSet < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 2627 /* 3: HashSet < HashCollection: superclass typecheck marker */},
-  {(bigint) 3275 /* 4: HashSet < Set: superclass typecheck marker */},
-  {(bigint) 163 /* 5: HashSet < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: HashSet < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: HashSet < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3635 /* 8: HashSet < HashSet: superclass typecheck marker */},
+const classtable_elt_t VFT_AbstractSorter[52] = {
+  {(bigint) 231 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AbstractSorter < Object: superclass typecheck marker */},
+  {(bigint) 231 /* 3: AbstractSorter < AbstractSorter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: HashSet < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AbstractSorter < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10617,7 +29825,6 @@ const classtable_elt_t VFT_HashSet[73] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10625,76 +29832,82 @@ const classtable_elt_t VFT_HashSet[73] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 5 /* 40: HashSet < ArrayCapable: superclass init_table position */},
-  {(bigint) array___ArrayCapable___calloc_array},
-  {(bigint) 6 /* 42: HashSet < HashCollection: superclass init_table position */},
-  {(bigint) hash___HashCollection___first_item},
-  {(bigint) hash___HashCollection___index_at},
-  {(bigint) hash___HashCollection___store},
-  {(bigint) hash___HashCollection___remove_index},
-  {(bigint) hash___HashCollection___raz},
-  {(bigint) hash___HashCollection___enlarge},
-  {(bigint) 4 /* 49: HashSet < Set: superclass init_table position */},
-  {(bigint) 7 /* 50: HashSet < HashSet: superclass init_table position */},
-  {(bigint) hash___HashSet___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) string___Collection___join},
-  {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: HashSet < Collection: superclass init_table position */},
-  {(bigint) hash___HashSet___iterator},
-  {(bigint) hash___HashSet___is_empty},
-  {(bigint) hash___HashCollection___length},
-  {(bigint) hash___HashSet___has},
-  {(bigint) abstract_collection___Set___has_only},
-  {(bigint) abstract_collection___Set___count},
-  {(bigint) hash___HashSet___first},
-  {(bigint) 2 /* 66: HashSet < RemovableCollection: superclass init_table position */},
-  {(bigint) hash___HashSet___clear},
-  {(bigint) hash___HashSet___remove},
-  {(bigint) abstract_collection___Set___remove_all},
-  {(bigint) 3 /* 70: HashSet < SimpleCollection: superclass init_table position */},
-  {(bigint) hash___HashSet___add},
-  {(bigint) abstract_collection___SimpleCollection___add_all},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: AbstractSorter < AbstractSorter: superclass init_table position */},
+  {(bigint) sorter___AbstractSorter___compare},
+  {(bigint) sorter___AbstractSorter___sort},
+  {(bigint) sorter___AbstractSorter___sub_sort},
+  {(bigint) sorter___AbstractSorter___quick_sort},
+  {(bigint) sorter___AbstractSorter___bubble_sort},
+  {(bigint) sorter___AbstractSorter___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute HashSet::_array */
-/* 2: Attribute HashSet::_capacity */
-/* 3: Attribute HashSet::_length */
-/* 4: Attribute HashSet::_first_item */
-/* 5: Attribute HashSet::_last_item */
-/* 6: Attribute HashSet::_last_accessed_index */
-/* 7: Attribute HashSet::_last_accessed_key */
-val_t NEW_HashSet(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_HashSet;
-  ATTR_hash___HashCollection____array(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____capacity(obj) =  TAG_Int(0);
-  ATTR_hash___HashCollection____length(obj) =  TAG_Int(0);
-  ATTR_hash___HashCollection____first_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____last_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashCollection____last_accessed_index(obj) = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ATTR_hash___HashCollection____last_accessed_key(obj) =  NIT_NULL /*null*/;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+void INIT_ATTRIBUTES__AbstractSorter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AbstractSorter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_hash___HashSet___init() {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_HashSet();
-  hash___HashSet___init(self, init_table);
-  return self;
+val_t NEW_AbstractSorter(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_AbstractSorter;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AbstractSorter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AbstractSorter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractSorter_sorter___AbstractSorter___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AbstractSorter_sorter___AbstractSorter___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AbstractSorter();
+  INIT_ATTRIBUTES__AbstractSorter(fra.me.REG[0]);
+  sorter___AbstractSorter___init(fra.me.REG[0], init_table);
+  CHECKNEW_AbstractSorter(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_HashSetNode[49] = {
-  {(bigint) 2615 /* 0: Identity */},
-  {(bigint) 3 /* 1: HashSetNode < Object: superclass typecheck marker */},
-  {(bigint) 139 /* 2: HashSetNode < HashNode: superclass typecheck marker */},
-  {(bigint) 2615 /* 3: HashSetNode < HashSetNode: superclass typecheck marker */},
+const classtable_elt_t VFT_ComparableSorter[54] = {
+  {(bigint) 5267 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ComparableSorter < Object: superclass typecheck marker */},
+  {(bigint) 231 /* 3: ComparableSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 5267 /* 4: ComparableSorter < ComparableSorter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10704,14 +29917,12 @@ const classtable_elt_t VFT_HashSetNode[49] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: HashSetNode < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ComparableSorter < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10719,7 +29930,6 @@ const classtable_elt_t VFT_HashSetNode[49] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10727,43 +29937,86 @@ const classtable_elt_t VFT_HashSetNode[49] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: HashSetNode < HashNode: superclass init_table position */},
-  {(bigint) hash___HashSetNode___key},
-  {(bigint) hash___HashNode___next_item},
-  {(bigint) hash___HashNode___next_item__eq},
-  {(bigint) hash___HashNode___prev_item},
-  {(bigint) hash___HashNode___prev_item__eq},
-  {(bigint) 2 /* 46: HashSetNode < HashSetNode: superclass init_table position */},
-  {(bigint) hash___HashSetNode___key__eq},
-  {(bigint) hash___HashSetNode___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ComparableSorter < AbstractSorter: superclass init_table position */},
+  {(bigint) sorter___ComparableSorter___compare},
+  {(bigint) sorter___AbstractSorter___sort},
+  {(bigint) sorter___AbstractSorter___sub_sort},
+  {(bigint) sorter___AbstractSorter___quick_sort},
+  {(bigint) sorter___AbstractSorter___bubble_sort},
+  {(bigint) sorter___AbstractSorter___init},
+  {(bigint) 2 /* 52: ComparableSorter < ComparableSorter: superclass init_table position */},
+  {(bigint) sorter___ComparableSorter___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute HashSetNode::_next_item */
-/* 2: Attribute HashSetNode::_prev_item */
-/* 3: Attribute HashSetNode::_key */
-val_t NEW_HashSetNode(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ComparableSorter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ComparableSorter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ComparableSorter(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_HashSetNode;
-  ATTR_hash___HashNode____next_item(obj) =  NIT_NULL /*null*/;
-  ATTR_hash___HashNode____prev_item(obj) =  NIT_NULL /*null*/;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ComparableSorter;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_hash___HashSetNode___init(val_t p0) {
+void CHECKNEW_ComparableSorter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ComparableSorter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ComparableSorter_sorter___ComparableSorter___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_HashSetNode();
-  hash___HashSetNode___init(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 96;
+  fra.me.meth = LOCATE_NEW_ComparableSorter_sorter___ComparableSorter___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ComparableSorter();
+  /* ./../lib/standard//collection//sorter.nit:96 */
+  INIT_ATTRIBUTES__ComparableSorter(fra.me.REG[0]);
+  sorter___ComparableSorter___init(fra.me.REG[0], init_table);
+  CHECKNEW_ComparableSorter(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_HashSetIterator[47] = {
-  {(bigint) 2619 /* 0: Identity */},
-  {(bigint) 3 /* 1: HashSetIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: HashSetIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2619 /* 3: HashSetIterator < HashSetIterator: superclass typecheck marker */},
+const classtable_elt_t VFT_HashCollection[70] = {
+  {(bigint) 5227 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: HashCollection < Object: superclass typecheck marker */},
+  {(bigint) 227 /* 3: HashCollection < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 5227 /* 4: HashCollection < HashCollection: superclass typecheck marker */},
+  {(bigint) 219 /* 5: HashCollection < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10773,14 +30026,11 @@ const classtable_elt_t VFT_HashSetIterator[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: HashSetIterator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: HashCollection < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10788,7 +30038,6 @@ const classtable_elt_t VFT_HashSetIterator[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10796,37 +30045,156 @@ const classtable_elt_t VFT_HashSetIterator[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: HashSetIterator < Iterator: superclass init_table position */},
-  {(bigint) hash___HashSetIterator___item},
-  {(bigint) hash___HashSetIterator___next},
-  {(bigint) hash___HashSetIterator___is_ok},
-  {(bigint) 2 /* 45: HashSetIterator < HashSetIterator: superclass init_table position */},
-  {(bigint) hash___HashSetIterator___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: HashCollection < ArrayCapable: superclass init_table position */},
+  {(bigint) array___ArrayCapable___calloc_array},
+  {(bigint) 3 /* 47: HashCollection < HashCollection: superclass init_table position */},
+  {(bigint) hash_collection___HashCollection___first_item},
+  {(bigint) hash_collection___HashCollection___index_at},
+  {(bigint) hash_collection___HashCollection___store},
+  {(bigint) hash_collection___HashCollection___remove_index},
+  {(bigint) hash_collection___HashCollection___raz},
+  {(bigint) hash_collection___HashCollection___enlarge},
+  {(bigint) hash_collection___HashCollection___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: HashCollection < Collection: superclass init_table position */},
+  {(bigint) abstract_collection___Collection___iterator},
+  {(bigint) abstract_collection___Collection___is_empty},
+  {(bigint) hash_collection___HashCollection___length},
+  {(bigint) abstract_collection___Collection___has},
+  {(bigint) abstract_collection___Collection___has_only},
+  {(bigint) abstract_collection___Collection___count},
+  {(bigint) abstract_collection___Collection___first},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute HashSetIterator::_set */
-/* 2: Attribute HashSetIterator::_node */
-val_t NEW_HashSetIterator(void) {
+/* 1: Object_id */
+/* 2: Attribute HashCollection::_array */
+/* 3: Attribute HashCollection::_capacity */
+/* 4: Attribute HashCollection::_length */
+/* 5: Attribute HashCollection::_first_item */
+/* 6: Attribute HashCollection::_last_item */
+/* 7: Attribute HashCollection::_last_accessed_index */
+/* 8: Attribute HashCollection::_last_accessed_key */
+void INIT_ATTRIBUTES__HashCollection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__HashCollection;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:23 */
+  ATTR_hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//hash_collection.nit:24 */
+  ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//hash_collection.nit:25 */
+  ATTR_hash_collection___HashCollection____length(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:27 */
+  ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:28 */
+  ATTR_hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(1);
+  REGB0 = TAG_Int(-UNTAG_Int(REGB0));
+  /* ./../lib/standard//collection//hash_collection.nit:30 */
+  ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:33 */
+  ATTR_hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashCollection(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_HashSetIterator;
-  return OBJ2VAL(obj);
-}
-val_t NEW_hash___HashSetIterator___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_HashSetIterator();
-  hash___HashSetIterator___init(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_Symbol[43] = {
-  {(bigint) 27 /* 0: Identity */},
-  {(bigint) 3 /* 1: Symbol < Object: superclass typecheck marker */},
-  {(bigint) 27 /* 2: Symbol < Symbol: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_HashCollection;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_HashCollection(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_HashCollection;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_capacity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_accessed_index");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashCollection_hash_collection___HashCollection___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_HashCollection_hash_collection___HashCollection___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_HashCollection();
+  INIT_ATTRIBUTES__HashCollection(fra.me.REG[0]);
+  hash_collection___HashCollection___init(fra.me.REG[0], init_table);
+  CHECKNEW_HashCollection(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_HashNode[52] = {
+  {(bigint) 191 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: HashNode < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 3: HashNode < HashNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10837,14 +30205,12 @@ const classtable_elt_t VFT_Symbol[43] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) symbol___Symbol___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Symbol < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: HashNode < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10852,7 +30218,6 @@ const classtable_elt_t VFT_Symbol[43] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10860,50 +30225,108 @@ const classtable_elt_t VFT_Symbol[43] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) environ___Symbol___environ},
-  {(bigint) 1 /* 41: Symbol < Symbol: superclass init_table position */},
-  {(bigint) symbol___Symbol___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: HashNode < HashNode: superclass init_table position */},
+  {(bigint) hash_collection___HashNode___key},
+  {(bigint) hash_collection___HashNode___next_item},
+  {(bigint) hash_collection___HashNode___next_item__eq},
+  {(bigint) hash_collection___HashNode___prev_item},
+  {(bigint) hash_collection___HashNode___prev_item__eq},
+  {(bigint) hash_collection___HashNode___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Symbol::_string */
-val_t NEW_Symbol(void) {
+/* 1: Object_id */
+/* 2: Attribute HashNode::_next_item */
+/* 3: Attribute HashNode::_prev_item */
+void INIT_ATTRIBUTES__HashNode(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__HashNode;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:178 */
+  ATTR_hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:179 */
+  ATTR_hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashNode(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_Symbol;
-  return OBJ2VAL(obj);
-}
-val_t NEW_symbol___Symbol___init(val_t p0) {
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_HashNode;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_HashNode(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_HashNode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashNode_hash_collection___HashNode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[2] = {0, 0};
-  val_t self = NEW_Symbol();
-  symbol___Symbol___init(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_HashNode_hash_collection___HashNode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_HashNode();
+  INIT_ATTRIBUTES__HashNode(fra.me.REG[0]);
+  hash_collection___HashNode___init(fra.me.REG[0], init_table);
+  CHECKNEW_HashNode(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_AbstractSorter[46] = {
-  {(bigint) 175 /* 0: Identity */},
-  {(bigint) 3 /* 1: AbstractSorter < Object: superclass typecheck marker */},
-  {(bigint) 175 /* 2: AbstractSorter < AbstractSorter: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_HashMap[88] = {
+  {(bigint) 6407 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: HashMap < Object: superclass typecheck marker */},
+  {(bigint) 227 /* 3: HashMap < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 5227 /* 4: HashMap < HashCollection: superclass typecheck marker */},
+  {(bigint) 219 /* 5: HashMap < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: HashMap < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: HashMap < MapRead: superclass typecheck marker */},
+  {(bigint) 6091 /* 8: HashMap < CoupleMap: superclass typecheck marker */},
+  {(bigint) 6407 /* 9: HashMap < HashMap: superclass typecheck marker */},
+  {(bigint) 5743 /* 10: HashMap < Map: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AbstractSorter < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: HashMap < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10911,7 +30334,6 @@ const classtable_elt_t VFT_AbstractSorter[46] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10919,29 +30341,177 @@ const classtable_elt_t VFT_AbstractSorter[46] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: AbstractSorter < AbstractSorter: superclass init_table position */},
-  {(bigint) sorter___AbstractSorter___compare},
-  {(bigint) sorter___AbstractSorter___sort},
-  {(bigint) sorter___AbstractSorter___sub_sort},
-  {(bigint) sorter___AbstractSorter___quick_sort},
-  {(bigint) sorter___AbstractSorter___bubble_sort},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 6 /* 45: HashMap < ArrayCapable: superclass init_table position */},
+  {(bigint) array___ArrayCapable___calloc_array},
+  {(bigint) 7 /* 47: HashMap < HashCollection: superclass init_table position */},
+  {(bigint) hash_collection___HashCollection___first_item},
+  {(bigint) hash_collection___HashCollection___index_at},
+  {(bigint) hash_collection___HashCollection___store},
+  {(bigint) hash_collection___HashCollection___remove_index},
+  {(bigint) hash_collection___HashCollection___raz},
+  {(bigint) hash_collection___HashCollection___enlarge},
+  {(bigint) hash_collection___HashCollection___init},
+  {(bigint) 5 /* 55: HashMap < CoupleMap: superclass init_table position */},
+  {(bigint) hash_collection___HashMap___couple_at},
+  {(bigint) 8 /* 57: HashMap < HashMap: superclass init_table position */},
+  {(bigint) hash_collection___HashMap___init},
+  {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: HashMap < Collection: superclass init_table position */},
+  {(bigint) hash_collection___HashMap___iterator},
+  {(bigint) hash_collection___HashMap___is_empty},
+  {(bigint) hash_collection___HashCollection___length},
+  {(bigint) hash_collection___HashMap___has},
+  {(bigint) hash_collection___HashMap___has_only},
+  {(bigint) hash_collection___HashMap___count},
+  {(bigint) hash_collection___HashMap___first},
+  {(bigint) 2 /* 70: HashMap < RemovableCollection: superclass init_table position */},
+  {(bigint) hash_collection___HashMap___clear},
+  {(bigint) hash_collection___HashMap___remove},
+  {(bigint) abstract_collection___RemovableCollection___remove_all},
+  {(bigint) 3 /* 74: HashMap < MapRead: superclass init_table position */},
+  {(bigint) abstract_collection___CoupleMap_____bra},
+  {(bigint) abstract_collection___CoupleMap___has_key},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) string___Map___map_join},
+  {(bigint) 4 /* 84: HashMap < Map: superclass init_table position */},
+  {(bigint) hash_collection___HashMap_____braeq},
+  {(bigint) hash_collection___HashMap___remove_at},
+  {(bigint) abstract_collection___Map___recover_with},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_AbstractSorter(void) {
+/* 1: Object_id */
+/* 2: Attribute HashMap::_array */
+/* 3: Attribute HashMap::_capacity */
+/* 4: Attribute HashMap::_length */
+/* 5: Attribute HashMap::_first_item */
+/* 6: Attribute HashMap::_last_item */
+/* 7: Attribute HashMap::_last_accessed_index */
+/* 8: Attribute HashMap::_last_accessed_key */
+void INIT_ATTRIBUTES__HashMap(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__HashMap;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:23 */
+  ATTR_hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//hash_collection.nit:24 */
+  ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//hash_collection.nit:25 */
+  ATTR_hash_collection___HashCollection____length(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:27 */
+  ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:28 */
+  ATTR_hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(1);
+  REGB0 = TAG_Int(-UNTAG_Int(REGB0));
+  /* ./../lib/standard//collection//hash_collection.nit:30 */
+  ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:33 */
+  ATTR_hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashMap(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_AbstractSorter;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_HashMap;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_HashMap(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_HashMap;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_capacity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_accessed_index");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashMap_hash_collection___HashMap___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 262;
+  fra.me.meth = LOCATE_NEW_HashMap_hash_collection___HashMap___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_HashMap();
+  /* ./../lib/standard//collection//hash_collection.nit:262 */
+  INIT_ATTRIBUTES__HashMap(fra.me.REG[0]);
+  hash_collection___HashMap___init(fra.me.REG[0], init_table);
+  CHECKNEW_HashMap(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ComparableSorter[48] = {
-  {(bigint) 2659 /* 0: Identity */},
-  {(bigint) 3 /* 1: ComparableSorter < Object: superclass typecheck marker */},
-  {(bigint) 175 /* 2: ComparableSorter < AbstractSorter: superclass typecheck marker */},
-  {(bigint) 2659 /* 3: ComparableSorter < ComparableSorter: superclass typecheck marker */},
+const classtable_elt_t VFT_HashMapNode[60] = {
+  {(bigint) 5223 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: HashMapNode < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 3: HashMapNode < HashNode: superclass typecheck marker */},
+  {(bigint) 203 /* 4: HashMapNode < Couple: superclass typecheck marker */},
+  {(bigint) 5223 /* 5: HashMapNode < HashMapNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10951,14 +30521,11 @@ const classtable_elt_t VFT_ComparableSorter[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ComparableSorter < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: HashMapNode < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -10966,7 +30533,6 @@ const classtable_elt_t VFT_ComparableSorter[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -10974,37 +30540,110 @@ const classtable_elt_t VFT_ComparableSorter[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ComparableSorter < AbstractSorter: superclass init_table position */},
-  {(bigint) sorter___ComparableSorter___compare},
-  {(bigint) sorter___AbstractSorter___sort},
-  {(bigint) sorter___AbstractSorter___sub_sort},
-  {(bigint) sorter___AbstractSorter___quick_sort},
-  {(bigint) sorter___AbstractSorter___bubble_sort},
-  {(bigint) 2 /* 46: ComparableSorter < ComparableSorter: superclass init_table position */},
-  {(bigint) sorter___ComparableSorter___init},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_ComparableSorter(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: HashMapNode < HashNode: superclass init_table position */},
+  {(bigint) hash_collection___HashMapNode___key},
+  {(bigint) hash_collection___HashNode___next_item},
+  {(bigint) hash_collection___HashNode___next_item__eq},
+  {(bigint) hash_collection___HashNode___prev_item},
+  {(bigint) hash_collection___HashNode___prev_item__eq},
+  {(bigint) hash_collection___HashNode___init},
+  {(bigint) 1 /* 52: HashMapNode < Couple: superclass init_table position */},
+  {(bigint) abstract_collection___Couple___first},
+  {(bigint) abstract_collection___Couple___first__eq},
+  {(bigint) abstract_collection___Couple___second},
+  {(bigint) abstract_collection___Couple___second__eq},
+  {(bigint) abstract_collection___Couple___init},
+  {(bigint) 3 /* 58: HashMapNode < HashMapNode: superclass init_table position */},
+  {(bigint) hash_collection___HashMapNode___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute HashMapNode::_next_item */
+/* 3: Attribute HashMapNode::_prev_item */
+/* 4: Attribute HashMapNode::_first */
+/* 5: Attribute HashMapNode::_second */
+void INIT_ATTRIBUTES__HashMapNode(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__HashMapNode;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:178 */
+  ATTR_hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:179 */
+  ATTR_hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashMapNode(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_ComparableSorter;
-  return OBJ2VAL(obj);
-}
-val_t NEW_sorter___ComparableSorter___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ComparableSorter();
-  sorter___ComparableSorter___init(self, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_HashMapNode;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_HashMapNode(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_HashMapNode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashMapNode_hash_collection___HashMapNode___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 276;
+  fra.me.meth = LOCATE_NEW_HashMapNode_hash_collection___HashMapNode___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_HashMapNode();
+  /* ./../lib/standard//collection//hash_collection.nit:276 */
+  INIT_ATTRIBUTES__HashMapNode(fra.me.REG[2]);
+  hash_collection___HashMapNode___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_HashMapNode(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_IOS[53] = {
-  {(bigint) 135 /* 0: Identity */},
-  {(bigint) 3 /* 1: IOS < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_HashMapIterator[54] = {
+  {(bigint) 5871 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: HashMapIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: HashMapIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5115 /* 4: HashMapIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 5871 /* 5: HashMapIterator < HashMapIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 135 /* 3: IOS < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11014,14 +30653,10 @@ const classtable_elt_t VFT_IOS[53] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IOS < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: HashMapIterator < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11029,7 +30664,6 @@ const classtable_elt_t VFT_IOS[53] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11037,38 +30671,104 @@ const classtable_elt_t VFT_IOS[53] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: IOS < IOS: superclass init_table position */},
-  {(bigint) stream___IOS___close},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_IOS(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) array___Iterator___to_a},
+  {(bigint) 1 /* 46: HashMapIterator < Iterator: superclass init_table position */},
+  {(bigint) hash_collection___HashMapIterator___item},
+  {(bigint) hash_collection___HashMapIterator___next},
+  {(bigint) hash_collection___HashMapIterator___is_ok},
+  {(bigint) 2 /* 50: HashMapIterator < MapIterator: superclass init_table position */},
+  {(bigint) hash_collection___HashMapIterator___key},
+  {(bigint) 3 /* 52: HashMapIterator < HashMapIterator: superclass init_table position */},
+  {(bigint) hash_collection___HashMapIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute HashMapIterator::_map */
+/* 3: Attribute HashMapIterator::_node */
+void INIT_ATTRIBUTES__HashMapIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__HashMapIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashMapIterator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_IOS;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_HashMapIterator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_HashMapIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_HashMapIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashMapIterator____map(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_map");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashMapIterator_hash_collection___HashMapIterator___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 317;
+  fra.me.meth = LOCATE_NEW_HashMapIterator_hash_collection___HashMapIterator___init;
+  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;
+  fra.me.REG[1] = NEW_HashMapIterator();
+  /* ./../lib/standard//collection//hash_collection.nit:317 */
+  INIT_ATTRIBUTES__HashMapIterator(fra.me.REG[1]);
+  hash_collection___HashMapIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_HashMapIterator(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_IStream[63] = {
-  {(bigint) 2611 /* 0: Identity */},
-  {(bigint) 3 /* 1: IStream < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 135 /* 3: IStream < IOS: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2611 /* 5: IStream < IStream: superclass typecheck marker */},
+const classtable_elt_t VFT_HashSet[80] = {
+  {(bigint) 6403 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: HashSet < Object: superclass typecheck marker */},
+  {(bigint) 227 /* 3: HashSet < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 5227 /* 4: HashSet < HashCollection: superclass typecheck marker */},
+  {(bigint) 219 /* 5: HashSet < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: HashSet < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 6035 /* 7: HashSet < Set: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: HashSet < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 6403 /* 9: HashSet < HashSet: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11076,14 +30776,9 @@ const classtable_elt_t VFT_IStream[63] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IStream < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: HashSet < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11091,7 +30786,6 @@ const classtable_elt_t VFT_IStream[63] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11099,47 +30793,169 @@ const classtable_elt_t VFT_IStream[63] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 5 /* 45: HashSet < ArrayCapable: superclass init_table position */},
+  {(bigint) array___ArrayCapable___calloc_array},
+  {(bigint) 6 /* 47: HashSet < HashCollection: superclass init_table position */},
+  {(bigint) hash_collection___HashCollection___first_item},
+  {(bigint) hash_collection___HashCollection___index_at},
+  {(bigint) hash_collection___HashCollection___store},
+  {(bigint) hash_collection___HashCollection___remove_index},
+  {(bigint) hash_collection___HashCollection___raz},
+  {(bigint) hash_collection___HashCollection___enlarge},
+  {(bigint) hash_collection___HashCollection___init},
+  {(bigint) 4 /* 55: HashSet < Set: superclass init_table position */},
+  {(bigint) 7 /* 56: HashSet < HashSet: superclass init_table position */},
+  {(bigint) hash_collection___HashSet___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: HashSet < Collection: superclass init_table position */},
+  {(bigint) hash_collection___HashSet___iterator},
+  {(bigint) hash_collection___HashSet___is_empty},
+  {(bigint) hash_collection___HashCollection___length},
+  {(bigint) hash_collection___HashSet___has},
+  {(bigint) abstract_collection___Set___has_only},
+  {(bigint) abstract_collection___Set___count},
+  {(bigint) hash_collection___HashSet___first},
+  {(bigint) 2 /* 70: HashSet < RemovableCollection: superclass init_table position */},
+  {(bigint) hash_collection___HashSet___clear},
+  {(bigint) hash_collection___HashSet___remove},
+  {(bigint) abstract_collection___Set___remove_all},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: IStream < IOS: superclass init_table position */},
-  {(bigint) stream___IOS___close},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2 /* 56: IStream < IStream: superclass init_table position */},
-  {(bigint) stream___IStream___read_char},
-  {(bigint) stream___IStream___read},
-  {(bigint) stream___IStream___read_line},
-  {(bigint) stream___IStream___read_all},
-  {(bigint) stream___IStream___append_line_to},
-  {(bigint) stream___IStream___eof},
+  {(bigint) 3 /* 77: HashSet < SimpleCollection: superclass init_table position */},
+  {(bigint) hash_collection___HashSet___add},
+  {(bigint) abstract_collection___SimpleCollection___add_all},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_IStream(void) {
+/* 1: Object_id */
+/* 2: Attribute HashSet::_array */
+/* 3: Attribute HashSet::_capacity */
+/* 4: Attribute HashSet::_length */
+/* 5: Attribute HashSet::_first_item */
+/* 6: Attribute HashSet::_last_item */
+/* 7: Attribute HashSet::_last_accessed_index */
+/* 8: Attribute HashSet::_last_accessed_key */
+void INIT_ATTRIBUTES__HashSet(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__HashSet;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:23 */
+  ATTR_hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//hash_collection.nit:24 */
+  ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//hash_collection.nit:25 */
+  ATTR_hash_collection___HashCollection____length(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:27 */
+  ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:28 */
+  ATTR_hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(1);
+  REGB0 = TAG_Int(-UNTAG_Int(REGB0));
+  /* ./../lib/standard//collection//hash_collection.nit:30 */
+  ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:33 */
+  ATTR_hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashSet(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_IStream;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_HashSet;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_HashSet(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_HashSet;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_capacity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_accessed_index");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashSet_hash_collection___HashSet___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 358;
+  fra.me.meth = LOCATE_NEW_HashSet_hash_collection___HashSet___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_HashSet();
+  /* ./../lib/standard//collection//hash_collection.nit:358 */
+  INIT_ATTRIBUTES__HashSet(fra.me.REG[0]);
+  hash_collection___HashSet___init(fra.me.REG[0], init_table);
+  CHECKNEW_HashSet(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_OStream[56] = {
-  {(bigint) 2535 /* 0: Identity */},
-  {(bigint) 3 /* 1: OStream < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_HashSetNode[55] = {
+  {(bigint) 5215 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: HashSetNode < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 3: HashSetNode < HashNode: superclass typecheck marker */},
+  {(bigint) 5215 /* 4: HashSetNode < HashSetNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 135 /* 3: OStream < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: OStream < OStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11148,14 +30964,12 @@ const classtable_elt_t VFT_OStream[56] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OStream < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: HashSetNode < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11163,7 +30977,6 @@ const classtable_elt_t VFT_OStream[56] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11171,10 +30984,100 @@ const classtable_elt_t VFT_OStream[56] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: HashSetNode < HashNode: superclass init_table position */},
+  {(bigint) hash_collection___HashSetNode___key},
+  {(bigint) hash_collection___HashNode___next_item},
+  {(bigint) hash_collection___HashNode___next_item__eq},
+  {(bigint) hash_collection___HashNode___prev_item},
+  {(bigint) hash_collection___HashNode___prev_item__eq},
+  {(bigint) hash_collection___HashNode___init},
+  {(bigint) 2 /* 52: HashSetNode < HashSetNode: superclass init_table position */},
+  {(bigint) hash_collection___HashSetNode___key__eq},
+  {(bigint) hash_collection___HashSetNode___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute HashSetNode::_next_item */
+/* 3: Attribute HashSetNode::_prev_item */
+/* 4: Attribute HashSetNode::_key */
+void INIT_ATTRIBUTES__HashSetNode(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__HashSetNode;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:178 */
+  ATTR_hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//collection//hash_collection.nit:179 */
+  ATTR_hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashSetNode(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_HashSetNode;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_HashSetNode(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_HashSetNode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashSetNode_hash_collection___HashSetNode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 372;
+  fra.me.meth = LOCATE_NEW_HashSetNode_hash_collection___HashSetNode___init;
+  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;
+  fra.me.REG[1] = NEW_HashSetNode();
+  /* ./../lib/standard//collection//hash_collection.nit:372 */
+  INIT_ATTRIBUTES__HashSetNode(fra.me.REG[1]);
+  hash_collection___HashSetNode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_HashSetNode(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_HashSetIterator[52] = {
+  {(bigint) 5219 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: HashSetIterator < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 3: HashSetIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 5219 /* 4: HashSetIterator < HashSetIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11186,49 +31089,137 @@ const classtable_elt_t VFT_OStream[56] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: OStream < IOS: superclass init_table position */},
-  {(bigint) stream___IOS___close},
-  {(bigint) 2 /* 53: OStream < OStream: superclass init_table position */},
-  {(bigint) stream___OStream___write},
-  {(bigint) stream___OStream___is_writable},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_OStream(void) {
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: HashSetIterator < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) array___Iterator___to_a},
+  {(bigint) 1 /* 46: HashSetIterator < Iterator: superclass init_table position */},
+  {(bigint) hash_collection___HashSetIterator___item},
+  {(bigint) hash_collection___HashSetIterator___next},
+  {(bigint) hash_collection___HashSetIterator___is_ok},
+  {(bigint) 2 /* 50: HashSetIterator < HashSetIterator: superclass init_table position */},
+  {(bigint) hash_collection___HashSetIterator___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute HashSetIterator::_set */
+/* 3: Attribute HashSetIterator::_node */
+void INIT_ATTRIBUTES__HashSetIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__HashSetIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashSetIterator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_OStream;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_HashSetIterator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_BufferedIStream[67] = {
-  {(bigint) 3235 /* 0: Identity */},
-  {(bigint) 3 /* 1: BufferedIStream < Object: superclass typecheck marker */},
+void CHECKNEW_HashSetIterator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_HashSetIterator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_hash_collection___HashSetIterator____set(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_set");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_HashSetIterator_hash_collection___HashSetIterator___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 400;
+  fra.me.meth = LOCATE_NEW_HashSetIterator_hash_collection___HashSetIterator___init;
+  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;
+  fra.me.REG[1] = NEW_HashSetIterator();
+  /* ./../lib/standard//collection//hash_collection.nit:400 */
+  INIT_ATTRIBUTES__HashSetIterator(fra.me.REG[1]);
+  hash_collection___HashSetIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_HashSetIterator(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_AbstractString[115] = {
+  {(bigint) 6419 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AbstractString < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 135 /* 3: BufferedIStream < IOS: superclass typecheck marker */},
-  {(bigint) 3235 /* 4: BufferedIStream < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2611 /* 5: BufferedIStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: AbstractString < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5111 /* 7: AbstractString < MapRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5703 /* 9: AbstractString < SequenceRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 6099 /* 12: AbstractString < AbstractArrayRead: superclass typecheck marker */},
+  {(bigint) 6419 /* 13: AbstractString < AbstractString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: BufferedIStream < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AbstractString < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
+  {(bigint) array___AbstractArrayRead_____eqeq},
   {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
+  {(bigint) string___AbstractString___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11236,10 +31227,17 @@ const classtable_elt_t VFT_BufferedIStream[67] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11251,65 +31249,170 @@ const classtable_elt_t VFT_BufferedIStream[67] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: BufferedIStream < IOS: superclass init_table position */},
-  {(bigint) stream___IOS___close},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2 /* 56: BufferedIStream < IStream: superclass init_table position */},
-  {(bigint) stream___BufferedIStream___read_char},
-  {(bigint) stream___BufferedIStream___read},
-  {(bigint) stream___IStream___read_line},
-  {(bigint) stream___BufferedIStream___read_all},
-  {(bigint) stream___BufferedIStream___append_line_to},
-  {(bigint) stream___BufferedIStream___eof},
-  {(bigint) 3 /* 63: BufferedIStream < BufferedIStream: superclass init_table position */},
-  {(bigint) stream___BufferedIStream___fill_buffer},
-  {(bigint) stream___BufferedIStream___end_reached},
-  {(bigint) stream___BufferedIStream___prepare_buffer},
+  {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: AbstractString < Collection: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___iterator},
+  {(bigint) array___AbstractArrayRead___is_empty},
+  {(bigint) array___AbstractArrayRead___length},
+  {(bigint) array___AbstractArrayRead___has},
+  {(bigint) array___AbstractArrayRead___has_only},
+  {(bigint) array___AbstractArrayRead___count},
+  {(bigint) abstract_collection___SequenceRead___first},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 74: AbstractString < MapRead: superclass init_table position */},
+  {(bigint) string___AbstractString_____bra},
+  {(bigint) array___AbstractArrayRead___has_key},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 80: AbstractString < SequenceRead: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___last},
+  {(bigint) array___AbstractArrayRead___index_of},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 96: AbstractString < AbstractArrayRead: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___last_index_of},
+  {(bigint) array___AbstractArrayRead___index_of_from},
+  {(bigint) array___AbstractArrayRead___last_index_of_from},
+  {(bigint) array___AbstractArrayRead___reversed},
+  {(bigint) array___AbstractArrayRead___copy_to},
+  {(bigint) array___AbstractArrayRead___init},
+  {(bigint) 5 /* 103: AbstractString < AbstractString: superclass init_table position */},
+  {(bigint) string___AbstractString___items},
+  {(bigint) string___AbstractString___substring},
+  {(bigint) string___AbstractString___substring_from},
+  {(bigint) string___AbstractString___has_substring},
+  {(bigint) string___AbstractString___has_prefix},
+  {(bigint) string___AbstractString___has_suffix},
+  {(bigint) string___AbstractString___to_i},
+  {(bigint) string___AbstractString___to_hex},
+  {(bigint) string___AbstractString___a_to},
+  {(bigint) string___AbstractString___to_upper},
+  {(bigint) string___AbstractString___to_lower},
 };
 /* 0: Pointer to the classtable */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 3: Attribute BufferedIStream::_buffer */
-/* 4: Attribute BufferedIStream::_buffer_pos */
-val_t NEW_BufferedIStream(void) {
+/* 1: Object_id */
+/* 2: Attribute AbstractString::_length */
+/* 3: Attribute AbstractString::_items */
+void INIT_ATTRIBUTES__AbstractString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AbstractString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:23 */
+  ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractString(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_BufferedIStream;
-  ATTR_stream___BufferedIStream____buffer_pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_AbstractString;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AbstractString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AbstractString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_items");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractString_array___AbstractArrayRead___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AbstractString_array___AbstractArrayRead___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AbstractString();
+  INIT_ATTRIBUTES__AbstractString(fra.me.REG[0]);
+  array___AbstractArrayRead___init(fra.me.REG[0], init_table);
+  CHECKNEW_AbstractString(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_IOStream[70] = {
-  {(bigint) 3191 /* 0: Identity */},
-  {(bigint) 3 /* 1: IOStream < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_String[135] = {
+  {(bigint) 6555 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: String < Object: superclass typecheck marker */},
+  {(bigint) 59 /* 3: String < Pattern: superclass typecheck marker */},
+  {(bigint) 211 /* 4: String < Comparable: superclass typecheck marker */},
+  {(bigint) 219 /* 5: String < Collection: superclass typecheck marker */},
+  {(bigint) 6555 /* 6: String < String: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: String < MapRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 135 /* 3: IOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: IOStream < OStream: superclass typecheck marker */},
-  {(bigint) 2611 /* 5: IOStream < IStream: superclass typecheck marker */},
+  {(bigint) 5703 /* 9: String < SequenceRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3191 /* 8: IOStream < IOStream: superclass typecheck marker */},
+  {(bigint) 6099 /* 12: String < AbstractArrayRead: superclass typecheck marker */},
+  {(bigint) 6419 /* 13: String < AbstractString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IOStream < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: String < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
+  {(bigint) string___String_____eqeq},
   {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
+  {(bigint) string___AbstractString___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11317,78 +31420,238 @@ const classtable_elt_t VFT_IOStream[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___String___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) string___String___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 7 /* 45: String < Pattern: superclass init_table position */},
+  {(bigint) string_search___String___search_index_in},
+  {(bigint) string_search___String___search_in},
+  {(bigint) string_search___Pattern___search_all_in},
+  {(bigint) string_search___Pattern___split_in},
+  {(bigint) string_search___Pattern___init},
+  {(bigint) 1 /* 51: String < Comparable: superclass init_table position */},
+  {(bigint) string___String_____l},
+  {(bigint) kernel___Comparable_____leq},
+  {(bigint) kernel___Comparable_____geq},
+  {(bigint) kernel___Comparable_____g},
+  {(bigint) kernel___Comparable_____leqg},
+  {(bigint) kernel___Comparable___is_between},
+  {(bigint) kernel___Comparable___max},
+  {(bigint) kernel___Comparable___min},
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 2 /* 62: String < Collection: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___iterator},
+  {(bigint) array___AbstractArrayRead___is_empty},
+  {(bigint) array___AbstractArrayRead___length},
+  {(bigint) array___AbstractArrayRead___has},
+  {(bigint) array___AbstractArrayRead___has_only},
+  {(bigint) array___AbstractArrayRead___count},
+  {(bigint) abstract_collection___SequenceRead___first},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 3 /* 74: String < MapRead: superclass init_table position */},
+  {(bigint) string___AbstractString_____bra},
+  {(bigint) array___AbstractArrayRead___has_key},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 4 /* 80: String < SequenceRead: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___last},
+  {(bigint) array___AbstractArrayRead___index_of},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: IOStream < IOS: superclass init_table position */},
-  {(bigint) stream___IOS___close},
-  {(bigint) 3 /* 53: IOStream < OStream: superclass init_table position */},
-  {(bigint) stream___OStream___write},
-  {(bigint) stream___OStream___is_writable},
-  {(bigint) 2 /* 56: IOStream < IStream: superclass init_table position */},
-  {(bigint) stream___IStream___read_char},
-  {(bigint) stream___IStream___read},
-  {(bigint) stream___IStream___read_line},
-  {(bigint) stream___IStream___read_all},
-  {(bigint) stream___IStream___append_line_to},
-  {(bigint) stream___IStream___eof},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 69: IOStream < IOStream: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) 5 /* 96: String < AbstractArrayRead: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___last_index_of},
+  {(bigint) array___AbstractArrayRead___index_of_from},
+  {(bigint) array___AbstractArrayRead___last_index_of_from},
+  {(bigint) array___AbstractArrayRead___reversed},
+  {(bigint) array___AbstractArrayRead___copy_to},
+  {(bigint) array___AbstractArrayRead___init},
+  {(bigint) 6 /* 103: String < AbstractString: superclass init_table position */},
+  {(bigint) string___AbstractString___items},
+  {(bigint) string___AbstractString___substring},
+  {(bigint) string___AbstractString___substring_from},
+  {(bigint) string___AbstractString___has_substring},
+  {(bigint) string___AbstractString___has_prefix},
+  {(bigint) string___AbstractString___has_suffix},
+  {(bigint) string___AbstractString___to_i},
+  {(bigint) string___AbstractString___to_hex},
+  {(bigint) string___AbstractString___a_to},
+  {(bigint) string___AbstractString___to_upper},
+  {(bigint) string___AbstractString___to_lower},
+  {(bigint) symbol___String___to_symbol},
+  {(bigint) 8 /* 116: String < String: superclass init_table position */},
+  {(bigint) string___String___with_native},
+  {(bigint) string___String___from_cstring},
+  {(bigint) string___String___to_cstring},
+  {(bigint) string___String_____plus},
+  {(bigint) string___String_____star},
+  {(bigint) file___String___file_exists},
+  {(bigint) file___String___file_stat},
+  {(bigint) file___String___file_delete},
+  {(bigint) file___String___strip_extension},
+  {(bigint) file___String___basename},
+  {(bigint) file___String___dirname},
+  {(bigint) file___String___file_path},
+  {(bigint) file___String___mkdir},
+  {(bigint) string_search___String___search},
+  {(bigint) string_search___String___search_from},
+  {(bigint) string_search___String___search_all},
+  {(bigint) string_search___String___split_with},
+  {(bigint) string_search___String___split},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_IOStream(void) {
+/* 1: Object_id */
+/* 2: Attribute String::_length */
+/* 3: Attribute String::_items */
+void INIT_ATTRIBUTES__String(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__String;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:23 */
+  ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_String(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_IOStream;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_String;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_String(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_String;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_items");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_String_string___String___with_native(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 167;
+  fra.me.meth = LOCATE_NEW_String_string___String___with_native;
+  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;
+  REGB0 = p1;
+  fra.me.REG[1] = NEW_String();
+  /* ./../lib/standard//string.nit:167 */
+  INIT_ATTRIBUTES__String(fra.me.REG[1]);
+  string___String___with_native(fra.me.REG[1], fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_String(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_String_string___String___from_cstring(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 175;
+  fra.me.meth = LOCATE_NEW_String_string___String___from_cstring;
+  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;
+  fra.me.REG[1] = NEW_String();
+  /* ./../lib/standard//string.nit:175 */
+  INIT_ATTRIBUTES__String(fra.me.REG[1]);
+  string___String___from_cstring(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_String(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_FDStream[53] = {
-  {(bigint) 2639 /* 0: Identity */},
-  {(bigint) 3 /* 1: FDStream < Object: superclass typecheck marker */},
-  {(bigint) 2639 /* 2: FDStream < FDStream: superclass typecheck marker */},
-  {(bigint) 135 /* 3: FDStream < IOS: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_Buffer[121] = {
+  {(bigint) 6559 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Buffer < Object: superclass typecheck marker */},
+  {(bigint) 27 /* 3: Buffer < StringCapable: superclass typecheck marker */},
+  {(bigint) 211 /* 4: Buffer < Comparable: superclass typecheck marker */},
+  {(bigint) 219 /* 5: Buffer < Collection: superclass typecheck marker */},
+  {(bigint) 275 /* 6: Buffer < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 5111 /* 7: Buffer < MapRead: superclass typecheck marker */},
+  {(bigint) 5699 /* 8: Buffer < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 5703 /* 9: Buffer < SequenceRead: superclass typecheck marker */},
+  {(bigint) 5743 /* 10: Buffer < Map: superclass typecheck marker */},
+  {(bigint) 6039 /* 11: Buffer < Sequence: superclass typecheck marker */},
+  {(bigint) 6099 /* 12: Buffer < AbstractArrayRead: superclass typecheck marker */},
+  {(bigint) 6419 /* 13: Buffer < AbstractString: superclass typecheck marker */},
+  {(bigint) 6423 /* 14: Buffer < AbstractArray: superclass typecheck marker */},
+  {(bigint) 6559 /* 15: Buffer < Buffer: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: FDStream < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Buffer < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
+  {(bigint) string___Buffer_____eqeq},
   {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
+  {(bigint) string___AbstractString___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11396,61 +31659,242 @@ const classtable_elt_t VFT_FDStream[53] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Buffer___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: FDStream < FDStream: superclass init_table position */},
-  {(bigint) stream___FDStream___native_close},
-  {(bigint) stream___FDStream___native_read_char},
-  {(bigint) stream___FDStream___native_read},
-  {(bigint) stream___FDStream___native_write},
-  {(bigint) stream___FDStream___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 7 /* 45: Buffer < StringCapable: superclass init_table position */},
+  {(bigint) string___StringCapable___calloc_string},
+  {(bigint) string___StringCapable___init},
+  {(bigint) 12 /* 48: Buffer < AbstractArray: superclass init_table position */},
+  {(bigint) string___Buffer___enlarge},
+  {(bigint) array___AbstractArray___insert},
+  {(bigint) 6 /* 51: Buffer < Comparable: superclass init_table position */},
+  {(bigint) string___Buffer_____l},
+  {(bigint) kernel___Comparable_____leq},
+  {(bigint) kernel___Comparable_____geq},
+  {(bigint) kernel___Comparable_____g},
+  {(bigint) kernel___Comparable_____leqg},
+  {(bigint) kernel___Comparable___is_between},
+  {(bigint) kernel___Comparable___max},
+  {(bigint) kernel___Comparable___min},
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: Buffer < Collection: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___iterator},
+  {(bigint) array___AbstractArrayRead___is_empty},
+  {(bigint) array___AbstractArrayRead___length},
+  {(bigint) array___AbstractArrayRead___has},
+  {(bigint) array___AbstractArrayRead___has_only},
+  {(bigint) array___AbstractArrayRead___count},
+  {(bigint) abstract_collection___SequenceRead___first},
+  {(bigint) 8 /* 70: Buffer < RemovableCollection: superclass init_table position */},
+  {(bigint) array___AbstractArray___clear},
+  {(bigint) array___AbstractArray___remove},
+  {(bigint) array___AbstractArray___remove_all},
+  {(bigint) 2 /* 74: Buffer < MapRead: superclass init_table position */},
+  {(bigint) string___AbstractString_____bra},
+  {(bigint) array___AbstractArrayRead___has_key},
+  {(bigint) 10 /* 77: Buffer < SimpleCollection: superclass init_table position */},
+  {(bigint) string___Buffer___add},
+  {(bigint) abstract_collection___SimpleCollection___add_all},
+  {(bigint) 3 /* 80: Buffer < SequenceRead: superclass init_table position */},
+  {(bigint) abstract_collection___SequenceRead___last},
+  {(bigint) array___AbstractArrayRead___index_of},
+  {(bigint) string___Map___map_join},
+  {(bigint) 9 /* 84: Buffer < Map: superclass init_table position */},
+  {(bigint) string___Buffer_____braeq},
+  {(bigint) array___AbstractArray___remove_at},
+  {(bigint) abstract_collection___Map___recover_with},
+  {(bigint) 11 /* 88: Buffer < Sequence: superclass init_table position */},
+  {(bigint) abstract_collection___Sequence___first__eq},
+  {(bigint) abstract_collection___Sequence___last__eq},
+  {(bigint) array___AbstractArray___push},
+  {(bigint) string___Buffer___append},
+  {(bigint) array___AbstractArray___pop},
+  {(bigint) array___AbstractArray___unshift},
+  {(bigint) array___AbstractArray___shift},
+  {(bigint) 4 /* 96: Buffer < AbstractArrayRead: superclass init_table position */},
+  {(bigint) array___AbstractArrayRead___last_index_of},
+  {(bigint) array___AbstractArrayRead___index_of_from},
+  {(bigint) array___AbstractArrayRead___last_index_of_from},
+  {(bigint) array___AbstractArrayRead___reversed},
+  {(bigint) array___AbstractArrayRead___copy_to},
+  {(bigint) array___AbstractArrayRead___init},
+  {(bigint) 5 /* 103: Buffer < AbstractString: superclass init_table position */},
+  {(bigint) string___AbstractString___items},
+  {(bigint) string___AbstractString___substring},
+  {(bigint) string___AbstractString___substring_from},
+  {(bigint) string___AbstractString___has_substring},
+  {(bigint) string___AbstractString___has_prefix},
+  {(bigint) string___AbstractString___has_suffix},
+  {(bigint) string___AbstractString___to_i},
+  {(bigint) string___AbstractString___to_hex},
+  {(bigint) string___AbstractString___a_to},
+  {(bigint) string___AbstractString___to_upper},
+  {(bigint) string___AbstractString___to_lower},
+  {(bigint) 13 /* 115: Buffer < Buffer: superclass init_table position */},
+  {(bigint) abstract_collection___Sequence___append},
+  {(bigint) string___Buffer___init},
+  {(bigint) string___Buffer___from},
+  {(bigint) string___Buffer___with_capacity},
+  {(bigint) string___Buffer___capacity},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Buffer::_length */
+/* 3: Attribute Buffer::_items */
+/* 4: Attribute Buffer::_capacity */
+void INIT_ATTRIBUTES__Buffer(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Buffer;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//collection//array.nit:23 */
+  ATTR_array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Buffer(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_Buffer;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Buffer(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Buffer;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_items");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_capacity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Buffer_string___Buffer___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[14] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 349;
+  fra.me.meth = LOCATE_NEW_Buffer_string___Buffer___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_Buffer();
+  /* ./../lib/standard//string.nit:349 */
+  INIT_ATTRIBUTES__Buffer(fra.me.REG[0]);
+  string___Buffer___init(fra.me.REG[0], init_table);
+  CHECKNEW_Buffer(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_Buffer_string___Buffer___from(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[14] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 355;
+  fra.me.meth = LOCATE_NEW_Buffer_string___Buffer___from;
+  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;
+  fra.me.REG[1] = NEW_Buffer();
+  /* ./../lib/standard//string.nit:355 */
+  INIT_ATTRIBUTES__Buffer(fra.me.REG[1]);
+  string___Buffer___from(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Buffer(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_Buffer_string___Buffer___with_capacity(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[14] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 363;
+  fra.me.meth = LOCATE_NEW_Buffer_string___Buffer___with_capacity;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = NEW_Buffer();
+  /* ./../lib/standard//string.nit:363 */
+  INIT_ATTRIBUTES__Buffer(fra.me.REG[0]);
+  string___Buffer___with_capacity(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_Buffer(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_NativeString[58] = {
+  {(bigint) -5 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: NativeString < Object: superclass typecheck marker */},
+  {(bigint) -5 /* 3: NativeString < NativeString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: FDStream < IOS: superclass init_table position */},
-  {(bigint) stream___FDStream___close},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute FDStream::_fd */
-val_t NEW_FDStream(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_FDStream;
-  ATTR_stream___FDStream____fd(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_stream___FDStream___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_FDStream();
-  stream___FDStream___init(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_FDIStream[63] = {
-  {(bigint) 3203 /* 0: Identity */},
-  {(bigint) 3 /* 1: FDIStream < Object: superclass typecheck marker */},
-  {(bigint) 2639 /* 2: FDIStream < FDStream: superclass typecheck marker */},
-  {(bigint) 135 /* 3: FDIStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2611 /* 5: FDIStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3203 /* 7: FDIStream < FDIStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: FDIStream < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: NativeString < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11458,7 +31902,6 @@ const classtable_elt_t VFT_FDIStream[63] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11466,74 +31909,62 @@ const classtable_elt_t VFT_FDIStream[63] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: FDIStream < FDStream: superclass init_table position */},
-  {(bigint) stream___FDStream___native_close},
-  {(bigint) stream___FDStream___native_read_char},
-  {(bigint) stream___FDStream___native_read},
-  {(bigint) stream___FDStream___native_write},
-  {(bigint) stream___FDStream___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) environ___NativeString___get_environ},
+  {(bigint) 1 /* 46: NativeString < NativeString: superclass init_table position */},
+  {(bigint) string___NativeString_____bra},
+  {(bigint) string___NativeString_____braeq},
+  {(bigint) string___NativeString___copy_to},
+  {(bigint) string___NativeString___cstring_length},
+  {(bigint) string___NativeString___atoi},
+  {(bigint) string___NativeString___init},
+  {(bigint) file___NativeString___file_exists},
+  {(bigint) file___NativeString___file_stat},
+  {(bigint) file___NativeString___file_mkdir},
+  {(bigint) file___NativeString___file_delete},
+  {(bigint) exec___NativeString___system},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+val_t BOX_NativeString(char * val) {
+  struct TBOX_NativeString *box = (struct TBOX_NativeString*)alloc(sizeof(struct TBOX_NativeString));
+  box->vft = VFT_NativeString;
+  box->val = val;
+  box->object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_StringCapable[48] = {
+  {(bigint) 27 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: StringCapable < Object: superclass typecheck marker */},
+  {(bigint) 27 /* 3: StringCapable < StringCapable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 48: FDIStream < FDIStream: superclass init_table position */},
-  {(bigint) stream___FDIStream___init},
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: FDIStream < IOS: superclass init_table position */},
-  {(bigint) stream___FDStream___close},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3 /* 56: FDIStream < IStream: superclass init_table position */},
-  {(bigint) stream___FDIStream___read_char},
-  {(bigint) stream___IStream___read},
-  {(bigint) stream___IStream___read_line},
-  {(bigint) stream___IStream___read_all},
-  {(bigint) stream___IStream___append_line_to},
-  {(bigint) stream___FDIStream___eof},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute FDIStream::_fd */
-/* Instance Hole :( */
-/* 3: Attribute FDIStream::_eof */
-val_t NEW_FDIStream(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_FDIStream;
-  ATTR_stream___FDStream____fd(obj) = TAG_Int((bigint)0);
-  ATTR_stream___FDIStream____eof(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_stream___FDIStream___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_FDIStream();
-  stream___FDIStream___init(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_FDOStream[56] = {
-  {(bigint) 3199 /* 0: Identity */},
-  {(bigint) 3 /* 1: FDOStream < Object: superclass typecheck marker */},
-  {(bigint) 2639 /* 2: FDOStream < FDStream: superclass typecheck marker */},
-  {(bigint) 135 /* 3: FDOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: FDOStream < OStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3199 /* 6: FDOStream < FDOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: FDOStream < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: StringCapable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11541,7 +31972,6 @@ const classtable_elt_t VFT_FDOStream[56] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11549,66 +31979,93 @@ const classtable_elt_t VFT_FDOStream[56] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: FDOStream < FDStream: superclass init_table position */},
-  {(bigint) stream___FDStream___native_close},
-  {(bigint) stream___FDStream___native_read_char},
-  {(bigint) stream___FDStream___native_read},
-  {(bigint) stream___FDStream___native_write},
-  {(bigint) stream___FDStream___init},
-  {(bigint) 4 /* 46: FDOStream < FDOStream: superclass init_table position */},
-  {(bigint) stream___FDOStream___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: FDOStream < IOS: superclass init_table position */},
-  {(bigint) stream___FDStream___close},
-  {(bigint) 3 /* 53: FDOStream < OStream: superclass init_table position */},
-  {(bigint) stream___FDOStream___write},
-  {(bigint) stream___FDOStream___is_writable},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: StringCapable < StringCapable: superclass init_table position */},
+  {(bigint) string___StringCapable___calloc_string},
+  {(bigint) string___StringCapable___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute FDOStream::_fd */
-/* 2: Attribute FDOStream::_is_writable */
-val_t NEW_FDOStream(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_FDOStream;
-  ATTR_stream___FDStream____fd(obj) = TAG_Int((bigint)0);
-  ATTR_stream___FDOStream____is_writable(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_stream___FDOStream___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_FDOStream();
-  stream___FDOStream___init(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__StringCapable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__StringCapable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_FDIOStream[70] = {
-  {(bigint) 3315 /* 0: Identity */},
-  {(bigint) 3 /* 1: FDIOStream < Object: superclass typecheck marker */},
-  {(bigint) 2639 /* 2: FDIOStream < FDStream: superclass typecheck marker */},
-  {(bigint) 135 /* 3: FDIOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: FDIOStream < OStream: superclass typecheck marker */},
-  {(bigint) 2611 /* 5: FDIOStream < IStream: superclass typecheck marker */},
-  {(bigint) 3199 /* 6: FDIOStream < FDOStream: superclass typecheck marker */},
-  {(bigint) 3203 /* 7: FDIOStream < FDIStream: superclass typecheck marker */},
-  {(bigint) 3191 /* 8: FDIOStream < IOStream: superclass typecheck marker */},
-  {(bigint) 3315 /* 9: FDIOStream < FDIOStream: superclass typecheck marker */},
+val_t NEW_StringCapable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_StringCapable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_StringCapable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_StringCapable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_StringCapable_string___StringCapable___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_StringCapable_string___StringCapable___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_StringCapable();
+  INIT_ATTRIBUTES__StringCapable(fra.me.REG[0]);
+  string___StringCapable___init(fra.me.REG[0], init_table);
+  CHECKNEW_StringCapable(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_Symbol[48] = {
+  {(bigint) 23 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Symbol < Object: superclass typecheck marker */},
+  {(bigint) 23 /* 3: Symbol < Symbol: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: FDIOStream < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Symbol < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11616,7 +32073,6 @@ const classtable_elt_t VFT_FDIOStream[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11624,65 +32080,92 @@ const classtable_elt_t VFT_FDIOStream[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) symbol___Symbol___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: FDIOStream < FDStream: superclass init_table position */},
-  {(bigint) stream___FDStream___native_close},
-  {(bigint) stream___FDStream___native_read_char},
-  {(bigint) stream___FDStream___native_read},
-  {(bigint) stream___FDStream___native_write},
-  {(bigint) stream___FDStream___init},
-  {(bigint) 6 /* 46: FDIOStream < FDOStream: superclass init_table position */},
-  {(bigint) stream___FDOStream___init},
-  {(bigint) 4 /* 48: FDIOStream < FDIStream: superclass init_table position */},
-  {(bigint) stream___FDIStream___init},
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: FDIOStream < IOS: superclass init_table position */},
-  {(bigint) stream___FDStream___close},
-  {(bigint) 5 /* 53: FDIOStream < OStream: superclass init_table position */},
-  {(bigint) stream___FDOStream___write},
-  {(bigint) stream___FDOStream___is_writable},
-  {(bigint) 3 /* 56: FDIOStream < IStream: superclass init_table position */},
-  {(bigint) stream___FDIStream___read_char},
-  {(bigint) stream___IStream___read},
-  {(bigint) stream___IStream___read_line},
-  {(bigint) stream___IStream___read_all},
-  {(bigint) stream___IStream___append_line_to},
-  {(bigint) stream___FDIStream___eof},
-  {(bigint) 8 /* 63: FDIOStream < FDIOStream: superclass init_table position */},
-  {(bigint) stream___FDIOStream___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 7 /* 69: FDIOStream < IOStream: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) environ___Symbol___environ},
+  {(bigint) 1 /* 46: Symbol < Symbol: superclass init_table position */},
+  {(bigint) symbol___Symbol___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute FDIOStream::_fd */
-/* 2: Attribute FDIOStream::_is_writable */
-/* 3: Attribute FDIOStream::_eof */
-val_t NEW_FDIOStream(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_FDIOStream;
-  ATTR_stream___FDStream____fd(obj) = TAG_Int((bigint)0);
-  ATTR_stream___FDIStream____eof(obj) = TAG_Bool((int)0);
-  ATTR_stream___FDOStream____is_writable(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_stream___FDIOStream___init(val_t p0) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_FDIOStream();
-  stream___FDIOStream___init(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute Symbol::_string */
+void INIT_ATTRIBUTES__Symbol(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Symbol;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_Pattern[47] = {
-  {(bigint) 51 /* 0: Identity */},
-  {(bigint) 3 /* 1: Pattern < Object: superclass typecheck marker */},
+val_t NEW_Symbol(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_Symbol;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Symbol(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Symbol;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_symbol___Symbol____string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_string");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Symbol_symbol___Symbol___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39;
+  fra.me.meth = LOCATE_NEW_Symbol_symbol___Symbol___init;
+  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;
+  fra.me.REG[1] = NEW_Symbol();
+  /* ./../lib/standard//symbol.nit:39 */
+  INIT_ATTRIBUTES__Symbol(fra.me.REG[1]);
+  symbol___Symbol___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Symbol(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_IOS[57] = {
+  {(bigint) 155 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IOS < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 51 /* 3: Pattern < Pattern: superclass typecheck marker */},
+  {(bigint) 155 /* 4: IOS < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11692,14 +32175,12 @@ const classtable_elt_t VFT_Pattern[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Pattern < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IOS < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11707,7 +32188,6 @@ const classtable_elt_t VFT_Pattern[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11715,32 +32195,89 @@ const classtable_elt_t VFT_Pattern[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 42: Pattern < Pattern: superclass init_table position */},
-  {(bigint) string_search___Pattern___search_index_in},
-  {(bigint) string_search___Pattern___search_in},
-  {(bigint) string_search___Pattern___search_all_in},
-  {(bigint) string_search___Pattern___split_in},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 54: IOS < IOS: superclass init_table position */},
+  {(bigint) stream___IOS___close},
+  {(bigint) stream___IOS___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_Pattern(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__IOS(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IOS;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IOS(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_Pattern;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_IOS;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IOS(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IOS;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IOS_stream___IOS___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_IOS_stream___IOS___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_IOS();
+  INIT_ATTRIBUTES__IOS(fra.me.REG[0]);
+  stream___IOS___init(fra.me.REG[0], init_table);
+  CHECKNEW_IOS(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_BM_Pattern[53] = {
-  {(bigint) 2671 /* 0: Identity */},
-  {(bigint) 3 /* 1: BM_Pattern < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_IStream[67] = {
+  {(bigint) 5187 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IStream < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 51 /* 3: BM_Pattern < Pattern: superclass typecheck marker */},
-  {(bigint) 2671 /* 4: BM_Pattern < BM_Pattern: superclass typecheck marker */},
+  {(bigint) 155 /* 4: IStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5187 /* 6: IStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11748,14 +32285,12 @@ const classtable_elt_t VFT_BM_Pattern[53] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string_search___BM_Pattern___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: BM_Pattern < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11763,7 +32298,6 @@ const classtable_elt_t VFT_BM_Pattern[53] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11771,47 +32305,98 @@ const classtable_elt_t VFT_BM_Pattern[53] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 42: BM_Pattern < Pattern: superclass init_table position */},
-  {(bigint) string_search___BM_Pattern___search_index_in},
-  {(bigint) string_search___BM_Pattern___search_in},
-  {(bigint) string_search___Pattern___search_all_in},
-  {(bigint) string_search___Pattern___split_in},
-  {(bigint) 2 /* 47: BM_Pattern < BM_Pattern: superclass init_table position */},
-  {(bigint) string_search___BM_Pattern___init},
-  {(bigint) string_search___BM_Pattern___bc},
-  {(bigint) string_search___BM_Pattern___compute_bc},
-  {(bigint) string_search___BM_Pattern___suffixes},
-  {(bigint) string_search___BM_Pattern___compute_gs},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 54: IStream < IOS: superclass init_table position */},
+  {(bigint) stream___IOS___close},
+  {(bigint) stream___IOS___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 60: IStream < IStream: superclass init_table position */},
+  {(bigint) stream___IStream___read_char},
+  {(bigint) stream___IStream___read},
+  {(bigint) stream___IStream___read_line},
+  {(bigint) stream___IStream___read_all},
+  {(bigint) stream___IStream___append_line_to},
+  {(bigint) stream___IStream___eof},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute BM_Pattern::_motif */
-/* 2: Attribute BM_Pattern::_length */
-/* 3: Attribute BM_Pattern::_gs */
-/* 4: Attribute BM_Pattern::_bc_table */
-val_t NEW_BM_Pattern(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__IStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_BM_Pattern;
-  ATTR_string_search___BM_Pattern____length(obj) = TAG_Int((bigint)0);
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_IStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_string_search___BM_Pattern___init(val_t p0) {
+void CHECKNEW_IStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IStream_stream___IOS___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_BM_Pattern();
-  string_search___BM_Pattern___init(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_IStream_stream___IOS___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_IStream();
+  INIT_ATTRIBUTES__IStream(fra.me.REG[0]);
+  stream___IOS___init(fra.me.REG[0], init_table);
+  CHECKNEW_IStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_Match[46] = {
-  {(bigint) 83 /* 0: Identity */},
-  {(bigint) 3 /* 1: Match < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 2: Match < Match: superclass typecheck marker */},
+const classtable_elt_t VFT_OStream[60] = {
+  {(bigint) 5091 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OStream < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 155 /* 4: OStream < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: OStream < OStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11821,14 +32406,11 @@ const classtable_elt_t VFT_Match[46] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string_search___Match___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Match < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11836,7 +32418,6 @@ const classtable_elt_t VFT_Match[46] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11844,57 +32425,105 @@ const classtable_elt_t VFT_Match[46] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Match < Match: superclass init_table position */},
-  {(bigint) string_search___Match___string},
-  {(bigint) string_search___Match___from},
-  {(bigint) string_search___Match___length},
-  {(bigint) string_search___Match___after},
-  {(bigint) string_search___Match___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 54: OStream < IOS: superclass init_table position */},
+  {(bigint) stream___IOS___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 2 /* 57: OStream < OStream: superclass init_table position */},
+  {(bigint) stream___OStream___write},
+  {(bigint) stream___OStream___is_writable},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Match::_string */
-/* 2: Attribute Match::_from */
-/* 3: Attribute Match::_length */
-val_t NEW_Match(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__OStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_Match;
-  ATTR_string_search___Match____from(obj) = TAG_Int((bigint)0);
-  ATTR_string_search___Match____length(obj) = TAG_Int((bigint)0);
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_OStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_string_search___Match___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_Match();
-  string_search___Match___init(self, p0, p1, p2, init_table);
-  return self;
+void CHECKNEW_OStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_FStream[53] = {
-  {(bigint) 2635 /* 0: Identity */},
-  {(bigint) 3 /* 1: FStream < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: FStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 135 /* 3: FStream < IOS: superclass typecheck marker */},
+val_t NEW_OStream_stream___IOS___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_OStream_stream___IOS___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_OStream();
+  INIT_ATTRIBUTES__OStream(fra.me.REG[0]);
+  stream___IOS___init(fra.me.REG[0], init_table);
+  CHECKNEW_OStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_BufferedIStream[71] = {
+  {(bigint) 5907 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: BufferedIStream < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 155 /* 4: BufferedIStream < IOS: superclass typecheck marker */},
+  {(bigint) 5907 /* 5: BufferedIStream < BufferedIStream: superclass typecheck marker */},
+  {(bigint) 5187 /* 6: BufferedIStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2635 /* 6: FStream < FStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: FStream < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: BufferedIStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11902,7 +32531,6 @@ const classtable_elt_t VFT_FStream[53] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11910,55 +32538,140 @@ const classtable_elt_t VFT_FStream[53] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: FStream < NativeFileCapable: superclass init_table position */},
-  {(bigint) file___NativeFileCapable___io_open_read},
-  {(bigint) file___NativeFileCapable___io_open_write},
-  {(bigint) file___NativeFileCapable___native_stdin},
-  {(bigint) file___NativeFileCapable___native_stdout},
-  {(bigint) file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 46: FStream < FStream: superclass init_table position */},
-  {(bigint) file___FStream___path},
-  {(bigint) file___FStream___file_stat},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: FStream < IOS: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 54: BufferedIStream < IOS: superclass init_table position */},
   {(bigint) stream___IOS___close},
+  {(bigint) stream___IOS___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 60: BufferedIStream < IStream: superclass init_table position */},
+  {(bigint) stream___BufferedIStream___read_char},
+  {(bigint) stream___BufferedIStream___read},
+  {(bigint) stream___IStream___read_line},
+  {(bigint) stream___BufferedIStream___read_all},
+  {(bigint) stream___BufferedIStream___append_line_to},
+  {(bigint) stream___BufferedIStream___eof},
+  {(bigint) 3 /* 67: BufferedIStream < BufferedIStream: superclass init_table position */},
+  {(bigint) stream___BufferedIStream___fill_buffer},
+  {(bigint) stream___BufferedIStream___end_reached},
+  {(bigint) stream___BufferedIStream___prepare_buffer},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute FStream::_path */
-/* 2: Attribute FStream::_file */
-val_t NEW_FStream(void) {
+/* 1: Object_id */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 4: Attribute BufferedIStream::_buffer */
+/* 5: Attribute BufferedIStream::_buffer_pos */
+void INIT_ATTRIBUTES__BufferedIStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__BufferedIStream;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//stream.nit:186 */
+  ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//stream.nit:189 */
+  ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_BufferedIStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_FStream;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_BufferedIStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_BufferedIStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_BufferedIStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_buffer_pos");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_BufferedIStream_stream___IOS___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_BufferedIStream_stream___IOS___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_BufferedIStream();
+  INIT_ATTRIBUTES__BufferedIStream(fra.me.REG[0]);
+  stream___IOS___init(fra.me.REG[0], init_table);
+  CHECKNEW_BufferedIStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_IFStream[71] = {
-  {(bigint) 3311 /* 0: Identity */},
-  {(bigint) 3 /* 1: IFStream < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: IFStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 135 /* 3: IFStream < IOS: superclass typecheck marker */},
-  {(bigint) 3235 /* 4: IFStream < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2611 /* 5: IFStream < IStream: superclass typecheck marker */},
-  {(bigint) 2635 /* 6: IFStream < FStream: superclass typecheck marker */},
-  {(bigint) 3311 /* 7: IFStream < IFStream: superclass typecheck marker */},
+const classtable_elt_t VFT_IOStream[74] = {
+  {(bigint) 5803 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IOStream < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 155 /* 4: IOStream < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: IOStream < OStream: superclass typecheck marker */},
+  {(bigint) 5187 /* 6: IOStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 5803 /* 9: IOStream < IOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IFStream < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IOStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -11966,7 +32679,6 @@ const classtable_elt_t VFT_IFStream[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -11974,90 +32686,119 @@ const classtable_elt_t VFT_IFStream[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: IFStream < NativeFileCapable: superclass init_table position */},
-  {(bigint) file___NativeFileCapable___io_open_read},
-  {(bigint) file___NativeFileCapable___io_open_write},
-  {(bigint) file___NativeFileCapable___native_stdin},
-  {(bigint) file___NativeFileCapable___native_stdout},
-  {(bigint) file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 46: IFStream < FStream: superclass init_table position */},
-  {(bigint) file___FStream___path},
-  {(bigint) file___FStream___file_stat},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: IFStream < IOS: superclass init_table position */},
-  {(bigint) file___IFStream___close},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 56: IFStream < IStream: superclass init_table position */},
-  {(bigint) stream___BufferedIStream___read_char},
-  {(bigint) stream___BufferedIStream___read},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 54: IOStream < IOS: superclass init_table position */},
+  {(bigint) stream___IOS___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 3 /* 57: IOStream < OStream: superclass init_table position */},
+  {(bigint) stream___OStream___write},
+  {(bigint) stream___OStream___is_writable},
+  {(bigint) 2 /* 60: IOStream < IStream: superclass init_table position */},
+  {(bigint) stream___IStream___read_char},
+  {(bigint) stream___IStream___read},
   {(bigint) stream___IStream___read_line},
-  {(bigint) stream___BufferedIStream___read_all},
-  {(bigint) stream___BufferedIStream___append_line_to},
-  {(bigint) stream___BufferedIStream___eof},
-  {(bigint) 5 /* 63: IFStream < BufferedIStream: superclass init_table position */},
-  {(bigint) file___IFStream___fill_buffer},
-  {(bigint) file___IFStream___end_reached},
-  {(bigint) stream___BufferedIStream___prepare_buffer},
-  {(bigint) 6 /* 67: IFStream < IFStream: superclass init_table position */},
-  {(bigint) file___IFStream___reopen},
-  {(bigint) file___IFStream___open},
-  {(bigint) file___IFStream___without_file},
+  {(bigint) stream___IStream___read_all},
+  {(bigint) stream___IStream___append_line_to},
+  {(bigint) stream___IStream___eof},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 73: IOStream < IOStream: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute IFStream::_path */
-/* 2: Attribute IFStream::_file */
-/* 3: Attribute IFStream::_buffer */
-/* 4: Attribute IFStream::_buffer_pos */
-/* 5: Attribute IFStream::_end_reached */
-val_t NEW_IFStream(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_IFStream;
-  ATTR_stream___BufferedIStream____buffer_pos(obj) = TAG_Int((bigint)0);
-  ATTR_file___IFStream____end_reached(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_file___IFStream___open(val_t p0) {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_IFStream();
-  file___IFStream___open(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__IOStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IOStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_file___IFStream___without_file() {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_IFStream();
-  file___IFStream___without_file(self, init_table);
-  return self;
+val_t NEW_IOStream(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_IOStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IOStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IOStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IOStream_stream___IOS___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_IOStream_stream___IOS___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_IOStream();
+  INIT_ATTRIBUTES__IOStream(fra.me.REG[0]);
+  stream___IOS___init(fra.me.REG[0], init_table);
+  CHECKNEW_IOStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_OFStream[60] = {
-  {(bigint) 3139 /* 0: Identity */},
-  {(bigint) 3 /* 1: OFStream < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: OFStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 135 /* 3: OFStream < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: OFStream < OStream: superclass typecheck marker */},
-  {(bigint) 3139 /* 5: OFStream < OFStream: superclass typecheck marker */},
-  {(bigint) 2635 /* 6: OFStream < FStream: superclass typecheck marker */},
+const classtable_elt_t VFT_FDStream[57] = {
+  {(bigint) 5239 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: FDStream < Object: superclass typecheck marker */},
+  {(bigint) 5239 /* 3: FDStream < FDStream: superclass typecheck marker */},
+  {(bigint) 155 /* 4: FDStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OFStream < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: FDStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12065,7 +32806,6 @@ const classtable_elt_t VFT_OFStream[60] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12073,76 +32813,116 @@ const classtable_elt_t VFT_OFStream[60] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: OFStream < NativeFileCapable: superclass init_table position */},
-  {(bigint) file___NativeFileCapable___io_open_read},
-  {(bigint) file___NativeFileCapable___io_open_write},
-  {(bigint) file___NativeFileCapable___native_stdin},
-  {(bigint) file___NativeFileCapable___native_stdout},
-  {(bigint) file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 46: OFStream < FStream: superclass init_table position */},
-  {(bigint) file___FStream___path},
-  {(bigint) file___FStream___file_stat},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: FDStream < FDStream: superclass init_table position */},
+  {(bigint) stream___FDStream___native_close},
+  {(bigint) stream___FDStream___native_read_char},
+  {(bigint) stream___FDStream___native_read},
+  {(bigint) stream___FDStream___native_write},
+  {(bigint) stream___FDStream___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: OFStream < IOS: superclass init_table position */},
-  {(bigint) file___OFStream___close},
-  {(bigint) 4 /* 53: OFStream < OStream: superclass init_table position */},
-  {(bigint) file___OFStream___write},
-  {(bigint) file___OFStream___is_writable},
-  {(bigint) 5 /* 56: OFStream < OFStream: superclass init_table position */},
-  {(bigint) file___OFStream___write_native},
-  {(bigint) file___OFStream___open},
-  {(bigint) file___OFStream___without_file},
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 54: FDStream < IOS: superclass init_table position */},
+  {(bigint) stream___FDStream___close},
+  {(bigint) stream___IOS___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OFStream::_path */
-/* 2: Attribute OFStream::_file */
-/* 3: Attribute OFStream::_writable */
-val_t NEW_OFStream(void) {
+/* 1: Object_id */
+/* 2: Attribute FDStream::_fd */
+void INIT_ATTRIBUTES__FDStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__FDStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FDStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_OFStream;
-  ATTR_file___OFStream____writable(obj) = TAG_Bool((int)0);
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_FDStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_file___OFStream___open(val_t p0) {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_OFStream();
-  file___OFStream___open(self, p0, init_table);
-  return self;
+void CHECKNEW_FDStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_FDStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_fd");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_file___OFStream___without_file() {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_OFStream();
-  file___OFStream___without_file(self, init_table);
-  return self;
+val_t NEW_FDStream_stream___FDStream___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 225;
+  fra.me.meth = LOCATE_NEW_FDStream_stream___FDStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = NEW_FDStream();
+  /* ./../lib/standard//stream.nit:225 */
+  INIT_ATTRIBUTES__FDStream(fra.me.REG[0]);
+  stream___FDStream___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_FDStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_Stdin[73] = {
-  {(bigint) 3619 /* 0: Identity */},
-  {(bigint) 3 /* 1: Stdin < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: Stdin < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 135 /* 3: Stdin < IOS: superclass typecheck marker */},
-  {(bigint) 3235 /* 4: Stdin < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2611 /* 5: Stdin < IStream: superclass typecheck marker */},
-  {(bigint) 2635 /* 6: Stdin < FStream: superclass typecheck marker */},
-  {(bigint) 3311 /* 7: Stdin < IFStream: superclass typecheck marker */},
-  {(bigint) 3619 /* 8: Stdin < Stdin: superclass typecheck marker */},
+const classtable_elt_t VFT_FDIStream[69] = {
+  {(bigint) 5879 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: FDIStream < Object: superclass typecheck marker */},
+  {(bigint) 5239 /* 3: FDIStream < FDStream: superclass typecheck marker */},
+  {(bigint) 155 /* 4: FDIStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5187 /* 6: FDIStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5879 /* 8: FDIStream < FDIStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Stdin < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: FDIStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12150,7 +32930,6 @@ const classtable_elt_t VFT_Stdin[73] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12158,86 +32937,143 @@ const classtable_elt_t VFT_Stdin[73] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: Stdin < NativeFileCapable: superclass init_table position */},
-  {(bigint) file___NativeFileCapable___io_open_read},
-  {(bigint) file___NativeFileCapable___io_open_write},
-  {(bigint) file___NativeFileCapable___native_stdin},
-  {(bigint) file___NativeFileCapable___native_stdout},
-  {(bigint) file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 46: Stdin < FStream: superclass init_table position */},
-  {(bigint) file___FStream___path},
-  {(bigint) file___FStream___file_stat},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: FDIStream < FDStream: superclass init_table position */},
+  {(bigint) stream___FDStream___native_close},
+  {(bigint) stream___FDStream___native_read_char},
+  {(bigint) stream___FDStream___native_read},
+  {(bigint) stream___FDStream___native_write},
+  {(bigint) stream___FDStream___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: Stdin < IOS: superclass init_table position */},
-  {(bigint) file___IFStream___close},
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 54: FDIStream < IOS: superclass init_table position */},
+  {(bigint) stream___FDStream___close},
+  {(bigint) stream___IOS___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 56: Stdin < IStream: superclass init_table position */},
-  {(bigint) stream___BufferedIStream___read_char},
-  {(bigint) stream___BufferedIStream___read},
+  {(bigint) 3 /* 60: FDIStream < IStream: superclass init_table position */},
+  {(bigint) stream___FDIStream___read_char},
+  {(bigint) stream___IStream___read},
   {(bigint) stream___IStream___read_line},
-  {(bigint) stream___BufferedIStream___read_all},
-  {(bigint) stream___BufferedIStream___append_line_to},
-  {(bigint) stream___BufferedIStream___eof},
-  {(bigint) 5 /* 63: Stdin < BufferedIStream: superclass init_table position */},
-  {(bigint) file___IFStream___fill_buffer},
-  {(bigint) file___IFStream___end_reached},
-  {(bigint) stream___BufferedIStream___prepare_buffer},
-  {(bigint) 6 /* 67: Stdin < IFStream: superclass init_table position */},
-  {(bigint) file___IFStream___reopen},
-  {(bigint) file___IFStream___open},
-  {(bigint) file___IFStream___without_file},
-  {(bigint) 7 /* 71: Stdin < Stdin: superclass init_table position */},
-  {(bigint) file___Stdin___init},
+  {(bigint) stream___IStream___read_all},
+  {(bigint) stream___IStream___append_line_to},
+  {(bigint) stream___FDIStream___eof},
+  {(bigint) 4 /* 67: FDIStream < FDIStream: superclass init_table position */},
+  {(bigint) stream___FDIStream___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Stdin::_path */
-/* 2: Attribute Stdin::_file */
-/* 3: Attribute Stdin::_buffer */
-/* 4: Attribute Stdin::_buffer_pos */
-/* 5: Attribute Stdin::_end_reached */
-val_t NEW_Stdin(void) {
+/* 1: Object_id */
+/* 2: Attribute FDIStream::_fd */
+/* Instance Hole :( */
+/* 4: Attribute FDIStream::_eof */
+void INIT_ATTRIBUTES__FDIStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__FDIStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./../lib/standard//stream.nit:231 */
+  ATTR_stream___FDIStream____eof(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FDIStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_Stdin;
-  ATTR_stream___BufferedIStream____buffer_pos(obj) = TAG_Int((bigint)0);
-  ATTR_file___IFStream____end_reached(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_file___Stdin___init() {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_Stdin();
-  file___Stdin___init(self, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_FDIStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_FDIStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_FDIStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_fd");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_stream___FDIStream____eof(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_eof");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FDIStream_stream___FDIStream___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 240;
+  fra.me.meth = LOCATE_NEW_FDIStream_stream___FDIStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = NEW_FDIStream();
+  /* ./../lib/standard//stream.nit:240 */
+  INIT_ATTRIBUTES__FDIStream(fra.me.REG[0]);
+  stream___FDIStream___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_FDIStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_Stdout[62] = {
-  {(bigint) 3267 /* 0: Identity */},
-  {(bigint) 3 /* 1: Stdout < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: Stdout < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 135 /* 3: Stdout < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: Stdout < OStream: superclass typecheck marker */},
-  {(bigint) 3139 /* 5: Stdout < OFStream: superclass typecheck marker */},
-  {(bigint) 2635 /* 6: Stdout < FStream: superclass typecheck marker */},
-  {(bigint) 3267 /* 7: Stdout < Stdout: superclass typecheck marker */},
+const classtable_elt_t VFT_FDOStream[60] = {
+  {(bigint) 5875 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: FDOStream < Object: superclass typecheck marker */},
+  {(bigint) 5239 /* 3: FDOStream < FDStream: superclass typecheck marker */},
+  {(bigint) 155 /* 4: FDOStream < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: FDOStream < OStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5875 /* 7: FDOStream < FDOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Stdout < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: FDOStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12245,7 +33081,6 @@ const classtable_elt_t VFT_Stdout[62] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12253,72 +33088,127 @@ const classtable_elt_t VFT_Stdout[62] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: Stdout < NativeFileCapable: superclass init_table position */},
-  {(bigint) file___NativeFileCapable___io_open_read},
-  {(bigint) file___NativeFileCapable___io_open_write},
-  {(bigint) file___NativeFileCapable___native_stdin},
-  {(bigint) file___NativeFileCapable___native_stdout},
-  {(bigint) file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 46: Stdout < FStream: superclass init_table position */},
-  {(bigint) file___FStream___path},
-  {(bigint) file___FStream___file_stat},
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: FDOStream < FDStream: superclass init_table position */},
+  {(bigint) stream___FDStream___native_close},
+  {(bigint) stream___FDStream___native_read_char},
+  {(bigint) stream___FDStream___native_read},
+  {(bigint) stream___FDStream___native_write},
+  {(bigint) stream___FDStream___init},
+  {(bigint) 4 /* 51: FDOStream < FDOStream: superclass init_table position */},
+  {(bigint) stream___FDOStream___init},
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: Stdout < IOS: superclass init_table position */},
-  {(bigint) file___OFStream___close},
-  {(bigint) 4 /* 53: Stdout < OStream: superclass init_table position */},
-  {(bigint) file___OFStream___write},
-  {(bigint) file___OFStream___is_writable},
-  {(bigint) 5 /* 56: Stdout < OFStream: superclass init_table position */},
-  {(bigint) file___OFStream___write_native},
-  {(bigint) file___OFStream___open},
-  {(bigint) file___OFStream___without_file},
-  {(bigint) 6 /* 60: Stdout < Stdout: superclass init_table position */},
-  {(bigint) file___Stdout___init},
-};
+  {(bigint) 1 /* 54: FDOStream < IOS: superclass init_table position */},
+  {(bigint) stream___FDStream___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 3 /* 57: FDOStream < OStream: superclass init_table position */},
+  {(bigint) stream___FDOStream___write},
+  {(bigint) stream___FDOStream___is_writable},
+};
 /* 0: Pointer to the classtable */
-/* 1: Attribute Stdout::_path */
-/* 2: Attribute Stdout::_file */
-/* 3: Attribute Stdout::_writable */
-val_t NEW_Stdout(void) {
+/* 1: Object_id */
+/* 2: Attribute FDOStream::_fd */
+/* 3: Attribute FDOStream::_is_writable */
+void INIT_ATTRIBUTES__FDOStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__FDOStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FDOStream(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_Stdout;
-  ATTR_file___OFStream____writable(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_file___Stdout___init() {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_Stdout();
-  file___Stdout___init(self, init_table);
-  return self;
+  obj->vft = (classtable_elt_t*)VFT_FDOStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_FDOStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_FDOStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_fd");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_stream___FDOStream____is_writable(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_writable");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FDOStream_stream___FDOStream___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 254;
+  fra.me.meth = LOCATE_NEW_FDOStream_stream___FDOStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = NEW_FDOStream();
+  /* ./../lib/standard//stream.nit:254 */
+  INIT_ATTRIBUTES__FDOStream(fra.me.REG[0]);
+  stream___FDOStream___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_FDOStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_Stderr[62] = {
-  {(bigint) 3271 /* 0: Identity */},
-  {(bigint) 3 /* 1: Stderr < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: Stderr < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 135 /* 3: Stderr < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: Stderr < OStream: superclass typecheck marker */},
-  {(bigint) 3139 /* 5: Stderr < OFStream: superclass typecheck marker */},
-  {(bigint) 2635 /* 6: Stderr < FStream: superclass typecheck marker */},
-  {(bigint) 3271 /* 7: Stderr < Stderr: superclass typecheck marker */},
+const classtable_elt_t VFT_FDIOStream[74] = {
+  {(bigint) 6087 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: FDIOStream < Object: superclass typecheck marker */},
+  {(bigint) 5239 /* 3: FDIOStream < FDStream: superclass typecheck marker */},
+  {(bigint) 155 /* 4: FDIOStream < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: FDIOStream < OStream: superclass typecheck marker */},
+  {(bigint) 5187 /* 6: FDIOStream < IStream: superclass typecheck marker */},
+  {(bigint) 5875 /* 7: FDIOStream < FDOStream: superclass typecheck marker */},
+  {(bigint) 5879 /* 8: FDIOStream < FDIStream: superclass typecheck marker */},
+  {(bigint) 5803 /* 9: FDIOStream < IOStream: superclass typecheck marker */},
+  {(bigint) 6087 /* 10: FDIOStream < FDIOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Stderr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: FDIOStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12326,7 +33216,6 @@ const classtable_elt_t VFT_Stderr[62] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12334,55 +33223,139 @@ const classtable_elt_t VFT_Stderr[62] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 2 /* 40: Stderr < NativeFileCapable: superclass init_table position */},
-  {(bigint) file___NativeFileCapable___io_open_read},
-  {(bigint) file___NativeFileCapable___io_open_write},
-  {(bigint) file___NativeFileCapable___native_stdin},
-  {(bigint) file___NativeFileCapable___native_stdout},
-  {(bigint) file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 46: Stderr < FStream: superclass init_table position */},
-  {(bigint) file___FStream___path},
-  {(bigint) file___FStream___file_stat},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: FDIOStream < FDStream: superclass init_table position */},
+  {(bigint) stream___FDStream___native_close},
+  {(bigint) stream___FDStream___native_read_char},
+  {(bigint) stream___FDStream___native_read},
+  {(bigint) stream___FDStream___native_write},
+  {(bigint) stream___FDStream___init},
+  {(bigint) 6 /* 51: FDIOStream < FDOStream: superclass init_table position */},
+  {(bigint) stream___FDOStream___init},
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 54: FDIOStream < IOS: superclass init_table position */},
+  {(bigint) stream___FDStream___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 5 /* 57: FDIOStream < OStream: superclass init_table position */},
+  {(bigint) stream___FDOStream___write},
+  {(bigint) stream___FDOStream___is_writable},
+  {(bigint) 3 /* 60: FDIOStream < IStream: superclass init_table position */},
+  {(bigint) stream___FDIStream___read_char},
+  {(bigint) stream___IStream___read},
+  {(bigint) stream___IStream___read_line},
+  {(bigint) stream___IStream___read_all},
+  {(bigint) stream___IStream___append_line_to},
+  {(bigint) stream___FDIStream___eof},
+  {(bigint) 4 /* 67: FDIOStream < FDIStream: superclass init_table position */},
+  {(bigint) stream___FDIStream___init},
+  {(bigint) 8 /* 69: FDIOStream < FDIOStream: superclass init_table position */},
+  {(bigint) stream___FDIOStream___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: Stderr < IOS: superclass init_table position */},
-  {(bigint) file___OFStream___close},
-  {(bigint) 4 /* 53: Stderr < OStream: superclass init_table position */},
-  {(bigint) file___OFStream___write},
-  {(bigint) file___OFStream___is_writable},
-  {(bigint) 5 /* 56: Stderr < OFStream: superclass init_table position */},
-  {(bigint) file___OFStream___write_native},
-  {(bigint) file___OFStream___open},
-  {(bigint) file___OFStream___without_file},
-  {(bigint) 6 /* 60: Stderr < Stderr: superclass init_table position */},
-  {(bigint) file___Stderr___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute Stderr::_path */
-/* 2: Attribute Stderr::_file */
-/* 3: Attribute Stderr::_writable */
-val_t NEW_Stderr(void) {
+  {(bigint) 7 /* 73: FDIOStream < IOStream: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute FDIOStream::_fd */
+/* 3: Attribute FDIOStream::_is_writable */
+/* 4: Attribute FDIOStream::_eof */
+void INIT_ATTRIBUTES__FDIOStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__FDIOStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./../lib/standard//stream.nit:231 */
+  ATTR_stream___FDIStream____eof(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FDIOStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_Stderr;
-  ATTR_file___OFStream____writable(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_file___Stderr___init() {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_Stderr();
-  file___Stderr___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_FileStat[47] = {
-  {(bigint) -29 /* 0: Identity */},
-  {(bigint) 3 /* 1: FileStat < Object: superclass typecheck marker */},
-  {(bigint) -1 /* 2: FileStat < Pointer: superclass typecheck marker */},
-  {(bigint) -29 /* 3: FileStat < FileStat: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_FDIOStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_FDIOStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_FDIOStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_fd");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_stream___FDIStream____eof(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_eof");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_stream___FDOStream____is_writable(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_writable");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FDIOStream_stream___FDIOStream___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 264;
+  fra.me.meth = LOCATE_NEW_FDIOStream_stream___FDIOStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = NEW_FDIOStream();
+  /* ./../lib/standard//stream.nit:264 */
+  INIT_ATTRIBUTES__FDIOStream(fra.me.REG[0]);
+  stream___FDIOStream___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_FDIOStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_Pattern[51] = {
+  {(bigint) 59 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Pattern < Object: superclass typecheck marker */},
+  {(bigint) 59 /* 3: Pattern < Pattern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12392,14 +33365,13 @@ const classtable_elt_t VFT_FileStat[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: FileStat < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Pattern < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12407,7 +33379,6 @@ const classtable_elt_t VFT_FileStat[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12415,30 +33386,81 @@ const classtable_elt_t VFT_FileStat[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: FileStat < Pointer: superclass init_table position */},
-  {(bigint) 2 /* 41: FileStat < FileStat: superclass init_table position */},
-  {(bigint) file___FileStat___mode},
-  {(bigint) file___FileStat___atime},
-  {(bigint) file___FileStat___ctime},
-  {(bigint) file___FileStat___mtime},
-  {(bigint) file___FileStat___size},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Pattern < Pattern: superclass init_table position */},
+  {(bigint) string_search___Pattern___search_index_in},
+  {(bigint) string_search___Pattern___search_in},
+  {(bigint) string_search___Pattern___search_all_in},
+  {(bigint) string_search___Pattern___split_in},
+  {(bigint) string_search___Pattern___init},
 };
 /* 0: Pointer to the classtable */
-val_t BOX_FileStat(void * val) {
-  struct TBOX_FileStat *box = (struct TBOX_FileStat*)alloc(sizeof(struct TBOX_FileStat));
-  box->vft = VFT_FileStat;
-  box->val = val;
-  return OBJ2VAL(box);
+/* 1: Object_id */
+void INIT_ATTRIBUTES__Pattern(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Pattern;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_NativeFile[46] = {
-  {(bigint) -25 /* 0: Identity */},
-  {(bigint) 3 /* 1: NativeFile < Object: superclass typecheck marker */},
-  {(bigint) -1 /* 2: NativeFile < Pointer: superclass typecheck marker */},
-  {(bigint) -25 /* 3: NativeFile < NativeFile: superclass typecheck marker */},
+val_t NEW_Pattern(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_Pattern;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Pattern(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Pattern;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Pattern_string_search___Pattern___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_Pattern_string_search___Pattern___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_Pattern();
+  INIT_ATTRIBUTES__Pattern(fra.me.REG[0]);
+  string_search___Pattern___init(fra.me.REG[0], init_table);
+  CHECKNEW_Pattern(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_BM_Pattern[57] = {
+  {(bigint) 5287 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: BM_Pattern < Object: superclass typecheck marker */},
+  {(bigint) 59 /* 3: BM_Pattern < Pattern: superclass typecheck marker */},
+  {(bigint) 5287 /* 4: BM_Pattern < BM_Pattern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12448,14 +33470,12 @@ const classtable_elt_t VFT_NativeFile[46] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: NativeFile < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: BM_Pattern < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12463,7 +33483,6 @@ const classtable_elt_t VFT_NativeFile[46] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12471,28 +33490,124 @@ const classtable_elt_t VFT_NativeFile[46] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string_search___BM_Pattern___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: NativeFile < Pointer: superclass init_table position */},
-  {(bigint) 2 /* 41: NativeFile < NativeFile: superclass init_table position */},
-  {(bigint) file___NativeFile___io_read},
-  {(bigint) file___NativeFile___io_write},
-  {(bigint) file___NativeFile___io_close},
-  {(bigint) file___NativeFile___file_stat},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: BM_Pattern < Pattern: superclass init_table position */},
+  {(bigint) string_search___BM_Pattern___search_index_in},
+  {(bigint) string_search___BM_Pattern___search_in},
+  {(bigint) string_search___Pattern___search_all_in},
+  {(bigint) string_search___Pattern___split_in},
+  {(bigint) string_search___Pattern___init},
+  {(bigint) 2 /* 51: BM_Pattern < BM_Pattern: superclass init_table position */},
+  {(bigint) string_search___BM_Pattern___init},
+  {(bigint) string_search___BM_Pattern___bc},
+  {(bigint) string_search___BM_Pattern___compute_bc},
+  {(bigint) string_search___BM_Pattern___suffixes},
+  {(bigint) string_search___BM_Pattern___compute_gs},
 };
 /* 0: Pointer to the classtable */
-val_t BOX_NativeFile(void * val) {
-  struct TBOX_NativeFile *box = (struct TBOX_NativeFile*)alloc(sizeof(struct TBOX_NativeFile));
-  box->vft = VFT_NativeFile;
-  box->val = val;
-  return OBJ2VAL(box);
-}
-const classtable_elt_t VFT_NativeFileCapable[46] = {
-  {(bigint) 75 /* 0: Identity */},
-  {(bigint) 3 /* 1: NativeFileCapable < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: NativeFileCapable < NativeFileCapable: superclass typecheck marker */},
+/* 1: Object_id */
+/* 2: Attribute BM_Pattern::_motif */
+/* 3: Attribute BM_Pattern::_length */
+/* 4: Attribute BM_Pattern::_gs */
+/* 5: Attribute BM_Pattern::_bc_table */
+void INIT_ATTRIBUTES__BM_Pattern(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__BM_Pattern;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_BM_Pattern(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_BM_Pattern;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_BM_Pattern(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_BM_Pattern;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_motif");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_gs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_bc_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_BM_Pattern_string_search___BM_Pattern___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 107;
+  fra.me.meth = LOCATE_NEW_BM_Pattern_string_search___BM_Pattern___init;
+  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;
+  fra.me.REG[1] = NEW_BM_Pattern();
+  /* ./../lib/standard//string_search.nit:107 */
+  INIT_ATTRIBUTES__BM_Pattern(fra.me.REG[1]);
+  string_search___BM_Pattern___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_BM_Pattern(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_Match[51] = {
+  {(bigint) 91 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Match < Object: superclass typecheck marker */},
+  {(bigint) 91 /* 3: Match < Match: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12503,14 +33618,12 @@ const classtable_elt_t VFT_NativeFileCapable[46] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: NativeFileCapable < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Match < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12518,7 +33631,6 @@ const classtable_elt_t VFT_NativeFileCapable[46] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12526,30 +33638,118 @@ const classtable_elt_t VFT_NativeFileCapable[46] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string_search___Match___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: NativeFileCapable < NativeFileCapable: superclass init_table position */},
-  {(bigint) file___NativeFileCapable___io_open_read},
-  {(bigint) file___NativeFileCapable___io_open_write},
-  {(bigint) file___NativeFileCapable___native_stdin},
-  {(bigint) file___NativeFileCapable___native_stdout},
-  {(bigint) file___NativeFileCapable___native_stderr},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Match < Match: superclass init_table position */},
+  {(bigint) string_search___Match___string},
+  {(bigint) string_search___Match___from},
+  {(bigint) string_search___Match___length},
+  {(bigint) string_search___Match___after},
+  {(bigint) string_search___Match___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_NativeFileCapable(void) {
+/* 1: Object_id */
+/* 2: Attribute Match::_string */
+/* 3: Attribute Match::_from */
+/* 4: Attribute Match::_length */
+void INIT_ATTRIBUTES__Match(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Match;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Match(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_NativeFileCapable;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_Match;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Match(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Match;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_string");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_from");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Match_string_search___Match___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 220;
+  fra.me.meth = LOCATE_NEW_Match_string_search___Match___init;
+  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;
+  REGB0 = p1;
+  REGB1 = p2;
+  fra.me.REG[1] = NEW_Match();
+  /* ./../lib/standard//string_search.nit:220 */
+  INIT_ATTRIBUTES__Match(fra.me.REG[1]);
+  string_search___Match___init(fra.me.REG[1], fra.me.REG[0], REGB0, REGB1, init_table);
+  CHECKNEW_Match(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_Process[51] = {
-  {(bigint) 43 /* 0: Identity */},
-  {(bigint) 3 /* 1: Process < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: Process < Process: superclass typecheck marker */},
+const classtable_elt_t VFT_FStream[57] = {
+  {(bigint) 5235 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: FStream < Object: superclass typecheck marker */},
+  {(bigint) 79 /* 3: FStream < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 155 /* 4: FStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 5235 /* 7: FStream < FStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12558,14 +33758,10 @@ const classtable_elt_t VFT_Process[51] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Process < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: FStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12573,7 +33769,6 @@ const classtable_elt_t VFT_Process[51] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12581,70 +33776,113 @@ const classtable_elt_t VFT_Process[51] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Process < Process: superclass init_table position */},
-  {(bigint) exec___Process___id},
-  {(bigint) exec___Process___is_finished},
-  {(bigint) exec___Process___wait},
-  {(bigint) exec___Process___status},
-  {(bigint) exec___Process___kill},
-  {(bigint) exec___Process___term},
-  {(bigint) exec___Process___init},
-  {(bigint) exec___Process___init_},
-  {(bigint) exec___Process___execute},
-  {(bigint) exec___Process___basic_exec_execute},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute Process::_data */
-val_t NEW_Process(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: FStream < NativeFileCapable: superclass init_table position */},
+  {(bigint) file___NativeFileCapable___io_open_read},
+  {(bigint) file___NativeFileCapable___io_open_write},
+  {(bigint) file___NativeFileCapable___native_stdin},
+  {(bigint) file___NativeFileCapable___native_stdout},
+  {(bigint) file___NativeFileCapable___native_stderr},
+  {(bigint) 3 /* 51: FStream < FStream: superclass init_table position */},
+  {(bigint) file___FStream___path},
+  {(bigint) file___FStream___file_stat},
+  {(bigint) 1 /* 54: FStream < IOS: superclass init_table position */},
+  {(bigint) stream___IOS___close},
+  {(bigint) stream___IOS___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute FStream::_path */
+/* 3: Attribute FStream::_file */
+void INIT_ATTRIBUTES__FStream(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__FStream;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:55 */
+  ATTR_file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:58 */
+  ATTR_file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_Process;
-  return OBJ2VAL(obj);
-}
-val_t NEW_exec___Process___init(val_t p0, val_t p1) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_Process();
-  exec___Process___init(self, p0, p1, init_table);
-  return self;
-}
-val_t NEW_exec___Process___init_(val_t p0) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_Process();
-  exec___Process___init_(self, p0, init_table);
-  return self;
-}
-val_t NEW_exec___Process___execute(val_t p0, val_t p1, val_t p2) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_Process();
-  exec___Process___execute(self, p0, p1, p2, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_FStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_FStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_FStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_FStream_stream___IOS___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_FStream_stream___IOS___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_FStream();
+  INIT_ATTRIBUTES__FStream(fra.me.REG[0]);
+  stream___IOS___init(fra.me.REG[0], init_table);
+  CHECKNEW_FStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_IProcess[69] = {
-  {(bigint) 3187 /* 0: Identity */},
-  {(bigint) 3 /* 1: IProcess < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: IProcess < Process: superclass typecheck marker */},
-  {(bigint) 135 /* 3: IProcess < IOS: superclass typecheck marker */},
+const classtable_elt_t VFT_IFStream[76] = {
+  {(bigint) 6079 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IFStream < Object: superclass typecheck marker */},
+  {(bigint) 79 /* 3: IFStream < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 155 /* 4: IFStream < IOS: superclass typecheck marker */},
+  {(bigint) 5907 /* 5: IFStream < BufferedIStream: superclass typecheck marker */},
+  {(bigint) 5187 /* 6: IFStream < IStream: superclass typecheck marker */},
+  {(bigint) 5235 /* 7: IFStream < FStream: superclass typecheck marker */},
+  {(bigint) 6079 /* 8: IFStream < IFStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2611 /* 5: IProcess < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3187 /* 7: IProcess < IProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IProcess < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IFStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12652,7 +33890,6 @@ const classtable_elt_t VFT_IProcess[69] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12660,84 +33897,203 @@ const classtable_elt_t VFT_IProcess[69] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: IProcess < Process: superclass init_table position */},
-  {(bigint) exec___Process___id},
-  {(bigint) exec___Process___is_finished},
-  {(bigint) exec___Process___wait},
-  {(bigint) exec___Process___status},
-  {(bigint) exec___Process___kill},
-  {(bigint) exec___Process___term},
-  {(bigint) exec___Process___init},
-  {(bigint) exec___Process___init_},
-  {(bigint) exec___Process___execute},
-  {(bigint) exec___Process___basic_exec_execute},
-  {(bigint) 2 /* 51: IProcess < IOS: superclass init_table position */},
-  {(bigint) exec___IProcess___close},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: IFStream < NativeFileCapable: superclass init_table position */},
+  {(bigint) file___NativeFileCapable___io_open_read},
+  {(bigint) file___NativeFileCapable___io_open_write},
+  {(bigint) file___NativeFileCapable___native_stdin},
+  {(bigint) file___NativeFileCapable___native_stdout},
+  {(bigint) file___NativeFileCapable___native_stderr},
+  {(bigint) 3 /* 51: IFStream < FStream: superclass init_table position */},
+  {(bigint) file___FStream___path},
+  {(bigint) file___FStream___file_stat},
+  {(bigint) 1 /* 54: IFStream < IOS: superclass init_table position */},
+  {(bigint) file___IFStream___close},
+  {(bigint) stream___IOS___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3 /* 56: IProcess < IStream: superclass init_table position */},
-  {(bigint) exec___IProcess___read_char},
-  {(bigint) stream___IStream___read},
+  {(bigint) 4 /* 60: IFStream < IStream: superclass init_table position */},
+  {(bigint) stream___BufferedIStream___read_char},
+  {(bigint) stream___BufferedIStream___read},
   {(bigint) stream___IStream___read_line},
-  {(bigint) stream___IStream___read_all},
-  {(bigint) stream___IStream___append_line_to},
-  {(bigint) exec___IProcess___eof},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 4 /* 66: IProcess < IProcess: superclass init_table position */},
-  {(bigint) exec___IProcess___init},
-  {(bigint) exec___IProcess___init_},
+  {(bigint) stream___BufferedIStream___read_all},
+  {(bigint) stream___BufferedIStream___append_line_to},
+  {(bigint) stream___BufferedIStream___eof},
+  {(bigint) 5 /* 67: IFStream < BufferedIStream: superclass init_table position */},
+  {(bigint) file___IFStream___fill_buffer},
+  {(bigint) file___IFStream___end_reached},
+  {(bigint) stream___BufferedIStream___prepare_buffer},
+  {(bigint) 6 /* 71: IFStream < IFStream: superclass init_table position */},
+  {(bigint) file___IFStream___reopen},
+  {(bigint) file___IFStream___open},
+  {(bigint) file___IFStream___init},
+  {(bigint) file___IFStream___without_file},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute IProcess::_data */
-/* Instance Hole :( */
-/* 3: Attribute IProcess::_in */
-val_t NEW_IProcess(void) {
+/* 1: Object_id */
+/* 2: Attribute IFStream::_path */
+/* 3: Attribute IFStream::_file */
+/* 4: Attribute IFStream::_buffer */
+/* 5: Attribute IFStream::_buffer_pos */
+/* 6: Attribute IFStream::_end_reached */
+void INIT_ATTRIBUTES__IFStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IFStream;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:55 */
+  ATTR_file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:58 */
+  ATTR_file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//stream.nit:186 */
+  ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//stream.nit:189 */
+  ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./../lib/standard//file.nit:98 */
+  ATTR_file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IFStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_IProcess;
-  return OBJ2VAL(obj);
-}
-val_t NEW_exec___IProcess___init(val_t p0, val_t p1) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_IProcess();
-  exec___IProcess___init(self, p0, p1, init_table);
-  return self;
-}
-val_t NEW_exec___IProcess___init_(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_IProcess();
-  exec___IProcess___init_(self, p0, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_IFStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IFStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IFStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_buffer_pos");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_file___IFStream____end_reached(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_end_reached");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IFStream_file___IFStream___open(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 101;
+  fra.me.meth = LOCATE_NEW_IFStream_file___IFStream___open;
+  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;
+  fra.me.REG[1] = NEW_IFStream();
+  /* ./../lib/standard//file.nit:101 */
+  INIT_ATTRIBUTES__IFStream(fra.me.REG[1]);
+  file___IFStream___open(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IFStream(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_IFStream_file___IFStream___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 110;
+  fra.me.meth = LOCATE_NEW_IFStream_file___IFStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_IFStream();
+  /* ./../lib/standard//file.nit:110 */
+  INIT_ATTRIBUTES__IFStream(fra.me.REG[0]);
+  file___IFStream___init(fra.me.REG[0], init_table);
+  CHECKNEW_IFStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_IFStream_file___IFStream___without_file(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 111;
+  fra.me.meth = LOCATE_NEW_IFStream_file___IFStream___without_file;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_IFStream();
+  /* ./../lib/standard//file.nit:111 */
+  INIT_ATTRIBUTES__IFStream(fra.me.REG[0]);
+  file___IFStream___without_file(fra.me.REG[0], init_table);
+  CHECKNEW_IFStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_OProcess[66] = {
-  {(bigint) 3135 /* 0: Identity */},
-  {(bigint) 3 /* 1: OProcess < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: OProcess < Process: superclass typecheck marker */},
-  {(bigint) 135 /* 3: OProcess < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: OProcess < OStream: superclass typecheck marker */},
+const classtable_elt_t VFT_OFStream[65] = {
+  {(bigint) 5735 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OFStream < Object: superclass typecheck marker */},
+  {(bigint) 79 /* 3: OFStream < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 155 /* 4: OFStream < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: OFStream < OStream: superclass typecheck marker */},
+  {(bigint) 5735 /* 6: OFStream < OFStream: superclass typecheck marker */},
+  {(bigint) 5235 /* 7: OFStream < FStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3135 /* 6: OProcess < OProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OProcess < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OFStream < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12745,7 +34101,6 @@ const classtable_elt_t VFT_OProcess[66] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12753,80 +34108,173 @@ const classtable_elt_t VFT_OProcess[66] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OProcess < Process: superclass init_table position */},
-  {(bigint) exec___Process___id},
-  {(bigint) exec___Process___is_finished},
-  {(bigint) exec___Process___wait},
-  {(bigint) exec___Process___status},
-  {(bigint) exec___Process___kill},
-  {(bigint) exec___Process___term},
-  {(bigint) exec___Process___init},
-  {(bigint) exec___Process___init_},
-  {(bigint) exec___Process___execute},
-  {(bigint) exec___Process___basic_exec_execute},
-  {(bigint) 2 /* 51: OProcess < IOS: superclass init_table position */},
-  {(bigint) exec___OProcess___close},
-  {(bigint) 3 /* 53: OProcess < OStream: superclass init_table position */},
-  {(bigint) exec___OProcess___write},
-  {(bigint) exec___OProcess___is_writable},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 4 /* 63: OProcess < OProcess: superclass init_table position */},
-  {(bigint) exec___OProcess___init},
-  {(bigint) exec___OProcess___init_},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: OFStream < NativeFileCapable: superclass init_table position */},
+  {(bigint) file___NativeFileCapable___io_open_read},
+  {(bigint) file___NativeFileCapable___io_open_write},
+  {(bigint) file___NativeFileCapable___native_stdin},
+  {(bigint) file___NativeFileCapable___native_stdout},
+  {(bigint) file___NativeFileCapable___native_stderr},
+  {(bigint) 3 /* 51: OFStream < FStream: superclass init_table position */},
+  {(bigint) file___FStream___path},
+  {(bigint) file___FStream___file_stat},
+  {(bigint) 1 /* 54: OFStream < IOS: superclass init_table position */},
+  {(bigint) file___OFStream___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 4 /* 57: OFStream < OStream: superclass init_table position */},
+  {(bigint) file___OFStream___write},
+  {(bigint) file___OFStream___is_writable},
+  {(bigint) 5 /* 60: OFStream < OFStream: superclass init_table position */},
+  {(bigint) file___OFStream___write_native},
+  {(bigint) file___OFStream___open},
+  {(bigint) file___OFStream___init},
+  {(bigint) file___OFStream___without_file},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OProcess::_data */
-/* 2: Attribute OProcess::_out */
-val_t NEW_OProcess(void) {
+/* 1: Object_id */
+/* 2: Attribute OFStream::_path */
+/* 3: Attribute OFStream::_file */
+/* 4: Attribute OFStream::_writable */
+void INIT_ATTRIBUTES__OFStream(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OFStream;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:55 */
+  ATTR_file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:58 */
+  ATTR_file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OFStream(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_OProcess;
-  return OBJ2VAL(obj);
-}
-val_t NEW_exec___OProcess___init(val_t p0, val_t p1) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_OProcess();
-  exec___OProcess___init(self, p0, p1, init_table);
-  return self;
-}
-val_t NEW_exec___OProcess___init_(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_OProcess();
-  exec___OProcess___init_(self, p0, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_OFStream;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OFStream(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OFStream;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_writable");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OFStream_file___OFStream___open(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 148;
+  fra.me.meth = LOCATE_NEW_OFStream_file___OFStream___open;
+  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;
+  fra.me.REG[1] = NEW_OFStream();
+  /* ./../lib/standard//file.nit:148 */
+  INIT_ATTRIBUTES__OFStream(fra.me.REG[1]);
+  file___OFStream___open(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_OFStream(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_OFStream_file___OFStream___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 157;
+  fra.me.meth = LOCATE_NEW_OFStream_file___OFStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_OFStream();
+  /* ./../lib/standard//file.nit:157 */
+  INIT_ATTRIBUTES__OFStream(fra.me.REG[0]);
+  file___OFStream___init(fra.me.REG[0], init_table);
+  CHECKNEW_OFStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_OFStream_file___OFStream___without_file(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 158;
+  fra.me.meth = LOCATE_NEW_OFStream_file___OFStream___without_file;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_OFStream();
+  /* ./../lib/standard//file.nit:158 */
+  INIT_ATTRIBUTES__OFStream(fra.me.REG[0]);
+  file___OFStream___without_file(fra.me.REG[0], init_table);
+  CHECKNEW_OFStream(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_IOProcess[73] = {
-  {(bigint) 3307 /* 0: Identity */},
-  {(bigint) 3 /* 1: IOProcess < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: IOProcess < Process: superclass typecheck marker */},
-  {(bigint) 135 /* 3: IOProcess < IOS: superclass typecheck marker */},
-  {(bigint) 2535 /* 4: IOProcess < OStream: superclass typecheck marker */},
-  {(bigint) 2611 /* 5: IOProcess < IStream: superclass typecheck marker */},
-  {(bigint) 3135 /* 6: IOProcess < OProcess: superclass typecheck marker */},
-  {(bigint) 3187 /* 7: IOProcess < IProcess: superclass typecheck marker */},
-  {(bigint) 3191 /* 8: IOProcess < IOStream: superclass typecheck marker */},
-  {(bigint) 3307 /* 9: IOProcess < IOProcess: superclass typecheck marker */},
+const classtable_elt_t VFT_Stdin[78] = {
+  {(bigint) 6383 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Stdin < Object: superclass typecheck marker */},
+  {(bigint) 79 /* 3: Stdin < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 155 /* 4: Stdin < IOS: superclass typecheck marker */},
+  {(bigint) 5907 /* 5: Stdin < BufferedIStream: superclass typecheck marker */},
+  {(bigint) 5187 /* 6: Stdin < IStream: superclass typecheck marker */},
+  {(bigint) 5235 /* 7: Stdin < FStream: superclass typecheck marker */},
+  {(bigint) 6079 /* 8: Stdin < IFStream: superclass typecheck marker */},
+  {(bigint) 6383 /* 9: Stdin < Stdin: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IOProcess < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Stdin < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12834,7 +34282,6 @@ const classtable_elt_t VFT_IOProcess[73] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12842,72 +34289,154 @@ const classtable_elt_t VFT_IOProcess[73] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: IOProcess < Process: superclass init_table position */},
-  {(bigint) exec___Process___id},
-  {(bigint) exec___Process___is_finished},
-  {(bigint) exec___Process___wait},
-  {(bigint) exec___Process___status},
-  {(bigint) exec___Process___kill},
-  {(bigint) exec___Process___term},
-  {(bigint) exec___Process___init},
-  {(bigint) exec___Process___init_},
-  {(bigint) exec___Process___execute},
-  {(bigint) exec___Process___basic_exec_execute},
-  {(bigint) 2 /* 51: IOProcess < IOS: superclass init_table position */},
-  {(bigint) exec___IOProcess___close},
-  {(bigint) 5 /* 53: IOProcess < OStream: superclass init_table position */},
-  {(bigint) exec___OProcess___write},
-  {(bigint) exec___OProcess___is_writable},
-  {(bigint) 3 /* 56: IOProcess < IStream: superclass init_table position */},
-  {(bigint) exec___IProcess___read_char},
-  {(bigint) stream___IStream___read},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: Stdin < NativeFileCapable: superclass init_table position */},
+  {(bigint) file___NativeFileCapable___io_open_read},
+  {(bigint) file___NativeFileCapable___io_open_write},
+  {(bigint) file___NativeFileCapable___native_stdin},
+  {(bigint) file___NativeFileCapable___native_stdout},
+  {(bigint) file___NativeFileCapable___native_stderr},
+  {(bigint) 3 /* 51: Stdin < FStream: superclass init_table position */},
+  {(bigint) file___FStream___path},
+  {(bigint) file___FStream___file_stat},
+  {(bigint) 1 /* 54: Stdin < IOS: superclass init_table position */},
+  {(bigint) file___IFStream___close},
+  {(bigint) stream___IOS___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 60: Stdin < IStream: superclass init_table position */},
+  {(bigint) stream___BufferedIStream___read_char},
+  {(bigint) stream___BufferedIStream___read},
   {(bigint) stream___IStream___read_line},
-  {(bigint) stream___IStream___read_all},
-  {(bigint) stream___IStream___append_line_to},
-  {(bigint) exec___IProcess___eof},
-  {(bigint) 6 /* 63: IOProcess < OProcess: superclass init_table position */},
-  {(bigint) exec___OProcess___init},
-  {(bigint) exec___OProcess___init_},
-  {(bigint) 4 /* 66: IOProcess < IProcess: superclass init_table position */},
-  {(bigint) exec___IProcess___init},
-  {(bigint) exec___IProcess___init_},
-  {(bigint) 7 /* 69: IOProcess < IOStream: superclass init_table position */},
-  {(bigint) 8 /* 70: IOProcess < IOProcess: superclass init_table position */},
-  {(bigint) exec___IOProcess___init},
-  {(bigint) exec___IOProcess___init_},
+  {(bigint) stream___BufferedIStream___read_all},
+  {(bigint) stream___BufferedIStream___append_line_to},
+  {(bigint) stream___BufferedIStream___eof},
+  {(bigint) 5 /* 67: Stdin < BufferedIStream: superclass init_table position */},
+  {(bigint) file___IFStream___fill_buffer},
+  {(bigint) file___IFStream___end_reached},
+  {(bigint) stream___BufferedIStream___prepare_buffer},
+  {(bigint) 6 /* 71: Stdin < IFStream: superclass init_table position */},
+  {(bigint) file___IFStream___reopen},
+  {(bigint) file___IFStream___open},
+  {(bigint) file___IFStream___init},
+  {(bigint) file___IFStream___without_file},
+  {(bigint) 7 /* 76: Stdin < Stdin: superclass init_table position */},
+  {(bigint) file___Stdin___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute IOProcess::_data */
-/* 2: Attribute IOProcess::_out */
-/* 3: Attribute IOProcess::_in */
-val_t NEW_IOProcess(void) {
+/* 1: Object_id */
+/* 2: Attribute Stdin::_path */
+/* 3: Attribute Stdin::_file */
+/* 4: Attribute Stdin::_buffer */
+/* 5: Attribute Stdin::_buffer_pos */
+/* 6: Attribute Stdin::_end_reached */
+void INIT_ATTRIBUTES__Stdin(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Stdin;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:55 */
+  ATTR_file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:58 */
+  ATTR_file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//stream.nit:186 */
+  ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./../lib/standard//stream.nit:189 */
+  ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./../lib/standard//file.nit:98 */
+  ATTR_file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Stdin(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_IOProcess;
-  return OBJ2VAL(obj);
-}
-val_t NEW_exec___IOProcess___init(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_IOProcess();
-  exec___IOProcess___init(self, p0, p1, init_table);
-  return self;
-}
-val_t NEW_exec___IOProcess___init_(val_t p0) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_IOProcess();
-  exec___IOProcess___init_(self, p0, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_Stdin;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Stdin(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Stdin;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_buffer_pos");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_file___IFStream____end_reached(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_end_reached");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Stdin_file___Stdin___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 165;
+  fra.me.meth = LOCATE_NEW_Stdin_file___Stdin___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_Stdin();
+  /* ./../lib/standard//file.nit:165 */
+  INIT_ATTRIBUTES__Stdin(fra.me.REG[0]);
+  file___Stdin___init(fra.me.REG[0], init_table);
+  CHECKNEW_Stdin(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_NativeProcess[50] = {
-  {(bigint) -21 /* 0: Identity */},
-  {(bigint) 3 /* 1: NativeProcess < Object: superclass typecheck marker */},
-  {(bigint) -1 /* 2: NativeProcess < Pointer: superclass typecheck marker */},
-  {(bigint) -21 /* 3: NativeProcess < NativeProcess: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_Stdout[67] = {
+  {(bigint) 6027 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Stdout < Object: superclass typecheck marker */},
+  {(bigint) 79 /* 3: Stdout < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 155 /* 4: Stdout < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: Stdout < OStream: superclass typecheck marker */},
+  {(bigint) 5735 /* 6: Stdout < OFStream: superclass typecheck marker */},
+  {(bigint) 5235 /* 7: Stdout < FStream: superclass typecheck marker */},
+  {(bigint) 6027 /* 8: Stdout < Stdout: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12916,14 +34445,9 @@ const classtable_elt_t VFT_NativeProcess[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: NativeProcess < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Stdout < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12931,7 +34455,6 @@ const classtable_elt_t VFT_NativeProcess[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12939,50 +34462,135 @@ const classtable_elt_t VFT_NativeProcess[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: NativeProcess < Pointer: superclass init_table position */},
-  {(bigint) 2 /* 41: NativeProcess < NativeProcess: superclass init_table position */},
-  {(bigint) exec___NativeProcess___id},
-  {(bigint) exec___NativeProcess___is_finished},
-  {(bigint) exec___NativeProcess___status},
-  {(bigint) exec___NativeProcess___wait},
-  {(bigint) exec___NativeProcess___kill},
-  {(bigint) exec___NativeProcess___in_fd},
-  {(bigint) exec___NativeProcess___out_fd},
-  {(bigint) exec___NativeProcess___err_fd},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: Stdout < NativeFileCapable: superclass init_table position */},
+  {(bigint) file___NativeFileCapable___io_open_read},
+  {(bigint) file___NativeFileCapable___io_open_write},
+  {(bigint) file___NativeFileCapable___native_stdin},
+  {(bigint) file___NativeFileCapable___native_stdout},
+  {(bigint) file___NativeFileCapable___native_stderr},
+  {(bigint) 3 /* 51: Stdout < FStream: superclass init_table position */},
+  {(bigint) file___FStream___path},
+  {(bigint) file___FStream___file_stat},
+  {(bigint) 1 /* 54: Stdout < IOS: superclass init_table position */},
+  {(bigint) file___OFStream___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 4 /* 57: Stdout < OStream: superclass init_table position */},
+  {(bigint) file___OFStream___write},
+  {(bigint) file___OFStream___is_writable},
+  {(bigint) 5 /* 60: Stdout < OFStream: superclass init_table position */},
+  {(bigint) file___OFStream___write_native},
+  {(bigint) file___OFStream___open},
+  {(bigint) file___OFStream___init},
+  {(bigint) file___OFStream___without_file},
+  {(bigint) 6 /* 65: Stdout < Stdout: superclass init_table position */},
+  {(bigint) file___Stdout___init},
 };
 /* 0: Pointer to the classtable */
-val_t BOX_NativeProcess(void * val) {
-  struct TBOX_NativeProcess *box = (struct TBOX_NativeProcess*)alloc(sizeof(struct TBOX_NativeProcess));
-  box->vft = VFT_NativeProcess;
-  box->val = val;
-  return OBJ2VAL(box);
+/* 1: Object_id */
+/* 2: Attribute Stdout::_path */
+/* 3: Attribute Stdout::_file */
+/* 4: Attribute Stdout::_writable */
+void INIT_ATTRIBUTES__Stdout(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Stdout;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:55 */
+  ATTR_file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:58 */
+  ATTR_file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Stdout(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_Stdout;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Stdout(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Stdout;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_writable");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Stdout_file___Stdout___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 174;
+  fra.me.meth = LOCATE_NEW_Stdout_file___Stdout___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_Stdout();
+  /* ./../lib/standard//file.nit:174 */
+  INIT_ATTRIBUTES__Stdout(fra.me.REG[0]);
+  file___Stdout___init(fra.me.REG[0], init_table);
+  CHECKNEW_Stdout(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_List[98] = {
-  {(bigint) 3631 /* 0: Identity */},
-  {(bigint) 3 /* 1: List < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_Stderr[67] = {
+  {(bigint) 6031 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Stderr < Object: superclass typecheck marker */},
+  {(bigint) 79 /* 3: Stderr < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 155 /* 4: Stderr < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: Stderr < OStream: superclass typecheck marker */},
+  {(bigint) 5735 /* 6: Stderr < OFStream: superclass typecheck marker */},
+  {(bigint) 5235 /* 7: Stderr < FStream: superclass typecheck marker */},
+  {(bigint) 6031 /* 8: Stderr < Stderr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: List < Collection: superclass typecheck marker */},
-  {(bigint) 211 /* 6: List < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3035 /* 7: List < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3143 /* 8: List < Map: superclass typecheck marker */},
-  {(bigint) 3303 /* 9: List < IndexedCollection: superclass typecheck marker */},
-  {(bigint) 3631 /* 10: List < List: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: List < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Stderr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -12990,7 +34598,6 @@ const classtable_elt_t VFT_List[98] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -12998,10 +34605,120 @@ const classtable_elt_t VFT_List[98] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 2 /* 45: Stderr < NativeFileCapable: superclass init_table position */},
+  {(bigint) file___NativeFileCapable___io_open_read},
+  {(bigint) file___NativeFileCapable___io_open_write},
+  {(bigint) file___NativeFileCapable___native_stdin},
+  {(bigint) file___NativeFileCapable___native_stdout},
+  {(bigint) file___NativeFileCapable___native_stderr},
+  {(bigint) 3 /* 51: Stderr < FStream: superclass init_table position */},
+  {(bigint) file___FStream___path},
+  {(bigint) file___FStream___file_stat},
+  {(bigint) 1 /* 54: Stderr < IOS: superclass init_table position */},
+  {(bigint) file___OFStream___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 4 /* 57: Stderr < OStream: superclass init_table position */},
+  {(bigint) file___OFStream___write},
+  {(bigint) file___OFStream___is_writable},
+  {(bigint) 5 /* 60: Stderr < OFStream: superclass init_table position */},
+  {(bigint) file___OFStream___write_native},
+  {(bigint) file___OFStream___open},
+  {(bigint) file___OFStream___init},
+  {(bigint) file___OFStream___without_file},
+  {(bigint) 6 /* 65: Stderr < Stderr: superclass init_table position */},
+  {(bigint) file___Stderr___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Stderr::_path */
+/* 3: Attribute Stderr::_file */
+/* 4: Attribute Stderr::_writable */
+void INIT_ATTRIBUTES__Stderr(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Stderr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:55 */
+  ATTR_file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./../lib/standard//file.nit:58 */
+  ATTR_file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Stderr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_Stderr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Stderr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Stderr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_writable");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Stderr_file___Stderr___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 183;
+  fra.me.meth = LOCATE_NEW_Stderr_file___Stderr___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_Stderr();
+  /* ./../lib/standard//file.nit:183 */
+  INIT_ATTRIBUTES__Stderr(fra.me.REG[0]);
+  file___Stderr___init(fra.me.REG[0], init_table);
+  CHECKNEW_Stderr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_FileStat[52] = {
+  {(bigint) -25 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: FileStat < Object: superclass typecheck marker */},
+  {(bigint) -1 /* 3: FileStat < Pointer: superclass typecheck marker */},
+  {(bigint) -25 /* 4: FileStat < FileStat: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13014,96 +34731,9 @@ const classtable_elt_t VFT_List[98] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) string___Collection___join},
-  {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: List < Collection: superclass init_table position */},
-  {(bigint) list___List___iterator},
-  {(bigint) list___List___is_empty},
-  {(bigint) list___List___length},
-  {(bigint) list___List___has},
-  {(bigint) list___List___has_only},
-  {(bigint) list___List___count},
-  {(bigint) list___List___first},
-  {(bigint) 2 /* 66: List < RemovableCollection: superclass init_table position */},
-  {(bigint) list___List___clear},
-  {(bigint) list___List___remove},
-  {(bigint) abstract_collection___RemovableCollection___remove_all},
-  {(bigint) 4 /* 70: List < SimpleCollection: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedCollection___add},
-  {(bigint) abstract_collection___SimpleCollection___add_all},
-  {(bigint) string___Map___map_join},
-  {(bigint) 3 /* 74: List < Map: superclass init_table position */},
-  {(bigint) list___List_____bra},
-  {(bigint) list___List_____braeq},
-  {(bigint) list___List___has_key},
-  {(bigint) list___List___remove_at},
-  {(bigint) abstract_collection___Map___recover_with},
-  {(bigint) 5 /* 80: List < IndexedCollection: superclass init_table position */},
-  {(bigint) list___List___first__eq},
-  {(bigint) list___List___last},
-  {(bigint) list___List___last__eq},
-  {(bigint) list___List___push},
-  {(bigint) abstract_collection___IndexedCollection___append},
-  {(bigint) list___List___pop},
-  {(bigint) list___List___unshift},
-  {(bigint) list___List___shift},
-  {(bigint) abstract_collection___IndexedCollection___index_of},
-  {(bigint) 6 /* 90: List < List: superclass init_table position */},
-  {(bigint) list___List___link},
-  {(bigint) list___List___init},
-  {(bigint) list___List___from},
-  {(bigint) list___List___get_node},
-  {(bigint) list___List___search_node_after},
-  {(bigint) list___List___remove_node},
-  {(bigint) list___List___insert_before},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute List::_head */
-/* 2: Attribute List::_tail */
-val_t NEW_List(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_List;
-  return OBJ2VAL(obj);
-}
-val_t NEW_list___List___init() {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_List();
-  list___List___init(self, init_table);
-  return self;
-}
-val_t NEW_list___List___from(val_t p0) {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_List();
-  list___List___from(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ListIterator[52] = {
-  {(bigint) 3299 /* 0: Identity */},
-  {(bigint) 3 /* 1: ListIterator < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: ListIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2547 /* 3: ListIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3183 /* 4: ListIterator < IndexedIterator: superclass typecheck marker */},
-  {(bigint) 3299 /* 5: ListIterator < ListIterator: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ListIterator < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: FileStat < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13111,7 +34741,6 @@ const classtable_elt_t VFT_ListIterator[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13119,61 +34748,56 @@ const classtable_elt_t VFT_ListIterator[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: ListIterator < Iterator: superclass init_table position */},
-  {(bigint) list___ListIterator___item},
-  {(bigint) list___ListIterator___next},
-  {(bigint) list___ListIterator___is_ok},
-  {(bigint) 2 /* 45: ListIterator < MapIterator: superclass init_table position */},
-  {(bigint) abstract_collection___IndexedIterator___key},
-  {(bigint) list___ListIterator___item__eq},
-  {(bigint) 3 /* 48: ListIterator < IndexedIterator: superclass init_table position */},
-  {(bigint) list___ListIterator___index},
-  {(bigint) 4 /* 50: ListIterator < ListIterator: superclass init_table position */},
-  {(bigint) list___ListIterator___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: FileStat < Pointer: superclass init_table position */},
+  {(bigint) 2 /* 46: FileStat < FileStat: superclass init_table position */},
+  {(bigint) file___FileStat___mode},
+  {(bigint) file___FileStat___atime},
+  {(bigint) file___FileStat___ctime},
+  {(bigint) file___FileStat___mtime},
+  {(bigint) file___FileStat___size},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ListIterator::_node */
-/* 2: Attribute ListIterator::_index */
-val_t NEW_ListIterator(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_ListIterator;
-  ATTR_list___ListIterator____index(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_list___ListIterator___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ListIterator();
-  list___ListIterator___init(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+val_t BOX_FileStat(void * val) {
+  struct TBOX_FileStat *box = (struct TBOX_FileStat*)alloc(sizeof(struct TBOX_FileStat));
+  box->vft = VFT_FileStat;
+  box->val = val;
+  box->object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_ListNode[76] = {
-  {(bigint) 3179 /* 0: Identity */},
-  {(bigint) 3 /* 1: ListNode < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_NativeFile[51] = {
+  {(bigint) -21 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: NativeFile < Object: superclass typecheck marker */},
+  {(bigint) -1 /* 3: NativeFile < Pointer: superclass typecheck marker */},
+  {(bigint) -21 /* 4: NativeFile < NativeFile: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: ListNode < Collection: superclass typecheck marker */},
-  {(bigint) 2651 /* 6: ListNode < Container: superclass typecheck marker */},
-  {(bigint) 3179 /* 7: ListNode < ListNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ListNode < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: NativeFile < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13181,7 +34805,6 @@ const classtable_elt_t VFT_ListNode[76] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13189,10 +34812,39 @@ const classtable_elt_t VFT_ListNode[76] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: NativeFile < Pointer: superclass init_table position */},
+  {(bigint) 2 /* 46: NativeFile < NativeFile: superclass init_table position */},
+  {(bigint) file___NativeFile___io_read},
+  {(bigint) file___NativeFile___io_write},
+  {(bigint) file___NativeFile___io_close},
+  {(bigint) file___NativeFile___file_stat},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+val_t BOX_NativeFile(void * val) {
+  struct TBOX_NativeFile *box = (struct TBOX_NativeFile*)alloc(sizeof(struct TBOX_NativeFile));
+  box->vft = VFT_NativeFile;
+  box->val = val;
+  box->object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(box);
+}
+const classtable_elt_t VFT_NativeFileCapable[51] = {
+  {(bigint) 79 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: NativeFileCapable < Object: superclass typecheck marker */},
+  {(bigint) 79 /* 3: NativeFileCapable < NativeFileCapable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13206,68 +34858,9 @@ const classtable_elt_t VFT_ListNode[76] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) string___Collection___join},
-  {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: ListNode < Collection: superclass init_table position */},
-  {(bigint) abstract_collection___Container___iterator},
-  {(bigint) abstract_collection___Container___is_empty},
-  {(bigint) abstract_collection___Container___length},
-  {(bigint) abstract_collection___Container___has},
-  {(bigint) abstract_collection___Container___has_only},
-  {(bigint) abstract_collection___Container___count},
-  {(bigint) abstract_collection___Container___first},
-  {(bigint) 2 /* 66: ListNode < Container: superclass init_table position */},
-  {(bigint) abstract_collection___Container___init},
-  {(bigint) abstract_collection___Container___item},
-  {(bigint) abstract_collection___Container___item__eq},
-  {(bigint) 3 /* 70: ListNode < ListNode: superclass init_table position */},
-  {(bigint) list___ListNode___init},
-  {(bigint) list___ListNode___next},
-  {(bigint) list___ListNode___next__eq},
-  {(bigint) list___ListNode___prev},
-  {(bigint) list___ListNode___prev__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ListNode::_item */
-/* 2: Attribute ListNode::_next */
-/* 3: Attribute ListNode::_prev */
-val_t NEW_ListNode(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_ListNode;
-  return OBJ2VAL(obj);
-}
-val_t NEW_list___ListNode___init(val_t p0) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_ListNode();
-  list___ListNode___init(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_Range[71] = {
-  {(bigint) 2507 /* 0: Identity */},
-  {(bigint) 3 /* 1: Range < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: Range < Collection: superclass typecheck marker */},
-  {(bigint) 2507 /* 6: Range < Range: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Range < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: NativeFileCapable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13275,7 +34868,6 @@ const classtable_elt_t VFT_Range[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13283,10 +34875,62 @@ const classtable_elt_t VFT_Range[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: NativeFileCapable < NativeFileCapable: superclass init_table position */},
+  {(bigint) file___NativeFileCapable___io_open_read},
+  {(bigint) file___NativeFileCapable___io_open_write},
+  {(bigint) file___NativeFileCapable___native_stdin},
+  {(bigint) file___NativeFileCapable___native_stdout},
+  {(bigint) file___NativeFileCapable___native_stderr},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__NativeFileCapable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__NativeFileCapable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_NativeFileCapable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_NativeFileCapable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_NativeFileCapable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_NativeFileCapable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+const classtable_elt_t VFT_Process[54] = {
+  {(bigint) 51 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Process < Object: superclass typecheck marker */},
+  {(bigint) 51 /* 3: Process < Process: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13300,69 +34944,9 @@ const classtable_elt_t VFT_Range[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) string___Collection___join},
-  {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: Range < Collection: superclass init_table position */},
-  {(bigint) range___Range___iterator},
-  {(bigint) range___Range___is_empty},
-  {(bigint) range___Range___length},
-  {(bigint) range___Range___has},
-  {(bigint) range___Range___has_only},
-  {(bigint) range___Range___count},
-  {(bigint) range___Range___first},
-  {(bigint) 2 /* 66: Range < Range: superclass init_table position */},
-  {(bigint) range___Range___last},
-  {(bigint) range___Range___after},
-  {(bigint) range___Range___init},
-  {(bigint) range___Range___without_last},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute Range::_first */
-/* 2: Attribute Range::_last */
-/* 3: Attribute Range::_after */
-val_t NEW_Range(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_Range;
-  return OBJ2VAL(obj);
-}
-val_t NEW_range___Range___init(val_t p0, val_t p1) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_Range();
-  range___Range___init(self, p0, p1, init_table);
-  return self;
-}
-val_t NEW_range___Range___without_last(val_t p0, val_t p1) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_Range();
-  range___Range___without_last(self, p0, p1, init_table);
-  return self;
-}
-const classtable_elt_t VFT_IteratorRange[47] = {
-  {(bigint) 2607 /* 0: Identity */},
-  {(bigint) 3 /* 1: IteratorRange < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: IteratorRange < Iterator: superclass typecheck marker */},
-  {(bigint) 2607 /* 3: IteratorRange < IteratorRange: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: IteratorRange < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Process < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13370,7 +34954,6 @@ const classtable_elt_t VFT_IteratorRange[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13378,39 +34961,150 @@ const classtable_elt_t VFT_IteratorRange[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) array___Iterator___to_a},
-  {(bigint) 1 /* 41: IteratorRange < Iterator: superclass init_table position */},
-  {(bigint) range___IteratorRange___item},
-  {(bigint) range___IteratorRange___next},
-  {(bigint) range___IteratorRange___is_ok},
-  {(bigint) 2 /* 45: IteratorRange < IteratorRange: superclass init_table position */},
-  {(bigint) range___IteratorRange___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Process < Process: superclass init_table position */},
+  {(bigint) exec___Process___id},
+  {(bigint) exec___Process___is_finished},
+  {(bigint) exec___Process___wait},
+  {(bigint) exec___Process___status},
+  {(bigint) exec___Process___init},
+  {(bigint) exec___Process___init_},
+  {(bigint) exec___Process___execute},
+  {(bigint) exec___Process___basic_exec_execute},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute IteratorRange::_range */
-/* 2: Attribute IteratorRange::_item */
-val_t NEW_IteratorRange(void) {
+/* 1: Object_id */
+/* 2: Attribute Process::_data */
+void INIT_ATTRIBUTES__Process(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Process;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Process(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_IteratorRange;
-  return OBJ2VAL(obj);
-}
-val_t NEW_range___IteratorRange___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_IteratorRange();
-  range___IteratorRange___init(self, p0, init_table);
-  return self;
+  obj->vft = (classtable_elt_t*)VFT_Process;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Process(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Process;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_exec___Process____data(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_data");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Process_exec___Process___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43;
+  fra.me.meth = LOCATE_NEW_Process_exec___Process___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_Process();
+  /* ./../lib/standard//exec.nit:43 */
+  INIT_ATTRIBUTES__Process(fra.me.REG[2]);
+  exec___Process___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_Process(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_Process_exec___Process___init_(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 49;
+  fra.me.meth = LOCATE_NEW_Process_exec___Process___init_;
+  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;
+  fra.me.REG[1] = NEW_Process();
+  /* ./../lib/standard//exec.nit:49 */
+  INIT_ATTRIBUTES__Process(fra.me.REG[1]);
+  exec___Process___init_(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Process(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_Process_exec___Process___execute(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 tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 55;
+  fra.me.meth = LOCATE_NEW_Process_exec___Process___execute;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  REGB0 = p2;
+  fra.me.REG[2] = NEW_Process();
+  /* ./../lib/standard//exec.nit:55 */
+  INIT_ATTRIBUTES__Process(fra.me.REG[2]);
+  exec___Process___execute(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, init_table);
+  CHECKNEW_Process(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PNode[61] = {
-  {(bigint) 63 /* 0: Identity */},
-  {(bigint) 3 /* 1: PNode < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PNode < PNode: superclass typecheck marker */},
+const classtable_elt_t VFT_IProcess[73] = {
+  {(bigint) 5795 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IProcess < Object: superclass typecheck marker */},
+  {(bigint) 51 /* 3: IProcess < Process: superclass typecheck marker */},
+  {(bigint) 155 /* 4: IProcess < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5187 /* 6: IProcess < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5795 /* 8: IProcess < IProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13419,14 +35113,9 @@ const classtable_elt_t VFT_PNode[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PNode < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IProcess < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13434,7 +35123,6 @@ const classtable_elt_t VFT_PNode[61] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13442,46 +35130,152 @@ const classtable_elt_t VFT_PNode[61] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___PNode___locate},
-  {(bigint) parser_prod___PNode___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PNode < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: IProcess < Process: superclass init_table position */},
+  {(bigint) exec___Process___id},
+  {(bigint) exec___Process___is_finished},
+  {(bigint) exec___Process___wait},
+  {(bigint) exec___Process___status},
+  {(bigint) exec___Process___init},
+  {(bigint) exec___Process___init_},
+  {(bigint) exec___Process___execute},
+  {(bigint) exec___Process___basic_exec_execute},
+  {(bigint) 2 /* 54: IProcess < IOS: superclass init_table position */},
+  {(bigint) exec___IProcess___close},
+  {(bigint) stream___IOS___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 60: IProcess < IStream: superclass init_table position */},
+  {(bigint) exec___IProcess___read_char},
+  {(bigint) stream___IStream___read},
+  {(bigint) stream___IStream___read_line},
+  {(bigint) stream___IStream___read_all},
+  {(bigint) stream___IStream___append_line_to},
+  {(bigint) exec___IProcess___eof},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 70: IProcess < IProcess: superclass init_table position */},
+  {(bigint) exec___IProcess___init},
+  {(bigint) exec___IProcess___init_},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute PNode::_parent */
-val_t NEW_PNode(void) {
+/* 1: Object_id */
+/* 2: Attribute IProcess::_data */
+/* Instance Hole :( */
+/* 4: Attribute IProcess::_in */
+void INIT_ATTRIBUTES__IProcess(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IProcess;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IProcess(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_PNode;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_IProcess;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IProcess(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IProcess;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_exec___Process____data(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_data");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_exec___IProcess____in(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_in");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IProcess_exec___IProcess___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 87;
+  fra.me.meth = LOCATE_NEW_IProcess_exec___IProcess___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IProcess();
+  /* ./../lib/standard//exec.nit:87 */
+  INIT_ATTRIBUTES__IProcess(fra.me.REG[2]);
+  exec___IProcess___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IProcess(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_IProcess_exec___IProcess___init_(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 93;
+  fra.me.meth = LOCATE_NEW_IProcess_exec___IProcess___init_;
+  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;
+  fra.me.REG[1] = NEW_IProcess();
+  /* ./../lib/standard//exec.nit:93 */
+  INIT_ATTRIBUTES__IProcess(fra.me.REG[1]);
+  exec___IProcess___init_(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IProcess(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_Token[69] = {
-  {(bigint) 183 /* 0: Identity */},
-  {(bigint) 3 /* 1: Token < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: Token < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: Token < Token: superclass typecheck marker */},
+const classtable_elt_t VFT_OProcess[70] = {
+  {(bigint) 5731 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OProcess < Object: superclass typecheck marker */},
+  {(bigint) 51 /* 3: OProcess < Process: superclass typecheck marker */},
+  {(bigint) 155 /* 4: OProcess < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: OProcess < OStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5731 /* 7: OProcess < OProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13490,14 +35284,10 @@ const classtable_elt_t VFT_Token[69] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Token < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OProcess < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13505,7 +35295,6 @@ const classtable_elt_t VFT_Token[69] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13513,77 +35302,160 @@ const classtable_elt_t VFT_Token[69] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) parser_prod___Token___visit_all},
-  {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: Token < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) syntax_base___Token___to_symbol},
-  {(bigint) lexer___Token___text},
-  {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___Token___parser_index},
-  {(bigint) 2 /* 68: Token < Token: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OProcess < Process: superclass init_table position */},
+  {(bigint) exec___Process___id},
+  {(bigint) exec___Process___is_finished},
+  {(bigint) exec___Process___wait},
+  {(bigint) exec___Process___status},
+  {(bigint) exec___Process___init},
+  {(bigint) exec___Process___init_},
+  {(bigint) exec___Process___execute},
+  {(bigint) exec___Process___basic_exec_execute},
+  {(bigint) 2 /* 54: OProcess < IOS: superclass init_table position */},
+  {(bigint) exec___OProcess___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 3 /* 57: OProcess < OStream: superclass init_table position */},
+  {(bigint) exec___OProcess___write},
+  {(bigint) exec___OProcess___is_writable},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 67: OProcess < OProcess: superclass init_table position */},
+  {(bigint) exec___OProcess___init},
+  {(bigint) exec___OProcess___init_},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Token::_parent */
-/* 2: Attribute Token::_symbol */
-/* 3: Attribute Token::_text */
-/* 4: Attribute Token::_filename */
-/* 5: Attribute Token::_line */
-/* 6: Attribute Token::_pos */
-val_t NEW_Token(void) {
+/* 1: Object_id */
+/* 2: Attribute OProcess::_data */
+/* 3: Attribute OProcess::_out */
+void INIT_ATTRIBUTES__OProcess(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OProcess;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OProcess(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_Token;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_OProcess;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OProcess(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OProcess;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_exec___Process____data(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_data");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_exec___OProcess____out(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_out");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OProcess_exec___OProcess___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 112;
+  fra.me.meth = LOCATE_NEW_OProcess_exec___OProcess___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_OProcess();
+  /* ./../lib/standard//exec.nit:112 */
+  INIT_ATTRIBUTES__OProcess(fra.me.REG[2]);
+  exec___OProcess___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_OProcess(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_OProcess_exec___OProcess___init_(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 118;
+  fra.me.meth = LOCATE_NEW_OProcess_exec___OProcess___init_;
+  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;
+  fra.me.REG[1] = NEW_OProcess();
+  /* ./../lib/standard//exec.nit:118 */
+  INIT_ATTRIBUTES__OProcess(fra.me.REG[1]);
+  exec___OProcess___init_(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_OProcess(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_Prod[67] = {
-  {(bigint) 2511 /* 0: Identity */},
-  {(bigint) 3 /* 1: Prod < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: Prod < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: Prod < Prod: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_IOProcess[77] = {
+  {(bigint) 6067 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IOProcess < Object: superclass typecheck marker */},
+  {(bigint) 51 /* 3: IOProcess < Process: superclass typecheck marker */},
+  {(bigint) 155 /* 4: IOProcess < IOS: superclass typecheck marker */},
+  {(bigint) 5091 /* 5: IOProcess < OStream: superclass typecheck marker */},
+  {(bigint) 5187 /* 6: IOProcess < IStream: superclass typecheck marker */},
+  {(bigint) 5731 /* 7: IOProcess < OProcess: superclass typecheck marker */},
+  {(bigint) 5795 /* 8: IOProcess < IProcess: superclass typecheck marker */},
+  {(bigint) 5803 /* 9: IOProcess < IOStream: superclass typecheck marker */},
+  {(bigint) 6067 /* 10: IOProcess < IOProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Prod < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IOProcess < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13591,7 +35463,6 @@ const classtable_elt_t VFT_Prod[67] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13599,54 +35470,160 @@ const classtable_elt_t VFT_Prod[67] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: Prod < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: Prod < Prod: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: IOProcess < Process: superclass init_table position */},
+  {(bigint) exec___Process___id},
+  {(bigint) exec___Process___is_finished},
+  {(bigint) exec___Process___wait},
+  {(bigint) exec___Process___status},
+  {(bigint) exec___Process___init},
+  {(bigint) exec___Process___init_},
+  {(bigint) exec___Process___execute},
+  {(bigint) exec___Process___basic_exec_execute},
+  {(bigint) 2 /* 54: IOProcess < IOS: superclass init_table position */},
+  {(bigint) exec___IOProcess___close},
+  {(bigint) stream___IOS___init},
+  {(bigint) 5 /* 57: IOProcess < OStream: superclass init_table position */},
+  {(bigint) exec___OProcess___write},
+  {(bigint) exec___OProcess___is_writable},
+  {(bigint) 3 /* 60: IOProcess < IStream: superclass init_table position */},
+  {(bigint) exec___IProcess___read_char},
+  {(bigint) stream___IStream___read},
+  {(bigint) stream___IStream___read_line},
+  {(bigint) stream___IStream___read_all},
+  {(bigint) stream___IStream___append_line_to},
+  {(bigint) exec___IProcess___eof},
+  {(bigint) 6 /* 67: IOProcess < OProcess: superclass init_table position */},
+  {(bigint) exec___OProcess___init},
+  {(bigint) exec___OProcess___init_},
+  {(bigint) 4 /* 70: IOProcess < IProcess: superclass init_table position */},
+  {(bigint) exec___IProcess___init},
+  {(bigint) exec___IProcess___init_},
+  {(bigint) 7 /* 73: IOProcess < IOStream: superclass init_table position */},
+  {(bigint) 8 /* 74: IOProcess < IOProcess: superclass init_table position */},
+  {(bigint) exec___IOProcess___init},
+  {(bigint) exec___IOProcess___init_},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Prod::_parent */
-/* 2: Attribute Prod::_first_token */
-/* 3: Attribute Prod::_last_token */
-val_t NEW_Prod(void) {
+/* 1: Object_id */
+/* 2: Attribute IOProcess::_data */
+/* 3: Attribute IOProcess::_out */
+/* 4: Attribute IOProcess::_in */
+void INIT_ATTRIBUTES__IOProcess(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IOProcess;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IOProcess(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_Prod;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_TEol[71] = {
-  {(bigint) 2975 /* 0: Identity */},
-  {(bigint) 3 /* 1: TEol < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TEol < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TEol < Token: superclass typecheck marker */},
-  {(bigint) 2975 /* 4: TEol < TEol: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_IOProcess;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IOProcess(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IOProcess;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_exec___Process____data(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_data");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_exec___IProcess____in(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_in");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_exec___OProcess____out(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_out");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IOProcess_exec___IOProcess___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 137;
+  fra.me.meth = LOCATE_NEW_IOProcess_exec___IOProcess___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IOProcess();
+  /* ./../lib/standard//exec.nit:137 */
+  INIT_ATTRIBUTES__IOProcess(fra.me.REG[2]);
+  exec___IOProcess___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IOProcess(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_IOProcess_exec___IOProcess___init_(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 144;
+  fra.me.meth = LOCATE_NEW_IOProcess_exec___IOProcess___init_;
+  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;
+  fra.me.REG[1] = NEW_IOProcess();
+  /* ./../lib/standard//exec.nit:144 */
+  INIT_ATTRIBUTES__IOProcess(fra.me.REG[1]);
+  exec___IOProcess___init_(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IOProcess(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_NativeProcess[54] = {
+  {(bigint) -17 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: NativeProcess < Object: superclass typecheck marker */},
+  {(bigint) -1 /* 3: NativeProcess < Pointer: superclass typecheck marker */},
+  {(bigint) -17 /* 4: NativeProcess < NativeProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13655,14 +35632,13 @@ const classtable_elt_t VFT_TEol[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TEol < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: NativeProcess < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13670,7 +35646,6 @@ const classtable_elt_t VFT_TEol[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13678,70 +35653,44 @@ const classtable_elt_t VFT_TEol[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) parser_prod___Token___visit_all},
-  {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TEol < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) syntax_base___Token___to_symbol},
-  {(bigint) lexer___Token___text},
-  {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TEol___parser_index},
-  {(bigint) 2 /* 68: TEol < Token: superclass init_table position */},
-  {(bigint) lexer___TEol___init},
-  {(bigint) 3 /* 70: TEol < TEol: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: NativeProcess < Pointer: superclass init_table position */},
+  {(bigint) 2 /* 46: NativeProcess < NativeProcess: superclass init_table position */},
+  {(bigint) exec___NativeProcess___id},
+  {(bigint) exec___NativeProcess___is_finished},
+  {(bigint) exec___NativeProcess___status},
+  {(bigint) exec___NativeProcess___wait},
+  {(bigint) exec___NativeProcess___in_fd},
+  {(bigint) exec___NativeProcess___out_fd},
+  {(bigint) exec___NativeProcess___err_fd},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TEol::_parent */
-/* 2: Attribute TEol::_symbol */
-/* 3: Attribute TEol::_text */
-/* 4: Attribute TEol::_filename */
-/* 5: Attribute TEol::_line */
-/* 6: Attribute TEol::_pos */
-val_t NEW_TEol(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TEol;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TEol___init(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TEol();
-  lexer___TEol___init(self, p0, p1, p2, p3, init_table);
-  return self;
+/* 1: Object_id */
+val_t BOX_NativeProcess(void * val) {
+  struct TBOX_NativeProcess *box = (struct TBOX_NativeProcess*)alloc(sizeof(struct TBOX_NativeProcess));
+  box->vft = VFT_NativeProcess;
+  box->val = val;
+  box->object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_TComment[71] = {
-  {(bigint) 2999 /* 0: Identity */},
-  {(bigint) 3 /* 1: TComment < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TComment < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TComment < Token: superclass typecheck marker */},
-  {(bigint) 2999 /* 4: TComment < TComment: superclass typecheck marker */},
+const classtable_elt_t VFT_Location[70] = {
+  {(bigint) 5175 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Location < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 211 /* 4: Location < Comparable: superclass typecheck marker */},
+  {(bigint) 5175 /* 5: Location < Location: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13749,22 +35698,20 @@ const classtable_elt_t VFT_TComment[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TComment < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Location < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
+  {(bigint) location___Location_____eqeq},
   {(bigint) kernel___Object_____neq},
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13772,69 +35719,174 @@ const classtable_elt_t VFT_TComment[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) location___Location___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) parser_prod___Token___visit_all},
-  {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TComment < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) syntax_base___Token___to_symbol},
-  {(bigint) lexer___Token___text},
-  {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TComment___parser_index},
-  {(bigint) 2 /* 68: TComment < Token: superclass init_table position */},
-  {(bigint) lexer___TComment___init},
-  {(bigint) 3 /* 70: TComment < TComment: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TComment::_parent */
-/* 2: Attribute TComment::_symbol */
-/* 3: Attribute TComment::_text */
-/* 4: Attribute TComment::_filename */
-/* 5: Attribute TComment::_line */
-/* 6: Attribute TComment::_pos */
-val_t NEW_TComment(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 51: Location < Comparable: superclass init_table position */},
+  {(bigint) location___Location_____l},
+  {(bigint) kernel___Comparable_____leq},
+  {(bigint) kernel___Comparable_____geq},
+  {(bigint) kernel___Comparable_____g},
+  {(bigint) kernel___Comparable_____leqg},
+  {(bigint) kernel___Comparable___is_between},
+  {(bigint) kernel___Comparable___max},
+  {(bigint) kernel___Comparable___min},
+  {(bigint) 2 /* 60: Location < Location: superclass init_table position */},
+  {(bigint) location___Location___file},
+  {(bigint) location___Location___line_start},
+  {(bigint) location___Location___line_end},
+  {(bigint) location___Location___column_start},
+  {(bigint) location___Location___column_end},
+  {(bigint) location___Location___init},
+  {(bigint) location___Location___with_file},
+  {(bigint) location___Location___located_in},
+  {(bigint) location___Location___relative_to},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Location::_file */
+/* 3: Attribute Location::_line_start */
+/* 4: Attribute Location::_line_end */
+/* 5: Attribute Location::_column_start */
+/* 6: Attribute Location::_column_end */
+void INIT_ATTRIBUTES__Location(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Location;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Location(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TComment;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TComment___init(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TComment();
-  lexer___TComment___init(self, p0, p1, p2, p3, init_table);
-  return self;
-}
-const classtable_elt_t VFT_TKwpackage[71] = {
-  {(bigint) 2831 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwpackage < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwpackage < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwpackage < Token: superclass typecheck marker */},
-  {(bigint) 2831 /* 4: TKwpackage < TKwpackage: superclass typecheck marker */},
+  obj->vft = (classtable_elt_t*)VFT_Location;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Location(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Location;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_location___Location____file(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_file");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_location___Location____line_start(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_line_start");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_location___Location____line_end(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_line_end");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_location___Location____column_start(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_column_start");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_location___Location____column_end(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_column_end");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Location_location___Location___init(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[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29;
+  fra.me.meth = LOCATE_NEW_Location_location___Location___init;
+  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;
+  REGB0 = p1;
+  REGB1 = p2;
+  REGB2 = p3;
+  REGB3 = p4;
+  fra.me.REG[1] = NEW_Location();
+  /* ./location.nit:29 */
+  INIT_ATTRIBUTES__Location(fra.me.REG[1]);
+  location___Location___init(fra.me.REG[1], fra.me.REG[0], REGB0, REGB1, REGB2, REGB3, init_table);
+  CHECKNEW_Location(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_Location_location___Location___with_file(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37;
+  fra.me.meth = LOCATE_NEW_Location_location___Location___with_file;
+  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;
+  fra.me.REG[1] = NEW_Location();
+  /* ./location.nit:37 */
+  INIT_ATTRIBUTES__Location(fra.me.REG[1]);
+  location___Location___with_file(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Location(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ANode[65] = {
+  {(bigint) 239 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ANode < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ANode < ANode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13843,14 +35895,14 @@ const classtable_elt_t VFT_TKwpackage[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwpackage < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ANode < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13858,7 +35910,6 @@ const classtable_elt_t VFT_TKwpackage[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13866,69 +35917,99 @@ const classtable_elt_t VFT_TKwpackage[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) parser_prod___Token___visit_all},
-  {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwpackage < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) syntax_base___Token___to_symbol},
-  {(bigint) lexer___Token___text},
-  {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwpackage___parser_index},
-  {(bigint) 2 /* 68: TKwpackage < Token: superclass init_table position */},
-  {(bigint) lexer___TKwpackage___init},
-  {(bigint) 3 /* 70: TKwpackage < TKwpackage: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: ANode < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TKwpackage::_parent */
-/* 2: Attribute TKwpackage::_symbol */
-/* 3: Attribute TKwpackage::_text */
-/* 4: Attribute TKwpackage::_filename */
-/* 5: Attribute TKwpackage::_line */
-/* 6: Attribute TKwpackage::_pos */
-val_t NEW_TKwpackage(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwpackage;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwpackage___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwpackage();
-  lexer___TKwpackage___init(self, p0, p1, p2, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute ANode::_parent */
+/* 3: Attribute ANode::_location */
+void INIT_ATTRIBUTES__ANode(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ANode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_TKwimport[71] = {
-  {(bigint) 2887 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwimport < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwimport < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwimport < Token: superclass typecheck marker */},
-  {(bigint) 2887 /* 4: TKwimport < TKwimport: superclass typecheck marker */},
+val_t NEW_ANode(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_ANode;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ANode(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ANode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANode_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ANode_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ANode();
+  INIT_ATTRIBUTES__ANode(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANode(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_Token[70] = {
+  {(bigint) 251 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Token < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: Token < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: Token < Token: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13937,14 +36018,13 @@ const classtable_elt_t VFT_TKwimport[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwimport < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Token < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -13952,7 +36032,6 @@ const classtable_elt_t VFT_TKwimport[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -13960,69 +36039,116 @@ const classtable_elt_t VFT_TKwimport[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwimport < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: Token < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwimport___parser_index},
-  {(bigint) 2 /* 68: TKwimport < Token: superclass init_table position */},
-  {(bigint) lexer___TKwimport___init},
-  {(bigint) 3 /* 70: TKwimport < TKwimport: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwimport::_parent */
-/* 2: Attribute TKwimport::_symbol */
-/* 3: Attribute TKwimport::_text */
-/* 4: Attribute TKwimport::_filename */
-/* 5: Attribute TKwimport::_line */
-/* 6: Attribute TKwimport::_pos */
-val_t NEW_TKwimport(void) {
+  {(bigint) lexer___Token___parser_index},
+  {(bigint) 2 /* 69: Token < Token: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Token::_parent */
+/* 3: Attribute Token::_location */
+/* 4: Attribute Token::_symbol_cache */
+/* 5: Attribute Token::_text */
+void INIT_ATTRIBUTES__Token(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Token;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Token(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwimport;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_Token;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_lexer___TKwimport___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwimport();
-  lexer___TKwimport___init(self, p0, p1, p2, init_table);
-  return self;
+void CHECKNEW_Token(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Token;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_TKwclass[71] = {
-  {(bigint) 2923 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwclass < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwclass < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwclass < Token: superclass typecheck marker */},
-  {(bigint) 2923 /* 4: TKwclass < TKwclass: superclass typecheck marker */},
+val_t NEW_Token_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_Token_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_Token();
+  INIT_ATTRIBUTES__Token(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Token(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_Prod[68] = {
+  {(bigint) 5059 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Prod < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: Prod < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: Prod < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14031,14 +36157,13 @@ const classtable_elt_t VFT_TKwclass[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwclass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Prod < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14046,7 +36171,6 @@ const classtable_elt_t VFT_TKwclass[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14054,69 +36178,105 @@ const classtable_elt_t VFT_TKwclass[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) parser_prod___Token___visit_all},
-  {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwclass < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) syntax_base___Token___to_symbol},
-  {(bigint) lexer___Token___text},
-  {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwclass___parser_index},
-  {(bigint) 2 /* 68: TKwclass < Token: superclass init_table position */},
-  {(bigint) lexer___TKwclass___init},
-  {(bigint) 3 /* 70: TKwclass < TKwclass: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwclass::_parent */
-/* 2: Attribute TKwclass::_symbol */
-/* 3: Attribute TKwclass::_text */
-/* 4: Attribute TKwclass::_filename */
-/* 5: Attribute TKwclass::_line */
-/* 6: Attribute TKwclass::_pos */
-val_t NEW_TKwclass(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: Prod < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: Prod < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Prod::_parent */
+/* 3: Attribute Prod::_location */
+/* 4: Attribute Prod::_first_location */
+/* 5: Attribute Prod::_last_location */
+void INIT_ATTRIBUTES__Prod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Prod;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Prod(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwclass;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_Prod;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_lexer___TKwclass___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwclass();
-  lexer___TKwclass___init(self, p0, p1, p2, init_table);
-  return self;
+void CHECKNEW_Prod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Prod;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_TKwabstract[71] = {
-  {(bigint) 2947 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwabstract < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwabstract < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwabstract < Token: superclass typecheck marker */},
-  {(bigint) 2947 /* 4: TKwabstract < TKwabstract: superclass typecheck marker */},
+val_t NEW_Prod_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_Prod_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_Prod();
+  INIT_ATTRIBUTES__Prod(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Prod(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_TEol[72] = {
+  {(bigint) 5635 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TEol < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TEol < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TEol < Token: superclass typecheck marker */},
+  {(bigint) 5635 /* 5: TEol < TEol: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14125,14 +36285,12 @@ const classtable_elt_t VFT_TKwabstract[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwabstract < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TEol < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14140,7 +36298,6 @@ const classtable_elt_t VFT_TKwabstract[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14148,69 +36305,142 @@ const classtable_elt_t VFT_TKwabstract[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwabstract < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TEol < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwabstract___parser_index},
-  {(bigint) 2 /* 68: TKwabstract < Token: superclass init_table position */},
-  {(bigint) lexer___TKwabstract___init},
-  {(bigint) 3 /* 70: TKwabstract < TKwabstract: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwabstract::_parent */
-/* 2: Attribute TKwabstract::_symbol */
-/* 3: Attribute TKwabstract::_text */
-/* 4: Attribute TKwabstract::_filename */
-/* 5: Attribute TKwabstract::_line */
-/* 6: Attribute TKwabstract::_pos */
-val_t NEW_TKwabstract(void) {
+  {(bigint) lexer___TEol___parser_index},
+  {(bigint) 2 /* 69: TEol < Token: superclass init_table position */},
+  {(bigint) lexer___TEol___init_tk},
+  {(bigint) 3 /* 71: TEol < TEol: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TEol::_parent */
+/* 3: Attribute TEol::_location */
+/* 4: Attribute TEol::_symbol_cache */
+/* 5: Attribute TEol::_text */
+void INIT_ATTRIBUTES__TEol(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TEol;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TEol(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwabstract;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwabstract___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TEol;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TEol(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TEol;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TEol_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TEol_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TEol();
+  INIT_ATTRIBUTES__TEol(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TEol(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TEol_lexer___TEol___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwabstract();
-  lexer___TKwabstract___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23;
+  fra.me.meth = LOCATE_NEW_TEol_lexer___TEol___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TEol();
+  /* ./parser//lexer.nit:23 */
+  INIT_ATTRIBUTES__TEol(fra.me.REG[2]);
+  lexer___TEol___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TEol(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_TKwinterface[71] = {
-  {(bigint) 2875 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwinterface < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwinterface < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwinterface < Token: superclass typecheck marker */},
-  {(bigint) 2875 /* 4: TKwinterface < TKwinterface: superclass typecheck marker */},
+const classtable_elt_t VFT_TComment[72] = {
+  {(bigint) 5659 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TComment < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TComment < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TComment < Token: superclass typecheck marker */},
+  {(bigint) 5659 /* 5: TComment < TComment: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14219,14 +36449,12 @@ const classtable_elt_t VFT_TKwinterface[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwinterface < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TComment < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14234,7 +36462,6 @@ const classtable_elt_t VFT_TKwinterface[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14242,69 +36469,142 @@ const classtable_elt_t VFT_TKwinterface[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwinterface < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TComment < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwinterface___parser_index},
-  {(bigint) 2 /* 68: TKwinterface < Token: superclass init_table position */},
-  {(bigint) lexer___TKwinterface___init},
-  {(bigint) 3 /* 70: TKwinterface < TKwinterface: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwinterface::_parent */
-/* 2: Attribute TKwinterface::_symbol */
-/* 3: Attribute TKwinterface::_text */
-/* 4: Attribute TKwinterface::_filename */
-/* 5: Attribute TKwinterface::_line */
-/* 6: Attribute TKwinterface::_pos */
-val_t NEW_TKwinterface(void) {
+  {(bigint) lexer___TComment___parser_index},
+  {(bigint) 2 /* 69: TComment < Token: superclass init_table position */},
+  {(bigint) lexer___TComment___init_tk},
+  {(bigint) 3 /* 71: TComment < TComment: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TComment::_parent */
+/* 3: Attribute TComment::_location */
+/* 4: Attribute TComment::_symbol_cache */
+/* 5: Attribute TComment::_text */
+void INIT_ATTRIBUTES__TComment(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TComment;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TComment(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwinterface;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwinterface___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TComment;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TComment(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TComment;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TComment_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwinterface();
-  lexer___TKwinterface___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TComment_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TComment();
+  INIT_ATTRIBUTES__TComment(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TComment(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TComment_lexer___TComment___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36;
+  fra.me.meth = LOCATE_NEW_TComment_lexer___TComment___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TComment();
+  /* ./parser//lexer.nit:36 */
+  INIT_ATTRIBUTES__TComment(fra.me.REG[2]);
+  lexer___TComment___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TComment(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_TKwuniversal[71] = {
-  {(bigint) 2783 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwuniversal < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwuniversal < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwuniversal < Token: superclass typecheck marker */},
-  {(bigint) 2783 /* 4: TKwuniversal < TKwuniversal: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwpackage[72] = {
+  {(bigint) 5479 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwpackage < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwpackage < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwpackage < Token: superclass typecheck marker */},
+  {(bigint) 5479 /* 5: TKwpackage < TKwpackage: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14313,14 +36613,12 @@ const classtable_elt_t VFT_TKwuniversal[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwuniversal < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwpackage < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14328,7 +36626,6 @@ const classtable_elt_t VFT_TKwuniversal[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14336,69 +36633,140 @@ const classtable_elt_t VFT_TKwuniversal[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwuniversal < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwpackage < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwuniversal___parser_index},
-  {(bigint) 2 /* 68: TKwuniversal < Token: superclass init_table position */},
-  {(bigint) lexer___TKwuniversal___init},
-  {(bigint) 3 /* 70: TKwuniversal < TKwuniversal: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwuniversal::_parent */
-/* 2: Attribute TKwuniversal::_symbol */
-/* 3: Attribute TKwuniversal::_text */
-/* 4: Attribute TKwuniversal::_filename */
-/* 5: Attribute TKwuniversal::_line */
-/* 6: Attribute TKwuniversal::_pos */
-val_t NEW_TKwuniversal(void) {
+  {(bigint) lexer___TKwpackage___parser_index},
+  {(bigint) 2 /* 69: TKwpackage < Token: superclass init_table position */},
+  {(bigint) lexer___TKwpackage___init_tk},
+  {(bigint) 3 /* 71: TKwpackage < TKwpackage: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwpackage::_parent */
+/* 3: Attribute TKwpackage::_location */
+/* 4: Attribute TKwpackage::_symbol_cache */
+/* 5: Attribute TKwpackage::_text */
+void INIT_ATTRIBUTES__TKwpackage(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwpackage;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwpackage(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwuniversal;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwuniversal___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwpackage;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwpackage(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwpackage;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwpackage_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwpackage_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwpackage();
+  INIT_ATTRIBUTES__TKwpackage(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwpackage(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwpackage_lexer___TKwpackage___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwuniversal();
-  lexer___TKwuniversal___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 49;
+  fra.me.meth = LOCATE_NEW_TKwpackage_lexer___TKwpackage___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwpackage();
+  /* ./parser//lexer.nit:49 */
+  INIT_ATTRIBUTES__TKwpackage(fra.me.REG[1]);
+  lexer___TKwpackage___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwpackage(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwspecial[71] = {
-  {(bigint) 2803 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwspecial < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwspecial < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwspecial < Token: superclass typecheck marker */},
-  {(bigint) 2803 /* 4: TKwspecial < TKwspecial: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwimport[72] = {
+  {(bigint) 5551 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwimport < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwimport < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwimport < Token: superclass typecheck marker */},
+  {(bigint) 5551 /* 5: TKwimport < TKwimport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14407,14 +36775,12 @@ const classtable_elt_t VFT_TKwspecial[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwspecial < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwimport < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14422,7 +36788,6 @@ const classtable_elt_t VFT_TKwspecial[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14430,69 +36795,140 @@ const classtable_elt_t VFT_TKwspecial[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwspecial < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwimport < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwspecial___parser_index},
-  {(bigint) 2 /* 68: TKwspecial < Token: superclass init_table position */},
-  {(bigint) lexer___TKwspecial___init},
-  {(bigint) 3 /* 70: TKwspecial < TKwspecial: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwspecial::_parent */
-/* 2: Attribute TKwspecial::_symbol */
-/* 3: Attribute TKwspecial::_text */
-/* 4: Attribute TKwspecial::_filename */
-/* 5: Attribute TKwspecial::_line */
-/* 6: Attribute TKwspecial::_pos */
-val_t NEW_TKwspecial(void) {
+  {(bigint) lexer___TKwimport___parser_index},
+  {(bigint) 2 /* 69: TKwimport < Token: superclass init_table position */},
+  {(bigint) lexer___TKwimport___init_tk},
+  {(bigint) 3 /* 71: TKwimport < TKwimport: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwimport::_parent */
+/* 3: Attribute TKwimport::_location */
+/* 4: Attribute TKwimport::_symbol_cache */
+/* 5: Attribute TKwimport::_text */
+void INIT_ATTRIBUTES__TKwimport(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwimport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwimport(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwspecial;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwspecial___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwimport;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwimport(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwimport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwimport_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwspecial();
-  lexer___TKwspecial___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwimport_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwimport();
+  INIT_ATTRIBUTES__TKwimport(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwimport(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwimport_lexer___TKwimport___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 62;
+  fra.me.meth = LOCATE_NEW_TKwimport_lexer___TKwimport___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwimport();
+  /* ./parser//lexer.nit:62 */
+  INIT_ATTRIBUTES__TKwimport(fra.me.REG[1]);
+  lexer___TKwimport___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwimport(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwend[71] = {
-  {(bigint) 2907 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwend < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwend < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwend < Token: superclass typecheck marker */},
-  {(bigint) 2907 /* 4: TKwend < TKwend: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwclass[72] = {
+  {(bigint) 5587 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwclass < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwclass < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwclass < Token: superclass typecheck marker */},
+  {(bigint) 5587 /* 5: TKwclass < TKwclass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14501,14 +36937,12 @@ const classtable_elt_t VFT_TKwend[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwend < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwclass < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14516,7 +36950,6 @@ const classtable_elt_t VFT_TKwend[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14524,69 +36957,140 @@ const classtable_elt_t VFT_TKwend[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwend < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwclass < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwend___parser_index},
-  {(bigint) 2 /* 68: TKwend < Token: superclass init_table position */},
-  {(bigint) lexer___TKwend___init},
-  {(bigint) 3 /* 70: TKwend < TKwend: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwend::_parent */
-/* 2: Attribute TKwend::_symbol */
-/* 3: Attribute TKwend::_text */
-/* 4: Attribute TKwend::_filename */
-/* 5: Attribute TKwend::_line */
-/* 6: Attribute TKwend::_pos */
-val_t NEW_TKwend(void) {
+  {(bigint) lexer___TKwclass___parser_index},
+  {(bigint) 2 /* 69: TKwclass < Token: superclass init_table position */},
+  {(bigint) lexer___TKwclass___init_tk},
+  {(bigint) 3 /* 71: TKwclass < TKwclass: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwclass::_parent */
+/* 3: Attribute TKwclass::_location */
+/* 4: Attribute TKwclass::_symbol_cache */
+/* 5: Attribute TKwclass::_text */
+void INIT_ATTRIBUTES__TKwclass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwclass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwclass(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwend;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwend___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwclass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwclass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwclass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwclass_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwclass_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwclass();
+  INIT_ATTRIBUTES__TKwclass(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwclass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwclass_lexer___TKwclass___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwend();
-  lexer___TKwend___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 75;
+  fra.me.meth = LOCATE_NEW_TKwclass_lexer___TKwclass___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwclass();
+  /* ./parser//lexer.nit:75 */
+  INIT_ATTRIBUTES__TKwclass(fra.me.REG[1]);
+  lexer___TKwclass___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwclass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwmeth[71] = {
-  {(bigint) 2855 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwmeth < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwmeth < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwmeth < Token: superclass typecheck marker */},
-  {(bigint) 2855 /* 4: TKwmeth < TKwmeth: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwabstract[72] = {
+  {(bigint) 5607 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwabstract < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwabstract < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwabstract < Token: superclass typecheck marker */},
+  {(bigint) 5607 /* 5: TKwabstract < TKwabstract: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14595,14 +37099,12 @@ const classtable_elt_t VFT_TKwmeth[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwmeth < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwabstract < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14610,7 +37112,6 @@ const classtable_elt_t VFT_TKwmeth[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14618,69 +37119,140 @@ const classtable_elt_t VFT_TKwmeth[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwmeth < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwabstract < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwmeth___parser_index},
-  {(bigint) 2 /* 68: TKwmeth < Token: superclass init_table position */},
-  {(bigint) lexer___TKwmeth___init},
-  {(bigint) 3 /* 70: TKwmeth < TKwmeth: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwmeth::_parent */
-/* 2: Attribute TKwmeth::_symbol */
-/* 3: Attribute TKwmeth::_text */
-/* 4: Attribute TKwmeth::_filename */
-/* 5: Attribute TKwmeth::_line */
-/* 6: Attribute TKwmeth::_pos */
-val_t NEW_TKwmeth(void) {
+  {(bigint) lexer___TKwabstract___parser_index},
+  {(bigint) 2 /* 69: TKwabstract < Token: superclass init_table position */},
+  {(bigint) lexer___TKwabstract___init_tk},
+  {(bigint) 3 /* 71: TKwabstract < TKwabstract: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwabstract::_parent */
+/* 3: Attribute TKwabstract::_location */
+/* 4: Attribute TKwabstract::_symbol_cache */
+/* 5: Attribute TKwabstract::_text */
+void INIT_ATTRIBUTES__TKwabstract(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwabstract;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwabstract(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwmeth;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwmeth___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwabstract;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwabstract(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwabstract;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwabstract_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwmeth();
-  lexer___TKwmeth___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwabstract_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwabstract();
+  INIT_ATTRIBUTES__TKwabstract(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwabstract(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwabstract_lexer___TKwabstract___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 88;
+  fra.me.meth = LOCATE_NEW_TKwabstract_lexer___TKwabstract___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwabstract();
+  /* ./parser//lexer.nit:88 */
+  INIT_ATTRIBUTES__TKwabstract(fra.me.REG[1]);
+  lexer___TKwabstract___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwabstract(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwtype[71] = {
-  {(bigint) 2787 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwtype < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwtype < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwtype < Token: superclass typecheck marker */},
-  {(bigint) 2787 /* 4: TKwtype < TKwtype: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwinterface[72] = {
+  {(bigint) 5539 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwinterface < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwinterface < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwinterface < Token: superclass typecheck marker */},
+  {(bigint) 5539 /* 5: TKwinterface < TKwinterface: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14689,14 +37261,12 @@ const classtable_elt_t VFT_TKwtype[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwtype < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwinterface < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14704,7 +37274,6 @@ const classtable_elt_t VFT_TKwtype[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14712,69 +37281,140 @@ const classtable_elt_t VFT_TKwtype[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwtype < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwinterface < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwtype___parser_index},
-  {(bigint) 2 /* 68: TKwtype < Token: superclass init_table position */},
-  {(bigint) lexer___TKwtype___init},
-  {(bigint) 3 /* 70: TKwtype < TKwtype: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwtype::_parent */
-/* 2: Attribute TKwtype::_symbol */
-/* 3: Attribute TKwtype::_text */
-/* 4: Attribute TKwtype::_filename */
-/* 5: Attribute TKwtype::_line */
-/* 6: Attribute TKwtype::_pos */
-val_t NEW_TKwtype(void) {
+  {(bigint) lexer___TKwinterface___parser_index},
+  {(bigint) 2 /* 69: TKwinterface < Token: superclass init_table position */},
+  {(bigint) lexer___TKwinterface___init_tk},
+  {(bigint) 3 /* 71: TKwinterface < TKwinterface: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwinterface::_parent */
+/* 3: Attribute TKwinterface::_location */
+/* 4: Attribute TKwinterface::_symbol_cache */
+/* 5: Attribute TKwinterface::_text */
+void INIT_ATTRIBUTES__TKwinterface(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwinterface;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwinterface(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwtype;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwtype___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwinterface;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwinterface(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwinterface;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwinterface_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwinterface_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwinterface();
+  INIT_ATTRIBUTES__TKwinterface(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwinterface(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwinterface_lexer___TKwinterface___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwtype();
-  lexer___TKwtype___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 101;
+  fra.me.meth = LOCATE_NEW_TKwinterface_lexer___TKwinterface___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwinterface();
+  /* ./parser//lexer.nit:101 */
+  INIT_ATTRIBUTES__TKwinterface(fra.me.REG[1]);
+  lexer___TKwinterface___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwinterface(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwattr[71] = {
-  {(bigint) 2931 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwattr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwattr < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwattr < Token: superclass typecheck marker */},
-  {(bigint) 2931 /* 4: TKwattr < TKwattr: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwuniversal[72] = {
+  {(bigint) 5431 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwuniversal < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwuniversal < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwuniversal < Token: superclass typecheck marker */},
+  {(bigint) 5431 /* 5: TKwuniversal < TKwuniversal: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14783,14 +37423,12 @@ const classtable_elt_t VFT_TKwattr[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwattr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwuniversal < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14798,7 +37436,6 @@ const classtable_elt_t VFT_TKwattr[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14806,69 +37443,140 @@ const classtable_elt_t VFT_TKwattr[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwattr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwuniversal < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwattr___parser_index},
-  {(bigint) 2 /* 68: TKwattr < Token: superclass init_table position */},
-  {(bigint) lexer___TKwattr___init},
-  {(bigint) 3 /* 70: TKwattr < TKwattr: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwattr::_parent */
-/* 2: Attribute TKwattr::_symbol */
-/* 3: Attribute TKwattr::_text */
-/* 4: Attribute TKwattr::_filename */
-/* 5: Attribute TKwattr::_line */
-/* 6: Attribute TKwattr::_pos */
-val_t NEW_TKwattr(void) {
+  {(bigint) lexer___TKwuniversal___parser_index},
+  {(bigint) 2 /* 69: TKwuniversal < Token: superclass init_table position */},
+  {(bigint) lexer___TKwuniversal___init_tk},
+  {(bigint) 3 /* 71: TKwuniversal < TKwuniversal: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwuniversal::_parent */
+/* 3: Attribute TKwuniversal::_location */
+/* 4: Attribute TKwuniversal::_symbol_cache */
+/* 5: Attribute TKwuniversal::_text */
+void INIT_ATTRIBUTES__TKwuniversal(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwuniversal;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwuniversal(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwattr;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwattr___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwuniversal;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwuniversal(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwuniversal;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwuniversal_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwattr();
-  lexer___TKwattr___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwuniversal_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwuniversal();
+  INIT_ATTRIBUTES__TKwuniversal(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwuniversal(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwuniversal_lexer___TKwuniversal___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 114;
+  fra.me.meth = LOCATE_NEW_TKwuniversal_lexer___TKwuniversal___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwuniversal();
+  /* ./parser//lexer.nit:114 */
+  INIT_ATTRIBUTES__TKwuniversal(fra.me.REG[1]);
+  lexer___TKwuniversal___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwuniversal(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwinit[71] = {
-  {(bigint) 2879 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwinit < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwinit < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwinit < Token: superclass typecheck marker */},
-  {(bigint) 2879 /* 4: TKwinit < TKwinit: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwspecial[72] = {
+  {(bigint) 5451 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwspecial < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwspecial < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwspecial < Token: superclass typecheck marker */},
+  {(bigint) 5451 /* 5: TKwspecial < TKwspecial: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14877,14 +37585,12 @@ const classtable_elt_t VFT_TKwinit[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwinit < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwspecial < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14892,7 +37598,6 @@ const classtable_elt_t VFT_TKwinit[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14900,69 +37605,140 @@ const classtable_elt_t VFT_TKwinit[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwinit < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwspecial < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwinit___parser_index},
-  {(bigint) 2 /* 68: TKwinit < Token: superclass init_table position */},
-  {(bigint) lexer___TKwinit___init},
-  {(bigint) 3 /* 70: TKwinit < TKwinit: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwinit::_parent */
-/* 2: Attribute TKwinit::_symbol */
-/* 3: Attribute TKwinit::_text */
-/* 4: Attribute TKwinit::_filename */
-/* 5: Attribute TKwinit::_line */
-/* 6: Attribute TKwinit::_pos */
-val_t NEW_TKwinit(void) {
+  {(bigint) lexer___TKwspecial___parser_index},
+  {(bigint) 2 /* 69: TKwspecial < Token: superclass init_table position */},
+  {(bigint) lexer___TKwspecial___init_tk},
+  {(bigint) 3 /* 71: TKwspecial < TKwspecial: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwspecial::_parent */
+/* 3: Attribute TKwspecial::_location */
+/* 4: Attribute TKwspecial::_symbol_cache */
+/* 5: Attribute TKwspecial::_text */
+void INIT_ATTRIBUTES__TKwspecial(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwspecial;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwspecial(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwinit;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwinit___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwspecial;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwspecial(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwspecial;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwspecial_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwspecial_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwspecial();
+  INIT_ATTRIBUTES__TKwspecial(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwspecial(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwspecial_lexer___TKwspecial___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwinit();
-  lexer___TKwinit___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 127;
+  fra.me.meth = LOCATE_NEW_TKwspecial_lexer___TKwspecial___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwspecial();
+  /* ./parser//lexer.nit:127 */
+  INIT_ATTRIBUTES__TKwspecial(fra.me.REG[1]);
+  lexer___TKwspecial___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwspecial(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwredef[71] = {
-  {(bigint) 2815 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwredef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwredef < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwredef < Token: superclass typecheck marker */},
-  {(bigint) 2815 /* 4: TKwredef < TKwredef: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwend[72] = {
+  {(bigint) 5571 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwend < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwend < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwend < Token: superclass typecheck marker */},
+  {(bigint) 5571 /* 5: TKwend < TKwend: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14971,14 +37747,12 @@ const classtable_elt_t VFT_TKwredef[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwredef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwend < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -14986,7 +37760,6 @@ const classtable_elt_t VFT_TKwredef[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -14994,69 +37767,140 @@ const classtable_elt_t VFT_TKwredef[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwredef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwend < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwredef___parser_index},
-  {(bigint) 2 /* 68: TKwredef < Token: superclass init_table position */},
-  {(bigint) lexer___TKwredef___init},
-  {(bigint) 3 /* 70: TKwredef < TKwredef: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwredef::_parent */
-/* 2: Attribute TKwredef::_symbol */
-/* 3: Attribute TKwredef::_text */
-/* 4: Attribute TKwredef::_filename */
-/* 5: Attribute TKwredef::_line */
-/* 6: Attribute TKwredef::_pos */
-val_t NEW_TKwredef(void) {
+  {(bigint) lexer___TKwend___parser_index},
+  {(bigint) 2 /* 69: TKwend < Token: superclass init_table position */},
+  {(bigint) lexer___TKwend___init_tk},
+  {(bigint) 3 /* 71: TKwend < TKwend: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwend::_parent */
+/* 3: Attribute TKwend::_location */
+/* 4: Attribute TKwend::_symbol_cache */
+/* 5: Attribute TKwend::_text */
+void INIT_ATTRIBUTES__TKwend(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwend;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwend(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwredef;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwredef___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwend;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwend(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwend;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwend_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwredef();
-  lexer___TKwredef___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwend_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwend();
+  INIT_ATTRIBUTES__TKwend(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwend(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwend_lexer___TKwend___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 140;
+  fra.me.meth = LOCATE_NEW_TKwend_lexer___TKwend___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwend();
+  /* ./parser//lexer.nit:140 */
+  INIT_ATTRIBUTES__TKwend(fra.me.REG[1]);
+  lexer___TKwend___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwend(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwis[71] = {
-  {(bigint) 2863 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwis < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwis < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwis < Token: superclass typecheck marker */},
-  {(bigint) 2863 /* 4: TKwis < TKwis: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwmeth[72] = {
+  {(bigint) 5507 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwmeth < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwmeth < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwmeth < Token: superclass typecheck marker */},
+  {(bigint) 5507 /* 5: TKwmeth < TKwmeth: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15065,14 +37909,12 @@ const classtable_elt_t VFT_TKwis[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwis < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwmeth < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15080,7 +37922,6 @@ const classtable_elt_t VFT_TKwis[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15088,69 +37929,140 @@ const classtable_elt_t VFT_TKwis[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwis < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwmeth < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwis___parser_index},
-  {(bigint) 2 /* 68: TKwis < Token: superclass init_table position */},
-  {(bigint) lexer___TKwis___init},
-  {(bigint) 3 /* 70: TKwis < TKwis: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwis::_parent */
-/* 2: Attribute TKwis::_symbol */
-/* 3: Attribute TKwis::_text */
-/* 4: Attribute TKwis::_filename */
-/* 5: Attribute TKwis::_line */
-/* 6: Attribute TKwis::_pos */
-val_t NEW_TKwis(void) {
+  {(bigint) lexer___TKwmeth___parser_index},
+  {(bigint) 2 /* 69: TKwmeth < Token: superclass init_table position */},
+  {(bigint) lexer___TKwmeth___init_tk},
+  {(bigint) 3 /* 71: TKwmeth < TKwmeth: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwmeth::_parent */
+/* 3: Attribute TKwmeth::_location */
+/* 4: Attribute TKwmeth::_symbol_cache */
+/* 5: Attribute TKwmeth::_text */
+void INIT_ATTRIBUTES__TKwmeth(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwmeth;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwmeth(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwis;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwis___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwmeth;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwmeth(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwmeth;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwmeth_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwmeth_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwmeth();
+  INIT_ATTRIBUTES__TKwmeth(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwmeth(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwmeth_lexer___TKwmeth___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwis();
-  lexer___TKwis___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 153;
+  fra.me.meth = LOCATE_NEW_TKwmeth_lexer___TKwmeth___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwmeth();
+  /* ./parser//lexer.nit:153 */
+  INIT_ATTRIBUTES__TKwmeth(fra.me.REG[1]);
+  lexer___TKwmeth___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwmeth(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwdo[71] = {
-  {(bigint) 2915 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwdo < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwdo < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwdo < Token: superclass typecheck marker */},
-  {(bigint) 2915 /* 4: TKwdo < TKwdo: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwtype[72] = {
+  {(bigint) 5435 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwtype < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwtype < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwtype < Token: superclass typecheck marker */},
+  {(bigint) 5435 /* 5: TKwtype < TKwtype: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15159,14 +38071,12 @@ const classtable_elt_t VFT_TKwdo[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwdo < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwtype < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15174,7 +38084,6 @@ const classtable_elt_t VFT_TKwdo[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15182,69 +38091,140 @@ const classtable_elt_t VFT_TKwdo[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwdo < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwtype < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwdo___parser_index},
-  {(bigint) 2 /* 68: TKwdo < Token: superclass init_table position */},
-  {(bigint) lexer___TKwdo___init},
-  {(bigint) 3 /* 70: TKwdo < TKwdo: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwdo::_parent */
-/* 2: Attribute TKwdo::_symbol */
-/* 3: Attribute TKwdo::_text */
-/* 4: Attribute TKwdo::_filename */
-/* 5: Attribute TKwdo::_line */
-/* 6: Attribute TKwdo::_pos */
-val_t NEW_TKwdo(void) {
+  {(bigint) lexer___TKwtype___parser_index},
+  {(bigint) 2 /* 69: TKwtype < Token: superclass init_table position */},
+  {(bigint) lexer___TKwtype___init_tk},
+  {(bigint) 3 /* 71: TKwtype < TKwtype: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwtype::_parent */
+/* 3: Attribute TKwtype::_location */
+/* 4: Attribute TKwtype::_symbol_cache */
+/* 5: Attribute TKwtype::_text */
+void INIT_ATTRIBUTES__TKwtype(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwtype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwtype(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwdo;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwdo___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwtype;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwtype(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwtype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwtype_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwdo();
-  lexer___TKwdo___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwtype_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwtype();
+  INIT_ATTRIBUTES__TKwtype(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwtype(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwtype_lexer___TKwtype___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 166;
+  fra.me.meth = LOCATE_NEW_TKwtype_lexer___TKwtype___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwtype();
+  /* ./parser//lexer.nit:166 */
+  INIT_ATTRIBUTES__TKwtype(fra.me.REG[1]);
+  lexer___TKwtype___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwtype(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwreadable[71] = {
-  {(bigint) 2819 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwreadable < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwreadable < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwreadable < Token: superclass typecheck marker */},
-  {(bigint) 2819 /* 4: TKwreadable < TKwreadable: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwinit[72] = {
+  {(bigint) 5543 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwinit < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwinit < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwinit < Token: superclass typecheck marker */},
+  {(bigint) 5543 /* 5: TKwinit < TKwinit: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15253,14 +38233,12 @@ const classtable_elt_t VFT_TKwreadable[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwreadable < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwinit < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15268,7 +38246,6 @@ const classtable_elt_t VFT_TKwreadable[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15276,69 +38253,140 @@ const classtable_elt_t VFT_TKwreadable[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwreadable < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwinit < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwreadable___parser_index},
-  {(bigint) 2 /* 68: TKwreadable < Token: superclass init_table position */},
-  {(bigint) lexer___TKwreadable___init},
-  {(bigint) 3 /* 70: TKwreadable < TKwreadable: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwreadable::_parent */
-/* 2: Attribute TKwreadable::_symbol */
-/* 3: Attribute TKwreadable::_text */
-/* 4: Attribute TKwreadable::_filename */
-/* 5: Attribute TKwreadable::_line */
-/* 6: Attribute TKwreadable::_pos */
-val_t NEW_TKwreadable(void) {
+  {(bigint) lexer___TKwinit___parser_index},
+  {(bigint) 2 /* 69: TKwinit < Token: superclass init_table position */},
+  {(bigint) lexer___TKwinit___init_tk},
+  {(bigint) 3 /* 71: TKwinit < TKwinit: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwinit::_parent */
+/* 3: Attribute TKwinit::_location */
+/* 4: Attribute TKwinit::_symbol_cache */
+/* 5: Attribute TKwinit::_text */
+void INIT_ATTRIBUTES__TKwinit(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwinit;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwinit(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwreadable;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwreadable___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwinit;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwinit(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwinit;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwinit_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwinit_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwinit();
+  INIT_ATTRIBUTES__TKwinit(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwinit(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwinit_lexer___TKwinit___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwreadable();
-  lexer___TKwreadable___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 179;
+  fra.me.meth = LOCATE_NEW_TKwinit_lexer___TKwinit___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwinit();
+  /* ./parser//lexer.nit:179 */
+  INIT_ATTRIBUTES__TKwinit(fra.me.REG[1]);
+  lexer___TKwinit___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwinit(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwwritable[71] = {
-  {(bigint) 2771 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwwritable < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwwritable < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwwritable < Token: superclass typecheck marker */},
-  {(bigint) 2771 /* 4: TKwwritable < TKwwritable: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwredef[72] = {
+  {(bigint) 5463 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwredef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwredef < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwredef < Token: superclass typecheck marker */},
+  {(bigint) 5463 /* 5: TKwredef < TKwredef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15347,14 +38395,12 @@ const classtable_elt_t VFT_TKwwritable[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwwritable < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwredef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15362,7 +38408,6 @@ const classtable_elt_t VFT_TKwwritable[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15370,69 +38415,140 @@ const classtable_elt_t VFT_TKwwritable[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwwritable < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwredef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwwritable___parser_index},
-  {(bigint) 2 /* 68: TKwwritable < Token: superclass init_table position */},
-  {(bigint) lexer___TKwwritable___init},
-  {(bigint) 3 /* 70: TKwwritable < TKwwritable: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwwritable::_parent */
-/* 2: Attribute TKwwritable::_symbol */
-/* 3: Attribute TKwwritable::_text */
-/* 4: Attribute TKwwritable::_filename */
-/* 5: Attribute TKwwritable::_line */
-/* 6: Attribute TKwwritable::_pos */
-val_t NEW_TKwwritable(void) {
+  {(bigint) lexer___TKwredef___parser_index},
+  {(bigint) 2 /* 69: TKwredef < Token: superclass init_table position */},
+  {(bigint) lexer___TKwredef___init_tk},
+  {(bigint) 3 /* 71: TKwredef < TKwredef: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwredef::_parent */
+/* 3: Attribute TKwredef::_location */
+/* 4: Attribute TKwredef::_symbol_cache */
+/* 5: Attribute TKwredef::_text */
+void INIT_ATTRIBUTES__TKwredef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwredef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwredef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwwritable;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwwritable___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwredef;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwredef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwredef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwredef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwwritable();
-  lexer___TKwwritable___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwredef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwredef();
+  INIT_ATTRIBUTES__TKwredef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwredef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwredef_lexer___TKwredef___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 192;
+  fra.me.meth = LOCATE_NEW_TKwredef_lexer___TKwredef___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwredef();
+  /* ./parser//lexer.nit:192 */
+  INIT_ATTRIBUTES__TKwredef(fra.me.REG[1]);
+  lexer___TKwredef___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwredef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwvar[71] = {
-  {(bigint) 2779 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwvar < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwvar < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwvar < Token: superclass typecheck marker */},
-  {(bigint) 2779 /* 4: TKwvar < TKwvar: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwis[72] = {
+  {(bigint) 5527 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwis < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwis < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwis < Token: superclass typecheck marker */},
+  {(bigint) 5527 /* 5: TKwis < TKwis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15441,14 +38557,12 @@ const classtable_elt_t VFT_TKwvar[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwvar < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwis < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15456,7 +38570,6 @@ const classtable_elt_t VFT_TKwvar[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15464,69 +38577,140 @@ const classtable_elt_t VFT_TKwvar[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwvar < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwis < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwvar___parser_index},
-  {(bigint) 2 /* 68: TKwvar < Token: superclass init_table position */},
-  {(bigint) lexer___TKwvar___init},
-  {(bigint) 3 /* 70: TKwvar < TKwvar: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwvar::_parent */
-/* 2: Attribute TKwvar::_symbol */
-/* 3: Attribute TKwvar::_text */
-/* 4: Attribute TKwvar::_filename */
-/* 5: Attribute TKwvar::_line */
-/* 6: Attribute TKwvar::_pos */
-val_t NEW_TKwvar(void) {
+  {(bigint) lexer___TKwis___parser_index},
+  {(bigint) 2 /* 69: TKwis < Token: superclass init_table position */},
+  {(bigint) lexer___TKwis___init_tk},
+  {(bigint) 3 /* 71: TKwis < TKwis: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwis::_parent */
+/* 3: Attribute TKwis::_location */
+/* 4: Attribute TKwis::_symbol_cache */
+/* 5: Attribute TKwis::_text */
+void INIT_ATTRIBUTES__TKwis(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwis;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwis(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwvar;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwvar___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwis;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwis(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwis;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwis_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwis_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwis();
+  INIT_ATTRIBUTES__TKwis(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwis(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwis_lexer___TKwis___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwvar();
-  lexer___TKwvar___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 205;
+  fra.me.meth = LOCATE_NEW_TKwis_lexer___TKwis___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwis();
+  /* ./parser//lexer.nit:205 */
+  INIT_ATTRIBUTES__TKwis(fra.me.REG[1]);
+  lexer___TKwis___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwis(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwintern[71] = {
-  {(bigint) 2871 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwintern < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwintern < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwintern < Token: superclass typecheck marker */},
-  {(bigint) 2871 /* 4: TKwintern < TKwintern: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwdo[72] = {
+  {(bigint) 5579 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwdo < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwdo < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwdo < Token: superclass typecheck marker */},
+  {(bigint) 5579 /* 5: TKwdo < TKwdo: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15535,14 +38719,12 @@ const classtable_elt_t VFT_TKwintern[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwintern < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwdo < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15550,7 +38732,6 @@ const classtable_elt_t VFT_TKwintern[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15558,69 +38739,140 @@ const classtable_elt_t VFT_TKwintern[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwintern < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwdo < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwintern___parser_index},
-  {(bigint) 2 /* 68: TKwintern < Token: superclass init_table position */},
-  {(bigint) lexer___TKwintern___init},
-  {(bigint) 3 /* 70: TKwintern < TKwintern: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwintern::_parent */
-/* 2: Attribute TKwintern::_symbol */
-/* 3: Attribute TKwintern::_text */
-/* 4: Attribute TKwintern::_filename */
-/* 5: Attribute TKwintern::_line */
-/* 6: Attribute TKwintern::_pos */
-val_t NEW_TKwintern(void) {
+  {(bigint) lexer___TKwdo___parser_index},
+  {(bigint) 2 /* 69: TKwdo < Token: superclass init_table position */},
+  {(bigint) lexer___TKwdo___init_tk},
+  {(bigint) 3 /* 71: TKwdo < TKwdo: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwdo::_parent */
+/* 3: Attribute TKwdo::_location */
+/* 4: Attribute TKwdo::_symbol_cache */
+/* 5: Attribute TKwdo::_text */
+void INIT_ATTRIBUTES__TKwdo(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwdo;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwdo(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwintern;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwintern___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwdo;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwdo(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwdo;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwdo_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwintern();
-  lexer___TKwintern___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwdo_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwdo();
+  INIT_ATTRIBUTES__TKwdo(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwdo(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwdo_lexer___TKwdo___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 218;
+  fra.me.meth = LOCATE_NEW_TKwdo_lexer___TKwdo___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwdo();
+  /* ./parser//lexer.nit:218 */
+  INIT_ATTRIBUTES__TKwdo(fra.me.REG[1]);
+  lexer___TKwdo___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwdo(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwextern[71] = {
-  {(bigint) 2903 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwextern < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwextern < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwextern < Token: superclass typecheck marker */},
-  {(bigint) 2903 /* 4: TKwextern < TKwextern: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwreadable[72] = {
+  {(bigint) 5467 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwreadable < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwreadable < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwreadable < Token: superclass typecheck marker */},
+  {(bigint) 5467 /* 5: TKwreadable < TKwreadable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15629,14 +38881,12 @@ const classtable_elt_t VFT_TKwextern[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwextern < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwreadable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15644,7 +38894,6 @@ const classtable_elt_t VFT_TKwextern[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15652,69 +38901,140 @@ const classtable_elt_t VFT_TKwextern[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwextern < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwreadable < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwextern___parser_index},
-  {(bigint) 2 /* 68: TKwextern < Token: superclass init_table position */},
-  {(bigint) lexer___TKwextern___init},
-  {(bigint) 3 /* 70: TKwextern < TKwextern: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwextern::_parent */
-/* 2: Attribute TKwextern::_symbol */
-/* 3: Attribute TKwextern::_text */
-/* 4: Attribute TKwextern::_filename */
-/* 5: Attribute TKwextern::_line */
-/* 6: Attribute TKwextern::_pos */
-val_t NEW_TKwextern(void) {
+  {(bigint) lexer___TKwreadable___parser_index},
+  {(bigint) 2 /* 69: TKwreadable < Token: superclass init_table position */},
+  {(bigint) lexer___TKwreadable___init_tk},
+  {(bigint) 3 /* 71: TKwreadable < TKwreadable: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwreadable::_parent */
+/* 3: Attribute TKwreadable::_location */
+/* 4: Attribute TKwreadable::_symbol_cache */
+/* 5: Attribute TKwreadable::_text */
+void INIT_ATTRIBUTES__TKwreadable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwreadable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwreadable(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwextern;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwextern___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwreadable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwreadable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwreadable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwreadable_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwreadable_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwreadable();
+  INIT_ATTRIBUTES__TKwreadable(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwreadable(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwreadable_lexer___TKwreadable___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwextern();
-  lexer___TKwextern___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 231;
+  fra.me.meth = LOCATE_NEW_TKwreadable_lexer___TKwreadable___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwreadable();
+  /* ./parser//lexer.nit:231 */
+  INIT_ATTRIBUTES__TKwreadable(fra.me.REG[1]);
+  lexer___TKwreadable___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwreadable(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwprotected[71] = {
-  {(bigint) 2823 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwprotected < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwprotected < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwprotected < Token: superclass typecheck marker */},
-  {(bigint) 2823 /* 4: TKwprotected < TKwprotected: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwwritable[72] = {
+  {(bigint) 5419 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwwritable < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwwritable < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwwritable < Token: superclass typecheck marker */},
+  {(bigint) 5419 /* 5: TKwwritable < TKwwritable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15723,14 +39043,12 @@ const classtable_elt_t VFT_TKwprotected[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwprotected < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwwritable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15738,7 +39056,6 @@ const classtable_elt_t VFT_TKwprotected[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15746,69 +39063,140 @@ const classtable_elt_t VFT_TKwprotected[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwprotected < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwwritable < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwprotected___parser_index},
-  {(bigint) 2 /* 68: TKwprotected < Token: superclass init_table position */},
-  {(bigint) lexer___TKwprotected___init},
-  {(bigint) 3 /* 70: TKwprotected < TKwprotected: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwprotected::_parent */
-/* 2: Attribute TKwprotected::_symbol */
-/* 3: Attribute TKwprotected::_text */
-/* 4: Attribute TKwprotected::_filename */
-/* 5: Attribute TKwprotected::_line */
-/* 6: Attribute TKwprotected::_pos */
-val_t NEW_TKwprotected(void) {
+  {(bigint) lexer___TKwwritable___parser_index},
+  {(bigint) 2 /* 69: TKwwritable < Token: superclass init_table position */},
+  {(bigint) lexer___TKwwritable___init_tk},
+  {(bigint) 3 /* 71: TKwwritable < TKwwritable: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwwritable::_parent */
+/* 3: Attribute TKwwritable::_location */
+/* 4: Attribute TKwwritable::_symbol_cache */
+/* 5: Attribute TKwwritable::_text */
+void INIT_ATTRIBUTES__TKwwritable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwwritable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwwritable(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwprotected;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwprotected___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwwritable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwwritable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwwritable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwwritable_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwprotected();
-  lexer___TKwprotected___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwwritable_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwwritable();
+  INIT_ATTRIBUTES__TKwwritable(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwwritable(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwwritable_lexer___TKwwritable___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 244;
+  fra.me.meth = LOCATE_NEW_TKwwritable_lexer___TKwwritable___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwwritable();
+  /* ./parser//lexer.nit:244 */
+  INIT_ATTRIBUTES__TKwwritable(fra.me.REG[1]);
+  lexer___TKwwritable___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwwritable(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwprivate[71] = {
-  {(bigint) 2827 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwprivate < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwprivate < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwprivate < Token: superclass typecheck marker */},
-  {(bigint) 2827 /* 4: TKwprivate < TKwprivate: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwvar[72] = {
+  {(bigint) 5427 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwvar < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwvar < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwvar < Token: superclass typecheck marker */},
+  {(bigint) 5427 /* 5: TKwvar < TKwvar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15817,14 +39205,12 @@ const classtable_elt_t VFT_TKwprivate[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwprivate < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwvar < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15832,7 +39218,6 @@ const classtable_elt_t VFT_TKwprivate[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15840,69 +39225,140 @@ const classtable_elt_t VFT_TKwprivate[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwprivate < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwvar < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwprivate___parser_index},
-  {(bigint) 2 /* 68: TKwprivate < Token: superclass init_table position */},
-  {(bigint) lexer___TKwprivate___init},
-  {(bigint) 3 /* 70: TKwprivate < TKwprivate: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwprivate::_parent */
-/* 2: Attribute TKwprivate::_symbol */
-/* 3: Attribute TKwprivate::_text */
-/* 4: Attribute TKwprivate::_filename */
-/* 5: Attribute TKwprivate::_line */
-/* 6: Attribute TKwprivate::_pos */
-val_t NEW_TKwprivate(void) {
+  {(bigint) lexer___TKwvar___parser_index},
+  {(bigint) 2 /* 69: TKwvar < Token: superclass init_table position */},
+  {(bigint) lexer___TKwvar___init_tk},
+  {(bigint) 3 /* 71: TKwvar < TKwvar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwvar::_parent */
+/* 3: Attribute TKwvar::_location */
+/* 4: Attribute TKwvar::_symbol_cache */
+/* 5: Attribute TKwvar::_text */
+void INIT_ATTRIBUTES__TKwvar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwvar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwvar(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwprivate;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwprivate___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwvar;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwvar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwvar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwvar_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwvar_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwvar();
+  INIT_ATTRIBUTES__TKwvar(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwvar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwvar_lexer___TKwvar___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwprivate();
-  lexer___TKwprivate___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 257;
+  fra.me.meth = LOCATE_NEW_TKwvar_lexer___TKwvar___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwvar();
+  /* ./parser//lexer.nit:257 */
+  INIT_ATTRIBUTES__TKwvar(fra.me.REG[1]);
+  lexer___TKwvar___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwvar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwintrude[71] = {
-  {(bigint) 2867 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwintrude < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwintrude < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwintrude < Token: superclass typecheck marker */},
-  {(bigint) 2867 /* 4: TKwintrude < TKwintrude: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwintern[72] = {
+  {(bigint) 5535 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwintern < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwintern < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwintern < Token: superclass typecheck marker */},
+  {(bigint) 5535 /* 5: TKwintern < TKwintern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15911,14 +39367,12 @@ const classtable_elt_t VFT_TKwintrude[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwintrude < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwintern < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -15926,7 +39380,6 @@ const classtable_elt_t VFT_TKwintrude[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -15934,69 +39387,140 @@ const classtable_elt_t VFT_TKwintrude[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwintrude < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwintern < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwintrude___parser_index},
-  {(bigint) 2 /* 68: TKwintrude < Token: superclass init_table position */},
-  {(bigint) lexer___TKwintrude___init},
-  {(bigint) 3 /* 70: TKwintrude < TKwintrude: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwintrude::_parent */
-/* 2: Attribute TKwintrude::_symbol */
-/* 3: Attribute TKwintrude::_text */
-/* 4: Attribute TKwintrude::_filename */
-/* 5: Attribute TKwintrude::_line */
-/* 6: Attribute TKwintrude::_pos */
-val_t NEW_TKwintrude(void) {
+  {(bigint) lexer___TKwintern___parser_index},
+  {(bigint) 2 /* 69: TKwintern < Token: superclass init_table position */},
+  {(bigint) lexer___TKwintern___init_tk},
+  {(bigint) 3 /* 71: TKwintern < TKwintern: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwintern::_parent */
+/* 3: Attribute TKwintern::_location */
+/* 4: Attribute TKwintern::_symbol_cache */
+/* 5: Attribute TKwintern::_text */
+void INIT_ATTRIBUTES__TKwintern(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwintern;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwintern(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwintrude;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwintrude___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwintern;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwintern(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwintern;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwintern_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwintrude();
-  lexer___TKwintrude___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwintern_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwintern();
+  INIT_ATTRIBUTES__TKwintern(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwintern(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwintern_lexer___TKwintern___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 270;
+  fra.me.meth = LOCATE_NEW_TKwintern_lexer___TKwintern___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwintern();
+  /* ./parser//lexer.nit:270 */
+  INIT_ATTRIBUTES__TKwintern(fra.me.REG[1]);
+  lexer___TKwintern___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwintern(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwif[71] = {
-  {(bigint) 2891 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwif < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwif < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwif < Token: superclass typecheck marker */},
-  {(bigint) 2891 /* 4: TKwif < TKwif: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwextern[72] = {
+  {(bigint) 5567 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwextern < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwextern < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwextern < Token: superclass typecheck marker */},
+  {(bigint) 5567 /* 5: TKwextern < TKwextern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16005,14 +39529,12 @@ const classtable_elt_t VFT_TKwif[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwif < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwextern < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16020,7 +39542,6 @@ const classtable_elt_t VFT_TKwif[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16028,69 +39549,140 @@ const classtable_elt_t VFT_TKwif[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwif < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwextern < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwif___parser_index},
-  {(bigint) 2 /* 68: TKwif < Token: superclass init_table position */},
-  {(bigint) lexer___TKwif___init},
-  {(bigint) 3 /* 70: TKwif < TKwif: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwif::_parent */
-/* 2: Attribute TKwif::_symbol */
-/* 3: Attribute TKwif::_text */
-/* 4: Attribute TKwif::_filename */
-/* 5: Attribute TKwif::_line */
-/* 6: Attribute TKwif::_pos */
-val_t NEW_TKwif(void) {
+  {(bigint) lexer___TKwextern___parser_index},
+  {(bigint) 2 /* 69: TKwextern < Token: superclass init_table position */},
+  {(bigint) lexer___TKwextern___init_tk},
+  {(bigint) 3 /* 71: TKwextern < TKwextern: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwextern::_parent */
+/* 3: Attribute TKwextern::_location */
+/* 4: Attribute TKwextern::_symbol_cache */
+/* 5: Attribute TKwextern::_text */
+void INIT_ATTRIBUTES__TKwextern(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwextern;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwextern(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwif;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwif___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwextern;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwextern(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwextern;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwextern_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwextern_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwextern();
+  INIT_ATTRIBUTES__TKwextern(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwextern(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwextern_lexer___TKwextern___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwif();
-  lexer___TKwif___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 283;
+  fra.me.meth = LOCATE_NEW_TKwextern_lexer___TKwextern___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwextern();
+  /* ./parser//lexer.nit:283 */
+  INIT_ATTRIBUTES__TKwextern(fra.me.REG[1]);
+  lexer___TKwextern___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwextern(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwthen[71] = {
-  {(bigint) 2795 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwthen < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwthen < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwthen < Token: superclass typecheck marker */},
-  {(bigint) 2795 /* 4: TKwthen < TKwthen: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwprotected[72] = {
+  {(bigint) 5471 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwprotected < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwprotected < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwprotected < Token: superclass typecheck marker */},
+  {(bigint) 5471 /* 5: TKwprotected < TKwprotected: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16099,14 +39691,12 @@ const classtable_elt_t VFT_TKwthen[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwthen < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwprotected < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16114,7 +39704,6 @@ const classtable_elt_t VFT_TKwthen[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16122,69 +39711,140 @@ const classtable_elt_t VFT_TKwthen[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwthen < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwprotected < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwthen___parser_index},
-  {(bigint) 2 /* 68: TKwthen < Token: superclass init_table position */},
-  {(bigint) lexer___TKwthen___init},
-  {(bigint) 3 /* 70: TKwthen < TKwthen: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwthen::_parent */
-/* 2: Attribute TKwthen::_symbol */
-/* 3: Attribute TKwthen::_text */
-/* 4: Attribute TKwthen::_filename */
-/* 5: Attribute TKwthen::_line */
-/* 6: Attribute TKwthen::_pos */
-val_t NEW_TKwthen(void) {
+  {(bigint) lexer___TKwprotected___parser_index},
+  {(bigint) 2 /* 69: TKwprotected < Token: superclass init_table position */},
+  {(bigint) lexer___TKwprotected___init_tk},
+  {(bigint) 3 /* 71: TKwprotected < TKwprotected: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwprotected::_parent */
+/* 3: Attribute TKwprotected::_location */
+/* 4: Attribute TKwprotected::_symbol_cache */
+/* 5: Attribute TKwprotected::_text */
+void INIT_ATTRIBUTES__TKwprotected(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwprotected;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwprotected(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwthen;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwthen___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwprotected;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwprotected(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwprotected;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwprotected_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwthen();
-  lexer___TKwthen___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwprotected_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwprotected();
+  INIT_ATTRIBUTES__TKwprotected(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwprotected(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwprotected_lexer___TKwprotected___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 296;
+  fra.me.meth = LOCATE_NEW_TKwprotected_lexer___TKwprotected___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwprotected();
+  /* ./parser//lexer.nit:296 */
+  INIT_ATTRIBUTES__TKwprotected(fra.me.REG[1]);
+  lexer___TKwprotected___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwprotected(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwelse[71] = {
-  {(bigint) 2911 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwelse < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwelse < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwelse < Token: superclass typecheck marker */},
-  {(bigint) 2911 /* 4: TKwelse < TKwelse: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwprivate[72] = {
+  {(bigint) 5475 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwprivate < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwprivate < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwprivate < Token: superclass typecheck marker */},
+  {(bigint) 5475 /* 5: TKwprivate < TKwprivate: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16193,14 +39853,12 @@ const classtable_elt_t VFT_TKwelse[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwelse < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwprivate < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16208,7 +39866,6 @@ const classtable_elt_t VFT_TKwelse[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16216,69 +39873,140 @@ const classtable_elt_t VFT_TKwelse[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwelse < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwprivate < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwelse___parser_index},
-  {(bigint) 2 /* 68: TKwelse < Token: superclass init_table position */},
-  {(bigint) lexer___TKwelse___init},
-  {(bigint) 3 /* 70: TKwelse < TKwelse: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwelse::_parent */
-/* 2: Attribute TKwelse::_symbol */
-/* 3: Attribute TKwelse::_text */
-/* 4: Attribute TKwelse::_filename */
-/* 5: Attribute TKwelse::_line */
-/* 6: Attribute TKwelse::_pos */
-val_t NEW_TKwelse(void) {
+  {(bigint) lexer___TKwprivate___parser_index},
+  {(bigint) 2 /* 69: TKwprivate < Token: superclass init_table position */},
+  {(bigint) lexer___TKwprivate___init_tk},
+  {(bigint) 3 /* 71: TKwprivate < TKwprivate: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwprivate::_parent */
+/* 3: Attribute TKwprivate::_location */
+/* 4: Attribute TKwprivate::_symbol_cache */
+/* 5: Attribute TKwprivate::_text */
+void INIT_ATTRIBUTES__TKwprivate(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwprivate;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwprivate(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwelse;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwelse___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwprivate;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwprivate(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwprivate;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwprivate_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwprivate_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwprivate();
+  INIT_ATTRIBUTES__TKwprivate(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwprivate(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwprivate_lexer___TKwprivate___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwelse();
-  lexer___TKwelse___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 309;
+  fra.me.meth = LOCATE_NEW_TKwprivate_lexer___TKwprivate___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwprivate();
+  /* ./parser//lexer.nit:309 */
+  INIT_ATTRIBUTES__TKwprivate(fra.me.REG[1]);
+  lexer___TKwprivate___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwprivate(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwwhile[71] = {
-  {(bigint) 2775 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwwhile < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwwhile < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwwhile < Token: superclass typecheck marker */},
-  {(bigint) 2775 /* 4: TKwwhile < TKwwhile: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwintrude[72] = {
+  {(bigint) 5531 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwintrude < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwintrude < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwintrude < Token: superclass typecheck marker */},
+  {(bigint) 5531 /* 5: TKwintrude < TKwintrude: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16287,14 +40015,12 @@ const classtable_elt_t VFT_TKwwhile[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwwhile < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwintrude < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16302,7 +40028,6 @@ const classtable_elt_t VFT_TKwwhile[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16310,69 +40035,140 @@ const classtable_elt_t VFT_TKwwhile[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwwhile < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwintrude < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwwhile___parser_index},
-  {(bigint) 2 /* 68: TKwwhile < Token: superclass init_table position */},
-  {(bigint) lexer___TKwwhile___init},
-  {(bigint) 3 /* 70: TKwwhile < TKwwhile: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwwhile::_parent */
-/* 2: Attribute TKwwhile::_symbol */
-/* 3: Attribute TKwwhile::_text */
-/* 4: Attribute TKwwhile::_filename */
-/* 5: Attribute TKwwhile::_line */
-/* 6: Attribute TKwwhile::_pos */
-val_t NEW_TKwwhile(void) {
+  {(bigint) lexer___TKwintrude___parser_index},
+  {(bigint) 2 /* 69: TKwintrude < Token: superclass init_table position */},
+  {(bigint) lexer___TKwintrude___init_tk},
+  {(bigint) 3 /* 71: TKwintrude < TKwintrude: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwintrude::_parent */
+/* 3: Attribute TKwintrude::_location */
+/* 4: Attribute TKwintrude::_symbol_cache */
+/* 5: Attribute TKwintrude::_text */
+void INIT_ATTRIBUTES__TKwintrude(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwintrude;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwintrude(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwwhile;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwwhile___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwintrude;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwintrude(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwintrude;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwintrude_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwwhile();
-  lexer___TKwwhile___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwintrude_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwintrude();
+  INIT_ATTRIBUTES__TKwintrude(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwintrude(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwintrude_lexer___TKwintrude___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 322;
+  fra.me.meth = LOCATE_NEW_TKwintrude_lexer___TKwintrude___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwintrude();
+  /* ./parser//lexer.nit:322 */
+  INIT_ATTRIBUTES__TKwintrude(fra.me.REG[1]);
+  lexer___TKwintrude___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwintrude(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwfor[71] = {
-  {(bigint) 2895 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwfor < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwfor < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwfor < Token: superclass typecheck marker */},
-  {(bigint) 2895 /* 4: TKwfor < TKwfor: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwif[72] = {
+  {(bigint) 5555 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwif < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwif < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwif < Token: superclass typecheck marker */},
+  {(bigint) 5555 /* 5: TKwif < TKwif: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16381,14 +40177,12 @@ const classtable_elt_t VFT_TKwfor[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwfor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwif < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16396,7 +40190,6 @@ const classtable_elt_t VFT_TKwfor[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16404,69 +40197,140 @@ const classtable_elt_t VFT_TKwfor[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwfor < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwif < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwfor___parser_index},
-  {(bigint) 2 /* 68: TKwfor < Token: superclass init_table position */},
-  {(bigint) lexer___TKwfor___init},
-  {(bigint) 3 /* 70: TKwfor < TKwfor: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwfor::_parent */
-/* 2: Attribute TKwfor::_symbol */
-/* 3: Attribute TKwfor::_text */
-/* 4: Attribute TKwfor::_filename */
-/* 5: Attribute TKwfor::_line */
-/* 6: Attribute TKwfor::_pos */
-val_t NEW_TKwfor(void) {
+  {(bigint) lexer___TKwif___parser_index},
+  {(bigint) 2 /* 69: TKwif < Token: superclass init_table position */},
+  {(bigint) lexer___TKwif___init_tk},
+  {(bigint) 3 /* 71: TKwif < TKwif: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwif::_parent */
+/* 3: Attribute TKwif::_location */
+/* 4: Attribute TKwif::_symbol_cache */
+/* 5: Attribute TKwif::_text */
+void INIT_ATTRIBUTES__TKwif(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwif;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwif(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwfor;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwfor___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwif;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwif(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwif;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwif_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwif_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwif();
+  INIT_ATTRIBUTES__TKwif(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwif(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwif_lexer___TKwif___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwfor();
-  lexer___TKwfor___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 335;
+  fra.me.meth = LOCATE_NEW_TKwif_lexer___TKwif___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwif();
+  /* ./parser//lexer.nit:335 */
+  INIT_ATTRIBUTES__TKwif(fra.me.REG[1]);
+  lexer___TKwif___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwif(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwin[71] = {
-  {(bigint) 2883 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwin < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwin < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwin < Token: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: TKwin < TKwin: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwthen[72] = {
+  {(bigint) 5443 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwthen < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwthen < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwthen < Token: superclass typecheck marker */},
+  {(bigint) 5443 /* 5: TKwthen < TKwthen: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16475,14 +40339,12 @@ const classtable_elt_t VFT_TKwin[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwin < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwthen < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16490,7 +40352,6 @@ const classtable_elt_t VFT_TKwin[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16498,69 +40359,140 @@ const classtable_elt_t VFT_TKwin[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwin < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwthen < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwin___parser_index},
-  {(bigint) 2 /* 68: TKwin < Token: superclass init_table position */},
-  {(bigint) lexer___TKwin___init},
-  {(bigint) 3 /* 70: TKwin < TKwin: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwin::_parent */
-/* 2: Attribute TKwin::_symbol */
-/* 3: Attribute TKwin::_text */
-/* 4: Attribute TKwin::_filename */
-/* 5: Attribute TKwin::_line */
-/* 6: Attribute TKwin::_pos */
-val_t NEW_TKwin(void) {
+  {(bigint) lexer___TKwthen___parser_index},
+  {(bigint) 2 /* 69: TKwthen < Token: superclass init_table position */},
+  {(bigint) lexer___TKwthen___init_tk},
+  {(bigint) 3 /* 71: TKwthen < TKwthen: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwthen::_parent */
+/* 3: Attribute TKwthen::_location */
+/* 4: Attribute TKwthen::_symbol_cache */
+/* 5: Attribute TKwthen::_text */
+void INIT_ATTRIBUTES__TKwthen(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwthen;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwthen(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwin;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwin___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwthen;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwthen(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwthen;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwthen_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwin();
-  lexer___TKwin___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwthen_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwthen();
+  INIT_ATTRIBUTES__TKwthen(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwthen(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwthen_lexer___TKwthen___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 348;
+  fra.me.meth = LOCATE_NEW_TKwthen_lexer___TKwthen___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwthen();
+  /* ./parser//lexer.nit:348 */
+  INIT_ATTRIBUTES__TKwthen(fra.me.REG[1]);
+  lexer___TKwthen___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwthen(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwand[71] = {
-  {(bigint) 2943 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwand < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwand < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwand < Token: superclass typecheck marker */},
-  {(bigint) 2943 /* 4: TKwand < TKwand: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwelse[72] = {
+  {(bigint) 5575 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwelse < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwelse < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwelse < Token: superclass typecheck marker */},
+  {(bigint) 5575 /* 5: TKwelse < TKwelse: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16569,14 +40501,12 @@ const classtable_elt_t VFT_TKwand[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwand < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwelse < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16584,7 +40514,6 @@ const classtable_elt_t VFT_TKwand[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16592,69 +40521,140 @@ const classtable_elt_t VFT_TKwand[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwand < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwelse < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwand___parser_index},
-  {(bigint) 2 /* 68: TKwand < Token: superclass init_table position */},
-  {(bigint) lexer___TKwand___init},
-  {(bigint) 3 /* 70: TKwand < TKwand: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwand::_parent */
-/* 2: Attribute TKwand::_symbol */
-/* 3: Attribute TKwand::_text */
-/* 4: Attribute TKwand::_filename */
-/* 5: Attribute TKwand::_line */
-/* 6: Attribute TKwand::_pos */
-val_t NEW_TKwand(void) {
+  {(bigint) lexer___TKwelse___parser_index},
+  {(bigint) 2 /* 69: TKwelse < Token: superclass init_table position */},
+  {(bigint) lexer___TKwelse___init_tk},
+  {(bigint) 3 /* 71: TKwelse < TKwelse: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwelse::_parent */
+/* 3: Attribute TKwelse::_location */
+/* 4: Attribute TKwelse::_symbol_cache */
+/* 5: Attribute TKwelse::_text */
+void INIT_ATTRIBUTES__TKwelse(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwelse;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwelse(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwand;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwand___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwelse;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwelse(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwelse;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwelse_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwelse_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwelse();
+  INIT_ATTRIBUTES__TKwelse(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwelse(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwelse_lexer___TKwelse___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwand();
-  lexer___TKwand___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 361;
+  fra.me.meth = LOCATE_NEW_TKwelse_lexer___TKwelse___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwelse();
+  /* ./parser//lexer.nit:361 */
+  INIT_ATTRIBUTES__TKwelse(fra.me.REG[1]);
+  lexer___TKwelse___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwelse(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwor[71] = {
-  {(bigint) 2835 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwor < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwor < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwor < Token: superclass typecheck marker */},
-  {(bigint) 2835 /* 4: TKwor < TKwor: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwwhile[72] = {
+  {(bigint) 5423 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwwhile < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwwhile < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwwhile < Token: superclass typecheck marker */},
+  {(bigint) 5423 /* 5: TKwwhile < TKwwhile: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16663,14 +40663,12 @@ const classtable_elt_t VFT_TKwor[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwwhile < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16678,7 +40676,6 @@ const classtable_elt_t VFT_TKwor[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16686,69 +40683,140 @@ const classtable_elt_t VFT_TKwor[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwor < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwwhile < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwor___parser_index},
-  {(bigint) 2 /* 68: TKwor < Token: superclass init_table position */},
-  {(bigint) lexer___TKwor___init},
-  {(bigint) 3 /* 70: TKwor < TKwor: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwor::_parent */
-/* 2: Attribute TKwor::_symbol */
-/* 3: Attribute TKwor::_text */
-/* 4: Attribute TKwor::_filename */
-/* 5: Attribute TKwor::_line */
-/* 6: Attribute TKwor::_pos */
-val_t NEW_TKwor(void) {
+  {(bigint) lexer___TKwwhile___parser_index},
+  {(bigint) 2 /* 69: TKwwhile < Token: superclass init_table position */},
+  {(bigint) lexer___TKwwhile___init_tk},
+  {(bigint) 3 /* 71: TKwwhile < TKwwhile: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwwhile::_parent */
+/* 3: Attribute TKwwhile::_location */
+/* 4: Attribute TKwwhile::_symbol_cache */
+/* 5: Attribute TKwwhile::_text */
+void INIT_ATTRIBUTES__TKwwhile(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwwhile;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwwhile(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwor;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwor___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwwhile;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwwhile(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwwhile;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwwhile_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwor();
-  lexer___TKwor___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwwhile_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwwhile();
+  INIT_ATTRIBUTES__TKwwhile(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwwhile(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwwhile_lexer___TKwwhile___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 374;
+  fra.me.meth = LOCATE_NEW_TKwwhile_lexer___TKwwhile___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwwhile();
+  /* ./parser//lexer.nit:374 */
+  INIT_ATTRIBUTES__TKwwhile(fra.me.REG[1]);
+  lexer___TKwwhile___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwwhile(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwnot[71] = {
-  {(bigint) 2847 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwnot < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwnot < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwnot < Token: superclass typecheck marker */},
-  {(bigint) 2847 /* 4: TKwnot < TKwnot: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwloop[72] = {
+  {(bigint) 5511 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwloop < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwloop < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwloop < Token: superclass typecheck marker */},
+  {(bigint) 5511 /* 5: TKwloop < TKwloop: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16757,22 +40825,19 @@ const classtable_elt_t VFT_TKwnot[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwnot < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwloop < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
   {(bigint) kernel___Object_____neq},
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16780,69 +40845,140 @@ const classtable_elt_t VFT_TKwnot[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwnot < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwloop < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwnot___parser_index},
-  {(bigint) 2 /* 68: TKwnot < Token: superclass init_table position */},
-  {(bigint) lexer___TKwnot___init},
-  {(bigint) 3 /* 70: TKwnot < TKwnot: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwnot::_parent */
-/* 2: Attribute TKwnot::_symbol */
-/* 3: Attribute TKwnot::_text */
-/* 4: Attribute TKwnot::_filename */
-/* 5: Attribute TKwnot::_line */
-/* 6: Attribute TKwnot::_pos */
-val_t NEW_TKwnot(void) {
+  {(bigint) lexer___TKwloop___parser_index},
+  {(bigint) 2 /* 69: TKwloop < Token: superclass init_table position */},
+  {(bigint) lexer___TKwloop___init_tk},
+  {(bigint) 3 /* 71: TKwloop < TKwloop: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwloop::_parent */
+/* 3: Attribute TKwloop::_location */
+/* 4: Attribute TKwloop::_symbol_cache */
+/* 5: Attribute TKwloop::_text */
+void INIT_ATTRIBUTES__TKwloop(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwloop;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwloop(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwnot;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwnot___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwloop;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwloop(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwloop;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwloop_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwloop_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwloop();
+  INIT_ATTRIBUTES__TKwloop(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwloop(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwloop_lexer___TKwloop___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwnot();
-  lexer___TKwnot___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 387;
+  fra.me.meth = LOCATE_NEW_TKwloop_lexer___TKwloop___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwloop();
+  /* ./parser//lexer.nit:387 */
+  INIT_ATTRIBUTES__TKwloop(fra.me.REG[1]);
+  lexer___TKwloop___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwloop(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwreturn[71] = {
-  {(bigint) 2811 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwreturn < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwreturn < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwreturn < Token: superclass typecheck marker */},
-  {(bigint) 2811 /* 4: TKwreturn < TKwreturn: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwfor[72] = {
+  {(bigint) 5559 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwfor < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwfor < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwfor < Token: superclass typecheck marker */},
+  {(bigint) 5559 /* 5: TKwfor < TKwfor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16851,14 +40987,12 @@ const classtable_elt_t VFT_TKwreturn[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwreturn < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwfor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16866,7 +41000,6 @@ const classtable_elt_t VFT_TKwreturn[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16874,69 +41007,140 @@ const classtable_elt_t VFT_TKwreturn[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwreturn < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwfor < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwreturn___parser_index},
-  {(bigint) 2 /* 68: TKwreturn < Token: superclass init_table position */},
-  {(bigint) lexer___TKwreturn___init},
-  {(bigint) 3 /* 70: TKwreturn < TKwreturn: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwreturn::_parent */
-/* 2: Attribute TKwreturn::_symbol */
-/* 3: Attribute TKwreturn::_text */
-/* 4: Attribute TKwreturn::_filename */
-/* 5: Attribute TKwreturn::_line */
-/* 6: Attribute TKwreturn::_pos */
-val_t NEW_TKwreturn(void) {
+  {(bigint) lexer___TKwfor___parser_index},
+  {(bigint) 2 /* 69: TKwfor < Token: superclass init_table position */},
+  {(bigint) lexer___TKwfor___init_tk},
+  {(bigint) 3 /* 71: TKwfor < TKwfor: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwfor::_parent */
+/* 3: Attribute TKwfor::_location */
+/* 4: Attribute TKwfor::_symbol_cache */
+/* 5: Attribute TKwfor::_text */
+void INIT_ATTRIBUTES__TKwfor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwfor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwfor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwreturn;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwreturn___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwfor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwfor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwfor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwfor_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwreturn();
-  lexer___TKwreturn___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwfor_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwfor();
+  INIT_ATTRIBUTES__TKwfor(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwfor(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwfor_lexer___TKwfor___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 400;
+  fra.me.meth = LOCATE_NEW_TKwfor_lexer___TKwfor___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwfor();
+  /* ./parser//lexer.nit:400 */
+  INIT_ATTRIBUTES__TKwfor(fra.me.REG[1]);
+  lexer___TKwfor___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwfor(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwcontinue[71] = {
-  {(bigint) 2919 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwcontinue < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwcontinue < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwcontinue < Token: superclass typecheck marker */},
-  {(bigint) 2919 /* 4: TKwcontinue < TKwcontinue: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwin[72] = {
+  {(bigint) 5547 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwin < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwin < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwin < Token: superclass typecheck marker */},
+  {(bigint) 5547 /* 5: TKwin < TKwin: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16945,14 +41149,12 @@ const classtable_elt_t VFT_TKwcontinue[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwcontinue < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwin < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -16960,7 +41162,6 @@ const classtable_elt_t VFT_TKwcontinue[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -16968,69 +41169,140 @@ const classtable_elt_t VFT_TKwcontinue[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwcontinue < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwin < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwcontinue___parser_index},
-  {(bigint) 2 /* 68: TKwcontinue < Token: superclass init_table position */},
-  {(bigint) lexer___TKwcontinue___init},
-  {(bigint) 3 /* 70: TKwcontinue < TKwcontinue: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwcontinue::_parent */
-/* 2: Attribute TKwcontinue::_symbol */
-/* 3: Attribute TKwcontinue::_text */
-/* 4: Attribute TKwcontinue::_filename */
-/* 5: Attribute TKwcontinue::_line */
-/* 6: Attribute TKwcontinue::_pos */
-val_t NEW_TKwcontinue(void) {
+  {(bigint) lexer___TKwin___parser_index},
+  {(bigint) 2 /* 69: TKwin < Token: superclass init_table position */},
+  {(bigint) lexer___TKwin___init_tk},
+  {(bigint) 3 /* 71: TKwin < TKwin: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwin::_parent */
+/* 3: Attribute TKwin::_location */
+/* 4: Attribute TKwin::_symbol_cache */
+/* 5: Attribute TKwin::_text */
+void INIT_ATTRIBUTES__TKwin(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwin;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwin(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwcontinue;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwcontinue___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwin;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwin(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwin;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwin_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwin_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwin();
+  INIT_ATTRIBUTES__TKwin(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwin(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwin_lexer___TKwin___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwcontinue();
-  lexer___TKwcontinue___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 413;
+  fra.me.meth = LOCATE_NEW_TKwin_lexer___TKwin___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwin();
+  /* ./parser//lexer.nit:413 */
+  INIT_ATTRIBUTES__TKwin(fra.me.REG[1]);
+  lexer___TKwin___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwin(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwbreak[71] = {
-  {(bigint) 2927 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwbreak < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwbreak < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwbreak < Token: superclass typecheck marker */},
-  {(bigint) 2927 /* 4: TKwbreak < TKwbreak: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwand[72] = {
+  {(bigint) 5603 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwand < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwand < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwand < Token: superclass typecheck marker */},
+  {(bigint) 5603 /* 5: TKwand < TKwand: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17039,14 +41311,12 @@ const classtable_elt_t VFT_TKwbreak[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwbreak < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwand < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17054,7 +41324,6 @@ const classtable_elt_t VFT_TKwbreak[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17062,69 +41331,140 @@ const classtable_elt_t VFT_TKwbreak[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwbreak < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwand < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwbreak___parser_index},
-  {(bigint) 2 /* 68: TKwbreak < Token: superclass init_table position */},
-  {(bigint) lexer___TKwbreak___init},
-  {(bigint) 3 /* 70: TKwbreak < TKwbreak: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwbreak::_parent */
-/* 2: Attribute TKwbreak::_symbol */
-/* 3: Attribute TKwbreak::_text */
-/* 4: Attribute TKwbreak::_filename */
-/* 5: Attribute TKwbreak::_line */
-/* 6: Attribute TKwbreak::_pos */
-val_t NEW_TKwbreak(void) {
+  {(bigint) lexer___TKwand___parser_index},
+  {(bigint) 2 /* 69: TKwand < Token: superclass init_table position */},
+  {(bigint) lexer___TKwand___init_tk},
+  {(bigint) 3 /* 71: TKwand < TKwand: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwand::_parent */
+/* 3: Attribute TKwand::_location */
+/* 4: Attribute TKwand::_symbol_cache */
+/* 5: Attribute TKwand::_text */
+void INIT_ATTRIBUTES__TKwand(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwand;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwand(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwbreak;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwbreak___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwand;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwand(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwand;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwand_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwbreak();
-  lexer___TKwbreak___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwand_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwand();
+  INIT_ATTRIBUTES__TKwand(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwand(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwand_lexer___TKwand___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 426;
+  fra.me.meth = LOCATE_NEW_TKwand_lexer___TKwand___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwand();
+  /* ./parser//lexer.nit:426 */
+  INIT_ATTRIBUTES__TKwand(fra.me.REG[1]);
+  lexer___TKwand___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwand(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwabort[71] = {
-  {(bigint) 2951 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwabort < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwabort < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwabort < Token: superclass typecheck marker */},
-  {(bigint) 2951 /* 4: TKwabort < TKwabort: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwor[72] = {
+  {(bigint) 5483 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwor < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwor < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwor < Token: superclass typecheck marker */},
+  {(bigint) 5483 /* 5: TKwor < TKwor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17133,14 +41473,12 @@ const classtable_elt_t VFT_TKwabort[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwabort < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17148,7 +41486,6 @@ const classtable_elt_t VFT_TKwabort[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17156,69 +41493,140 @@ const classtable_elt_t VFT_TKwabort[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwabort < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwor < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwabort___parser_index},
-  {(bigint) 2 /* 68: TKwabort < Token: superclass init_table position */},
-  {(bigint) lexer___TKwabort___init},
-  {(bigint) 3 /* 70: TKwabort < TKwabort: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwabort::_parent */
-/* 2: Attribute TKwabort::_symbol */
-/* 3: Attribute TKwabort::_text */
-/* 4: Attribute TKwabort::_filename */
-/* 5: Attribute TKwabort::_line */
-/* 6: Attribute TKwabort::_pos */
-val_t NEW_TKwabort(void) {
+  {(bigint) lexer___TKwor___parser_index},
+  {(bigint) 2 /* 69: TKwor < Token: superclass init_table position */},
+  {(bigint) lexer___TKwor___init_tk},
+  {(bigint) 3 /* 71: TKwor < TKwor: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwor::_parent */
+/* 3: Attribute TKwor::_location */
+/* 4: Attribute TKwor::_symbol_cache */
+/* 5: Attribute TKwor::_text */
+void INIT_ATTRIBUTES__TKwor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwabort;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwabort___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwor_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwor_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwor();
+  INIT_ATTRIBUTES__TKwor(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwor(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwor_lexer___TKwor___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwabort();
-  lexer___TKwabort___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 439;
+  fra.me.meth = LOCATE_NEW_TKwor_lexer___TKwor___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwor();
+  /* ./parser//lexer.nit:439 */
+  INIT_ATTRIBUTES__TKwor(fra.me.REG[1]);
+  lexer___TKwor___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwor(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwassert[71] = {
-  {(bigint) 2935 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwassert < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwassert < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwassert < Token: superclass typecheck marker */},
-  {(bigint) 2935 /* 4: TKwassert < TKwassert: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwnot[72] = {
+  {(bigint) 5499 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwnot < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwnot < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwnot < Token: superclass typecheck marker */},
+  {(bigint) 5499 /* 5: TKwnot < TKwnot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17227,14 +41635,12 @@ const classtable_elt_t VFT_TKwassert[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwassert < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwnot < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17242,7 +41648,6 @@ const classtable_elt_t VFT_TKwassert[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17250,69 +41655,140 @@ const classtable_elt_t VFT_TKwassert[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwassert < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwnot < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwassert___parser_index},
-  {(bigint) 2 /* 68: TKwassert < Token: superclass init_table position */},
-  {(bigint) lexer___TKwassert___init},
-  {(bigint) 3 /* 70: TKwassert < TKwassert: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwassert::_parent */
-/* 2: Attribute TKwassert::_symbol */
-/* 3: Attribute TKwassert::_text */
-/* 4: Attribute TKwassert::_filename */
-/* 5: Attribute TKwassert::_line */
-/* 6: Attribute TKwassert::_pos */
-val_t NEW_TKwassert(void) {
+  {(bigint) lexer___TKwnot___parser_index},
+  {(bigint) 2 /* 69: TKwnot < Token: superclass init_table position */},
+  {(bigint) lexer___TKwnot___init_tk},
+  {(bigint) 3 /* 71: TKwnot < TKwnot: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwnot::_parent */
+/* 3: Attribute TKwnot::_location */
+/* 4: Attribute TKwnot::_symbol_cache */
+/* 5: Attribute TKwnot::_text */
+void INIT_ATTRIBUTES__TKwnot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwnot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwnot(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwassert;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwassert___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwnot;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwnot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwnot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwnot_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwassert();
-  lexer___TKwassert___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwnot_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwnot();
+  INIT_ATTRIBUTES__TKwnot(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwnot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwnot_lexer___TKwnot___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 452;
+  fra.me.meth = LOCATE_NEW_TKwnot_lexer___TKwnot___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwnot();
+  /* ./parser//lexer.nit:452 */
+  INIT_ATTRIBUTES__TKwnot(fra.me.REG[1]);
+  lexer___TKwnot___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwnot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwnew[71] = {
-  {(bigint) 2851 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwnew < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwnew < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwnew < Token: superclass typecheck marker */},
-  {(bigint) 2851 /* 4: TKwnew < TKwnew: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwreturn[72] = {
+  {(bigint) 5459 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwreturn < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwreturn < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwreturn < Token: superclass typecheck marker */},
+  {(bigint) 5459 /* 5: TKwreturn < TKwreturn: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17321,14 +41797,12 @@ const classtable_elt_t VFT_TKwnew[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwnew < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwreturn < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17336,7 +41810,6 @@ const classtable_elt_t VFT_TKwnew[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17344,69 +41817,140 @@ const classtable_elt_t VFT_TKwnew[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwnew < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwreturn < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwnew___parser_index},
-  {(bigint) 2 /* 68: TKwnew < Token: superclass init_table position */},
-  {(bigint) lexer___TKwnew___init},
-  {(bigint) 3 /* 70: TKwnew < TKwnew: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwnew::_parent */
-/* 2: Attribute TKwnew::_symbol */
-/* 3: Attribute TKwnew::_text */
-/* 4: Attribute TKwnew::_filename */
-/* 5: Attribute TKwnew::_line */
-/* 6: Attribute TKwnew::_pos */
-val_t NEW_TKwnew(void) {
+  {(bigint) lexer___TKwreturn___parser_index},
+  {(bigint) 2 /* 69: TKwreturn < Token: superclass init_table position */},
+  {(bigint) lexer___TKwreturn___init_tk},
+  {(bigint) 3 /* 71: TKwreturn < TKwreturn: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwreturn::_parent */
+/* 3: Attribute TKwreturn::_location */
+/* 4: Attribute TKwreturn::_symbol_cache */
+/* 5: Attribute TKwreturn::_text */
+void INIT_ATTRIBUTES__TKwreturn(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwreturn;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwreturn(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwnew;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwnew___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwreturn;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwreturn(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwreturn;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwreturn_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwreturn_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwreturn();
+  INIT_ATTRIBUTES__TKwreturn(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwreturn(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwreturn_lexer___TKwreturn___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwnew();
-  lexer___TKwnew___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 465;
+  fra.me.meth = LOCATE_NEW_TKwreturn_lexer___TKwreturn___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwreturn();
+  /* ./parser//lexer.nit:465 */
+  INIT_ATTRIBUTES__TKwreturn(fra.me.REG[1]);
+  lexer___TKwreturn___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwreturn(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwisa[71] = {
-  {(bigint) 2859 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwisa < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwisa < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwisa < Token: superclass typecheck marker */},
-  {(bigint) 2859 /* 4: TKwisa < TKwisa: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwcontinue[72] = {
+  {(bigint) 5583 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwcontinue < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwcontinue < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwcontinue < Token: superclass typecheck marker */},
+  {(bigint) 5583 /* 5: TKwcontinue < TKwcontinue: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17415,14 +41959,12 @@ const classtable_elt_t VFT_TKwisa[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwisa < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwcontinue < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17430,7 +41972,6 @@ const classtable_elt_t VFT_TKwisa[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17438,69 +41979,140 @@ const classtable_elt_t VFT_TKwisa[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwisa < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwcontinue < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwisa___parser_index},
-  {(bigint) 2 /* 68: TKwisa < Token: superclass init_table position */},
-  {(bigint) lexer___TKwisa___init},
-  {(bigint) 3 /* 70: TKwisa < TKwisa: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwisa::_parent */
-/* 2: Attribute TKwisa::_symbol */
-/* 3: Attribute TKwisa::_text */
-/* 4: Attribute TKwisa::_filename */
-/* 5: Attribute TKwisa::_line */
-/* 6: Attribute TKwisa::_pos */
-val_t NEW_TKwisa(void) {
+  {(bigint) lexer___TKwcontinue___parser_index},
+  {(bigint) 2 /* 69: TKwcontinue < Token: superclass init_table position */},
+  {(bigint) lexer___TKwcontinue___init_tk},
+  {(bigint) 3 /* 71: TKwcontinue < TKwcontinue: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwcontinue::_parent */
+/* 3: Attribute TKwcontinue::_location */
+/* 4: Attribute TKwcontinue::_symbol_cache */
+/* 5: Attribute TKwcontinue::_text */
+void INIT_ATTRIBUTES__TKwcontinue(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwcontinue;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwcontinue(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwisa;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwisa___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwcontinue;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwcontinue(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwcontinue;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwcontinue_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwisa();
-  lexer___TKwisa___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwcontinue_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwcontinue();
+  INIT_ATTRIBUTES__TKwcontinue(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwcontinue(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwcontinue_lexer___TKwcontinue___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 478;
+  fra.me.meth = LOCATE_NEW_TKwcontinue_lexer___TKwcontinue___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwcontinue();
+  /* ./parser//lexer.nit:478 */
+  INIT_ATTRIBUTES__TKwcontinue(fra.me.REG[1]);
+  lexer___TKwcontinue___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwcontinue(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwonce[71] = {
-  {(bigint) 2839 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwonce < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwonce < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwonce < Token: superclass typecheck marker */},
-  {(bigint) 2839 /* 4: TKwonce < TKwonce: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwbreak[72] = {
+  {(bigint) 5591 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwbreak < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwbreak < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwbreak < Token: superclass typecheck marker */},
+  {(bigint) 5591 /* 5: TKwbreak < TKwbreak: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17509,14 +42121,12 @@ const classtable_elt_t VFT_TKwonce[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwonce < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwbreak < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17524,7 +42134,6 @@ const classtable_elt_t VFT_TKwonce[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17532,69 +42141,140 @@ const classtable_elt_t VFT_TKwonce[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwonce < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwbreak < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwonce___parser_index},
-  {(bigint) 2 /* 68: TKwonce < Token: superclass init_table position */},
-  {(bigint) lexer___TKwonce___init},
-  {(bigint) 3 /* 70: TKwonce < TKwonce: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwonce::_parent */
-/* 2: Attribute TKwonce::_symbol */
-/* 3: Attribute TKwonce::_text */
-/* 4: Attribute TKwonce::_filename */
-/* 5: Attribute TKwonce::_line */
-/* 6: Attribute TKwonce::_pos */
-val_t NEW_TKwonce(void) {
+  {(bigint) lexer___TKwbreak___parser_index},
+  {(bigint) 2 /* 69: TKwbreak < Token: superclass init_table position */},
+  {(bigint) lexer___TKwbreak___init_tk},
+  {(bigint) 3 /* 71: TKwbreak < TKwbreak: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwbreak::_parent */
+/* 3: Attribute TKwbreak::_location */
+/* 4: Attribute TKwbreak::_symbol_cache */
+/* 5: Attribute TKwbreak::_text */
+void INIT_ATTRIBUTES__TKwbreak(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwbreak;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwbreak(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwonce;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwonce___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwbreak;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwbreak(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwbreak;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwbreak_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwbreak_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwbreak();
+  INIT_ATTRIBUTES__TKwbreak(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwbreak(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwbreak_lexer___TKwbreak___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwonce();
-  lexer___TKwonce___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 491;
+  fra.me.meth = LOCATE_NEW_TKwbreak_lexer___TKwbreak___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwbreak();
+  /* ./parser//lexer.nit:491 */
+  INIT_ATTRIBUTES__TKwbreak(fra.me.REG[1]);
+  lexer___TKwbreak___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwbreak(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwsuper[71] = {
-  {(bigint) 2799 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwsuper < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwsuper < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwsuper < Token: superclass typecheck marker */},
-  {(bigint) 2799 /* 4: TKwsuper < TKwsuper: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwabort[72] = {
+  {(bigint) 5611 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwabort < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwabort < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwabort < Token: superclass typecheck marker */},
+  {(bigint) 5611 /* 5: TKwabort < TKwabort: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17603,14 +42283,12 @@ const classtable_elt_t VFT_TKwsuper[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwsuper < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwabort < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17618,7 +42296,6 @@ const classtable_elt_t VFT_TKwsuper[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17626,69 +42303,140 @@ const classtable_elt_t VFT_TKwsuper[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwsuper < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwabort < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwsuper___parser_index},
-  {(bigint) 2 /* 68: TKwsuper < Token: superclass init_table position */},
-  {(bigint) lexer___TKwsuper___init},
-  {(bigint) 3 /* 70: TKwsuper < TKwsuper: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwsuper::_parent */
-/* 2: Attribute TKwsuper::_symbol */
-/* 3: Attribute TKwsuper::_text */
-/* 4: Attribute TKwsuper::_filename */
-/* 5: Attribute TKwsuper::_line */
-/* 6: Attribute TKwsuper::_pos */
-val_t NEW_TKwsuper(void) {
+  {(bigint) lexer___TKwabort___parser_index},
+  {(bigint) 2 /* 69: TKwabort < Token: superclass init_table position */},
+  {(bigint) lexer___TKwabort___init_tk},
+  {(bigint) 3 /* 71: TKwabort < TKwabort: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwabort::_parent */
+/* 3: Attribute TKwabort::_location */
+/* 4: Attribute TKwabort::_symbol_cache */
+/* 5: Attribute TKwabort::_text */
+void INIT_ATTRIBUTES__TKwabort(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwabort;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwabort(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwsuper;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwsuper___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwabort;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwabort(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwabort;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwabort_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwsuper();
-  lexer___TKwsuper___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwabort_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwabort();
+  INIT_ATTRIBUTES__TKwabort(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwabort(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwabort_lexer___TKwabort___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 504;
+  fra.me.meth = LOCATE_NEW_TKwabort_lexer___TKwabort___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwabort();
+  /* ./parser//lexer.nit:504 */
+  INIT_ATTRIBUTES__TKwabort(fra.me.REG[1]);
+  lexer___TKwabort___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwabort(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwself[71] = {
-  {(bigint) 2807 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwself < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwself < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwself < Token: superclass typecheck marker */},
-  {(bigint) 2807 /* 4: TKwself < TKwself: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwassert[72] = {
+  {(bigint) 5595 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwassert < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwassert < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwassert < Token: superclass typecheck marker */},
+  {(bigint) 5595 /* 5: TKwassert < TKwassert: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17697,14 +42445,12 @@ const classtable_elt_t VFT_TKwself[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwself < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwassert < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17712,7 +42458,6 @@ const classtable_elt_t VFT_TKwself[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17720,69 +42465,140 @@ const classtable_elt_t VFT_TKwself[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwself < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwassert < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwself___parser_index},
-  {(bigint) 2 /* 68: TKwself < Token: superclass init_table position */},
-  {(bigint) lexer___TKwself___init},
-  {(bigint) 3 /* 70: TKwself < TKwself: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwself::_parent */
-/* 2: Attribute TKwself::_symbol */
-/* 3: Attribute TKwself::_text */
-/* 4: Attribute TKwself::_filename */
-/* 5: Attribute TKwself::_line */
-/* 6: Attribute TKwself::_pos */
-val_t NEW_TKwself(void) {
+  {(bigint) lexer___TKwassert___parser_index},
+  {(bigint) 2 /* 69: TKwassert < Token: superclass init_table position */},
+  {(bigint) lexer___TKwassert___init_tk},
+  {(bigint) 3 /* 71: TKwassert < TKwassert: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwassert::_parent */
+/* 3: Attribute TKwassert::_location */
+/* 4: Attribute TKwassert::_symbol_cache */
+/* 5: Attribute TKwassert::_text */
+void INIT_ATTRIBUTES__TKwassert(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwassert;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwassert(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwself;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwself___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwassert;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwassert(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwassert;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwassert_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwassert_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwassert();
+  INIT_ATTRIBUTES__TKwassert(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwassert(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwassert_lexer___TKwassert___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwself();
-  lexer___TKwself___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 517;
+  fra.me.meth = LOCATE_NEW_TKwassert_lexer___TKwassert___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwassert();
+  /* ./parser//lexer.nit:517 */
+  INIT_ATTRIBUTES__TKwassert(fra.me.REG[1]);
+  lexer___TKwassert___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwassert(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwtrue[71] = {
-  {(bigint) 2791 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwtrue < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwtrue < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwtrue < Token: superclass typecheck marker */},
-  {(bigint) 2791 /* 4: TKwtrue < TKwtrue: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwnew[72] = {
+  {(bigint) 5503 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwnew < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwnew < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwnew < Token: superclass typecheck marker */},
+  {(bigint) 5503 /* 5: TKwnew < TKwnew: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17791,14 +42607,12 @@ const classtable_elt_t VFT_TKwtrue[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwtrue < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwnew < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17806,7 +42620,6 @@ const classtable_elt_t VFT_TKwtrue[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17814,69 +42627,140 @@ const classtable_elt_t VFT_TKwtrue[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwtrue < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwnew < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwtrue___parser_index},
-  {(bigint) 2 /* 68: TKwtrue < Token: superclass init_table position */},
-  {(bigint) lexer___TKwtrue___init},
-  {(bigint) 3 /* 70: TKwtrue < TKwtrue: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwtrue::_parent */
-/* 2: Attribute TKwtrue::_symbol */
-/* 3: Attribute TKwtrue::_text */
-/* 4: Attribute TKwtrue::_filename */
-/* 5: Attribute TKwtrue::_line */
-/* 6: Attribute TKwtrue::_pos */
-val_t NEW_TKwtrue(void) {
+  {(bigint) lexer___TKwnew___parser_index},
+  {(bigint) 2 /* 69: TKwnew < Token: superclass init_table position */},
+  {(bigint) lexer___TKwnew___init_tk},
+  {(bigint) 3 /* 71: TKwnew < TKwnew: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwnew::_parent */
+/* 3: Attribute TKwnew::_location */
+/* 4: Attribute TKwnew::_symbol_cache */
+/* 5: Attribute TKwnew::_text */
+void INIT_ATTRIBUTES__TKwnew(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwnew;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwnew(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwtrue;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwtrue___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwnew;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwnew(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwnew;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwnew_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwtrue();
-  lexer___TKwtrue___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwnew_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwnew();
+  INIT_ATTRIBUTES__TKwnew(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwnew(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwnew_lexer___TKwnew___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 530;
+  fra.me.meth = LOCATE_NEW_TKwnew_lexer___TKwnew___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwnew();
+  /* ./parser//lexer.nit:530 */
+  INIT_ATTRIBUTES__TKwnew(fra.me.REG[1]);
+  lexer___TKwnew___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwnew(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwfalse[71] = {
-  {(bigint) 2899 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwfalse < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwfalse < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwfalse < Token: superclass typecheck marker */},
-  {(bigint) 2899 /* 4: TKwfalse < TKwfalse: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwisa[72] = {
+  {(bigint) 5523 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwisa < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwisa < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwisa < Token: superclass typecheck marker */},
+  {(bigint) 5523 /* 5: TKwisa < TKwisa: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17885,14 +42769,12 @@ const classtable_elt_t VFT_TKwfalse[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwfalse < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwisa < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17900,7 +42782,6 @@ const classtable_elt_t VFT_TKwfalse[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -17908,69 +42789,140 @@ const classtable_elt_t VFT_TKwfalse[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwfalse < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwisa < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwfalse___parser_index},
-  {(bigint) 2 /* 68: TKwfalse < Token: superclass init_table position */},
-  {(bigint) lexer___TKwfalse___init},
-  {(bigint) 3 /* 70: TKwfalse < TKwfalse: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwfalse::_parent */
-/* 2: Attribute TKwfalse::_symbol */
-/* 3: Attribute TKwfalse::_text */
-/* 4: Attribute TKwfalse::_filename */
-/* 5: Attribute TKwfalse::_line */
-/* 6: Attribute TKwfalse::_pos */
-val_t NEW_TKwfalse(void) {
+  {(bigint) lexer___TKwisa___parser_index},
+  {(bigint) 2 /* 69: TKwisa < Token: superclass init_table position */},
+  {(bigint) lexer___TKwisa___init_tk},
+  {(bigint) 3 /* 71: TKwisa < TKwisa: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwisa::_parent */
+/* 3: Attribute TKwisa::_location */
+/* 4: Attribute TKwisa::_symbol_cache */
+/* 5: Attribute TKwisa::_text */
+void INIT_ATTRIBUTES__TKwisa(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwisa;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwisa(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwfalse;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwfalse___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwisa;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwisa(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwisa;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwisa_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwisa_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwisa();
+  INIT_ATTRIBUTES__TKwisa(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwisa(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwisa_lexer___TKwisa___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwfalse();
-  lexer___TKwfalse___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 543;
+  fra.me.meth = LOCATE_NEW_TKwisa_lexer___TKwisa___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwisa();
+  /* ./parser//lexer.nit:543 */
+  INIT_ATTRIBUTES__TKwisa(fra.me.REG[1]);
+  lexer___TKwisa___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwisa(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwnull[71] = {
-  {(bigint) 2843 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwnull < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwnull < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwnull < Token: superclass typecheck marker */},
-  {(bigint) 2843 /* 4: TKwnull < TKwnull: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwonce[72] = {
+  {(bigint) 5487 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwonce < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwonce < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwonce < Token: superclass typecheck marker */},
+  {(bigint) 5487 /* 5: TKwonce < TKwonce: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17979,14 +42931,12 @@ const classtable_elt_t VFT_TKwnull[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwnull < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwonce < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -17994,7 +42944,6 @@ const classtable_elt_t VFT_TKwnull[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18002,69 +42951,140 @@ const classtable_elt_t VFT_TKwnull[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwnull < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwonce < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwnull___parser_index},
-  {(bigint) 2 /* 68: TKwnull < Token: superclass init_table position */},
-  {(bigint) lexer___TKwnull___init},
-  {(bigint) 3 /* 70: TKwnull < TKwnull: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwnull::_parent */
-/* 2: Attribute TKwnull::_symbol */
-/* 3: Attribute TKwnull::_text */
-/* 4: Attribute TKwnull::_filename */
-/* 5: Attribute TKwnull::_line */
-/* 6: Attribute TKwnull::_pos */
-val_t NEW_TKwnull(void) {
+  {(bigint) lexer___TKwonce___parser_index},
+  {(bigint) 2 /* 69: TKwonce < Token: superclass init_table position */},
+  {(bigint) lexer___TKwonce___init_tk},
+  {(bigint) 3 /* 71: TKwonce < TKwonce: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwonce::_parent */
+/* 3: Attribute TKwonce::_location */
+/* 4: Attribute TKwonce::_symbol_cache */
+/* 5: Attribute TKwonce::_text */
+void INIT_ATTRIBUTES__TKwonce(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwonce;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwonce(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwnull;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwnull___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwonce;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwonce(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwonce;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwonce_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwnull();
-  lexer___TKwnull___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwonce_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwonce();
+  INIT_ATTRIBUTES__TKwonce(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwonce(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwonce_lexer___TKwonce___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 556;
+  fra.me.meth = LOCATE_NEW_TKwonce_lexer___TKwonce___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwonce();
+  /* ./parser//lexer.nit:556 */
+  INIT_ATTRIBUTES__TKwonce(fra.me.REG[1]);
+  lexer___TKwonce___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwonce(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TKwas[71] = {
-  {(bigint) 2939 /* 0: Identity */},
-  {(bigint) 3 /* 1: TKwas < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TKwas < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TKwas < Token: superclass typecheck marker */},
-  {(bigint) 2939 /* 4: TKwas < TKwas: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwsuper[72] = {
+  {(bigint) 5447 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwsuper < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwsuper < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwsuper < Token: superclass typecheck marker */},
+  {(bigint) 5447 /* 5: TKwsuper < TKwsuper: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18073,14 +43093,12 @@ const classtable_elt_t VFT_TKwas[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TKwas < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwsuper < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18088,7 +43106,6 @@ const classtable_elt_t VFT_TKwas[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18096,69 +43113,140 @@ const classtable_elt_t VFT_TKwas[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TKwas < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwsuper < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TKwas___parser_index},
-  {(bigint) 2 /* 68: TKwas < Token: superclass init_table position */},
-  {(bigint) lexer___TKwas___init},
-  {(bigint) 3 /* 70: TKwas < TKwas: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TKwas::_parent */
-/* 2: Attribute TKwas::_symbol */
-/* 3: Attribute TKwas::_text */
-/* 4: Attribute TKwas::_filename */
-/* 5: Attribute TKwas::_line */
-/* 6: Attribute TKwas::_pos */
-val_t NEW_TKwas(void) {
+  {(bigint) lexer___TKwsuper___parser_index},
+  {(bigint) 2 /* 69: TKwsuper < Token: superclass init_table position */},
+  {(bigint) lexer___TKwsuper___init_tk},
+  {(bigint) 3 /* 71: TKwsuper < TKwsuper: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwsuper::_parent */
+/* 3: Attribute TKwsuper::_location */
+/* 4: Attribute TKwsuper::_symbol_cache */
+/* 5: Attribute TKwsuper::_text */
+void INIT_ATTRIBUTES__TKwsuper(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwsuper;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwsuper(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TKwas;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TKwas___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwsuper;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwsuper(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwsuper;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwsuper_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwsuper_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwsuper();
+  INIT_ATTRIBUTES__TKwsuper(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwsuper(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwsuper_lexer___TKwsuper___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TKwas();
-  lexer___TKwas___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 569;
+  fra.me.meth = LOCATE_NEW_TKwsuper_lexer___TKwsuper___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwsuper();
+  /* ./parser//lexer.nit:569 */
+  INIT_ATTRIBUTES__TKwsuper(fra.me.REG[1]);
+  lexer___TKwsuper___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwsuper(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TOpar[71] = {
-  {(bigint) 2735 /* 0: Identity */},
-  {(bigint) 3 /* 1: TOpar < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TOpar < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TOpar < Token: superclass typecheck marker */},
-  {(bigint) 2735 /* 4: TOpar < TOpar: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwself[72] = {
+  {(bigint) 5455 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwself < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwself < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwself < Token: superclass typecheck marker */},
+  {(bigint) 5455 /* 5: TKwself < TKwself: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18167,14 +43255,12 @@ const classtable_elt_t VFT_TOpar[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TOpar < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwself < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18182,7 +43268,6 @@ const classtable_elt_t VFT_TOpar[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18190,69 +43275,140 @@ const classtable_elt_t VFT_TOpar[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TOpar < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwself < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TOpar___parser_index},
-  {(bigint) 2 /* 68: TOpar < Token: superclass init_table position */},
-  {(bigint) lexer___TOpar___init},
-  {(bigint) 3 /* 70: TOpar < TOpar: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TOpar::_parent */
-/* 2: Attribute TOpar::_symbol */
-/* 3: Attribute TOpar::_text */
-/* 4: Attribute TOpar::_filename */
-/* 5: Attribute TOpar::_line */
-/* 6: Attribute TOpar::_pos */
-val_t NEW_TOpar(void) {
+  {(bigint) lexer___TKwself___parser_index},
+  {(bigint) 2 /* 69: TKwself < Token: superclass init_table position */},
+  {(bigint) lexer___TKwself___init_tk},
+  {(bigint) 3 /* 71: TKwself < TKwself: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwself::_parent */
+/* 3: Attribute TKwself::_location */
+/* 4: Attribute TKwself::_symbol_cache */
+/* 5: Attribute TKwself::_text */
+void INIT_ATTRIBUTES__TKwself(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwself;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwself(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TOpar;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TOpar___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwself;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwself(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwself;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwself_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TOpar();
-  lexer___TOpar___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwself_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwself();
+  INIT_ATTRIBUTES__TKwself(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwself(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwself_lexer___TKwself___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 582;
+  fra.me.meth = LOCATE_NEW_TKwself_lexer___TKwself___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwself();
+  /* ./parser//lexer.nit:582 */
+  INIT_ATTRIBUTES__TKwself(fra.me.REG[1]);
+  lexer___TKwself___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwself(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TCpar[71] = {
-  {(bigint) 2995 /* 0: Identity */},
-  {(bigint) 3 /* 1: TCpar < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TCpar < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TCpar < Token: superclass typecheck marker */},
-  {(bigint) 2995 /* 4: TCpar < TCpar: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwtrue[72] = {
+  {(bigint) 5439 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwtrue < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwtrue < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwtrue < Token: superclass typecheck marker */},
+  {(bigint) 5439 /* 5: TKwtrue < TKwtrue: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18261,14 +43417,12 @@ const classtable_elt_t VFT_TCpar[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TCpar < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwtrue < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18276,7 +43430,6 @@ const classtable_elt_t VFT_TCpar[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18284,69 +43437,140 @@ const classtable_elt_t VFT_TCpar[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TCpar < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwtrue < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TCpar___parser_index},
-  {(bigint) 2 /* 68: TCpar < Token: superclass init_table position */},
-  {(bigint) lexer___TCpar___init},
-  {(bigint) 3 /* 70: TCpar < TCpar: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TCpar::_parent */
-/* 2: Attribute TCpar::_symbol */
-/* 3: Attribute TCpar::_text */
-/* 4: Attribute TCpar::_filename */
-/* 5: Attribute TCpar::_line */
-/* 6: Attribute TCpar::_pos */
-val_t NEW_TCpar(void) {
+  {(bigint) lexer___TKwtrue___parser_index},
+  {(bigint) 2 /* 69: TKwtrue < Token: superclass init_table position */},
+  {(bigint) lexer___TKwtrue___init_tk},
+  {(bigint) 3 /* 71: TKwtrue < TKwtrue: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwtrue::_parent */
+/* 3: Attribute TKwtrue::_location */
+/* 4: Attribute TKwtrue::_symbol_cache */
+/* 5: Attribute TKwtrue::_text */
+void INIT_ATTRIBUTES__TKwtrue(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwtrue;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwtrue(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TCpar;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TCpar___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwtrue;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwtrue(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwtrue;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwtrue_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwtrue_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwtrue();
+  INIT_ATTRIBUTES__TKwtrue(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwtrue(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwtrue_lexer___TKwtrue___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TCpar();
-  lexer___TCpar___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 595;
+  fra.me.meth = LOCATE_NEW_TKwtrue_lexer___TKwtrue___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwtrue();
+  /* ./parser//lexer.nit:595 */
+  INIT_ATTRIBUTES__TKwtrue(fra.me.REG[1]);
+  lexer___TKwtrue___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwtrue(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TObra[71] = {
-  {(bigint) 2739 /* 0: Identity */},
-  {(bigint) 3 /* 1: TObra < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TObra < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TObra < Token: superclass typecheck marker */},
-  {(bigint) 2739 /* 4: TObra < TObra: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwfalse[72] = {
+  {(bigint) 5563 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwfalse < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwfalse < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwfalse < Token: superclass typecheck marker */},
+  {(bigint) 5563 /* 5: TKwfalse < TKwfalse: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18355,14 +43579,12 @@ const classtable_elt_t VFT_TObra[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TObra < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwfalse < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18370,7 +43592,6 @@ const classtable_elt_t VFT_TObra[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18378,69 +43599,140 @@ const classtable_elt_t VFT_TObra[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TObra < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwfalse < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TObra___parser_index},
-  {(bigint) 2 /* 68: TObra < Token: superclass init_table position */},
-  {(bigint) lexer___TObra___init},
-  {(bigint) 3 /* 70: TObra < TObra: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TObra::_parent */
-/* 2: Attribute TObra::_symbol */
-/* 3: Attribute TObra::_text */
-/* 4: Attribute TObra::_filename */
-/* 5: Attribute TObra::_line */
-/* 6: Attribute TObra::_pos */
-val_t NEW_TObra(void) {
+  {(bigint) lexer___TKwfalse___parser_index},
+  {(bigint) 2 /* 69: TKwfalse < Token: superclass init_table position */},
+  {(bigint) lexer___TKwfalse___init_tk},
+  {(bigint) 3 /* 71: TKwfalse < TKwfalse: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwfalse::_parent */
+/* 3: Attribute TKwfalse::_location */
+/* 4: Attribute TKwfalse::_symbol_cache */
+/* 5: Attribute TKwfalse::_text */
+void INIT_ATTRIBUTES__TKwfalse(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwfalse;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwfalse(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TObra;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TObra___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwfalse;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwfalse(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwfalse;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwfalse_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TObra();
-  lexer___TObra___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwfalse_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwfalse();
+  INIT_ATTRIBUTES__TKwfalse(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwfalse(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwfalse_lexer___TKwfalse___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 608;
+  fra.me.meth = LOCATE_NEW_TKwfalse_lexer___TKwfalse___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwfalse();
+  /* ./parser//lexer.nit:608 */
+  INIT_ATTRIBUTES__TKwfalse(fra.me.REG[1]);
+  lexer___TKwfalse___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwfalse(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TCbra[71] = {
-  {(bigint) 3019 /* 0: Identity */},
-  {(bigint) 3 /* 1: TCbra < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TCbra < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TCbra < Token: superclass typecheck marker */},
-  {(bigint) 3019 /* 4: TCbra < TCbra: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwnull[72] = {
+  {(bigint) 5495 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwnull < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwnull < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwnull < Token: superclass typecheck marker */},
+  {(bigint) 5495 /* 5: TKwnull < TKwnull: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18449,14 +43741,12 @@ const classtable_elt_t VFT_TCbra[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TCbra < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwnull < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18464,7 +43754,6 @@ const classtable_elt_t VFT_TCbra[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18472,69 +43761,140 @@ const classtable_elt_t VFT_TCbra[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TCbra < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwnull < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TCbra___parser_index},
-  {(bigint) 2 /* 68: TCbra < Token: superclass init_table position */},
-  {(bigint) lexer___TCbra___init},
-  {(bigint) 3 /* 70: TCbra < TCbra: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TCbra::_parent */
-/* 2: Attribute TCbra::_symbol */
-/* 3: Attribute TCbra::_text */
-/* 4: Attribute TCbra::_filename */
-/* 5: Attribute TCbra::_line */
-/* 6: Attribute TCbra::_pos */
-val_t NEW_TCbra(void) {
+  {(bigint) lexer___TKwnull___parser_index},
+  {(bigint) 2 /* 69: TKwnull < Token: superclass init_table position */},
+  {(bigint) lexer___TKwnull___init_tk},
+  {(bigint) 3 /* 71: TKwnull < TKwnull: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwnull::_parent */
+/* 3: Attribute TKwnull::_location */
+/* 4: Attribute TKwnull::_symbol_cache */
+/* 5: Attribute TKwnull::_text */
+void INIT_ATTRIBUTES__TKwnull(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwnull;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwnull(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TCbra;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TCbra___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwnull;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwnull(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwnull;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwnull_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwnull_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwnull();
+  INIT_ATTRIBUTES__TKwnull(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwnull(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwnull_lexer___TKwnull___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TCbra();
-  lexer___TCbra___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 621;
+  fra.me.meth = LOCATE_NEW_TKwnull_lexer___TKwnull___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwnull();
+  /* ./parser//lexer.nit:621 */
+  INIT_ATTRIBUTES__TKwnull(fra.me.REG[1]);
+  lexer___TKwnull___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwnull(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TComma[71] = {
-  {(bigint) 3003 /* 0: Identity */},
-  {(bigint) 3 /* 1: TComma < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TComma < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TComma < Token: superclass typecheck marker */},
-  {(bigint) 3003 /* 4: TComma < TComma: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwas[72] = {
+  {(bigint) 5599 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwas < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwas < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwas < Token: superclass typecheck marker */},
+  {(bigint) 5599 /* 5: TKwas < TKwas: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18543,14 +43903,12 @@ const classtable_elt_t VFT_TComma[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TComma < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwas < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18558,7 +43916,6 @@ const classtable_elt_t VFT_TComma[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18566,69 +43923,140 @@ const classtable_elt_t VFT_TComma[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TComma < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwas < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TComma___parser_index},
-  {(bigint) 2 /* 68: TComma < Token: superclass init_table position */},
-  {(bigint) lexer___TComma___init},
-  {(bigint) 3 /* 70: TComma < TComma: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TComma::_parent */
-/* 2: Attribute TComma::_symbol */
-/* 3: Attribute TComma::_text */
-/* 4: Attribute TComma::_filename */
-/* 5: Attribute TComma::_line */
-/* 6: Attribute TComma::_pos */
-val_t NEW_TComma(void) {
+  {(bigint) lexer___TKwas___parser_index},
+  {(bigint) 2 /* 69: TKwas < Token: superclass init_table position */},
+  {(bigint) lexer___TKwas___init_tk},
+  {(bigint) 3 /* 71: TKwas < TKwas: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwas::_parent */
+/* 3: Attribute TKwas::_location */
+/* 4: Attribute TKwas::_symbol_cache */
+/* 5: Attribute TKwas::_text */
+void INIT_ATTRIBUTES__TKwas(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwas;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwas(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TComma;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TComma___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwas;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwas(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwas;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwas_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TComma();
-  lexer___TComma___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwas_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwas();
+  INIT_ATTRIBUTES__TKwas(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwas(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwas_lexer___TKwas___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 634;
+  fra.me.meth = LOCATE_NEW_TKwas_lexer___TKwas___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwas();
+  /* ./parser//lexer.nit:634 */
+  INIT_ATTRIBUTES__TKwas(fra.me.REG[1]);
+  lexer___TKwas___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwas(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TColumn[71] = {
-  {(bigint) 3007 /* 0: Identity */},
-  {(bigint) 3 /* 1: TColumn < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TColumn < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TColumn < Token: superclass typecheck marker */},
-  {(bigint) 3007 /* 4: TColumn < TColumn: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwnullable[72] = {
+  {(bigint) 5491 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwnullable < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwnullable < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwnullable < Token: superclass typecheck marker */},
+  {(bigint) 5491 /* 5: TKwnullable < TKwnullable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18637,14 +44065,12 @@ const classtable_elt_t VFT_TColumn[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TColumn < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwnullable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18652,7 +44078,6 @@ const classtable_elt_t VFT_TColumn[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18660,69 +44085,140 @@ const classtable_elt_t VFT_TColumn[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TColumn < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwnullable < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TColumn___parser_index},
-  {(bigint) 2 /* 68: TColumn < Token: superclass init_table position */},
-  {(bigint) lexer___TColumn___init},
-  {(bigint) 3 /* 70: TColumn < TColumn: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TColumn::_parent */
-/* 2: Attribute TColumn::_symbol */
-/* 3: Attribute TColumn::_text */
-/* 4: Attribute TColumn::_filename */
-/* 5: Attribute TColumn::_line */
-/* 6: Attribute TColumn::_pos */
-val_t NEW_TColumn(void) {
+  {(bigint) lexer___TKwnullable___parser_index},
+  {(bigint) 2 /* 69: TKwnullable < Token: superclass init_table position */},
+  {(bigint) lexer___TKwnullable___init_tk},
+  {(bigint) 3 /* 71: TKwnullable < TKwnullable: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwnullable::_parent */
+/* 3: Attribute TKwnullable::_location */
+/* 4: Attribute TKwnullable::_symbol_cache */
+/* 5: Attribute TKwnullable::_text */
+void INIT_ATTRIBUTES__TKwnullable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwnullable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwnullable(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TColumn;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TColumn___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwnullable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwnullable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwnullable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwnullable_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwnullable_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwnullable();
+  INIT_ATTRIBUTES__TKwnullable(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwnullable(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwnullable_lexer___TKwnullable___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TColumn();
-  lexer___TColumn___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 647;
+  fra.me.meth = LOCATE_NEW_TKwnullable_lexer___TKwnullable___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwnullable();
+  /* ./parser//lexer.nit:647 */
+  INIT_ATTRIBUTES__TKwnullable(fra.me.REG[1]);
+  lexer___TKwnullable___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwnullable(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TQuad[71] = {
-  {(bigint) 2719 /* 0: Identity */},
-  {(bigint) 3 /* 1: TQuad < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TQuad < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TQuad < Token: superclass typecheck marker */},
-  {(bigint) 2719 /* 4: TQuad < TQuad: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwisset[72] = {
+  {(bigint) 5519 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwisset < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwisset < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwisset < Token: superclass typecheck marker */},
+  {(bigint) 5519 /* 5: TKwisset < TKwisset: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18731,14 +44227,12 @@ const classtable_elt_t VFT_TQuad[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TQuad < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwisset < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18746,7 +44240,6 @@ const classtable_elt_t VFT_TQuad[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18754,69 +44247,140 @@ const classtable_elt_t VFT_TQuad[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TQuad < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwisset < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TQuad___parser_index},
-  {(bigint) 2 /* 68: TQuad < Token: superclass init_table position */},
-  {(bigint) lexer___TQuad___init},
-  {(bigint) 3 /* 70: TQuad < TQuad: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TQuad::_parent */
-/* 2: Attribute TQuad::_symbol */
-/* 3: Attribute TQuad::_text */
-/* 4: Attribute TQuad::_filename */
-/* 5: Attribute TQuad::_line */
-/* 6: Attribute TQuad::_pos */
-val_t NEW_TQuad(void) {
+  {(bigint) lexer___TKwisset___parser_index},
+  {(bigint) 2 /* 69: TKwisset < Token: superclass init_table position */},
+  {(bigint) lexer___TKwisset___init_tk},
+  {(bigint) 3 /* 71: TKwisset < TKwisset: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwisset::_parent */
+/* 3: Attribute TKwisset::_location */
+/* 4: Attribute TKwisset::_symbol_cache */
+/* 5: Attribute TKwisset::_text */
+void INIT_ATTRIBUTES__TKwisset(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwisset;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwisset(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TQuad;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TQuad___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwisset;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwisset(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwisset;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwisset_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TQuad();
-  lexer___TQuad___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwisset_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwisset();
+  INIT_ATTRIBUTES__TKwisset(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwisset(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwisset_lexer___TKwisset___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 660;
+  fra.me.meth = LOCATE_NEW_TKwisset_lexer___TKwisset___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwisset();
+  /* ./parser//lexer.nit:660 */
+  INIT_ATTRIBUTES__TKwisset(fra.me.REG[1]);
+  lexer___TKwisset___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwisset(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TAssign[71] = {
-  {(bigint) 3027 /* 0: Identity */},
-  {(bigint) 3 /* 1: TAssign < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TAssign < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TAssign < Token: superclass typecheck marker */},
-  {(bigint) 3027 /* 4: TAssign < TAssign: superclass typecheck marker */},
+const classtable_elt_t VFT_TKwlabel[72] = {
+  {(bigint) 5515 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TKwlabel < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TKwlabel < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TKwlabel < Token: superclass typecheck marker */},
+  {(bigint) 5515 /* 5: TKwlabel < TKwlabel: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18825,14 +44389,12 @@ const classtable_elt_t VFT_TAssign[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TAssign < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TKwlabel < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18840,7 +44402,6 @@ const classtable_elt_t VFT_TAssign[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18848,69 +44409,140 @@ const classtable_elt_t VFT_TAssign[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TAssign < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TKwlabel < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TAssign___parser_index},
-  {(bigint) 2 /* 68: TAssign < Token: superclass init_table position */},
-  {(bigint) lexer___TAssign___init},
-  {(bigint) 3 /* 70: TAssign < TAssign: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TAssign::_parent */
-/* 2: Attribute TAssign::_symbol */
-/* 3: Attribute TAssign::_text */
-/* 4: Attribute TAssign::_filename */
-/* 5: Attribute TAssign::_line */
-/* 6: Attribute TAssign::_pos */
-val_t NEW_TAssign(void) {
+  {(bigint) lexer___TKwlabel___parser_index},
+  {(bigint) 2 /* 69: TKwlabel < Token: superclass init_table position */},
+  {(bigint) lexer___TKwlabel___init_tk},
+  {(bigint) 3 /* 71: TKwlabel < TKwlabel: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwlabel::_parent */
+/* 3: Attribute TKwlabel::_location */
+/* 4: Attribute TKwlabel::_symbol_cache */
+/* 5: Attribute TKwlabel::_text */
+void INIT_ATTRIBUTES__TKwlabel(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TKwlabel;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwlabel(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TAssign;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TAssign___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TKwlabel;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TKwlabel(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TKwlabel;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwlabel_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TKwlabel_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TKwlabel();
+  INIT_ATTRIBUTES__TKwlabel(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwlabel(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TKwlabel_lexer___TKwlabel___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TAssign();
-  lexer___TAssign___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 673;
+  fra.me.meth = LOCATE_NEW_TKwlabel_lexer___TKwlabel___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TKwlabel();
+  /* ./parser//lexer.nit:673 */
+  INIT_ATTRIBUTES__TKwlabel(fra.me.REG[1]);
+  lexer___TKwlabel___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TKwlabel(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TPluseq[71] = {
-  {(bigint) 2723 /* 0: Identity */},
-  {(bigint) 3 /* 1: TPluseq < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TPluseq < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TPluseq < Token: superclass typecheck marker */},
-  {(bigint) 2723 /* 4: TPluseq < TPluseq: superclass typecheck marker */},
+const classtable_elt_t VFT_TOpar[72] = {
+  {(bigint) 5383 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TOpar < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TOpar < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TOpar < Token: superclass typecheck marker */},
+  {(bigint) 5383 /* 5: TOpar < TOpar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18919,14 +44551,12 @@ const classtable_elt_t VFT_TPluseq[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TPluseq < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TOpar < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -18934,7 +44564,6 @@ const classtable_elt_t VFT_TPluseq[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -18942,69 +44571,140 @@ const classtable_elt_t VFT_TPluseq[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TPluseq < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TOpar < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TPluseq___parser_index},
-  {(bigint) 2 /* 68: TPluseq < Token: superclass init_table position */},
-  {(bigint) lexer___TPluseq___init},
-  {(bigint) 3 /* 70: TPluseq < TPluseq: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TPluseq::_parent */
-/* 2: Attribute TPluseq::_symbol */
-/* 3: Attribute TPluseq::_text */
-/* 4: Attribute TPluseq::_filename */
-/* 5: Attribute TPluseq::_line */
-/* 6: Attribute TPluseq::_pos */
-val_t NEW_TPluseq(void) {
+  {(bigint) lexer___TOpar___parser_index},
+  {(bigint) 2 /* 69: TOpar < Token: superclass init_table position */},
+  {(bigint) lexer___TOpar___init_tk},
+  {(bigint) 3 /* 71: TOpar < TOpar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TOpar::_parent */
+/* 3: Attribute TOpar::_location */
+/* 4: Attribute TOpar::_symbol_cache */
+/* 5: Attribute TOpar::_text */
+void INIT_ATTRIBUTES__TOpar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TOpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TOpar(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TPluseq;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TPluseq___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TOpar;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TOpar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TOpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TOpar_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TPluseq();
-  lexer___TPluseq___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TOpar_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TOpar();
+  INIT_ATTRIBUTES__TOpar(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TOpar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TOpar_lexer___TOpar___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 686;
+  fra.me.meth = LOCATE_NEW_TOpar_lexer___TOpar___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TOpar();
+  /* ./parser//lexer.nit:686 */
+  INIT_ATTRIBUTES__TOpar(fra.me.REG[1]);
+  lexer___TOpar___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TOpar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TMinuseq[71] = {
-  {(bigint) 2751 /* 0: Identity */},
-  {(bigint) 3 /* 1: TMinuseq < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TMinuseq < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TMinuseq < Token: superclass typecheck marker */},
-  {(bigint) 2751 /* 4: TMinuseq < TMinuseq: superclass typecheck marker */},
+const classtable_elt_t VFT_TCpar[72] = {
+  {(bigint) 5655 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TCpar < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TCpar < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TCpar < Token: superclass typecheck marker */},
+  {(bigint) 5655 /* 5: TCpar < TCpar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19013,14 +44713,12 @@ const classtable_elt_t VFT_TMinuseq[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TMinuseq < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TCpar < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19028,7 +44726,6 @@ const classtable_elt_t VFT_TMinuseq[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19036,69 +44733,140 @@ const classtable_elt_t VFT_TMinuseq[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TMinuseq < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TCpar < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TMinuseq___parser_index},
-  {(bigint) 2 /* 68: TMinuseq < Token: superclass init_table position */},
-  {(bigint) lexer___TMinuseq___init},
-  {(bigint) 3 /* 70: TMinuseq < TMinuseq: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TMinuseq::_parent */
-/* 2: Attribute TMinuseq::_symbol */
-/* 3: Attribute TMinuseq::_text */
-/* 4: Attribute TMinuseq::_filename */
-/* 5: Attribute TMinuseq::_line */
-/* 6: Attribute TMinuseq::_pos */
-val_t NEW_TMinuseq(void) {
+  {(bigint) lexer___TCpar___parser_index},
+  {(bigint) 2 /* 69: TCpar < Token: superclass init_table position */},
+  {(bigint) lexer___TCpar___init_tk},
+  {(bigint) 3 /* 71: TCpar < TCpar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TCpar::_parent */
+/* 3: Attribute TCpar::_location */
+/* 4: Attribute TCpar::_symbol_cache */
+/* 5: Attribute TCpar::_text */
+void INIT_ATTRIBUTES__TCpar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TCpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TCpar(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TMinuseq;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TMinuseq___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TCpar;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TCpar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TCpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TCpar_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TCpar_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TCpar();
+  INIT_ATTRIBUTES__TCpar(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TCpar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TCpar_lexer___TCpar___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TMinuseq();
-  lexer___TMinuseq___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 699;
+  fra.me.meth = LOCATE_NEW_TCpar_lexer___TCpar___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TCpar();
+  /* ./parser//lexer.nit:699 */
+  INIT_ATTRIBUTES__TCpar(fra.me.REG[1]);
+  lexer___TCpar___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TCpar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TDotdotdot[71] = {
-  {(bigint) 2983 /* 0: Identity */},
-  {(bigint) 3 /* 1: TDotdotdot < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TDotdotdot < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TDotdotdot < Token: superclass typecheck marker */},
-  {(bigint) 2983 /* 4: TDotdotdot < TDotdotdot: superclass typecheck marker */},
+const classtable_elt_t VFT_TObra[72] = {
+  {(bigint) 5387 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TObra < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TObra < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TObra < Token: superclass typecheck marker */},
+  {(bigint) 5387 /* 5: TObra < TObra: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19107,14 +44875,12 @@ const classtable_elt_t VFT_TDotdotdot[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TDotdotdot < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TObra < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19122,7 +44888,6 @@ const classtable_elt_t VFT_TDotdotdot[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19130,69 +44895,140 @@ const classtable_elt_t VFT_TDotdotdot[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TDotdotdot < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TObra < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TDotdotdot___parser_index},
-  {(bigint) 2 /* 68: TDotdotdot < Token: superclass init_table position */},
-  {(bigint) lexer___TDotdotdot___init},
-  {(bigint) 3 /* 70: TDotdotdot < TDotdotdot: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TDotdotdot::_parent */
-/* 2: Attribute TDotdotdot::_symbol */
-/* 3: Attribute TDotdotdot::_text */
-/* 4: Attribute TDotdotdot::_filename */
-/* 5: Attribute TDotdotdot::_line */
-/* 6: Attribute TDotdotdot::_pos */
-val_t NEW_TDotdotdot(void) {
+  {(bigint) lexer___TObra___parser_index},
+  {(bigint) 2 /* 69: TObra < Token: superclass init_table position */},
+  {(bigint) lexer___TObra___init_tk},
+  {(bigint) 3 /* 71: TObra < TObra: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TObra::_parent */
+/* 3: Attribute TObra::_location */
+/* 4: Attribute TObra::_symbol_cache */
+/* 5: Attribute TObra::_text */
+void INIT_ATTRIBUTES__TObra(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TObra;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TObra(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TDotdotdot;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TDotdotdot___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TObra;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TObra(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TObra;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TObra_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TDotdotdot();
-  lexer___TDotdotdot___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TObra_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TObra();
+  INIT_ATTRIBUTES__TObra(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TObra(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TObra_lexer___TObra___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 712;
+  fra.me.meth = LOCATE_NEW_TObra_lexer___TObra___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TObra();
+  /* ./parser//lexer.nit:712 */
+  INIT_ATTRIBUTES__TObra(fra.me.REG[1]);
+  lexer___TObra___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TObra(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TDotdot[71] = {
-  {(bigint) 2987 /* 0: Identity */},
-  {(bigint) 3 /* 1: TDotdot < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TDotdot < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TDotdot < Token: superclass typecheck marker */},
-  {(bigint) 2987 /* 4: TDotdot < TDotdot: superclass typecheck marker */},
+const classtable_elt_t VFT_TCbra[72] = {
+  {(bigint) 5679 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TCbra < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TCbra < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TCbra < Token: superclass typecheck marker */},
+  {(bigint) 5679 /* 5: TCbra < TCbra: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19201,14 +45037,12 @@ const classtable_elt_t VFT_TDotdot[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TDotdot < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TCbra < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19216,7 +45050,6 @@ const classtable_elt_t VFT_TDotdot[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19224,69 +45057,140 @@ const classtable_elt_t VFT_TDotdot[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TDotdot < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TCbra < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TDotdot___parser_index},
-  {(bigint) 2 /* 68: TDotdot < Token: superclass init_table position */},
-  {(bigint) lexer___TDotdot___init},
-  {(bigint) 3 /* 70: TDotdot < TDotdot: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TDotdot::_parent */
-/* 2: Attribute TDotdot::_symbol */
-/* 3: Attribute TDotdot::_text */
-/* 4: Attribute TDotdot::_filename */
-/* 5: Attribute TDotdot::_line */
-/* 6: Attribute TDotdot::_pos */
-val_t NEW_TDotdot(void) {
+  {(bigint) lexer___TCbra___parser_index},
+  {(bigint) 2 /* 69: TCbra < Token: superclass init_table position */},
+  {(bigint) lexer___TCbra___init_tk},
+  {(bigint) 3 /* 71: TCbra < TCbra: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TCbra::_parent */
+/* 3: Attribute TCbra::_location */
+/* 4: Attribute TCbra::_symbol_cache */
+/* 5: Attribute TCbra::_text */
+void INIT_ATTRIBUTES__TCbra(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TCbra;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TCbra(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TDotdot;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TDotdot___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TCbra;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TCbra(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TCbra;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TCbra_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TCbra_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TCbra();
+  INIT_ATTRIBUTES__TCbra(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TCbra(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TCbra_lexer___TCbra___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TDotdot();
-  lexer___TDotdot___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 725;
+  fra.me.meth = LOCATE_NEW_TCbra_lexer___TCbra___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TCbra();
+  /* ./parser//lexer.nit:725 */
+  INIT_ATTRIBUTES__TCbra(fra.me.REG[1]);
+  lexer___TCbra___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TCbra(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TDot[71] = {
-  {(bigint) 2991 /* 0: Identity */},
-  {(bigint) 3 /* 1: TDot < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TDot < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TDot < Token: superclass typecheck marker */},
-  {(bigint) 2991 /* 4: TDot < TDot: superclass typecheck marker */},
+const classtable_elt_t VFT_TComma[72] = {
+  {(bigint) 5663 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TComma < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TComma < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TComma < Token: superclass typecheck marker */},
+  {(bigint) 5663 /* 5: TComma < TComma: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19295,14 +45199,12 @@ const classtable_elt_t VFT_TDot[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TDot < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TComma < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19310,7 +45212,6 @@ const classtable_elt_t VFT_TDot[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19318,69 +45219,140 @@ const classtable_elt_t VFT_TDot[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TDot < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TComma < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TDot___parser_index},
-  {(bigint) 2 /* 68: TDot < Token: superclass init_table position */},
-  {(bigint) lexer___TDot___init},
-  {(bigint) 3 /* 70: TDot < TDot: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TDot::_parent */
-/* 2: Attribute TDot::_symbol */
-/* 3: Attribute TDot::_text */
-/* 4: Attribute TDot::_filename */
-/* 5: Attribute TDot::_line */
-/* 6: Attribute TDot::_pos */
-val_t NEW_TDot(void) {
+  {(bigint) lexer___TComma___parser_index},
+  {(bigint) 2 /* 69: TComma < Token: superclass init_table position */},
+  {(bigint) lexer___TComma___init_tk},
+  {(bigint) 3 /* 71: TComma < TComma: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TComma::_parent */
+/* 3: Attribute TComma::_location */
+/* 4: Attribute TComma::_symbol_cache */
+/* 5: Attribute TComma::_text */
+void INIT_ATTRIBUTES__TComma(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TComma;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TComma(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TDot;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TDot___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TComma;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TComma(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TComma;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TComma_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TDot();
-  lexer___TDot___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TComma_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TComma();
+  INIT_ATTRIBUTES__TComma(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TComma(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TComma_lexer___TComma___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 738;
+  fra.me.meth = LOCATE_NEW_TComma_lexer___TComma___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TComma();
+  /* ./parser//lexer.nit:738 */
+  INIT_ATTRIBUTES__TComma(fra.me.REG[1]);
+  lexer___TComma___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TComma(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TPlus[71] = {
-  {(bigint) 2727 /* 0: Identity */},
-  {(bigint) 3 /* 1: TPlus < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TPlus < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TPlus < Token: superclass typecheck marker */},
-  {(bigint) 2727 /* 4: TPlus < TPlus: superclass typecheck marker */},
+const classtable_elt_t VFT_TColumn[72] = {
+  {(bigint) 5667 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TColumn < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TColumn < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TColumn < Token: superclass typecheck marker */},
+  {(bigint) 5667 /* 5: TColumn < TColumn: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19389,14 +45361,12 @@ const classtable_elt_t VFT_TPlus[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TPlus < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TColumn < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19404,7 +45374,6 @@ const classtable_elt_t VFT_TPlus[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19412,69 +45381,140 @@ const classtable_elt_t VFT_TPlus[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TPlus < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TColumn < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TPlus___parser_index},
-  {(bigint) 2 /* 68: TPlus < Token: superclass init_table position */},
-  {(bigint) lexer___TPlus___init},
-  {(bigint) 3 /* 70: TPlus < TPlus: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TPlus::_parent */
-/* 2: Attribute TPlus::_symbol */
-/* 3: Attribute TPlus::_text */
-/* 4: Attribute TPlus::_filename */
-/* 5: Attribute TPlus::_line */
-/* 6: Attribute TPlus::_pos */
-val_t NEW_TPlus(void) {
+  {(bigint) lexer___TColumn___parser_index},
+  {(bigint) 2 /* 69: TColumn < Token: superclass init_table position */},
+  {(bigint) lexer___TColumn___init_tk},
+  {(bigint) 3 /* 71: TColumn < TColumn: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TColumn::_parent */
+/* 3: Attribute TColumn::_location */
+/* 4: Attribute TColumn::_symbol_cache */
+/* 5: Attribute TColumn::_text */
+void INIT_ATTRIBUTES__TColumn(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TColumn;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TColumn(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TPlus;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TPlus___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TColumn;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TColumn(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TColumn;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TColumn_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TColumn_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TColumn();
+  INIT_ATTRIBUTES__TColumn(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TColumn(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TColumn_lexer___TColumn___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TPlus();
-  lexer___TPlus___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 751;
+  fra.me.meth = LOCATE_NEW_TColumn_lexer___TColumn___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TColumn();
+  /* ./parser//lexer.nit:751 */
+  INIT_ATTRIBUTES__TColumn(fra.me.REG[1]);
+  lexer___TColumn___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TColumn(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TMinus[71] = {
-  {(bigint) 2755 /* 0: Identity */},
-  {(bigint) 3 /* 1: TMinus < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TMinus < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TMinus < Token: superclass typecheck marker */},
-  {(bigint) 2755 /* 4: TMinus < TMinus: superclass typecheck marker */},
+const classtable_elt_t VFT_TQuad[72] = {
+  {(bigint) 5367 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TQuad < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TQuad < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TQuad < Token: superclass typecheck marker */},
+  {(bigint) 5367 /* 5: TQuad < TQuad: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19483,14 +45523,12 @@ const classtable_elt_t VFT_TMinus[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TMinus < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TQuad < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19498,7 +45536,6 @@ const classtable_elt_t VFT_TMinus[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19506,69 +45543,140 @@ const classtable_elt_t VFT_TMinus[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TMinus < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TQuad < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TMinus___parser_index},
-  {(bigint) 2 /* 68: TMinus < Token: superclass init_table position */},
-  {(bigint) lexer___TMinus___init},
-  {(bigint) 3 /* 70: TMinus < TMinus: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TMinus::_parent */
-/* 2: Attribute TMinus::_symbol */
-/* 3: Attribute TMinus::_text */
-/* 4: Attribute TMinus::_filename */
-/* 5: Attribute TMinus::_line */
-/* 6: Attribute TMinus::_pos */
-val_t NEW_TMinus(void) {
+  {(bigint) lexer___TQuad___parser_index},
+  {(bigint) 2 /* 69: TQuad < Token: superclass init_table position */},
+  {(bigint) lexer___TQuad___init_tk},
+  {(bigint) 3 /* 71: TQuad < TQuad: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TQuad::_parent */
+/* 3: Attribute TQuad::_location */
+/* 4: Attribute TQuad::_symbol_cache */
+/* 5: Attribute TQuad::_text */
+void INIT_ATTRIBUTES__TQuad(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TQuad;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TQuad(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TMinus;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TMinus___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TQuad;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TQuad(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TQuad;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TQuad_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TMinus();
-  lexer___TMinus___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TQuad_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TQuad();
+  INIT_ATTRIBUTES__TQuad(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TQuad(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TQuad_lexer___TQuad___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 764;
+  fra.me.meth = LOCATE_NEW_TQuad_lexer___TQuad___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TQuad();
+  /* ./parser//lexer.nit:764 */
+  INIT_ATTRIBUTES__TQuad(fra.me.REG[1]);
+  lexer___TQuad___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TQuad(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TStar[71] = {
-  {(bigint) 2711 /* 0: Identity */},
-  {(bigint) 3 /* 1: TStar < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TStar < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TStar < Token: superclass typecheck marker */},
-  {(bigint) 2711 /* 4: TStar < TStar: superclass typecheck marker */},
+const classtable_elt_t VFT_TAssign[72] = {
+  {(bigint) 5691 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TAssign < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TAssign < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TAssign < Token: superclass typecheck marker */},
+  {(bigint) 5691 /* 5: TAssign < TAssign: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19577,14 +45685,12 @@ const classtable_elt_t VFT_TStar[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TStar < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TAssign < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19592,7 +45698,6 @@ const classtable_elt_t VFT_TStar[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19600,69 +45705,140 @@ const classtable_elt_t VFT_TStar[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TStar < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TAssign < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TStar___parser_index},
-  {(bigint) 2 /* 68: TStar < Token: superclass init_table position */},
-  {(bigint) lexer___TStar___init},
-  {(bigint) 3 /* 70: TStar < TStar: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TStar::_parent */
-/* 2: Attribute TStar::_symbol */
-/* 3: Attribute TStar::_text */
-/* 4: Attribute TStar::_filename */
-/* 5: Attribute TStar::_line */
-/* 6: Attribute TStar::_pos */
-val_t NEW_TStar(void) {
+  {(bigint) lexer___TAssign___parser_index},
+  {(bigint) 2 /* 69: TAssign < Token: superclass init_table position */},
+  {(bigint) lexer___TAssign___init_tk},
+  {(bigint) 3 /* 71: TAssign < TAssign: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TAssign::_parent */
+/* 3: Attribute TAssign::_location */
+/* 4: Attribute TAssign::_symbol_cache */
+/* 5: Attribute TAssign::_text */
+void INIT_ATTRIBUTES__TAssign(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TAssign;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TAssign(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TStar;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TStar___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TAssign;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TAssign(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TAssign;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TAssign_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TAssign_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TAssign();
+  INIT_ATTRIBUTES__TAssign(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TAssign(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TAssign_lexer___TAssign___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TStar();
-  lexer___TStar___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 777;
+  fra.me.meth = LOCATE_NEW_TAssign_lexer___TAssign___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TAssign();
+  /* ./parser//lexer.nit:777 */
+  INIT_ATTRIBUTES__TAssign(fra.me.REG[1]);
+  lexer___TAssign___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TAssign(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TSlash[71] = {
-  {(bigint) 2715 /* 0: Identity */},
-  {(bigint) 3 /* 1: TSlash < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TSlash < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TSlash < Token: superclass typecheck marker */},
-  {(bigint) 2715 /* 4: TSlash < TSlash: superclass typecheck marker */},
+const classtable_elt_t VFT_TPluseq[72] = {
+  {(bigint) 5371 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TPluseq < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TPluseq < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TPluseq < Token: superclass typecheck marker */},
+  {(bigint) 5371 /* 5: TPluseq < TPluseq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19671,14 +45847,12 @@ const classtable_elt_t VFT_TSlash[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TSlash < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TPluseq < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19686,7 +45860,6 @@ const classtable_elt_t VFT_TSlash[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19694,69 +45867,140 @@ const classtable_elt_t VFT_TSlash[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TSlash < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TPluseq < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TSlash___parser_index},
-  {(bigint) 2 /* 68: TSlash < Token: superclass init_table position */},
-  {(bigint) lexer___TSlash___init},
-  {(bigint) 3 /* 70: TSlash < TSlash: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TSlash::_parent */
-/* 2: Attribute TSlash::_symbol */
-/* 3: Attribute TSlash::_text */
-/* 4: Attribute TSlash::_filename */
-/* 5: Attribute TSlash::_line */
-/* 6: Attribute TSlash::_pos */
-val_t NEW_TSlash(void) {
+  {(bigint) lexer___TPluseq___parser_index},
+  {(bigint) 2 /* 69: TPluseq < Token: superclass init_table position */},
+  {(bigint) lexer___TPluseq___init_tk},
+  {(bigint) 3 /* 71: TPluseq < TPluseq: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TPluseq::_parent */
+/* 3: Attribute TPluseq::_location */
+/* 4: Attribute TPluseq::_symbol_cache */
+/* 5: Attribute TPluseq::_text */
+void INIT_ATTRIBUTES__TPluseq(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TPluseq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TPluseq(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TSlash;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TSlash___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TPluseq;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TPluseq(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TPluseq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TPluseq_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TSlash();
-  lexer___TSlash___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TPluseq_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TPluseq();
+  INIT_ATTRIBUTES__TPluseq(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TPluseq(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TPluseq_lexer___TPluseq___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 790;
+  fra.me.meth = LOCATE_NEW_TPluseq_lexer___TPluseq___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TPluseq();
+  /* ./parser//lexer.nit:790 */
+  INIT_ATTRIBUTES__TPluseq(fra.me.REG[1]);
+  lexer___TPluseq___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TPluseq(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TPercent[71] = {
-  {(bigint) 2731 /* 0: Identity */},
-  {(bigint) 3 /* 1: TPercent < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TPercent < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TPercent < Token: superclass typecheck marker */},
-  {(bigint) 2731 /* 4: TPercent < TPercent: superclass typecheck marker */},
+const classtable_elt_t VFT_TMinuseq[72] = {
+  {(bigint) 5399 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TMinuseq < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TMinuseq < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TMinuseq < Token: superclass typecheck marker */},
+  {(bigint) 5399 /* 5: TMinuseq < TMinuseq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19765,14 +46009,12 @@ const classtable_elt_t VFT_TPercent[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TPercent < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TMinuseq < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19780,7 +46022,6 @@ const classtable_elt_t VFT_TPercent[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19788,69 +46029,140 @@ const classtable_elt_t VFT_TPercent[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TPercent < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TMinuseq < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TPercent___parser_index},
-  {(bigint) 2 /* 68: TPercent < Token: superclass init_table position */},
-  {(bigint) lexer___TPercent___init},
-  {(bigint) 3 /* 70: TPercent < TPercent: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TPercent::_parent */
-/* 2: Attribute TPercent::_symbol */
-/* 3: Attribute TPercent::_text */
-/* 4: Attribute TPercent::_filename */
-/* 5: Attribute TPercent::_line */
-/* 6: Attribute TPercent::_pos */
-val_t NEW_TPercent(void) {
+  {(bigint) lexer___TMinuseq___parser_index},
+  {(bigint) 2 /* 69: TMinuseq < Token: superclass init_table position */},
+  {(bigint) lexer___TMinuseq___init_tk},
+  {(bigint) 3 /* 71: TMinuseq < TMinuseq: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TMinuseq::_parent */
+/* 3: Attribute TMinuseq::_location */
+/* 4: Attribute TMinuseq::_symbol_cache */
+/* 5: Attribute TMinuseq::_text */
+void INIT_ATTRIBUTES__TMinuseq(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TMinuseq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TMinuseq(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TPercent;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TPercent___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TMinuseq;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TMinuseq(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TMinuseq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TMinuseq_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TMinuseq_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TMinuseq();
+  INIT_ATTRIBUTES__TMinuseq(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TMinuseq(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TMinuseq_lexer___TMinuseq___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TPercent();
-  lexer___TPercent___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 803;
+  fra.me.meth = LOCATE_NEW_TMinuseq_lexer___TMinuseq___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TMinuseq();
+  /* ./parser//lexer.nit:803 */
+  INIT_ATTRIBUTES__TMinuseq(fra.me.REG[1]);
+  lexer___TMinuseq___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TMinuseq(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TEq[71] = {
-  {(bigint) 2971 /* 0: Identity */},
-  {(bigint) 3 /* 1: TEq < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TEq < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TEq < Token: superclass typecheck marker */},
-  {(bigint) 2971 /* 4: TEq < TEq: superclass typecheck marker */},
+const classtable_elt_t VFT_TDotdotdot[72] = {
+  {(bigint) 5643 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TDotdotdot < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TDotdotdot < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TDotdotdot < Token: superclass typecheck marker */},
+  {(bigint) 5643 /* 5: TDotdotdot < TDotdotdot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19859,14 +46171,12 @@ const classtable_elt_t VFT_TEq[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TEq < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TDotdotdot < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19874,7 +46184,6 @@ const classtable_elt_t VFT_TEq[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19882,69 +46191,140 @@ const classtable_elt_t VFT_TEq[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TEq < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TDotdotdot < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TEq___parser_index},
-  {(bigint) 2 /* 68: TEq < Token: superclass init_table position */},
-  {(bigint) lexer___TEq___init},
-  {(bigint) 3 /* 70: TEq < TEq: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TEq::_parent */
-/* 2: Attribute TEq::_symbol */
-/* 3: Attribute TEq::_text */
-/* 4: Attribute TEq::_filename */
-/* 5: Attribute TEq::_line */
-/* 6: Attribute TEq::_pos */
-val_t NEW_TEq(void) {
+  {(bigint) lexer___TDotdotdot___parser_index},
+  {(bigint) 2 /* 69: TDotdotdot < Token: superclass init_table position */},
+  {(bigint) lexer___TDotdotdot___init_tk},
+  {(bigint) 3 /* 71: TDotdotdot < TDotdotdot: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TDotdotdot::_parent */
+/* 3: Attribute TDotdotdot::_location */
+/* 4: Attribute TDotdotdot::_symbol_cache */
+/* 5: Attribute TDotdotdot::_text */
+void INIT_ATTRIBUTES__TDotdotdot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TDotdotdot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TDotdotdot(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TEq;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TEq___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TDotdotdot;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TDotdotdot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TDotdotdot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TDotdotdot_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TEq();
-  lexer___TEq___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TDotdotdot_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TDotdotdot();
+  INIT_ATTRIBUTES__TDotdotdot(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TDotdotdot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TDotdotdot_lexer___TDotdotdot___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 816;
+  fra.me.meth = LOCATE_NEW_TDotdotdot_lexer___TDotdotdot___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TDotdotdot();
+  /* ./parser//lexer.nit:816 */
+  INIT_ATTRIBUTES__TDotdotdot(fra.me.REG[1]);
+  lexer___TDotdotdot___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TDotdotdot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TNe[71] = {
-  {(bigint) 2747 /* 0: Identity */},
-  {(bigint) 3 /* 1: TNe < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TNe < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TNe < Token: superclass typecheck marker */},
-  {(bigint) 2747 /* 4: TNe < TNe: superclass typecheck marker */},
+const classtable_elt_t VFT_TDotdot[72] = {
+  {(bigint) 5647 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TDotdot < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TDotdot < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TDotdot < Token: superclass typecheck marker */},
+  {(bigint) 5647 /* 5: TDotdot < TDotdot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19953,14 +46333,12 @@ const classtable_elt_t VFT_TNe[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TNe < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TDotdot < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -19968,7 +46346,6 @@ const classtable_elt_t VFT_TNe[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -19976,69 +46353,140 @@ const classtable_elt_t VFT_TNe[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TNe < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TDotdot < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TNe___parser_index},
-  {(bigint) 2 /* 68: TNe < Token: superclass init_table position */},
-  {(bigint) lexer___TNe___init},
-  {(bigint) 3 /* 70: TNe < TNe: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TNe::_parent */
-/* 2: Attribute TNe::_symbol */
-/* 3: Attribute TNe::_text */
-/* 4: Attribute TNe::_filename */
-/* 5: Attribute TNe::_line */
-/* 6: Attribute TNe::_pos */
-val_t NEW_TNe(void) {
+  {(bigint) lexer___TDotdot___parser_index},
+  {(bigint) 2 /* 69: TDotdot < Token: superclass init_table position */},
+  {(bigint) lexer___TDotdot___init_tk},
+  {(bigint) 3 /* 71: TDotdot < TDotdot: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TDotdot::_parent */
+/* 3: Attribute TDotdot::_location */
+/* 4: Attribute TDotdot::_symbol_cache */
+/* 5: Attribute TDotdot::_text */
+void INIT_ATTRIBUTES__TDotdot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TDotdot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TDotdot(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TNe;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TNe___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TDotdot;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TDotdot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TDotdot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TDotdot_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TDotdot_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TDotdot();
+  INIT_ATTRIBUTES__TDotdot(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TDotdot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TDotdot_lexer___TDotdot___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TNe();
-  lexer___TNe___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 829;
+  fra.me.meth = LOCATE_NEW_TDotdot_lexer___TDotdot___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TDotdot();
+  /* ./parser//lexer.nit:829 */
+  INIT_ATTRIBUTES__TDotdot(fra.me.REG[1]);
+  lexer___TDotdot___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TDotdot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TLt[71] = {
-  {(bigint) 2763 /* 0: Identity */},
-  {(bigint) 3 /* 1: TLt < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TLt < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TLt < Token: superclass typecheck marker */},
-  {(bigint) 2763 /* 4: TLt < TLt: superclass typecheck marker */},
+const classtable_elt_t VFT_TDot[72] = {
+  {(bigint) 5651 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TDot < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TDot < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TDot < Token: superclass typecheck marker */},
+  {(bigint) 5651 /* 5: TDot < TDot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20047,14 +46495,12 @@ const classtable_elt_t VFT_TLt[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TLt < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TDot < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20062,7 +46508,6 @@ const classtable_elt_t VFT_TLt[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20070,69 +46515,140 @@ const classtable_elt_t VFT_TLt[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TLt < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TDot < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TLt___parser_index},
-  {(bigint) 2 /* 68: TLt < Token: superclass init_table position */},
-  {(bigint) lexer___TLt___init},
-  {(bigint) 3 /* 70: TLt < TLt: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TLt::_parent */
-/* 2: Attribute TLt::_symbol */
-/* 3: Attribute TLt::_text */
-/* 4: Attribute TLt::_filename */
-/* 5: Attribute TLt::_line */
-/* 6: Attribute TLt::_pos */
-val_t NEW_TLt(void) {
+  {(bigint) lexer___TDot___parser_index},
+  {(bigint) 2 /* 69: TDot < Token: superclass init_table position */},
+  {(bigint) lexer___TDot___init_tk},
+  {(bigint) 3 /* 71: TDot < TDot: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TDot::_parent */
+/* 3: Attribute TDot::_location */
+/* 4: Attribute TDot::_symbol_cache */
+/* 5: Attribute TDot::_text */
+void INIT_ATTRIBUTES__TDot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TDot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TDot(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TLt;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TLt___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TDot;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TDot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TDot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TDot_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TLt();
-  lexer___TLt___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TDot_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TDot();
+  INIT_ATTRIBUTES__TDot(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TDot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TDot_lexer___TDot___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 842;
+  fra.me.meth = LOCATE_NEW_TDot_lexer___TDot___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TDot();
+  /* ./parser//lexer.nit:842 */
+  INIT_ATTRIBUTES__TDot(fra.me.REG[1]);
+  lexer___TDot___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TDot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TLe[71] = {
-  {(bigint) 2767 /* 0: Identity */},
-  {(bigint) 3 /* 1: TLe < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TLe < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TLe < Token: superclass typecheck marker */},
-  {(bigint) 2767 /* 4: TLe < TLe: superclass typecheck marker */},
+const classtable_elt_t VFT_TPlus[72] = {
+  {(bigint) 5375 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TPlus < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TPlus < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TPlus < Token: superclass typecheck marker */},
+  {(bigint) 5375 /* 5: TPlus < TPlus: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20141,14 +46657,12 @@ const classtable_elt_t VFT_TLe[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TLe < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TPlus < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20156,7 +46670,6 @@ const classtable_elt_t VFT_TLe[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20164,69 +46677,140 @@ const classtable_elt_t VFT_TLe[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TLe < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TPlus < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TLe___parser_index},
-  {(bigint) 2 /* 68: TLe < Token: superclass init_table position */},
-  {(bigint) lexer___TLe___init},
-  {(bigint) 3 /* 70: TLe < TLe: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TLe::_parent */
-/* 2: Attribute TLe::_symbol */
-/* 3: Attribute TLe::_text */
-/* 4: Attribute TLe::_filename */
-/* 5: Attribute TLe::_line */
-/* 6: Attribute TLe::_pos */
-val_t NEW_TLe(void) {
+  {(bigint) lexer___TPlus___parser_index},
+  {(bigint) 2 /* 69: TPlus < Token: superclass init_table position */},
+  {(bigint) lexer___TPlus___init_tk},
+  {(bigint) 3 /* 71: TPlus < TPlus: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TPlus::_parent */
+/* 3: Attribute TPlus::_location */
+/* 4: Attribute TPlus::_symbol_cache */
+/* 5: Attribute TPlus::_text */
+void INIT_ATTRIBUTES__TPlus(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TPlus;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TPlus(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TLe;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TLe___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TPlus;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TPlus(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TPlus;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TPlus_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TPlus_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TPlus();
+  INIT_ATTRIBUTES__TPlus(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TPlus(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TPlus_lexer___TPlus___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TLe();
-  lexer___TLe___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 855;
+  fra.me.meth = LOCATE_NEW_TPlus_lexer___TPlus___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TPlus();
+  /* ./parser//lexer.nit:855 */
+  INIT_ATTRIBUTES__TPlus(fra.me.REG[1]);
+  lexer___TPlus___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TPlus(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TGt[71] = {
-  {(bigint) 2959 /* 0: Identity */},
-  {(bigint) 3 /* 1: TGt < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TGt < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TGt < Token: superclass typecheck marker */},
-  {(bigint) 2959 /* 4: TGt < TGt: superclass typecheck marker */},
+const classtable_elt_t VFT_TMinus[72] = {
+  {(bigint) 5403 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TMinus < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TMinus < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TMinus < Token: superclass typecheck marker */},
+  {(bigint) 5403 /* 5: TMinus < TMinus: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20235,14 +46819,12 @@ const classtable_elt_t VFT_TGt[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TGt < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TMinus < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20250,7 +46832,6 @@ const classtable_elt_t VFT_TGt[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20258,69 +46839,140 @@ const classtable_elt_t VFT_TGt[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TGt < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TMinus < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TGt___parser_index},
-  {(bigint) 2 /* 68: TGt < Token: superclass init_table position */},
-  {(bigint) lexer___TGt___init},
-  {(bigint) 3 /* 70: TGt < TGt: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TGt::_parent */
-/* 2: Attribute TGt::_symbol */
-/* 3: Attribute TGt::_text */
-/* 4: Attribute TGt::_filename */
-/* 5: Attribute TGt::_line */
-/* 6: Attribute TGt::_pos */
-val_t NEW_TGt(void) {
+  {(bigint) lexer___TMinus___parser_index},
+  {(bigint) 2 /* 69: TMinus < Token: superclass init_table position */},
+  {(bigint) lexer___TMinus___init_tk},
+  {(bigint) 3 /* 71: TMinus < TMinus: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TMinus::_parent */
+/* 3: Attribute TMinus::_location */
+/* 4: Attribute TMinus::_symbol_cache */
+/* 5: Attribute TMinus::_text */
+void INIT_ATTRIBUTES__TMinus(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TMinus;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TMinus(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TGt;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TGt___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TMinus;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TMinus(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TMinus;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TMinus_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TGt();
-  lexer___TGt___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TMinus_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TMinus();
+  INIT_ATTRIBUTES__TMinus(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TMinus(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TMinus_lexer___TMinus___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 868;
+  fra.me.meth = LOCATE_NEW_TMinus_lexer___TMinus___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TMinus();
+  /* ./parser//lexer.nit:868 */
+  INIT_ATTRIBUTES__TMinus(fra.me.REG[1]);
+  lexer___TMinus___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TMinus(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TGe[71] = {
-  {(bigint) 2963 /* 0: Identity */},
-  {(bigint) 3 /* 1: TGe < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TGe < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TGe < Token: superclass typecheck marker */},
-  {(bigint) 2963 /* 4: TGe < TGe: superclass typecheck marker */},
+const classtable_elt_t VFT_TStar[72] = {
+  {(bigint) 5359 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TStar < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TStar < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TStar < Token: superclass typecheck marker */},
+  {(bigint) 5359 /* 5: TStar < TStar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20329,14 +46981,12 @@ const classtable_elt_t VFT_TGe[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TGe < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TStar < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20344,7 +46994,6 @@ const classtable_elt_t VFT_TGe[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20352,69 +47001,140 @@ const classtable_elt_t VFT_TGe[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TGe < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TStar < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TGe___parser_index},
-  {(bigint) 2 /* 68: TGe < Token: superclass init_table position */},
-  {(bigint) lexer___TGe___init},
-  {(bigint) 3 /* 70: TGe < TGe: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TGe::_parent */
-/* 2: Attribute TGe::_symbol */
-/* 3: Attribute TGe::_text */
-/* 4: Attribute TGe::_filename */
-/* 5: Attribute TGe::_line */
-/* 6: Attribute TGe::_pos */
-val_t NEW_TGe(void) {
+  {(bigint) lexer___TStar___parser_index},
+  {(bigint) 2 /* 69: TStar < Token: superclass init_table position */},
+  {(bigint) lexer___TStar___init_tk},
+  {(bigint) 3 /* 71: TStar < TStar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TStar::_parent */
+/* 3: Attribute TStar::_location */
+/* 4: Attribute TStar::_symbol_cache */
+/* 5: Attribute TStar::_text */
+void INIT_ATTRIBUTES__TStar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TStar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TStar(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TGe;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TGe___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TStar;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TStar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TStar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TStar_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TStar_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TStar();
+  INIT_ATTRIBUTES__TStar(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TStar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TStar_lexer___TStar___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TGe();
-  lexer___TGe___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 881;
+  fra.me.meth = LOCATE_NEW_TStar_lexer___TStar___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TStar();
+  /* ./parser//lexer.nit:881 */
+  INIT_ATTRIBUTES__TStar(fra.me.REG[1]);
+  lexer___TStar___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TStar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TStarship[71] = {
-  {(bigint) 2707 /* 0: Identity */},
-  {(bigint) 3 /* 1: TStarship < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TStarship < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TStarship < Token: superclass typecheck marker */},
-  {(bigint) 2707 /* 4: TStarship < TStarship: superclass typecheck marker */},
+const classtable_elt_t VFT_TSlash[72] = {
+  {(bigint) 5363 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TSlash < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TSlash < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TSlash < Token: superclass typecheck marker */},
+  {(bigint) 5363 /* 5: TSlash < TSlash: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20423,14 +47143,12 @@ const classtable_elt_t VFT_TStarship[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TStarship < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TSlash < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20438,7 +47156,6 @@ const classtable_elt_t VFT_TStarship[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20446,69 +47163,140 @@ const classtable_elt_t VFT_TStarship[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TStarship < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TSlash < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TStarship___parser_index},
-  {(bigint) 2 /* 68: TStarship < Token: superclass init_table position */},
-  {(bigint) lexer___TStarship___init},
-  {(bigint) 3 /* 70: TStarship < TStarship: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TStarship::_parent */
-/* 2: Attribute TStarship::_symbol */
-/* 3: Attribute TStarship::_text */
-/* 4: Attribute TStarship::_filename */
-/* 5: Attribute TStarship::_line */
-/* 6: Attribute TStarship::_pos */
-val_t NEW_TStarship(void) {
+  {(bigint) lexer___TSlash___parser_index},
+  {(bigint) 2 /* 69: TSlash < Token: superclass init_table position */},
+  {(bigint) lexer___TSlash___init_tk},
+  {(bigint) 3 /* 71: TSlash < TSlash: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TSlash::_parent */
+/* 3: Attribute TSlash::_location */
+/* 4: Attribute TSlash::_symbol_cache */
+/* 5: Attribute TSlash::_text */
+void INIT_ATTRIBUTES__TSlash(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TSlash;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TSlash(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TStarship;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TStarship___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TSlash;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TSlash(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TSlash;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TSlash_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TStarship();
-  lexer___TStarship___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TSlash_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TSlash();
+  INIT_ATTRIBUTES__TSlash(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TSlash(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TSlash_lexer___TSlash___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 894;
+  fra.me.meth = LOCATE_NEW_TSlash_lexer___TSlash___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TSlash();
+  /* ./parser//lexer.nit:894 */
+  INIT_ATTRIBUTES__TSlash(fra.me.REG[1]);
+  lexer___TSlash___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TSlash(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TClassid[71] = {
-  {(bigint) 3011 /* 0: Identity */},
-  {(bigint) 3 /* 1: TClassid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TClassid < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TClassid < Token: superclass typecheck marker */},
-  {(bigint) 3011 /* 4: TClassid < TClassid: superclass typecheck marker */},
+const classtable_elt_t VFT_TPercent[72] = {
+  {(bigint) 5379 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TPercent < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TPercent < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TPercent < Token: superclass typecheck marker */},
+  {(bigint) 5379 /* 5: TPercent < TPercent: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20517,14 +47305,12 @@ const classtable_elt_t VFT_TClassid[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TClassid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TPercent < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20532,7 +47318,6 @@ const classtable_elt_t VFT_TClassid[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20540,69 +47325,140 @@ const classtable_elt_t VFT_TClassid[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TClassid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TPercent < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TClassid___parser_index},
-  {(bigint) 2 /* 68: TClassid < Token: superclass init_table position */},
-  {(bigint) lexer___TClassid___init},
-  {(bigint) 3 /* 70: TClassid < TClassid: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TClassid::_parent */
-/* 2: Attribute TClassid::_symbol */
-/* 3: Attribute TClassid::_text */
-/* 4: Attribute TClassid::_filename */
-/* 5: Attribute TClassid::_line */
-/* 6: Attribute TClassid::_pos */
-val_t NEW_TClassid(void) {
+  {(bigint) lexer___TPercent___parser_index},
+  {(bigint) 2 /* 69: TPercent < Token: superclass init_table position */},
+  {(bigint) lexer___TPercent___init_tk},
+  {(bigint) 3 /* 71: TPercent < TPercent: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TPercent::_parent */
+/* 3: Attribute TPercent::_location */
+/* 4: Attribute TPercent::_symbol_cache */
+/* 5: Attribute TPercent::_text */
+void INIT_ATTRIBUTES__TPercent(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TPercent;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TPercent(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TClassid;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TClassid___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TPercent;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TPercent(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TPercent;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TPercent_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TPercent_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TPercent();
+  INIT_ATTRIBUTES__TPercent(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TPercent(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TPercent_lexer___TPercent___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TClassid();
-  lexer___TClassid___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 907;
+  fra.me.meth = LOCATE_NEW_TPercent_lexer___TPercent___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TPercent();
+  /* ./parser//lexer.nit:907 */
+  INIT_ATTRIBUTES__TPercent(fra.me.REG[1]);
+  lexer___TPercent___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TPercent(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TId[71] = {
-  {(bigint) 2955 /* 0: Identity */},
-  {(bigint) 3 /* 1: TId < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TId < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TId < Token: superclass typecheck marker */},
-  {(bigint) 2955 /* 4: TId < TId: superclass typecheck marker */},
+const classtable_elt_t VFT_TEq[72] = {
+  {(bigint) 5631 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TEq < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TEq < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TEq < Token: superclass typecheck marker */},
+  {(bigint) 5631 /* 5: TEq < TEq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20611,14 +47467,12 @@ const classtable_elt_t VFT_TId[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TId < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TEq < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20626,7 +47480,6 @@ const classtable_elt_t VFT_TId[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20634,69 +47487,140 @@ const classtable_elt_t VFT_TId[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TId < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TEq < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TId___parser_index},
-  {(bigint) 2 /* 68: TId < Token: superclass init_table position */},
-  {(bigint) lexer___TId___init},
-  {(bigint) 3 /* 70: TId < TId: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TId::_parent */
-/* 2: Attribute TId::_symbol */
-/* 3: Attribute TId::_text */
-/* 4: Attribute TId::_filename */
-/* 5: Attribute TId::_line */
-/* 6: Attribute TId::_pos */
-val_t NEW_TId(void) {
+  {(bigint) lexer___TEq___parser_index},
+  {(bigint) 2 /* 69: TEq < Token: superclass init_table position */},
+  {(bigint) lexer___TEq___init_tk},
+  {(bigint) 3 /* 71: TEq < TEq: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TEq::_parent */
+/* 3: Attribute TEq::_location */
+/* 4: Attribute TEq::_symbol_cache */
+/* 5: Attribute TEq::_text */
+void INIT_ATTRIBUTES__TEq(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TEq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TEq(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TId;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TId___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TEq;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TEq(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TEq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TEq_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TId();
-  lexer___TId___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TEq_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TEq();
+  INIT_ATTRIBUTES__TEq(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TEq(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TEq_lexer___TEq___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 920;
+  fra.me.meth = LOCATE_NEW_TEq_lexer___TEq___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TEq();
+  /* ./parser//lexer.nit:920 */
+  INIT_ATTRIBUTES__TEq(fra.me.REG[1]);
+  lexer___TEq___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TEq(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TAttrid[71] = {
-  {(bigint) 3023 /* 0: Identity */},
-  {(bigint) 3 /* 1: TAttrid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TAttrid < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TAttrid < Token: superclass typecheck marker */},
-  {(bigint) 3023 /* 4: TAttrid < TAttrid: superclass typecheck marker */},
+const classtable_elt_t VFT_TNe[72] = {
+  {(bigint) 5395 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TNe < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TNe < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TNe < Token: superclass typecheck marker */},
+  {(bigint) 5395 /* 5: TNe < TNe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20705,14 +47629,12 @@ const classtable_elt_t VFT_TAttrid[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TAttrid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TNe < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20720,7 +47642,6 @@ const classtable_elt_t VFT_TAttrid[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20728,69 +47649,140 @@ const classtable_elt_t VFT_TAttrid[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TAttrid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TNe < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TAttrid___parser_index},
-  {(bigint) 2 /* 68: TAttrid < Token: superclass init_table position */},
-  {(bigint) lexer___TAttrid___init},
-  {(bigint) 3 /* 70: TAttrid < TAttrid: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TAttrid::_parent */
-/* 2: Attribute TAttrid::_symbol */
-/* 3: Attribute TAttrid::_text */
-/* 4: Attribute TAttrid::_filename */
-/* 5: Attribute TAttrid::_line */
-/* 6: Attribute TAttrid::_pos */
-val_t NEW_TAttrid(void) {
+  {(bigint) lexer___TNe___parser_index},
+  {(bigint) 2 /* 69: TNe < Token: superclass init_table position */},
+  {(bigint) lexer___TNe___init_tk},
+  {(bigint) 3 /* 71: TNe < TNe: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TNe::_parent */
+/* 3: Attribute TNe::_location */
+/* 4: Attribute TNe::_symbol_cache */
+/* 5: Attribute TNe::_text */
+void INIT_ATTRIBUTES__TNe(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TNe;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TNe(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TAttrid;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TAttrid___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TNe;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TNe(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TNe;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TNe_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TNe_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TNe();
+  INIT_ATTRIBUTES__TNe(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TNe(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TNe_lexer___TNe___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TAttrid();
-  lexer___TAttrid___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 933;
+  fra.me.meth = LOCATE_NEW_TNe_lexer___TNe___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TNe();
+  /* ./parser//lexer.nit:933 */
+  INIT_ATTRIBUTES__TNe(fra.me.REG[1]);
+  lexer___TNe___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TNe(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TNumber[71] = {
-  {(bigint) 2743 /* 0: Identity */},
-  {(bigint) 3 /* 1: TNumber < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TNumber < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TNumber < Token: superclass typecheck marker */},
-  {(bigint) 2743 /* 4: TNumber < TNumber: superclass typecheck marker */},
+const classtable_elt_t VFT_TLt[72] = {
+  {(bigint) 5411 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TLt < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TLt < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TLt < Token: superclass typecheck marker */},
+  {(bigint) 5411 /* 5: TLt < TLt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20799,14 +47791,12 @@ const classtable_elt_t VFT_TNumber[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TNumber < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TLt < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20814,7 +47804,6 @@ const classtable_elt_t VFT_TNumber[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20822,69 +47811,140 @@ const classtable_elt_t VFT_TNumber[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TNumber < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TLt < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TNumber___parser_index},
-  {(bigint) 2 /* 68: TNumber < Token: superclass init_table position */},
-  {(bigint) lexer___TNumber___init},
-  {(bigint) 3 /* 70: TNumber < TNumber: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TNumber::_parent */
-/* 2: Attribute TNumber::_symbol */
-/* 3: Attribute TNumber::_text */
-/* 4: Attribute TNumber::_filename */
-/* 5: Attribute TNumber::_line */
-/* 6: Attribute TNumber::_pos */
-val_t NEW_TNumber(void) {
+  {(bigint) lexer___TLt___parser_index},
+  {(bigint) 2 /* 69: TLt < Token: superclass init_table position */},
+  {(bigint) lexer___TLt___init_tk},
+  {(bigint) 3 /* 71: TLt < TLt: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TLt::_parent */
+/* 3: Attribute TLt::_location */
+/* 4: Attribute TLt::_symbol_cache */
+/* 5: Attribute TLt::_text */
+void INIT_ATTRIBUTES__TLt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TLt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TLt(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TNumber;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TNumber___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TLt;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TLt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TLt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TLt_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TNumber();
-  lexer___TNumber___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TLt_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TLt();
+  INIT_ATTRIBUTES__TLt(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TLt(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TLt_lexer___TLt___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 946;
+  fra.me.meth = LOCATE_NEW_TLt_lexer___TLt___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TLt();
+  /* ./parser//lexer.nit:946 */
+  INIT_ATTRIBUTES__TLt(fra.me.REG[1]);
+  lexer___TLt___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TLt(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TFloat[71] = {
-  {(bigint) 2967 /* 0: Identity */},
-  {(bigint) 3 /* 1: TFloat < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TFloat < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TFloat < Token: superclass typecheck marker */},
-  {(bigint) 2967 /* 4: TFloat < TFloat: superclass typecheck marker */},
+const classtable_elt_t VFT_TLe[72] = {
+  {(bigint) 5415 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TLe < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TLe < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TLe < Token: superclass typecheck marker */},
+  {(bigint) 5415 /* 5: TLe < TLe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20893,14 +47953,12 @@ const classtable_elt_t VFT_TFloat[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TFloat < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TLe < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -20908,7 +47966,6 @@ const classtable_elt_t VFT_TFloat[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -20916,69 +47973,140 @@ const classtable_elt_t VFT_TFloat[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TFloat < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TLe < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TFloat___parser_index},
-  {(bigint) 2 /* 68: TFloat < Token: superclass init_table position */},
-  {(bigint) lexer___TFloat___init},
-  {(bigint) 3 /* 70: TFloat < TFloat: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TFloat::_parent */
-/* 2: Attribute TFloat::_symbol */
-/* 3: Attribute TFloat::_text */
-/* 4: Attribute TFloat::_filename */
-/* 5: Attribute TFloat::_line */
-/* 6: Attribute TFloat::_pos */
-val_t NEW_TFloat(void) {
+  {(bigint) lexer___TLe___parser_index},
+  {(bigint) 2 /* 69: TLe < Token: superclass init_table position */},
+  {(bigint) lexer___TLe___init_tk},
+  {(bigint) 3 /* 71: TLe < TLe: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TLe::_parent */
+/* 3: Attribute TLe::_location */
+/* 4: Attribute TLe::_symbol_cache */
+/* 5: Attribute TLe::_text */
+void INIT_ATTRIBUTES__TLe(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TLe;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TLe(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TFloat;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TFloat___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TLe;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TLe(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TLe;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TLe_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TLe_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TLe();
+  INIT_ATTRIBUTES__TLe(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TLe(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TLe_lexer___TLe___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TFloat();
-  lexer___TFloat___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 959;
+  fra.me.meth = LOCATE_NEW_TLe_lexer___TLe___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TLe();
+  /* ./parser//lexer.nit:959 */
+  INIT_ATTRIBUTES__TLe(fra.me.REG[1]);
+  lexer___TLe___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TLe(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TChar[71] = {
-  {(bigint) 3015 /* 0: Identity */},
-  {(bigint) 3 /* 1: TChar < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TChar < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TChar < Token: superclass typecheck marker */},
-  {(bigint) 3015 /* 4: TChar < TChar: superclass typecheck marker */},
+const classtable_elt_t VFT_TGt[72] = {
+  {(bigint) 5619 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TGt < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TGt < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TGt < Token: superclass typecheck marker */},
+  {(bigint) 5619 /* 5: TGt < TGt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20987,14 +48115,12 @@ const classtable_elt_t VFT_TChar[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TChar < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TGt < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21002,7 +48128,6 @@ const classtable_elt_t VFT_TChar[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21010,69 +48135,140 @@ const classtable_elt_t VFT_TChar[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TChar < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TGt < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TChar___parser_index},
-  {(bigint) 2 /* 68: TChar < Token: superclass init_table position */},
-  {(bigint) lexer___TChar___init},
-  {(bigint) 3 /* 70: TChar < TChar: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TChar::_parent */
-/* 2: Attribute TChar::_symbol */
-/* 3: Attribute TChar::_text */
-/* 4: Attribute TChar::_filename */
-/* 5: Attribute TChar::_line */
-/* 6: Attribute TChar::_pos */
-val_t NEW_TChar(void) {
+  {(bigint) lexer___TGt___parser_index},
+  {(bigint) 2 /* 69: TGt < Token: superclass init_table position */},
+  {(bigint) lexer___TGt___init_tk},
+  {(bigint) 3 /* 71: TGt < TGt: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TGt::_parent */
+/* 3: Attribute TGt::_location */
+/* 4: Attribute TGt::_symbol_cache */
+/* 5: Attribute TGt::_text */
+void INIT_ATTRIBUTES__TGt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TGt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TGt(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TChar;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TChar___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TGt;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TGt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TGt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TGt_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TChar();
-  lexer___TChar___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TGt_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TGt();
+  INIT_ATTRIBUTES__TGt(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TGt(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TGt_lexer___TGt___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 972;
+  fra.me.meth = LOCATE_NEW_TGt_lexer___TGt___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TGt();
+  /* ./parser//lexer.nit:972 */
+  INIT_ATTRIBUTES__TGt(fra.me.REG[1]);
+  lexer___TGt___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TGt(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TString[71] = {
-  {(bigint) 2699 /* 0: Identity */},
-  {(bigint) 3 /* 1: TString < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TString < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TString < Token: superclass typecheck marker */},
-  {(bigint) 2699 /* 4: TString < TString: superclass typecheck marker */},
+const classtable_elt_t VFT_TGe[72] = {
+  {(bigint) 5623 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TGe < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TGe < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TGe < Token: superclass typecheck marker */},
+  {(bigint) 5623 /* 5: TGe < TGe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21081,14 +48277,12 @@ const classtable_elt_t VFT_TString[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TString < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TGe < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21096,7 +48290,6 @@ const classtable_elt_t VFT_TString[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21104,69 +48297,140 @@ const classtable_elt_t VFT_TString[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TString < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TGe < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TString___parser_index},
-  {(bigint) 2 /* 68: TString < Token: superclass init_table position */},
-  {(bigint) lexer___TString___init},
-  {(bigint) 3 /* 70: TString < TString: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TString::_parent */
-/* 2: Attribute TString::_symbol */
-/* 3: Attribute TString::_text */
-/* 4: Attribute TString::_filename */
-/* 5: Attribute TString::_line */
-/* 6: Attribute TString::_pos */
-val_t NEW_TString(void) {
+  {(bigint) lexer___TGe___parser_index},
+  {(bigint) 2 /* 69: TGe < Token: superclass init_table position */},
+  {(bigint) lexer___TGe___init_tk},
+  {(bigint) 3 /* 71: TGe < TGe: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TGe::_parent */
+/* 3: Attribute TGe::_location */
+/* 4: Attribute TGe::_symbol_cache */
+/* 5: Attribute TGe::_text */
+void INIT_ATTRIBUTES__TGe(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TGe;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TGe(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TString;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TString___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TGe;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TGe(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TGe;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TGe_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TGe_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TGe();
+  INIT_ATTRIBUTES__TGe(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TGe(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TGe_lexer___TGe___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TString();
-  lexer___TString___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 985;
+  fra.me.meth = LOCATE_NEW_TGe_lexer___TGe___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TGe();
+  /* ./parser//lexer.nit:985 */
+  INIT_ATTRIBUTES__TGe(fra.me.REG[1]);
+  lexer___TGe___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TGe(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TStartString[71] = {
-  {(bigint) 2703 /* 0: Identity */},
-  {(bigint) 3 /* 1: TStartString < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TStartString < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TStartString < Token: superclass typecheck marker */},
-  {(bigint) 2703 /* 4: TStartString < TStartString: superclass typecheck marker */},
+const classtable_elt_t VFT_TStarship[72] = {
+  {(bigint) 5355 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TStarship < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TStarship < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TStarship < Token: superclass typecheck marker */},
+  {(bigint) 5355 /* 5: TStarship < TStarship: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21175,14 +48439,12 @@ const classtable_elt_t VFT_TStartString[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TStartString < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TStarship < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21190,7 +48452,6 @@ const classtable_elt_t VFT_TStartString[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21198,69 +48459,140 @@ const classtable_elt_t VFT_TStartString[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TStartString < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TStarship < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TStartString___parser_index},
-  {(bigint) 2 /* 68: TStartString < Token: superclass init_table position */},
-  {(bigint) lexer___TStartString___init},
-  {(bigint) 3 /* 70: TStartString < TStartString: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TStartString::_parent */
-/* 2: Attribute TStartString::_symbol */
-/* 3: Attribute TStartString::_text */
-/* 4: Attribute TStartString::_filename */
-/* 5: Attribute TStartString::_line */
-/* 6: Attribute TStartString::_pos */
-val_t NEW_TStartString(void) {
+  {(bigint) lexer___TStarship___parser_index},
+  {(bigint) 2 /* 69: TStarship < Token: superclass init_table position */},
+  {(bigint) lexer___TStarship___init_tk},
+  {(bigint) 3 /* 71: TStarship < TStarship: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TStarship::_parent */
+/* 3: Attribute TStarship::_location */
+/* 4: Attribute TStarship::_symbol_cache */
+/* 5: Attribute TStarship::_text */
+void INIT_ATTRIBUTES__TStarship(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TStarship;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TStarship(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TStartString;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TStartString___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TStarship;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TStarship(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TStarship;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TStarship_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TStartString();
-  lexer___TStartString___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TStarship_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TStarship();
+  INIT_ATTRIBUTES__TStarship(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TStarship(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TStarship_lexer___TStarship___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 998;
+  fra.me.meth = LOCATE_NEW_TStarship_lexer___TStarship___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TStarship();
+  /* ./parser//lexer.nit:998 */
+  INIT_ATTRIBUTES__TStarship(fra.me.REG[1]);
+  lexer___TStarship___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TStarship(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TMidString[71] = {
-  {(bigint) 2759 /* 0: Identity */},
-  {(bigint) 3 /* 1: TMidString < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TMidString < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TMidString < Token: superclass typecheck marker */},
-  {(bigint) 2759 /* 4: TMidString < TMidString: superclass typecheck marker */},
+const classtable_elt_t VFT_TBang[72] = {
+  {(bigint) 5683 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TBang < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TBang < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TBang < Token: superclass typecheck marker */},
+  {(bigint) 5683 /* 5: TBang < TBang: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21269,14 +48601,12 @@ const classtable_elt_t VFT_TMidString[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TMidString < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TBang < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21284,7 +48614,6 @@ const classtable_elt_t VFT_TMidString[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21292,69 +48621,140 @@ const classtable_elt_t VFT_TMidString[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TMidString < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TBang < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TMidString___parser_index},
-  {(bigint) 2 /* 68: TMidString < Token: superclass init_table position */},
-  {(bigint) lexer___TMidString___init},
-  {(bigint) 3 /* 70: TMidString < TMidString: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TMidString::_parent */
-/* 2: Attribute TMidString::_symbol */
-/* 3: Attribute TMidString::_text */
-/* 4: Attribute TMidString::_filename */
-/* 5: Attribute TMidString::_line */
-/* 6: Attribute TMidString::_pos */
-val_t NEW_TMidString(void) {
+  {(bigint) lexer___TBang___parser_index},
+  {(bigint) 2 /* 69: TBang < Token: superclass init_table position */},
+  {(bigint) lexer___TBang___init_tk},
+  {(bigint) 3 /* 71: TBang < TBang: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TBang::_parent */
+/* 3: Attribute TBang::_location */
+/* 4: Attribute TBang::_symbol_cache */
+/* 5: Attribute TBang::_text */
+void INIT_ATTRIBUTES__TBang(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TBang;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TBang(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TMidString;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TMidString___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TBang;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TBang(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TBang;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TBang_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TBang_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TBang();
+  INIT_ATTRIBUTES__TBang(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TBang(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TBang_lexer___TBang___init_tk(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TMidString();
-  lexer___TMidString___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1011;
+  fra.me.meth = LOCATE_NEW_TBang_lexer___TBang___init_tk;
+  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;
+  fra.me.REG[1] = NEW_TBang();
+  /* ./parser//lexer.nit:1011 */
+  INIT_ATTRIBUTES__TBang(fra.me.REG[1]);
+  lexer___TBang___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TBang(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TEndString[71] = {
-  {(bigint) 2979 /* 0: Identity */},
-  {(bigint) 3 /* 1: TEndString < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: TEndString < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: TEndString < Token: superclass typecheck marker */},
-  {(bigint) 2979 /* 4: TEndString < TEndString: superclass typecheck marker */},
+const classtable_elt_t VFT_TClassid[72] = {
+  {(bigint) 5671 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TClassid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TClassid < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TClassid < Token: superclass typecheck marker */},
+  {(bigint) 5671 /* 5: TClassid < TClassid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21363,14 +48763,12 @@ const classtable_elt_t VFT_TEndString[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TEndString < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TClassid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21378,7 +48776,6 @@ const classtable_elt_t VFT_TEndString[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21386,69 +48783,142 @@ const classtable_elt_t VFT_TEndString[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: TEndString < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TClassid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___TEndString___parser_index},
-  {(bigint) 2 /* 68: TEndString < Token: superclass init_table position */},
-  {(bigint) lexer___TEndString___init},
-  {(bigint) 3 /* 70: TEndString < TEndString: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TEndString::_parent */
-/* 2: Attribute TEndString::_symbol */
-/* 3: Attribute TEndString::_text */
-/* 4: Attribute TEndString::_filename */
-/* 5: Attribute TEndString::_line */
-/* 6: Attribute TEndString::_pos */
-val_t NEW_TEndString(void) {
+  {(bigint) lexer___TClassid___parser_index},
+  {(bigint) 2 /* 69: TClassid < Token: superclass init_table position */},
+  {(bigint) lexer___TClassid___init_tk},
+  {(bigint) 3 /* 71: TClassid < TClassid: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TClassid::_parent */
+/* 3: Attribute TClassid::_location */
+/* 4: Attribute TClassid::_symbol_cache */
+/* 5: Attribute TClassid::_text */
+void INIT_ATTRIBUTES__TClassid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TClassid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TClassid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_TEndString;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___TEndString___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TClassid;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TClassid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TClassid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TClassid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TEndString();
-  lexer___TEndString___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TClassid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TClassid();
+  INIT_ATTRIBUTES__TClassid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TClassid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TClassid_lexer___TClassid___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1024;
+  fra.me.meth = LOCATE_NEW_TClassid_lexer___TClassid___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TClassid();
+  /* ./parser//lexer.nit:1024 */
+  INIT_ATTRIBUTES__TClassid(fra.me.REG[2]);
+  lexer___TClassid___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TClassid(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_EOF[71] = {
-  {(bigint) 3207 /* 0: Identity */},
-  {(bigint) 3 /* 1: EOF < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: EOF < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: EOF < Token: superclass typecheck marker */},
-  {(bigint) 3207 /* 4: EOF < EOF: superclass typecheck marker */},
+const classtable_elt_t VFT_TId[72] = {
+  {(bigint) 5615 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TId < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TId < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TId < Token: superclass typecheck marker */},
+  {(bigint) 5615 /* 5: TId < TId: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21457,14 +48927,12 @@ const classtable_elt_t VFT_EOF[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: EOF < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TId < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21472,7 +48940,6 @@ const classtable_elt_t VFT_EOF[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21480,70 +48947,142 @@ const classtable_elt_t VFT_EOF[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: EOF < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TId < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___EOF___parser_index},
-  {(bigint) 2 /* 68: EOF < Token: superclass init_table position */},
-  {(bigint) lexer___EOF___init},
-  {(bigint) 3 /* 70: EOF < EOF: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute EOF::_parent */
-/* 2: Attribute EOF::_symbol */
-/* 3: Attribute EOF::_text */
-/* 4: Attribute EOF::_filename */
-/* 5: Attribute EOF::_line */
-/* 6: Attribute EOF::_pos */
-val_t NEW_EOF(void) {
+  {(bigint) lexer___TId___parser_index},
+  {(bigint) 2 /* 69: TId < Token: superclass init_table position */},
+  {(bigint) lexer___TId___init_tk},
+  {(bigint) 3 /* 71: TId < TId: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TId::_parent */
+/* 3: Attribute TId::_location */
+/* 4: Attribute TId::_symbol_cache */
+/* 5: Attribute TId::_text */
+void INIT_ATTRIBUTES__TId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TId(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_EOF;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___EOF___init(val_t p0, val_t p1, val_t p2) {
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TId;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TId_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_EOF();
-  lexer___EOF___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TId_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TId();
+  INIT_ATTRIBUTES__TId(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TId(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TId_lexer___TId___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1037;
+  fra.me.meth = LOCATE_NEW_TId_lexer___TId___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TId();
+  /* ./parser//lexer.nit:1037 */
+  INIT_ATTRIBUTES__TId(fra.me.REG[2]);
+  lexer___TId___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TId(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PError[75] = {
-  {(bigint) 3279 /* 0: Identity */},
-  {(bigint) 3 /* 1: PError < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PError < PNode: superclass typecheck marker */},
-  {(bigint) 183 /* 3: PError < Token: superclass typecheck marker */},
-  {(bigint) 3207 /* 4: PError < EOF: superclass typecheck marker */},
-  {(bigint) 3279 /* 5: PError < PError: superclass typecheck marker */},
+const classtable_elt_t VFT_TAttrid[72] = {
+  {(bigint) 5687 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TAttrid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TAttrid < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TAttrid < Token: superclass typecheck marker */},
+  {(bigint) 5687 /* 5: TAttrid < TAttrid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21551,14 +49090,13 @@ const classtable_elt_t VFT_PError[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) lexer___Token___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PError < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TAttrid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21566,7 +49104,6 @@ const classtable_elt_t VFT_PError[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21574,74 +49111,142 @@ const classtable_elt_t VFT_PError[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Token___replace_child},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) parser_prod___Token___visit_all},
   {(bigint) parser_prod___Token___visit_all_reverse},
-  {(bigint) parser_prod___Token___locate},
-  {(bigint) parser_prod___Token___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PError < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
+  {(bigint) 1 /* 59: TAttrid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) syntax_base___Token___to_symbol},
   {(bigint) lexer___Token___text},
   {(bigint) lexer___Token___text__eq},
-  {(bigint) lexer___Token___filename},
-  {(bigint) lexer___Token___line},
-  {(bigint) lexer___Token___pos},
-  {(bigint) lexer___EOF___parser_index},
-  {(bigint) 2 /* 68: PError < Token: superclass init_table position */},
-  {(bigint) lexer___EOF___init},
-  {(bigint) 3 /* 70: PError < EOF: superclass init_table position */},
-  {(bigint) lexer___PError___message},
-  {(bigint) lexer___PError___message__eq},
-  {(bigint) lexer___PError___init_error},
-  {(bigint) 4 /* 74: PError < PError: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PError::_parent */
-/* 2: Attribute PError::_symbol */
-/* 3: Attribute PError::_text */
-/* 4: Attribute PError::_filename */
-/* 5: Attribute PError::_line */
-/* 6: Attribute PError::_pos */
-/* 7: Attribute PError::_message */
-val_t NEW_PError(void) {
+  {(bigint) lexer___TAttrid___parser_index},
+  {(bigint) 2 /* 69: TAttrid < Token: superclass init_table position */},
+  {(bigint) lexer___TAttrid___init_tk},
+  {(bigint) 3 /* 71: TAttrid < TAttrid: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TAttrid::_parent */
+/* 3: Attribute TAttrid::_location */
+/* 4: Attribute TAttrid::_symbol_cache */
+/* 5: Attribute TAttrid::_text */
+void INIT_ATTRIBUTES__TAttrid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TAttrid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TAttrid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_PError;
-  ATTR_lexer___Token____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Token____pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___PError___init_error(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_PError();
-  lexer___PError___init_error(self, p0, p1, p2, p3, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TAttrid;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TAttrid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TAttrid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TAttrid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TAttrid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TAttrid();
+  INIT_ATTRIBUTES__TAttrid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TAttrid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TAttrid_lexer___TAttrid___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1050;
+  fra.me.meth = LOCATE_NEW_TAttrid_lexer___TAttrid___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TAttrid();
+  /* ./parser//lexer.nit:1050 */
+  INIT_ATTRIBUTES__TAttrid(fra.me.REG[2]);
+  lexer___TAttrid___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TAttrid(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PModule[68] = {
-  {(bigint) 3079 /* 0: Identity */},
-  {(bigint) 3 /* 1: PModule < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PModule < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PModule < Prod: superclass typecheck marker */},
-  {(bigint) 3079 /* 4: PModule < PModule: superclass typecheck marker */},
+const classtable_elt_t VFT_TNumber[72] = {
+  {(bigint) 5391 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TNumber < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TNumber < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TNumber < Token: superclass typecheck marker */},
+  {(bigint) 5391 /* 5: TNumber < TNumber: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21650,14 +49255,12 @@ const classtable_elt_t VFT_PModule[68] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PModule < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TNumber < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21665,7 +49268,6 @@ const classtable_elt_t VFT_PModule[68] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21673,55 +49275,142 @@ const classtable_elt_t VFT_PModule[68] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PModule < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PModule < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: PModule < PModule: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PModule::_parent */
-/* 2: Attribute PModule::_first_token */
-/* 3: Attribute PModule::_last_token */
-val_t NEW_PModule(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: TNumber < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___TNumber___parser_index},
+  {(bigint) 2 /* 69: TNumber < Token: superclass init_table position */},
+  {(bigint) lexer___TNumber___init_tk},
+  {(bigint) 3 /* 71: TNumber < TNumber: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TNumber::_parent */
+/* 3: Attribute TNumber::_location */
+/* 4: Attribute TNumber::_symbol_cache */
+/* 5: Attribute TNumber::_text */
+void INIT_ATTRIBUTES__TNumber(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TNumber;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TNumber(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PModule;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TNumber;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TNumber(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TNumber;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TNumber_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TNumber_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TNumber();
+  INIT_ATTRIBUTES__TNumber(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TNumber(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TNumber_lexer___TNumber___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1063;
+  fra.me.meth = LOCATE_NEW_TNumber_lexer___TNumber___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TNumber();
+  /* ./parser//lexer.nit:1063 */
+  INIT_ATTRIBUTES__TNumber(fra.me.REG[2]);
+  lexer___TNumber___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TNumber(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PPackagedecl[68] = {
-  {(bigint) 3075 /* 0: Identity */},
-  {(bigint) 3 /* 1: PPackagedecl < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PPackagedecl < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PPackagedecl < Prod: superclass typecheck marker */},
-  {(bigint) 3075 /* 4: PPackagedecl < PPackagedecl: superclass typecheck marker */},
+const classtable_elt_t VFT_TFloat[72] = {
+  {(bigint) 5627 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TFloat < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TFloat < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TFloat < Token: superclass typecheck marker */},
+  {(bigint) 5627 /* 5: TFloat < TFloat: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21730,14 +49419,12 @@ const classtable_elt_t VFT_PPackagedecl[68] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PPackagedecl < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TFloat < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21745,7 +49432,6 @@ const classtable_elt_t VFT_PPackagedecl[68] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21753,55 +49439,142 @@ const classtable_elt_t VFT_PPackagedecl[68] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PPackagedecl < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PPackagedecl < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: PPackagedecl < PPackagedecl: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PPackagedecl::_parent */
-/* 2: Attribute PPackagedecl::_first_token */
-/* 3: Attribute PPackagedecl::_last_token */
-val_t NEW_PPackagedecl(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: TFloat < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___TFloat___parser_index},
+  {(bigint) 2 /* 69: TFloat < Token: superclass init_table position */},
+  {(bigint) lexer___TFloat___init_tk},
+  {(bigint) 3 /* 71: TFloat < TFloat: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TFloat::_parent */
+/* 3: Attribute TFloat::_location */
+/* 4: Attribute TFloat::_symbol_cache */
+/* 5: Attribute TFloat::_text */
+void INIT_ATTRIBUTES__TFloat(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TFloat;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TFloat(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PPackagedecl;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TFloat;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TFloat(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TFloat;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TFloat_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TFloat_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TFloat();
+  INIT_ATTRIBUTES__TFloat(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TFloat(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TFloat_lexer___TFloat___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1076;
+  fra.me.meth = LOCATE_NEW_TFloat_lexer___TFloat___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TFloat();
+  /* ./parser//lexer.nit:1076 */
+  INIT_ATTRIBUTES__TFloat(fra.me.REG[2]);
+  lexer___TFloat___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TFloat(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PImport[70] = {
-  {(bigint) 3087 /* 0: Identity */},
-  {(bigint) 3 /* 1: PImport < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PImport < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PImport < Prod: superclass typecheck marker */},
-  {(bigint) 3087 /* 4: PImport < PImport: superclass typecheck marker */},
+const classtable_elt_t VFT_TChar[72] = {
+  {(bigint) 5675 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TChar < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TChar < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TChar < Token: superclass typecheck marker */},
+  {(bigint) 5675 /* 5: TChar < TChar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21810,14 +49583,12 @@ const classtable_elt_t VFT_PImport[70] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PImport < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TChar < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21825,7 +49596,6 @@ const classtable_elt_t VFT_PImport[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21833,57 +49603,142 @@ const classtable_elt_t VFT_PImport[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PImport < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PImport < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PImport___module_name},
-  {(bigint) mmbuilder___PImport___visibility_level},
-  {(bigint) 3 /* 69: PImport < PImport: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PImport::_parent */
-/* 2: Attribute PImport::_first_token */
-/* 3: Attribute PImport::_last_token */
-val_t NEW_PImport(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: TChar < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___TChar___parser_index},
+  {(bigint) 2 /* 69: TChar < Token: superclass init_table position */},
+  {(bigint) lexer___TChar___init_tk},
+  {(bigint) 3 /* 71: TChar < TChar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TChar::_parent */
+/* 3: Attribute TChar::_location */
+/* 4: Attribute TChar::_symbol_cache */
+/* 5: Attribute TChar::_text */
+void INIT_ATTRIBUTES__TChar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TChar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TChar(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PImport;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TChar;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TChar(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TChar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TChar_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TChar_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TChar();
+  INIT_ATTRIBUTES__TChar(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TChar(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TChar_lexer___TChar___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1089;
+  fra.me.meth = LOCATE_NEW_TChar_lexer___TChar___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TChar();
+  /* ./parser//lexer.nit:1089 */
+  INIT_ATTRIBUTES__TChar(fra.me.REG[2]);
+  lexer___TChar___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TChar(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PVisibility[69] = {
-  {(bigint) 3047 /* 0: Identity */},
-  {(bigint) 3 /* 1: PVisibility < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: PVisibility < PVisibility: superclass typecheck marker */},
+const classtable_elt_t VFT_TString[72] = {
+  {(bigint) 5347 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TString < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TString < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TString < Token: superclass typecheck marker */},
+  {(bigint) 5347 /* 5: TString < TString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21892,14 +49747,12 @@ const classtable_elt_t VFT_PVisibility[69] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PVisibility < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TString < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21907,7 +49760,6 @@ const classtable_elt_t VFT_PVisibility[69] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21915,56 +49767,142 @@ const classtable_elt_t VFT_PVisibility[69] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PVisibility < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PVisibility < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PVisibility___level},
-  {(bigint) 3 /* 68: PVisibility < PVisibility: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PVisibility::_parent */
-/* 2: Attribute PVisibility::_first_token */
-/* 3: Attribute PVisibility::_last_token */
-val_t NEW_PVisibility(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: TString < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___TString___parser_index},
+  {(bigint) 2 /* 69: TString < Token: superclass init_table position */},
+  {(bigint) lexer___TString___init_tk},
+  {(bigint) 3 /* 71: TString < TString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TString::_parent */
+/* 3: Attribute TString::_location */
+/* 4: Attribute TString::_symbol_cache */
+/* 5: Attribute TString::_text */
+void INIT_ATTRIBUTES__TString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TString(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PVisibility;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TString;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TString_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TString_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TString();
+  INIT_ATTRIBUTES__TString(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TString(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TString_lexer___TString___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1102;
+  fra.me.meth = LOCATE_NEW_TString_lexer___TString___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TString();
+  /* ./parser//lexer.nit:1102 */
+  INIT_ATTRIBUTES__TString(fra.me.REG[2]);
+  lexer___TString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TString(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PClassdef[75] = {
-  {(bigint) 3107 /* 0: Identity */},
-  {(bigint) 3 /* 1: PClassdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PClassdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 4: PClassdef < PClassdef: superclass typecheck marker */},
+const classtable_elt_t VFT_TStartString[72] = {
+  {(bigint) 5351 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TStartString < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TStartString < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TStartString < Token: superclass typecheck marker */},
+  {(bigint) 5351 /* 5: TStartString < TStartString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21973,14 +49911,12 @@ const classtable_elt_t VFT_PClassdef[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PClassdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TStartString < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -21988,7 +49924,6 @@ const classtable_elt_t VFT_PClassdef[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -21996,63 +49931,142 @@ const classtable_elt_t VFT_PClassdef[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PClassdef___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) mmbuilder___PClassdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PClassdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PClassdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PClassdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PClassdef___name},
-  {(bigint) mmbuilder___PClassdef___arity},
-  {(bigint) mmbuilder___PClassdef___visibility_level},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) mmbuilder___PClassdef___local_class},
-  {(bigint) 3 /* 73: PClassdef < PClassdef: superclass init_table position */},
-  {(bigint) typing___PNode___accept_typing},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PClassdef::_parent */
-/* 2: Attribute PClassdef::_first_token */
-/* 3: Attribute PClassdef::_last_token */
-/* 4: Attribute PClassdef::_local_class */
-val_t NEW_PClassdef(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: TStartString < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___TStartString___parser_index},
+  {(bigint) 2 /* 69: TStartString < Token: superclass init_table position */},
+  {(bigint) lexer___TStartString___init_tk},
+  {(bigint) 3 /* 71: TStartString < TStartString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TStartString::_parent */
+/* 3: Attribute TStartString::_location */
+/* 4: Attribute TStartString::_symbol_cache */
+/* 5: Attribute TStartString::_text */
+void INIT_ATTRIBUTES__TStartString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TStartString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TStartString(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_PClassdef;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TStartString;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TStartString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TStartString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TStartString_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TStartString_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TStartString();
+  INIT_ATTRIBUTES__TStartString(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TStartString(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TStartString_lexer___TStartString___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1115;
+  fra.me.meth = LOCATE_NEW_TStartString_lexer___TStartString___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TStartString();
+  /* ./parser//lexer.nit:1115 */
+  INIT_ATTRIBUTES__TStartString(fra.me.REG[2]);
+  lexer___TStartString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TStartString(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PClasskind[71] = {
-  {(bigint) 3103 /* 0: Identity */},
-  {(bigint) 3 /* 1: PClasskind < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3103 /* 4: PClasskind < PClasskind: superclass typecheck marker */},
+const classtable_elt_t VFT_TMidString[72] = {
+  {(bigint) 5407 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TMidString < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TMidString < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TMidString < Token: superclass typecheck marker */},
+  {(bigint) 5407 /* 5: TMidString < TMidString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22061,14 +50075,12 @@ const classtable_elt_t VFT_PClasskind[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PClasskind < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TMidString < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22076,7 +50088,6 @@ const classtable_elt_t VFT_PClasskind[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22084,58 +50095,142 @@ const classtable_elt_t VFT_PClasskind[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PClasskind < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PClasskind < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PClasskind___is_interface},
-  {(bigint) mmbuilder___PClasskind___is_universal},
-  {(bigint) mmbuilder___PClasskind___is_abstract},
-  {(bigint) 3 /* 70: PClasskind < PClasskind: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PClasskind::_parent */
-/* 2: Attribute PClasskind::_first_token */
-/* 3: Attribute PClasskind::_last_token */
-val_t NEW_PClasskind(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: TMidString < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___TMidString___parser_index},
+  {(bigint) 2 /* 69: TMidString < Token: superclass init_table position */},
+  {(bigint) lexer___TMidString___init_tk},
+  {(bigint) 3 /* 71: TMidString < TMidString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TMidString::_parent */
+/* 3: Attribute TMidString::_location */
+/* 4: Attribute TMidString::_symbol_cache */
+/* 5: Attribute TMidString::_text */
+void INIT_ATTRIBUTES__TMidString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TMidString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TMidString(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PClasskind;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TMidString;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TMidString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TMidString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TMidString_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TMidString_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TMidString();
+  INIT_ATTRIBUTES__TMidString(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TMidString(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TMidString_lexer___TMidString___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1128;
+  fra.me.meth = LOCATE_NEW_TMidString_lexer___TMidString___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TMidString();
+  /* ./parser//lexer.nit:1128 */
+  INIT_ATTRIBUTES__TMidString(fra.me.REG[2]);
+  lexer___TMidString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TMidString(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PFormaldef[68] = {
-  {(bigint) 3091 /* 0: Identity */},
-  {(bigint) 3 /* 1: PFormaldef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PFormaldef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PFormaldef < Prod: superclass typecheck marker */},
-  {(bigint) 3091 /* 4: PFormaldef < PFormaldef: superclass typecheck marker */},
+const classtable_elt_t VFT_TEndString[72] = {
+  {(bigint) 5639 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TEndString < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: TEndString < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: TEndString < Token: superclass typecheck marker */},
+  {(bigint) 5639 /* 5: TEndString < TEndString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22144,14 +50239,12 @@ const classtable_elt_t VFT_PFormaldef[68] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PFormaldef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TEndString < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22159,7 +50252,6 @@ const classtable_elt_t VFT_PFormaldef[68] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22167,55 +50259,142 @@ const classtable_elt_t VFT_PFormaldef[68] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PFormaldef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PFormaldef < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: PFormaldef < PFormaldef: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PFormaldef::_parent */
-/* 2: Attribute PFormaldef::_first_token */
-/* 3: Attribute PFormaldef::_last_token */
-val_t NEW_PFormaldef(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: TEndString < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___TEndString___parser_index},
+  {(bigint) 2 /* 69: TEndString < Token: superclass init_table position */},
+  {(bigint) lexer___TEndString___init_tk},
+  {(bigint) 3 /* 71: TEndString < TEndString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TEndString::_parent */
+/* 3: Attribute TEndString::_location */
+/* 4: Attribute TEndString::_symbol_cache */
+/* 5: Attribute TEndString::_text */
+void INIT_ATTRIBUTES__TEndString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TEndString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TEndString(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PFormaldef;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_TEndString;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TEndString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TEndString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TEndString_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TEndString_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_TEndString();
+  INIT_ATTRIBUTES__TEndString(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TEndString(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_TEndString_lexer___TEndString___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1141;
+  fra.me.meth = LOCATE_NEW_TEndString_lexer___TEndString___init_tk;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TEndString();
+  /* ./parser//lexer.nit:1141 */
+  INIT_ATTRIBUTES__TEndString(fra.me.REG[2]);
+  lexer___TEndString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TEndString(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PSuperclass[68] = {
-  {(bigint) 3055 /* 0: Identity */},
-  {(bigint) 3 /* 1: PSuperclass < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PSuperclass < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PSuperclass < Prod: superclass typecheck marker */},
-  {(bigint) 3055 /* 4: PSuperclass < PSuperclass: superclass typecheck marker */},
+const classtable_elt_t VFT_EOF[73] = {
+  {(bigint) 5883 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: EOF < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: EOF < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: EOF < Token: superclass typecheck marker */},
+  {(bigint) 5883 /* 5: EOF < EOF: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22224,14 +50403,12 @@ const classtable_elt_t VFT_PSuperclass[68] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PSuperclass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: EOF < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22239,7 +50416,6 @@ const classtable_elt_t VFT_PSuperclass[68] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22247,55 +50423,141 @@ const classtable_elt_t VFT_PSuperclass[68] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PSuperclass < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PSuperclass < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: PSuperclass < PSuperclass: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PSuperclass::_parent */
-/* 2: Attribute PSuperclass::_first_token */
-/* 3: Attribute PSuperclass::_last_token */
-val_t NEW_PSuperclass(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: EOF < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___EOF___parser_index},
+  {(bigint) 2 /* 69: EOF < Token: superclass init_table position */},
+  {(bigint) lexer___EOF___init},
+  {(bigint) 3 /* 71: EOF < EOF: superclass init_table position */},
+  {(bigint) parser_nodes___EOF___noinit},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute EOF::_parent */
+/* 3: Attribute EOF::_location */
+/* 4: Attribute EOF::_symbol_cache */
+/* 5: Attribute EOF::_text */
+void INIT_ATTRIBUTES__EOF(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__EOF;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_EOF(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PSuperclass;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_EOF;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_EOF(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_EOF;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_EOF_parser_nodes___EOF___noinit(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 305;
+  fra.me.meth = LOCATE_NEW_EOF_parser_nodes___EOF___noinit;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_EOF();
+  /* ./parser//parser_nodes.nit:305 */
+  INIT_ATTRIBUTES__EOF(fra.me.REG[0]);
+  parser_nodes___EOF___noinit(fra.me.REG[0], init_table);
+  CHECKNEW_EOF(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_EOF_lexer___EOF___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1155;
+  fra.me.meth = LOCATE_NEW_EOF_lexer___EOF___init;
+  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;
+  fra.me.REG[1] = NEW_EOF();
+  /* ./parser//lexer.nit:1155 */
+  INIT_ATTRIBUTES__EOF(fra.me.REG[1]);
+  lexer___EOF___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_EOF(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_PPropdef[74] = {
-  {(bigint) 3067 /* 0: Identity */},
-  {(bigint) 3 /* 1: PPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: PPropdef < PPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_AError[78] = {
+  {(bigint) 6299 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AError < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AError < ANode: superclass typecheck marker */},
+  {(bigint) 251 /* 4: AError < Token: superclass typecheck marker */},
+  {(bigint) 5883 /* 5: AError < EOF: superclass typecheck marker */},
+  {(bigint) 6299 /* 6: AError < AError: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22304,14 +50566,11 @@ const classtable_elt_t VFT_PPropdef[74] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PPropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AError < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22319,7 +50578,6 @@ const classtable_elt_t VFT_PPropdef[74] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22327,62 +50585,155 @@ const classtable_elt_t VFT_PPropdef[74] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) lexer___Token___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PPropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: PPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
-  {(bigint) parser_nodes___PPropdef___n_doc__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PPropdef::_parent */
-/* 2: Attribute PPropdef::_first_token */
-/* 3: Attribute PPropdef::_last_token */
-/* 4: Attribute PPropdef::_n_doc */
-val_t NEW_PPropdef(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___Token___replace_child},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) parser_prod___Token___visit_all},
+  {(bigint) parser_prod___Token___visit_all_reverse},
+  {(bigint) 1 /* 59: AError < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) syntax_base___Token___to_symbol},
+  {(bigint) lexer___Token___text},
+  {(bigint) lexer___Token___text__eq},
+  {(bigint) lexer___EOF___parser_index},
+  {(bigint) 2 /* 69: AError < Token: superclass init_table position */},
+  {(bigint) lexer___EOF___init},
+  {(bigint) 3 /* 71: AError < EOF: superclass init_table position */},
+  {(bigint) parser_nodes___EOF___noinit},
+  {(bigint) lexer___AError___message},
+  {(bigint) lexer___AError___message__eq},
+  {(bigint) lexer___AError___init_error},
+  {(bigint) 4 /* 76: AError < AError: superclass init_table position */},
+  {(bigint) parser_nodes___AError___noinit},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AError::_parent */
+/* 3: Attribute AError::_location */
+/* 4: Attribute AError::_symbol_cache */
+/* 5: Attribute AError::_text */
+/* 6: Attribute AError::_message */
+void INIT_ATTRIBUTES__AError(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AError;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AError(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_PPropdef;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AError;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AError(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AError;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___AError____message(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_message");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AError_parser_nodes___AError___noinit(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 309;
+  fra.me.meth = LOCATE_NEW_AError_parser_nodes___AError___noinit;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AError();
+  /* ./parser//parser_nodes.nit:309 */
+  INIT_ATTRIBUTES__AError(fra.me.REG[0]);
+  parser_nodes___AError___noinit(fra.me.REG[0], init_table);
+  CHECKNEW_AError(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AError_lexer___AError___init_error(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1165;
+  fra.me.meth = LOCATE_NEW_AError_lexer___AError___init_error;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AError();
+  /* ./parser//lexer.nit:1165 */
+  INIT_ATTRIBUTES__AError(fra.me.REG[2]);
+  lexer___AError___init_error(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AError(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PAble[70] = {
-  {(bigint) 3115 /* 0: Identity */},
-  {(bigint) 3 /* 1: PAble < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PAble < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PAble < Prod: superclass typecheck marker */},
-  {(bigint) 3115 /* 4: PAble < PAble: superclass typecheck marker */},
+const classtable_elt_t VFT_AModule[78] = {
+  {(bigint) 5947 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AModule < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AModule < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AModule < Prod: superclass typecheck marker */},
+  {(bigint) 5947 /* 5: AModule < AModule: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22391,14 +50742,12 @@ const classtable_elt_t VFT_PAble[70] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PAble < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AModule < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22406,7 +50755,6 @@ const classtable_elt_t VFT_PAble[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22414,58 +50762,191 @@ const classtable_elt_t VFT_PAble[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AModule___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PAble < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PAble < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: PAble < PAble: superclass init_table position */},
-  {(bigint) parser_nodes___PAble___n_kwredef},
-  {(bigint) parser_nodes___PAble___n_kwredef__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PAble::_parent */
-/* 2: Attribute PAble::_first_token */
-/* 3: Attribute PAble::_last_token */
-/* 4: Attribute PAble::_n_kwredef */
-val_t NEW_PAble(void) {
+  {(bigint) parser_prod___AModule___visit_all},
+  {(bigint) parser_prod___AModule___visit_all_reverse},
+  {(bigint) 1 /* 59: AModule < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AModule < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AModule___import_super_modules},
+  {(bigint) parser_prod___AModule___empty_init},
+  {(bigint) parser_prod___AModule___init_amodule},
+  {(bigint) 3 /* 71: AModule < AModule: superclass init_table position */},
+  {(bigint) parser_nodes___AModule___n_packagedecl},
+  {(bigint) parser_prod___AModule___n_packagedecl__eq},
+  {(bigint) parser_nodes___AModule___n_imports},
+  {(bigint) parser_nodes___AModule___n_imports__eq},
+  {(bigint) parser_nodes___AModule___n_classdefs},
+  {(bigint) parser_nodes___AModule___n_classdefs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AModule::_parent */
+/* 3: Attribute AModule::_location */
+/* 4: Attribute AModule::_first_location */
+/* 5: Attribute AModule::_last_location */
+/* 6: Attribute AModule::_n_packagedecl */
+/* 7: Attribute AModule::_n_imports */
+/* 8: Attribute AModule::_n_classdefs */
+void INIT_ATTRIBUTES__AModule(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AModule;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:314 */
+  ATTR_parser_nodes___AModule____n_packagedecl(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:315 */
+  ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:316 */
+  ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AModule(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_PAble;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AModule;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AModule(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AModule;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_imports");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_classdefs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AModule_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AModule_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AModule();
+  INIT_ATTRIBUTES__AModule(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AModule(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AModule_parser_prod___AModule___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 83;
+  fra.me.meth = LOCATE_NEW_AModule_parser_prod___AModule___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AModule();
+  /* ./parser//parser_prod.nit:83 */
+  INIT_ATTRIBUTES__AModule(fra.me.REG[0]);
+  parser_prod___AModule___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AModule(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AModule_parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 85;
+  fra.me.meth = LOCATE_NEW_AModule_parser_prod___AModule___init_amodule;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AModule();
+  /* ./parser//parser_prod.nit:85 */
+  INIT_ATTRIBUTES__AModule(fra.me.REG[3]);
+  parser_prod___AModule___init_amodule(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AModule(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_PMethid[70] = {
-  {(bigint) 3083 /* 0: Identity */},
-  {(bigint) 3 /* 1: PMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: PMethid < PMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_APackagedecl[77] = {
+  {(bigint) 5943 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APackagedecl < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APackagedecl < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APackagedecl < Prod: superclass typecheck marker */},
+  {(bigint) 5943 /* 5: APackagedecl < APackagedecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22474,14 +50955,12 @@ const classtable_elt_t VFT_PMethid[70] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: APackagedecl < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22489,7 +50968,6 @@ const classtable_elt_t VFT_PMethid[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22497,58 +50975,184 @@ const classtable_elt_t VFT_PMethid[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___APackagedecl___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___APackagedecl___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: PMethid < PMethid: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PMethid::_parent */
-/* 2: Attribute PMethid::_first_token */
-/* 3: Attribute PMethid::_last_token */
-/* 4: Attribute PMethid::_name */
-val_t NEW_PMethid(void) {
+  {(bigint) parser_prod___APackagedecl___visit_all},
+  {(bigint) parser_prod___APackagedecl___visit_all_reverse},
+  {(bigint) 1 /* 59: APackagedecl < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: APackagedecl < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) parser_prod___APackagedecl___empty_init},
+  {(bigint) parser_prod___APackagedecl___init_apackagedecl},
+  {(bigint) 3 /* 70: APackagedecl < APackagedecl: superclass init_table position */},
+  {(bigint) parser_nodes___APackagedecl___n_doc},
+  {(bigint) parser_prod___APackagedecl___n_doc__eq},
+  {(bigint) parser_nodes___APackagedecl___n_kwpackage},
+  {(bigint) parser_prod___APackagedecl___n_kwpackage__eq},
+  {(bigint) parser_nodes___APackagedecl___n_id},
+  {(bigint) parser_prod___APackagedecl___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute APackagedecl::_parent */
+/* 3: Attribute APackagedecl::_location */
+/* 4: Attribute APackagedecl::_first_location */
+/* 5: Attribute APackagedecl::_last_location */
+/* 6: Attribute APackagedecl::_n_doc */
+/* 7: Attribute APackagedecl::_n_kwpackage */
+/* 8: Attribute APackagedecl::_n_id */
+void INIT_ATTRIBUTES__APackagedecl(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APackagedecl;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:320 */
+  ATTR_parser_nodes___APackagedecl____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APackagedecl(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_PMethid;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_APackagedecl;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APackagedecl(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APackagedecl;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___APackagedecl____n_kwpackage(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwpackage");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___APackagedecl____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APackagedecl_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APackagedecl_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APackagedecl();
+  INIT_ATTRIBUTES__APackagedecl(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APackagedecl(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APackagedecl_parser_prod___APackagedecl___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 199;
+  fra.me.meth = LOCATE_NEW_APackagedecl_parser_prod___APackagedecl___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APackagedecl();
+  /* ./parser//parser_prod.nit:199 */
+  INIT_ATTRIBUTES__APackagedecl(fra.me.REG[0]);
+  parser_prod___APackagedecl___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APackagedecl(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APackagedecl_parser_prod___APackagedecl___init_apackagedecl(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 201;
+  fra.me.meth = LOCATE_NEW_APackagedecl_parser_prod___APackagedecl___init_apackagedecl;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_APackagedecl();
+  /* ./parser//parser_prod.nit:201 */
+  INIT_ATTRIBUTES__APackagedecl(fra.me.REG[3]);
+  parser_prod___APackagedecl___init_apackagedecl(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_APackagedecl(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_PSignature[69] = {
-  {(bigint) 3059 /* 0: Identity */},
-  {(bigint) 3 /* 1: PSignature < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PSignature < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PSignature < Prod: superclass typecheck marker */},
-  {(bigint) 3059 /* 4: PSignature < PSignature: superclass typecheck marker */},
+const classtable_elt_t VFT_AImport[71] = {
+  {(bigint) 5963 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AImport < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AImport < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AImport < Prod: superclass typecheck marker */},
+  {(bigint) 5963 /* 5: AImport < AImport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22557,14 +51161,12 @@ const classtable_elt_t VFT_PSignature[69] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PSignature < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AImport < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22572,7 +51174,6 @@ const classtable_elt_t VFT_PSignature[69] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22580,56 +51181,109 @@ const classtable_elt_t VFT_PSignature[69] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PSignature < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PSignature < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PSignature___check_visibility},
-  {(bigint) 3 /* 68: PSignature < PSignature: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PSignature::_parent */
-/* 2: Attribute PSignature::_first_token */
-/* 3: Attribute PSignature::_last_token */
-val_t NEW_PSignature(void) {
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AImport < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AImport < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AImport___module_name},
+  {(bigint) mmbuilder___AImport___visibility_level},
+  {(bigint) 3 /* 70: AImport < AImport: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AImport::_parent */
+/* 3: Attribute AImport::_location */
+/* 4: Attribute AImport::_first_location */
+/* 5: Attribute AImport::_last_location */
+void INIT_ATTRIBUTES__AImport(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AImport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AImport(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PSignature;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AImport;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AImport(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AImport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AImport_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AImport_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AImport();
+  INIT_ATTRIBUTES__AImport(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AImport(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_PParam[79] = {
-  {(bigint) 3071 /* 0: Identity */},
-  {(bigint) 3 /* 1: PParam < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PParam < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PParam < Prod: superclass typecheck marker */},
-  {(bigint) 3071 /* 4: PParam < PParam: superclass typecheck marker */},
+const classtable_elt_t VFT_AStdImport[80] = {
+  {(bigint) 6143 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStdImport < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStdImport < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStdImport < Prod: superclass typecheck marker */},
+  {(bigint) 5963 /* 5: AStdImport < AImport: superclass typecheck marker */},
+  {(bigint) 6143 /* 6: AStdImport < AStdImport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22638,14 +51292,11 @@ const classtable_elt_t VFT_PParam[79] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PParam < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AStdImport < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22653,7 +51304,6 @@ const classtable_elt_t VFT_PParam[79] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22661,72 +51311,189 @@ const classtable_elt_t VFT_PParam[79] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PParam___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AStdImport___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PParam < PNode: superclass init_table position */},
-  {(bigint) control_flow___PParam___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PParam___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PParam < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PParam___stype},
-  {(bigint) mmbuilder___PParam___stype__eq},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) mmbuilder___PParam___is_vararg},
-  {(bigint) mmbuilder___PParam___position},
-  {(bigint) mmbuilder___PParam___variable},
-  {(bigint) 3 /* 73: PParam < PParam: superclass init_table position */},
-  {(bigint) parser_nodes___PParam___n_id},
-  {(bigint) parser_nodes___PParam___n_id__eq},
-  {(bigint) parser_nodes___PParam___n_type},
-  {(bigint) parser_nodes___PParam___n_type__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PParam::_parent */
-/* 2: Attribute PParam::_first_token */
-/* 3: Attribute PParam::_last_token */
-/* 4: Attribute PParam::_position */
-/* 5: Attribute PParam::_variable */
-/* 6: Attribute PParam::_stype */
-/* 7: Attribute PParam::_n_id */
-/* 8: Attribute PParam::_n_type */
-val_t NEW_PParam(void) {
+  {(bigint) parser_prod___AStdImport___visit_all},
+  {(bigint) parser_prod___AStdImport___visit_all_reverse},
+  {(bigint) 1 /* 59: AStdImport < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AStdImport < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AStdImport___module_name},
+  {(bigint) mmbuilder___AStdImport___visibility_level},
+  {(bigint) 3 /* 70: AStdImport < AImport: superclass init_table position */},
+  {(bigint) parser_prod___AStdImport___empty_init},
+  {(bigint) parser_prod___AStdImport___init_astdimport},
+  {(bigint) 4 /* 73: AStdImport < AStdImport: superclass init_table position */},
+  {(bigint) parser_nodes___AStdImport___n_visibility},
+  {(bigint) parser_prod___AStdImport___n_visibility__eq},
+  {(bigint) parser_nodes___AStdImport___n_kwimport},
+  {(bigint) parser_prod___AStdImport___n_kwimport__eq},
+  {(bigint) parser_nodes___AStdImport___n_id},
+  {(bigint) parser_prod___AStdImport___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AStdImport::_parent */
+/* 3: Attribute AStdImport::_location */
+/* 4: Attribute AStdImport::_first_location */
+/* 5: Attribute AStdImport::_last_location */
+/* 6: Attribute AStdImport::_n_visibility */
+/* 7: Attribute AStdImport::_n_kwimport */
+/* 8: Attribute AStdImport::_n_id */
+void INIT_ATTRIBUTES__AStdImport(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStdImport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStdImport(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_PParam;
-  ATTR_mmbuilder___PParam____position(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+  obj->vft = (classtable_elt_t*)VFT_AStdImport;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStdImport(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStdImport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_visibility");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwimport");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStdImport_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStdImport_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStdImport();
+  INIT_ATTRIBUTES__AStdImport(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStdImport(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStdImport_parser_prod___AStdImport___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 287;
+  fra.me.meth = LOCATE_NEW_AStdImport_parser_prod___AStdImport___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStdImport();
+  /* ./parser//parser_prod.nit:287 */
+  INIT_ATTRIBUTES__AStdImport(fra.me.REG[0]);
+  parser_prod___AStdImport___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStdImport(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStdImport_parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 289;
+  fra.me.meth = LOCATE_NEW_AStdImport_parser_prod___AStdImport___init_astdimport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AStdImport();
+  /* ./parser//parser_prod.nit:289 */
+  INIT_ATTRIBUTES__AStdImport(fra.me.REG[3]);
+  parser_prod___AStdImport___init_astdimport(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AStdImport(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_PType[74] = {
-  {(bigint) 3051 /* 0: Identity */},
-  {(bigint) 3 /* 1: PType < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PType < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PType < Prod: superclass typecheck marker */},
-  {(bigint) 3051 /* 4: PType < PType: superclass typecheck marker */},
+const classtable_elt_t VFT_ANoImport[80] = {
+  {(bigint) 6219 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ANoImport < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ANoImport < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ANoImport < Prod: superclass typecheck marker */},
+  {(bigint) 5963 /* 5: ANoImport < AImport: superclass typecheck marker */},
+  {(bigint) 6219 /* 6: ANoImport < ANoImport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22735,14 +51502,11 @@ const classtable_elt_t VFT_PType[74] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PType < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ANoImport < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22750,7 +51514,6 @@ const classtable_elt_t VFT_PType[74] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22758,62 +51521,188 @@ const classtable_elt_t VFT_PType[74] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANoImport___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PType < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PType___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PType < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PType___check_visibility},
-  {(bigint) syntax_base___PType___get_local_class},
-  {(bigint) syntax_base___PType___get_stype},
-  {(bigint) syntax_base___PType___get_unchecked_stype},
-  {(bigint) syntax_base___PType___check_conform},
-  {(bigint) 3 /* 72: PType < PType: superclass init_table position */},
-  {(bigint) typing___PType___stype},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PType::_parent */
-/* 2: Attribute PType::_first_token */
-/* 3: Attribute PType::_last_token */
-/* 4: Attribute PType::_stype */
-val_t NEW_PType(void) {
+  {(bigint) parser_prod___ANoImport___visit_all},
+  {(bigint) parser_prod___ANoImport___visit_all_reverse},
+  {(bigint) 1 /* 59: ANoImport < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ANoImport < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___ANoImport___module_name},
+  {(bigint) mmbuilder___AImport___visibility_level},
+  {(bigint) 3 /* 70: ANoImport < AImport: superclass init_table position */},
+  {(bigint) parser_prod___ANoImport___empty_init},
+  {(bigint) parser_prod___ANoImport___init_anoimport},
+  {(bigint) 4 /* 73: ANoImport < ANoImport: superclass init_table position */},
+  {(bigint) parser_nodes___ANoImport___n_visibility},
+  {(bigint) parser_prod___ANoImport___n_visibility__eq},
+  {(bigint) parser_nodes___ANoImport___n_kwimport},
+  {(bigint) parser_prod___ANoImport___n_kwimport__eq},
+  {(bigint) parser_nodes___ANoImport___n_kwend},
+  {(bigint) parser_prod___ANoImport___n_kwend__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ANoImport::_parent */
+/* 3: Attribute ANoImport::_location */
+/* 4: Attribute ANoImport::_first_location */
+/* 5: Attribute ANoImport::_last_location */
+/* 6: Attribute ANoImport::_n_visibility */
+/* 7: Attribute ANoImport::_n_kwimport */
+/* 8: Attribute ANoImport::_n_kwend */
+void INIT_ATTRIBUTES__ANoImport(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ANoImport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANoImport(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_PType;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_ANoImport;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ANoImport(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ANoImport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_visibility");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwimport");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwend");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANoImport_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ANoImport_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ANoImport();
+  INIT_ATTRIBUTES__ANoImport(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANoImport(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ANoImport_parser_prod___ANoImport___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 369;
+  fra.me.meth = LOCATE_NEW_ANoImport_parser_prod___ANoImport___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ANoImport();
+  /* ./parser//parser_prod.nit:369 */
+  INIT_ATTRIBUTES__ANoImport(fra.me.REG[0]);
+  parser_prod___ANoImport___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ANoImport(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ANoImport_parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 371;
+  fra.me.meth = LOCATE_NEW_ANoImport_parser_prod___ANoImport___init_anoimport;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ANoImport();
+  /* ./parser//parser_prod.nit:371 */
+  INIT_ATTRIBUTES__ANoImport(fra.me.REG[3]);
+  parser_prod___ANoImport___init_anoimport(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ANoImport(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_PExpr[76] = {
-  {(bigint) 3095 /* 0: Identity */},
-  {(bigint) 3 /* 1: PExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: PExpr < PExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AVisibility[70] = {
+  {(bigint) 5915 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AVisibility < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 5915 /* 5: AVisibility < AVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22822,14 +51711,12 @@ const classtable_elt_t VFT_PExpr[76] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AVisibility < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22837,7 +51724,6 @@ const classtable_elt_t VFT_PExpr[76] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22845,65 +51731,108 @@ const classtable_elt_t VFT_PExpr[76] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: PExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PExpr::_parent */
-/* 2: Attribute PExpr::_first_token */
-/* 3: Attribute PExpr::_last_token */
-/* 4: Attribute PExpr::_stype */
-/* 5: Attribute PExpr::_if_true_variable_ctx */
-val_t NEW_PExpr(void) {
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AVisibility < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AVisibility < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AVisibility___level},
+  {(bigint) 3 /* 69: AVisibility < AVisibility: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AVisibility::_parent */
+/* 3: Attribute AVisibility::_location */
+/* 4: Attribute AVisibility::_first_location */
+/* 5: Attribute AVisibility::_last_location */
+void INIT_ATTRIBUTES__AVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVisibility(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_PExpr;
-  return OBJ2VAL(obj);
+  obj->vft = (classtable_elt_t*)VFT_AVisibility;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVisibility_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AVisibility_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AVisibility();
+  INIT_ATTRIBUTES__AVisibility(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AVisibility(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_PAssignOp[69] = {
-  {(bigint) 3111 /* 0: Identity */},
-  {(bigint) 3 /* 1: PAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PAssignOp < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 4: PAssignOp < PAssignOp: superclass typecheck marker */},
+const classtable_elt_t VFT_APublicVisibility[73] = {
+  {(bigint) 6187 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APublicVisibility < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APublicVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APublicVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 5915 /* 5: APublicVisibility < AVisibility: superclass typecheck marker */},
+  {(bigint) 6187 /* 6: APublicVisibility < APublicVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22912,14 +51841,11 @@ const classtable_elt_t VFT_PAssignOp[69] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PAssignOp < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: APublicVisibility < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -22927,7 +51853,6 @@ const classtable_elt_t VFT_PAssignOp[69] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -22935,56 +51860,149 @@ const classtable_elt_t VFT_PAssignOp[69] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___APublicVisibility___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PAssignOp < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PAssignOp < Prod: superclass init_table position */},
-  {(bigint) typing___PAssignOp___method_name},
-  {(bigint) 3 /* 68: PAssignOp < PAssignOp: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PAssignOp::_parent */
-/* 2: Attribute PAssignOp::_first_token */
-/* 3: Attribute PAssignOp::_last_token */
-val_t NEW_PAssignOp(void) {
+  {(bigint) parser_prod___APublicVisibility___visit_all},
+  {(bigint) parser_prod___APublicVisibility___visit_all_reverse},
+  {(bigint) 1 /* 59: APublicVisibility < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: APublicVisibility < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APublicVisibility___level},
+  {(bigint) 3 /* 69: APublicVisibility < AVisibility: superclass init_table position */},
+  {(bigint) parser_prod___APublicVisibility___empty_init},
+  {(bigint) parser_prod___APublicVisibility___init_apublicvisibility},
+  {(bigint) 4 /* 72: APublicVisibility < APublicVisibility: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute APublicVisibility::_parent */
+/* 3: Attribute APublicVisibility::_location */
+/* 4: Attribute APublicVisibility::_first_location */
+/* 5: Attribute APublicVisibility::_last_location */
+void INIT_ATTRIBUTES__APublicVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APublicVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APublicVisibility(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PAssignOp;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_APublicVisibility;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APublicVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APublicVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APublicVisibility_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APublicVisibility_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APublicVisibility();
+  INIT_ATTRIBUTES__APublicVisibility(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APublicVisibility(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APublicVisibility_parser_prod___APublicVisibility___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 436;
+  fra.me.meth = LOCATE_NEW_APublicVisibility_parser_prod___APublicVisibility___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APublicVisibility();
+  /* ./parser//parser_prod.nit:436 */
+  INIT_ATTRIBUTES__APublicVisibility(fra.me.REG[0]);
+  parser_prod___APublicVisibility___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APublicVisibility(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibility(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 438;
+  fra.me.meth = LOCATE_NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APublicVisibility();
+  /* ./parser//parser_prod.nit:438 */
+  INIT_ATTRIBUTES__APublicVisibility(fra.me.REG[0]);
+  parser_prod___APublicVisibility___init_apublicvisibility(fra.me.REG[0], init_table);
+  CHECKNEW_APublicVisibility(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_PQualified[68] = {
-  {(bigint) 3063 /* 0: Identity */},
-  {(bigint) 3 /* 1: PQualified < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PQualified < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PQualified < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 4: PQualified < PQualified: superclass typecheck marker */},
+const classtable_elt_t VFT_APrivateVisibility[75] = {
+  {(bigint) 6199 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APrivateVisibility < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APrivateVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APrivateVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 5915 /* 5: APrivateVisibility < AVisibility: superclass typecheck marker */},
+  {(bigint) 6199 /* 6: APrivateVisibility < APrivateVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22993,14 +52011,11 @@ const classtable_elt_t VFT_PQualified[68] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PQualified < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: APrivateVisibility < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23008,7 +52023,6 @@ const classtable_elt_t VFT_PQualified[68] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23016,55 +52030,164 @@ const classtable_elt_t VFT_PQualified[68] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___APrivateVisibility___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PQualified < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PQualified < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: PQualified < PQualified: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PQualified::_parent */
-/* 2: Attribute PQualified::_first_token */
-/* 3: Attribute PQualified::_last_token */
-val_t NEW_PQualified(void) {
+  {(bigint) parser_prod___APrivateVisibility___visit_all},
+  {(bigint) parser_prod___APrivateVisibility___visit_all_reverse},
+  {(bigint) 1 /* 59: APrivateVisibility < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: APrivateVisibility < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APrivateVisibility___level},
+  {(bigint) 3 /* 69: APrivateVisibility < AVisibility: superclass init_table position */},
+  {(bigint) parser_prod___APrivateVisibility___empty_init},
+  {(bigint) parser_prod___APrivateVisibility___init_aprivatevisibility},
+  {(bigint) 4 /* 72: APrivateVisibility < APrivateVisibility: superclass init_table position */},
+  {(bigint) parser_nodes___APrivateVisibility___n_kwprivate},
+  {(bigint) parser_prod___APrivateVisibility___n_kwprivate__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute APrivateVisibility::_parent */
+/* 3: Attribute APrivateVisibility::_location */
+/* 4: Attribute APrivateVisibility::_first_location */
+/* 5: Attribute APrivateVisibility::_last_location */
+/* 6: Attribute APrivateVisibility::_n_kwprivate */
+void INIT_ATTRIBUTES__APrivateVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APrivateVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APrivateVisibility(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PQualified;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_APrivateVisibility;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APrivateVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APrivateVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwprivate");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APrivateVisibility_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APrivateVisibility_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APrivateVisibility();
+  INIT_ATTRIBUTES__APrivateVisibility(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APrivateVisibility(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APrivateVisibility_parser_prod___APrivateVisibility___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 462;
+  fra.me.meth = LOCATE_NEW_APrivateVisibility_parser_prod___APrivateVisibility___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APrivateVisibility();
+  /* ./parser//parser_prod.nit:462 */
+  INIT_ATTRIBUTES__APrivateVisibility(fra.me.REG[0]);
+  parser_prod___APrivateVisibility___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APrivateVisibility(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 464;
+  fra.me.meth = LOCATE_NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevisibility;
+  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;
+  fra.me.REG[1] = NEW_APrivateVisibility();
+  /* ./parser//parser_prod.nit:464 */
+  INIT_ATTRIBUTES__APrivateVisibility(fra.me.REG[1]);
+  parser_prod___APrivateVisibility___init_aprivatevisibility(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APrivateVisibility(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_PDoc[68] = {
-  {(bigint) 3099 /* 0: Identity */},
-  {(bigint) 3 /* 1: PDoc < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: PDoc < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: PDoc < Prod: superclass typecheck marker */},
-  {(bigint) 3099 /* 4: PDoc < PDoc: superclass typecheck marker */},
+const classtable_elt_t VFT_AProtectedVisibility[75] = {
+  {(bigint) 6195 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AProtectedVisibility < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AProtectedVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AProtectedVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 5915 /* 5: AProtectedVisibility < AVisibility: superclass typecheck marker */},
+  {(bigint) 6195 /* 6: AProtectedVisibility < AProtectedVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23073,14 +52196,11 @@ const classtable_elt_t VFT_PDoc[68] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PDoc < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AProtectedVisibility < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23088,7 +52208,6 @@ const classtable_elt_t VFT_PDoc[68] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23096,56 +52215,164 @@ const classtable_elt_t VFT_PDoc[68] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AProtectedVisibility___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: PDoc < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: PDoc < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: PDoc < PDoc: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PDoc::_parent */
-/* 2: Attribute PDoc::_first_token */
-/* 3: Attribute PDoc::_last_token */
-val_t NEW_PDoc(void) {
+  {(bigint) parser_prod___AProtectedVisibility___visit_all},
+  {(bigint) parser_prod___AProtectedVisibility___visit_all_reverse},
+  {(bigint) 1 /* 59: AProtectedVisibility < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AProtectedVisibility < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AProtectedVisibility___level},
+  {(bigint) 3 /* 69: AProtectedVisibility < AVisibility: superclass init_table position */},
+  {(bigint) parser_prod___AProtectedVisibility___empty_init},
+  {(bigint) parser_prod___AProtectedVisibility___init_aprotectedvisibility},
+  {(bigint) 4 /* 72: AProtectedVisibility < AProtectedVisibility: superclass init_table position */},
+  {(bigint) parser_nodes___AProtectedVisibility___n_kwprotected},
+  {(bigint) parser_prod___AProtectedVisibility___n_kwprotected__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AProtectedVisibility::_parent */
+/* 3: Attribute AProtectedVisibility::_location */
+/* 4: Attribute AProtectedVisibility::_first_location */
+/* 5: Attribute AProtectedVisibility::_last_location */
+/* 6: Attribute AProtectedVisibility::_n_kwprotected */
+void INIT_ATTRIBUTES__AProtectedVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AProtectedVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AProtectedVisibility(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PDoc;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AProtectedVisibility;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AProtectedVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AProtectedVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwprotected");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AProtectedVisibility_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AProtectedVisibility_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AProtectedVisibility();
+  INIT_ATTRIBUTES__AProtectedVisibility(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AProtectedVisibility(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 504;
+  fra.me.meth = LOCATE_NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AProtectedVisibility();
+  /* ./parser//parser_prod.nit:504 */
+  INIT_ATTRIBUTES__AProtectedVisibility(fra.me.REG[0]);
+  parser_prod___AProtectedVisibility___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AProtectedVisibility(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 506;
+  fra.me.meth = LOCATE_NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotectedvisibility;
+  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;
+  fra.me.REG[1] = NEW_AProtectedVisibility();
+  /* ./parser//parser_prod.nit:506 */
+  INIT_ATTRIBUTES__AProtectedVisibility(fra.me.REG[1]);
+  parser_prod___AProtectedVisibility___init_aprotectedvisibility(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AProtectedVisibility(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AModule[78] = {
-  {(bigint) 3455 /* 0: Identity */},
-  {(bigint) 3 /* 1: AModule < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AModule < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AModule < Prod: superclass typecheck marker */},
-  {(bigint) 3079 /* 4: AModule < PModule: superclass typecheck marker */},
-  {(bigint) 3455 /* 5: AModule < AModule: superclass typecheck marker */},
+const classtable_elt_t VFT_AIntrudeVisibility[75] = {
+  {(bigint) 6255 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AIntrudeVisibility < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AIntrudeVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AIntrudeVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 5915 /* 5: AIntrudeVisibility < AVisibility: superclass typecheck marker */},
+  {(bigint) 6255 /* 6: AIntrudeVisibility < AIntrudeVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23153,14 +52380,12 @@ const classtable_elt_t VFT_AModule[78] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AModule < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AIntrudeVisibility < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23168,7 +52393,6 @@ const classtable_elt_t VFT_AModule[78] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23176,81 +52400,163 @@ const classtable_elt_t VFT_AModule[78] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AModule___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AIntrudeVisibility___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AModule___visit_all},
-  {(bigint) parser_prod___AModule___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AModule < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AModule < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: AModule < PModule: superclass init_table position */},
-  {(bigint) mmbuilder___AModule___import_super_modules},
-  {(bigint) parser_prod___AModule___empty_init},
-  {(bigint) parser_prod___AModule___init_amodule},
-  {(bigint) 4 /* 71: AModule < AModule: superclass init_table position */},
-  {(bigint) parser_nodes___AModule___n_packagedecl},
-  {(bigint) parser_prod___AModule___n_packagedecl__eq},
-  {(bigint) parser_nodes___AModule___n_imports},
-  {(bigint) parser_nodes___AModule___n_imports__eq},
-  {(bigint) parser_nodes___AModule___n_classdefs},
-  {(bigint) parser_nodes___AModule___n_classdefs__eq},
+  {(bigint) parser_prod___AIntrudeVisibility___visit_all},
+  {(bigint) parser_prod___AIntrudeVisibility___visit_all_reverse},
+  {(bigint) 1 /* 59: AIntrudeVisibility < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AIntrudeVisibility < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AIntrudeVisibility___level},
+  {(bigint) 3 /* 69: AIntrudeVisibility < AVisibility: superclass init_table position */},
+  {(bigint) parser_prod___AIntrudeVisibility___empty_init},
+  {(bigint) parser_prod___AIntrudeVisibility___init_aintrudevisibility},
+  {(bigint) 4 /* 72: AIntrudeVisibility < AIntrudeVisibility: superclass init_table position */},
+  {(bigint) parser_nodes___AIntrudeVisibility___n_kwintrude},
+  {(bigint) parser_prod___AIntrudeVisibility___n_kwintrude__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AModule::_parent */
-/* 2: Attribute AModule::_first_token */
-/* 3: Attribute AModule::_last_token */
-/* 4: Attribute AModule::_n_packagedecl */
-/* 5: Attribute AModule::_n_imports */
-/* 6: Attribute AModule::_n_classdefs */
-val_t NEW_AModule(void) {
+/* 1: Object_id */
+/* 2: Attribute AIntrudeVisibility::_parent */
+/* 3: Attribute AIntrudeVisibility::_location */
+/* 4: Attribute AIntrudeVisibility::_first_location */
+/* 5: Attribute AIntrudeVisibility::_last_location */
+/* 6: Attribute AIntrudeVisibility::_n_kwintrude */
+void INIT_ATTRIBUTES__AIntrudeVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AIntrudeVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIntrudeVisibility(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_AModule;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AModule___empty_init() {
+  obj->vft = (classtable_elt_t*)VFT_AIntrudeVisibility;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AIntrudeVisibility(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AIntrudeVisibility;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwintrude");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIntrudeVisibility_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AModule();
-  parser_prod___AModule___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AIntrudeVisibility();
+  INIT_ATTRIBUTES__AIntrudeVisibility(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIntrudeVisibility(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 546;
+  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AIntrudeVisibility();
+  /* ./parser//parser_prod.nit:546 */
+  INIT_ATTRIBUTES__AIntrudeVisibility(fra.me.REG[0]);
+  parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AIntrudeVisibility(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AModule();
-  parser_prod___AModule___init_amodule(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 548;
+  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevisibility;
+  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;
+  fra.me.REG[1] = NEW_AIntrudeVisibility();
+  /* ./parser//parser_prod.nit:548 */
+  INIT_ATTRIBUTES__AIntrudeVisibility(fra.me.REG[1]);
+  parser_prod___AIntrudeVisibility___init_aintrudevisibility(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIntrudeVisibility(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_APackagedecl[77] = {
-  {(bigint) 3439 /* 0: Identity */},
-  {(bigint) 3 /* 1: APackagedecl < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: APackagedecl < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: APackagedecl < Prod: superclass typecheck marker */},
-  {(bigint) 3075 /* 4: APackagedecl < PPackagedecl: superclass typecheck marker */},
-  {(bigint) 3439 /* 5: APackagedecl < APackagedecl: superclass typecheck marker */},
+const classtable_elt_t VFT_AClassdef[78] = {
+  {(bigint) 5991 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AClassdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 5991 /* 5: AClassdef < AClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23258,14 +52564,13 @@ const classtable_elt_t VFT_APackagedecl[77] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: APackagedecl < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AClassdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23273,7 +52578,6 @@ const classtable_elt_t VFT_APackagedecl[77] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23281,80 +52585,124 @@ const classtable_elt_t VFT_APackagedecl[77] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___APackagedecl___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___APackagedecl___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AClassdef___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) mmbuilder___AClassdef___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___APackagedecl___visit_all},
-  {(bigint) parser_prod___APackagedecl___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: APackagedecl < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: APackagedecl < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: APackagedecl < PPackagedecl: superclass init_table position */},
-  {(bigint) parser_prod___APackagedecl___empty_init},
-  {(bigint) parser_prod___APackagedecl___init_apackagedecl},
-  {(bigint) 4 /* 70: APackagedecl < APackagedecl: superclass init_table position */},
-  {(bigint) parser_nodes___APackagedecl___n_doc},
-  {(bigint) parser_prod___APackagedecl___n_doc__eq},
-  {(bigint) parser_nodes___APackagedecl___n_kwpackage},
-  {(bigint) parser_prod___APackagedecl___n_kwpackage__eq},
-  {(bigint) parser_nodes___APackagedecl___n_id},
-  {(bigint) parser_prod___APackagedecl___n_id__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute APackagedecl::_parent */
-/* 2: Attribute APackagedecl::_first_token */
-/* 3: Attribute APackagedecl::_last_token */
-/* 4: Attribute APackagedecl::_n_doc */
-/* 5: Attribute APackagedecl::_n_kwpackage */
-/* 6: Attribute APackagedecl::_n_id */
-val_t NEW_APackagedecl(void) {
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AClassdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___AClassdef___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AClassdef < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AClassdef___name},
+  {(bigint) mmbuilder___AClassdef___arity},
+  {(bigint) mmbuilder___AClassdef___visibility_level},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___AClassdef___local_class},
+  {(bigint) syntax_base___AClassdef___next_node},
+  {(bigint) syntax_base___AClassdef___next_node__eq},
+  {(bigint) 3 /* 76: AClassdef < AClassdef: superclass init_table position */},
+  {(bigint) typing___ANode___accept_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AClassdef::_parent */
+/* 3: Attribute AClassdef::_location */
+/* 4: Attribute AClassdef::_first_location */
+/* 5: Attribute AClassdef::_last_location */
+/* 6: Attribute AClassdef::_local_class */
+/* 7: Attribute AClassdef::_next_node */
+void INIT_ATTRIBUTES__AClassdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AClassdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//syntax_base.nit:531 */
+  ATTR_syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClassdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_APackagedecl;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___APackagedecl___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APackagedecl();
-  parser_prod___APackagedecl___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___APackagedecl___init_apackagedecl(val_t p0, val_t p1, val_t p2) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APackagedecl();
-  parser_prod___APackagedecl___init_apackagedecl(self, p0, p1, p2, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_AClassdef;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AClassdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AClassdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClassdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AClassdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AClassdef();
+  INIT_ATTRIBUTES__AClassdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AClassdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AImport[79] = {
-  {(bigint) 3495 /* 0: Identity */},
-  {(bigint) 3 /* 1: AImport < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AImport < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AImport < Prod: superclass typecheck marker */},
-  {(bigint) 3087 /* 4: AImport < PImport: superclass typecheck marker */},
-  {(bigint) 3495 /* 5: AImport < AImport: superclass typecheck marker */},
+const classtable_elt_t VFT_AStdClassdef[98] = {
+  {(bigint) 6147 /* 0: Identity */},
+  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStdClassdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStdClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStdClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 5991 /* 5: AStdClassdef < AClassdef: superclass typecheck marker */},
+  {(bigint) 6147 /* 6: AStdClassdef < AStdClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23362,14 +52710,12 @@ const classtable_elt_t VFT_AImport[79] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AImport < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AStdClassdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23377,7 +52723,6 @@ const classtable_elt_t VFT_AImport[79] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23385,82 +52730,262 @@ const classtable_elt_t VFT_AImport[79] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AImport___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AClassdef___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___AStdClassdef___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) mmbuilder___AClassdef___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AStdClassdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AImport___visit_all},
-  {(bigint) parser_prod___AImport___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AImport < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AImport < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___AImport___module_name},
-  {(bigint) mmbuilder___AImport___visibility_level},
-  {(bigint) 3 /* 69: AImport < PImport: superclass init_table position */},
-  {(bigint) parser_prod___AImport___empty_init},
-  {(bigint) parser_prod___AImport___init_aimport},
-  {(bigint) 4 /* 72: AImport < AImport: superclass init_table position */},
-  {(bigint) parser_nodes___AImport___n_visibility},
-  {(bigint) parser_prod___AImport___n_visibility__eq},
-  {(bigint) parser_nodes___AImport___n_kwimport},
-  {(bigint) parser_prod___AImport___n_kwimport__eq},
-  {(bigint) parser_nodes___AImport___n_id},
-  {(bigint) parser_prod___AImport___n_id__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AImport::_parent */
-/* 2: Attribute AImport::_first_token */
-/* 3: Attribute AImport::_last_token */
-/* 4: Attribute AImport::_n_visibility */
-/* 5: Attribute AImport::_n_kwimport */
-/* 6: Attribute AImport::_n_id */
-val_t NEW_AImport(void) {
+  {(bigint) parser_prod___AStdClassdef___visit_all},
+  {(bigint) parser_prod___AStdClassdef___visit_all_reverse},
+  {(bigint) 1 /* 59: AStdClassdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___AClassdef___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AStdClassdef < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AStdClassdef___name},
+  {(bigint) mmbuilder___AStdClassdef___arity},
+  {(bigint) mmbuilder___AStdClassdef___visibility_level},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___AClassdef___local_class},
+  {(bigint) syntax_base___AClassdef___next_node},
+  {(bigint) syntax_base___AClassdef___next_node__eq},
+  {(bigint) 3 /* 76: AStdClassdef < AClassdef: superclass init_table position */},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) parser_prod___AStdClassdef___empty_init},
+  {(bigint) parser_prod___AStdClassdef___init_astdclassdef},
+  {(bigint) 4 /* 81: AStdClassdef < AStdClassdef: superclass init_table position */},
+  {(bigint) parser_nodes___AStdClassdef___n_doc},
+  {(bigint) parser_prod___AStdClassdef___n_doc__eq},
+  {(bigint) parser_nodes___AStdClassdef___n_kwredef},
+  {(bigint) parser_prod___AStdClassdef___n_kwredef__eq},
+  {(bigint) parser_nodes___AStdClassdef___n_visibility},
+  {(bigint) parser_prod___AStdClassdef___n_visibility__eq},
+  {(bigint) parser_nodes___AStdClassdef___n_classkind},
+  {(bigint) parser_prod___AStdClassdef___n_classkind__eq},
+  {(bigint) parser_nodes___AStdClassdef___n_id},
+  {(bigint) parser_prod___AStdClassdef___n_id__eq},
+  {(bigint) parser_nodes___AStdClassdef___n_formaldefs},
+  {(bigint) parser_nodes___AStdClassdef___n_formaldefs__eq},
+  {(bigint) parser_nodes___AStdClassdef___n_superclasses},
+  {(bigint) parser_nodes___AStdClassdef___n_superclasses__eq},
+  {(bigint) parser_nodes___AStdClassdef___n_propdefs},
+  {(bigint) parser_nodes___AStdClassdef___n_propdefs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AStdClassdef::_parent */
+/* 3: Attribute AStdClassdef::_location */
+/* 4: Attribute AStdClassdef::_first_location */
+/* 5: Attribute AStdClassdef::_last_location */
+/* 6: Attribute AStdClassdef::_local_class */
+/* 7: Attribute AStdClassdef::_next_node */
+/* 8: Attribute AStdClassdef::_n_doc */
+/* 9: Attribute AStdClassdef::_n_kwredef */
+/* 10: Attribute AStdClassdef::_n_visibility */
+/* 11: Attribute AStdClassdef::_n_classkind */
+/* 12: Attribute AStdClassdef::_n_id */
+/* 13: Attribute AStdClassdef::_n_formaldefs */
+/* 14: Attribute AStdClassdef::_n_superclasses */
+/* 15: Attribute AStdClassdef::_n_propdefs */
+void INIT_ATTRIBUTES__AStdClassdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStdClassdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:356 */
+  ATTR_parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:357 */
+  ATTR_parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:360 */
+  ATTR_parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:361 */
+  ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:362 */
+  ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:363 */
+  ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//syntax_base.nit:531 */
+  ATTR_syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStdClassdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_AImport;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AImport___empty_init() {
+  obj = alloc(sizeof(val_t) * 16);
+  obj->vft = (classtable_elt_t*)VFT_AStdClassdef;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStdClassdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStdClassdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_visibility");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_classkind");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_formaldefs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_superclasses");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_propdefs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStdClassdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AImport();
-  parser_prod___AImport___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AImport___init_aimport(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStdClassdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStdClassdef();
+  INIT_ATTRIBUTES__AStdClassdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStdClassdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStdClassdef_parser_prod___AStdClassdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AImport();
-  parser_prod___AImport___init_aimport(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 614;
+  fra.me.meth = LOCATE_NEW_AStdClassdef_parser_prod___AStdClassdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStdClassdef();
+  /* ./parser//parser_prod.nit:614 */
+  INIT_ATTRIBUTES__AStdClassdef(fra.me.REG[0]);
+  parser_prod___AStdClassdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStdClassdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7){
+  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 616;
+  fra.me.meth = LOCATE_NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 9;
+  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;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  fra.me.REG[7] = p7;
+  fra.me.REG[8] = NEW_AStdClassdef();
+  /* ./parser//parser_prod.nit:616 */
+  INIT_ATTRIBUTES__AStdClassdef(fra.me.REG[8]);
+  parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7], init_table);
+  CHECKNEW_AStdClassdef(fra.me.REG[8]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[8];
 }
-const classtable_elt_t VFT_ANoImport[79] = {
-  {(bigint) 3447 /* 0: Identity */},
-  {(bigint) 3 /* 1: ANoImport < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ANoImport < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ANoImport < Prod: superclass typecheck marker */},
-  {(bigint) 3087 /* 4: ANoImport < PImport: superclass typecheck marker */},
-  {(bigint) 3447 /* 5: ANoImport < ANoImport: superclass typecheck marker */},
+const classtable_elt_t VFT_ATopClassdef[83] = {
+  {(bigint) 6131 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ATopClassdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ATopClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ATopClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 5991 /* 5: ATopClassdef < AClassdef: superclass typecheck marker */},
+  {(bigint) 6131 /* 6: ATopClassdef < ATopClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23468,14 +52993,12 @@ const classtable_elt_t VFT_ANoImport[79] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ANoImport < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ATopClassdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23483,7 +53006,6 @@ const classtable_elt_t VFT_ANoImport[79] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23491,82 +53013,183 @@ const classtable_elt_t VFT_ANoImport[79] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___ANoImport___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AClassdef___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) mmbuilder___AClassdef___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ATopClassdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___ANoImport___visit_all},
-  {(bigint) parser_prod___ANoImport___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ANoImport < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: ANoImport < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___ANoImport___module_name},
-  {(bigint) mmbuilder___PImport___visibility_level},
-  {(bigint) 3 /* 69: ANoImport < PImport: superclass init_table position */},
-  {(bigint) parser_prod___ANoImport___empty_init},
-  {(bigint) parser_prod___ANoImport___init_anoimport},
-  {(bigint) 4 /* 72: ANoImport < ANoImport: superclass init_table position */},
-  {(bigint) parser_nodes___ANoImport___n_visibility},
-  {(bigint) parser_prod___ANoImport___n_visibility__eq},
-  {(bigint) parser_nodes___ANoImport___n_kwimport},
-  {(bigint) parser_prod___ANoImport___n_kwimport__eq},
-  {(bigint) parser_nodes___ANoImport___n_kwend},
-  {(bigint) parser_prod___ANoImport___n_kwend__eq},
+  {(bigint) parser_prod___ATopClassdef___visit_all},
+  {(bigint) parser_prod___ATopClassdef___visit_all_reverse},
+  {(bigint) 1 /* 59: ATopClassdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___AClassdef___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ATopClassdef < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___ATopClassdef___name},
+  {(bigint) mmbuilder___AClassdef___arity},
+  {(bigint) mmbuilder___AClassdef___visibility_level},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___AClassdef___local_class},
+  {(bigint) syntax_base___AClassdef___next_node},
+  {(bigint) syntax_base___AClassdef___next_node__eq},
+  {(bigint) 3 /* 76: ATopClassdef < AClassdef: superclass init_table position */},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) parser_prod___ATopClassdef___empty_init},
+  {(bigint) parser_prod___ATopClassdef___init_atopclassdef},
+  {(bigint) 4 /* 80: ATopClassdef < ATopClassdef: superclass init_table position */},
+  {(bigint) parser_nodes___ATopClassdef___n_propdefs},
+  {(bigint) parser_nodes___ATopClassdef___n_propdefs__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ANoImport::_parent */
-/* 2: Attribute ANoImport::_first_token */
-/* 3: Attribute ANoImport::_last_token */
-/* 4: Attribute ANoImport::_n_visibility */
-/* 5: Attribute ANoImport::_n_kwimport */
-/* 6: Attribute ANoImport::_n_kwend */
-val_t NEW_ANoImport(void) {
+/* 1: Object_id */
+/* 2: Attribute ATopClassdef::_parent */
+/* 3: Attribute ATopClassdef::_location */
+/* 4: Attribute ATopClassdef::_first_location */
+/* 5: Attribute ATopClassdef::_last_location */
+/* 6: Attribute ATopClassdef::_local_class */
+/* 7: Attribute ATopClassdef::_next_node */
+/* 8: Attribute ATopClassdef::_n_propdefs */
+void INIT_ATTRIBUTES__ATopClassdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ATopClassdef;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:367 */
+  ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//syntax_base.nit:531 */
+  ATTR_syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ATopClassdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_ANoImport;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ANoImport___empty_init() {
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_ATopClassdef;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ATopClassdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ATopClassdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_propdefs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ATopClassdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ANoImport();
-  parser_prod___ANoImport___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ATopClassdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ATopClassdef();
+  INIT_ATTRIBUTES__ATopClassdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ATopClassdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ATopClassdef_parser_prod___ATopClassdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ANoImport();
-  parser_prod___ANoImport___init_anoimport(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 813;
+  fra.me.meth = LOCATE_NEW_ATopClassdef_parser_prod___ATopClassdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ATopClassdef();
+  /* ./parser//parser_prod.nit:813 */
+  INIT_ATTRIBUTES__ATopClassdef(fra.me.REG[0]);
+  parser_prod___ATopClassdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ATopClassdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 815;
+  fra.me.meth = LOCATE_NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef;
+  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;
+  fra.me.REG[1] = NEW_ATopClassdef();
+  /* ./parser//parser_prod.nit:815 */
+  INIT_ATTRIBUTES__ATopClassdef(fra.me.REG[1]);
+  parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ATopClassdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_APublicVisibility[72] = {
-  {(bigint) 3407 /* 0: Identity */},
-  {(bigint) 3 /* 1: APublicVisibility < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: APublicVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: APublicVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: APublicVisibility < PVisibility: superclass typecheck marker */},
-  {(bigint) 3407 /* 5: APublicVisibility < APublicVisibility: superclass typecheck marker */},
+const classtable_elt_t VFT_AMainClassdef[83] = {
+  {(bigint) 6239 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AMainClassdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AMainClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AMainClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 5991 /* 5: AMainClassdef < AClassdef: superclass typecheck marker */},
+  {(bigint) 6239 /* 6: AMainClassdef < AMainClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23574,14 +53197,12 @@ const classtable_elt_t VFT_APublicVisibility[72] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: APublicVisibility < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AMainClassdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23589,7 +53210,6 @@ const classtable_elt_t VFT_APublicVisibility[72] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23597,72 +53217,182 @@ const classtable_elt_t VFT_APublicVisibility[72] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___APublicVisibility___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AClassdef___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) mmbuilder___AClassdef___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AMainClassdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___APublicVisibility___visit_all},
-  {(bigint) parser_prod___APublicVisibility___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: APublicVisibility < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: APublicVisibility < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___APublicVisibility___level},
-  {(bigint) 3 /* 68: APublicVisibility < PVisibility: superclass init_table position */},
-  {(bigint) parser_prod___APublicVisibility___empty_init},
-  {(bigint) parser_prod___APublicVisibility___init_apublicvisibility},
-  {(bigint) 4 /* 71: APublicVisibility < APublicVisibility: superclass init_table position */},
+  {(bigint) parser_prod___AMainClassdef___visit_all},
+  {(bigint) parser_prod___AMainClassdef___visit_all_reverse},
+  {(bigint) 1 /* 59: AMainClassdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___AClassdef___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AMainClassdef < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMainClassdef___name},
+  {(bigint) mmbuilder___AClassdef___arity},
+  {(bigint) mmbuilder___AClassdef___visibility_level},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___AClassdef___local_class},
+  {(bigint) syntax_base___AClassdef___next_node},
+  {(bigint) syntax_base___AClassdef___next_node__eq},
+  {(bigint) 3 /* 76: AMainClassdef < AClassdef: superclass init_table position */},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) parser_prod___AMainClassdef___empty_init},
+  {(bigint) parser_prod___AMainClassdef___init_amainclassdef},
+  {(bigint) 4 /* 80: AMainClassdef < AMainClassdef: superclass init_table position */},
+  {(bigint) parser_nodes___AMainClassdef___n_propdefs},
+  {(bigint) parser_nodes___AMainClassdef___n_propdefs__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute APublicVisibility::_parent */
-/* 2: Attribute APublicVisibility::_first_token */
-/* 3: Attribute APublicVisibility::_last_token */
-val_t NEW_APublicVisibility(void) {
+/* 1: Object_id */
+/* 2: Attribute AMainClassdef::_parent */
+/* 3: Attribute AMainClassdef::_location */
+/* 4: Attribute AMainClassdef::_first_location */
+/* 5: Attribute AMainClassdef::_last_location */
+/* 6: Attribute AMainClassdef::_local_class */
+/* 7: Attribute AMainClassdef::_next_node */
+/* 8: Attribute AMainClassdef::_n_propdefs */
+void INIT_ATTRIBUTES__AMainClassdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AMainClassdef;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:371 */
+  ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//syntax_base.nit:531 */
+  ATTR_syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMainClassdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_APublicVisibility;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___APublicVisibility___empty_init() {
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_AMainClassdef;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AMainClassdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AMainClassdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_propdefs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMainClassdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APublicVisibility();
-  parser_prod___APublicVisibility___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___APublicVisibility___init_apublicvisibility() {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AMainClassdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AMainClassdef();
+  INIT_ATTRIBUTES__AMainClassdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMainClassdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AMainClassdef_parser_prod___AMainClassdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APublicVisibility();
-  parser_prod___APublicVisibility___init_apublicvisibility(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 863;
+  fra.me.meth = LOCATE_NEW_AMainClassdef_parser_prod___AMainClassdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMainClassdef();
+  /* ./parser//parser_prod.nit:863 */
+  INIT_ATTRIBUTES__AMainClassdef(fra.me.REG[0]);
+  parser_prod___AMainClassdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMainClassdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 865;
+  fra.me.meth = LOCATE_NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef;
+  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;
+  fra.me.REG[1] = NEW_AMainClassdef();
+  /* ./parser//parser_prod.nit:865 */
+  INIT_ATTRIBUTES__AMainClassdef(fra.me.REG[1]);
+  parser_prod___AMainClassdef___init_amainclassdef(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMainClassdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_APrivateVisibility[74] = {
-  {(bigint) 3419 /* 0: Identity */},
-  {(bigint) 3 /* 1: APrivateVisibility < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: APrivateVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: APrivateVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: APrivateVisibility < PVisibility: superclass typecheck marker */},
-  {(bigint) 3419 /* 5: APrivateVisibility < APrivateVisibility: superclass typecheck marker */},
+const classtable_elt_t VFT_AClasskind[72] = {
+  {(bigint) 5987 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AClasskind < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 5987 /* 5: AClasskind < AClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23670,14 +53400,13 @@ const classtable_elt_t VFT_APrivateVisibility[74] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: APrivateVisibility < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AClasskind < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23685,7 +53414,6 @@ const classtable_elt_t VFT_APrivateVisibility[74] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23693,75 +53421,110 @@ const classtable_elt_t VFT_APrivateVisibility[74] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___APrivateVisibility___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___APrivateVisibility___visit_all},
-  {(bigint) parser_prod___APrivateVisibility___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: APrivateVisibility < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: APrivateVisibility < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___APrivateVisibility___level},
-  {(bigint) 3 /* 68: APrivateVisibility < PVisibility: superclass init_table position */},
-  {(bigint) parser_prod___APrivateVisibility___empty_init},
-  {(bigint) parser_prod___APrivateVisibility___init_aprivatevisibility},
-  {(bigint) 4 /* 71: APrivateVisibility < APrivateVisibility: superclass init_table position */},
-  {(bigint) parser_nodes___APrivateVisibility___n_kwprivate},
-  {(bigint) parser_prod___APrivateVisibility___n_kwprivate__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute APrivateVisibility::_parent */
-/* 2: Attribute APrivateVisibility::_first_token */
-/* 3: Attribute APrivateVisibility::_last_token */
-/* 4: Attribute APrivateVisibility::_n_kwprivate */
-val_t NEW_APrivateVisibility(void) {
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AClasskind < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AClasskind < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AClasskind___is_interface},
+  {(bigint) mmbuilder___AClasskind___is_universal},
+  {(bigint) mmbuilder___AClasskind___is_abstract},
+  {(bigint) 3 /* 71: AClasskind < AClasskind: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AClasskind::_parent */
+/* 3: Attribute AClasskind::_location */
+/* 4: Attribute AClasskind::_first_location */
+/* 5: Attribute AClasskind::_last_location */
+void INIT_ATTRIBUTES__AClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClasskind(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_APrivateVisibility;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___APrivateVisibility___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APrivateVisibility();
-  parser_prod___APrivateVisibility___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APrivateVisibility();
-  parser_prod___APrivateVisibility___init_aprivatevisibility(self, p0, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AClasskind;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClasskind_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AClasskind_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AClasskind();
+  INIT_ATTRIBUTES__AClasskind(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AClasskind(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AProtectedVisibility[74] = {
-  {(bigint) 3415 /* 0: Identity */},
-  {(bigint) 3 /* 1: AProtectedVisibility < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AProtectedVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AProtectedVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: AProtectedVisibility < PVisibility: superclass typecheck marker */},
-  {(bigint) 3415 /* 5: AProtectedVisibility < AProtectedVisibility: superclass typecheck marker */},
+const classtable_elt_t VFT_AConcreteClasskind[77] = {
+  {(bigint) 6311 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AConcreteClasskind < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AConcreteClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AConcreteClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 5987 /* 5: AConcreteClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 6311 /* 6: AConcreteClasskind < AConcreteClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23769,14 +53532,12 @@ const classtable_elt_t VFT_AProtectedVisibility[74] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AProtectedVisibility < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AConcreteClasskind < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23784,7 +53545,6 @@ const classtable_elt_t VFT_AProtectedVisibility[74] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23792,75 +53552,166 @@ const classtable_elt_t VFT_AProtectedVisibility[74] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AProtectedVisibility___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AConcreteClasskind___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AProtectedVisibility___visit_all},
-  {(bigint) parser_prod___AProtectedVisibility___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AProtectedVisibility < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AProtectedVisibility < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___AProtectedVisibility___level},
-  {(bigint) 3 /* 68: AProtectedVisibility < PVisibility: superclass init_table position */},
-  {(bigint) parser_prod___AProtectedVisibility___empty_init},
-  {(bigint) parser_prod___AProtectedVisibility___init_aprotectedvisibility},
-  {(bigint) 4 /* 71: AProtectedVisibility < AProtectedVisibility: superclass init_table position */},
-  {(bigint) parser_nodes___AProtectedVisibility___n_kwprotected},
-  {(bigint) parser_prod___AProtectedVisibility___n_kwprotected__eq},
+  {(bigint) parser_prod___AConcreteClasskind___visit_all},
+  {(bigint) parser_prod___AConcreteClasskind___visit_all_reverse},
+  {(bigint) 1 /* 59: AConcreteClasskind < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AConcreteClasskind < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AClasskind___is_interface},
+  {(bigint) mmbuilder___AClasskind___is_universal},
+  {(bigint) mmbuilder___AClasskind___is_abstract},
+  {(bigint) 3 /* 71: AConcreteClasskind < AClasskind: superclass init_table position */},
+  {(bigint) parser_prod___AConcreteClasskind___empty_init},
+  {(bigint) parser_prod___AConcreteClasskind___init_aconcreteclasskind},
+  {(bigint) 4 /* 74: AConcreteClasskind < AConcreteClasskind: superclass init_table position */},
+  {(bigint) parser_nodes___AConcreteClasskind___n_kwclass},
+  {(bigint) parser_prod___AConcreteClasskind___n_kwclass__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AProtectedVisibility::_parent */
-/* 2: Attribute AProtectedVisibility::_first_token */
-/* 3: Attribute AProtectedVisibility::_last_token */
-/* 4: Attribute AProtectedVisibility::_n_kwprotected */
-val_t NEW_AProtectedVisibility(void) {
+/* 1: Object_id */
+/* 2: Attribute AConcreteClasskind::_parent */
+/* 3: Attribute AConcreteClasskind::_location */
+/* 4: Attribute AConcreteClasskind::_first_location */
+/* 5: Attribute AConcreteClasskind::_last_location */
+/* 6: Attribute AConcreteClasskind::_n_kwclass */
+void INIT_ATTRIBUTES__AConcreteClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AConcreteClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AConcreteClasskind(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_AProtectedVisibility;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AProtectedVisibility___empty_init() {
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AConcreteClasskind;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AConcreteClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AConcreteClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwclass");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AConcreteClasskind_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AProtectedVisibility();
-  parser_prod___AProtectedVisibility___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AConcreteClasskind_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AConcreteClasskind();
+  INIT_ATTRIBUTES__AConcreteClasskind(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteClasskind(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AProtectedVisibility();
-  parser_prod___AProtectedVisibility___init_aprotectedvisibility(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 918;
+  fra.me.meth = LOCATE_NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AConcreteClasskind();
+  /* ./parser//parser_prod.nit:918 */
+  INIT_ATTRIBUTES__AConcreteClasskind(fra.me.REG[0]);
+  parser_prod___AConcreteClasskind___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteClasskind(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 920;
+  fra.me.meth = LOCATE_NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcreteclasskind;
+  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;
+  fra.me.REG[1] = NEW_AConcreteClasskind();
+  /* ./parser//parser_prod.nit:920 */
+  INIT_ATTRIBUTES__AConcreteClasskind(fra.me.REG[1]);
+  parser_prod___AConcreteClasskind___init_aconcreteclasskind(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteClasskind(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AIntrudeVisibility[74] = {
-  {(bigint) 3483 /* 0: Identity */},
-  {(bigint) 3 /* 1: AIntrudeVisibility < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AIntrudeVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AIntrudeVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: AIntrudeVisibility < PVisibility: superclass typecheck marker */},
-  {(bigint) 3483 /* 5: AIntrudeVisibility < AIntrudeVisibility: superclass typecheck marker */},
+const classtable_elt_t VFT_AAbstractClasskind[79] = {
+  {(bigint) 6371 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAbstractClasskind < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAbstractClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAbstractClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 5987 /* 5: AAbstractClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 6371 /* 6: AAbstractClasskind < AAbstractClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23868,14 +53719,12 @@ const classtable_elt_t VFT_AIntrudeVisibility[74] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AIntrudeVisibility < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAbstractClasskind < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -23883,7 +53732,6 @@ const classtable_elt_t VFT_AIntrudeVisibility[74] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -23891,620 +53739,178 @@ const classtable_elt_t VFT_AIntrudeVisibility[74] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AIntrudeVisibility___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AIntrudeVisibility___visit_all},
-  {(bigint) parser_prod___AIntrudeVisibility___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AIntrudeVisibility < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AIntrudeVisibility < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___AIntrudeVisibility___level},
-  {(bigint) 3 /* 68: AIntrudeVisibility < PVisibility: superclass init_table position */},
-  {(bigint) parser_prod___AIntrudeVisibility___empty_init},
-  {(bigint) parser_prod___AIntrudeVisibility___init_aintrudevisibility},
-  {(bigint) 4 /* 71: AIntrudeVisibility < AIntrudeVisibility: superclass init_table position */},
-  {(bigint) parser_nodes___AIntrudeVisibility___n_kwintrude},
-  {(bigint) parser_prod___AIntrudeVisibility___n_kwintrude__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AIntrudeVisibility::_parent */
-/* 2: Attribute AIntrudeVisibility::_first_token */
-/* 3: Attribute AIntrudeVisibility::_last_token */
-/* 4: Attribute AIntrudeVisibility::_n_kwintrude */
-val_t NEW_AIntrudeVisibility(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_AIntrudeVisibility;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AIntrudeVisibility___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIntrudeVisibility();
-  parser_prod___AIntrudeVisibility___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIntrudeVisibility();
-  parser_prod___AIntrudeVisibility___init_aintrudevisibility(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_AClassdef[95] = {
-  {(bigint) 3551 /* 0: Identity */},
-  {(bigint) 3 /* 1: AClassdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AClassdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 4: AClassdef < PClassdef: superclass typecheck marker */},
-  {(bigint) 3551 /* 5: AClassdef < AClassdef: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AClassdef < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
-  {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
-  {(bigint) kernel___Object___exit},
-  {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
-  {(bigint) file___Object___printn},
-  {(bigint) file___Object___print},
-  {(bigint) file___Object___getc},
-  {(bigint) file___Object___gets},
-  {(bigint) file___Object___stdin},
-  {(bigint) file___Object___stdout},
-  {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
-  {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PClassdef___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___AClassdef___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) mmbuilder___PClassdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AClassdef___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AClassdef___visit_all},
-  {(bigint) parser_prod___AClassdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AClassdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PClassdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AClassdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___AClassdef___name},
-  {(bigint) mmbuilder___AClassdef___arity},
-  {(bigint) mmbuilder___AClassdef___visibility_level},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) mmbuilder___PClassdef___local_class},
-  {(bigint) 3 /* 73: AClassdef < PClassdef: superclass init_table position */},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) parser_prod___AClassdef___empty_init},
-  {(bigint) parser_prod___AClassdef___init_aclassdef},
-  {(bigint) 4 /* 78: AClassdef < AClassdef: superclass init_table position */},
-  {(bigint) parser_nodes___AClassdef___n_doc},
-  {(bigint) parser_prod___AClassdef___n_doc__eq},
-  {(bigint) parser_nodes___AClassdef___n_kwredef},
-  {(bigint) parser_prod___AClassdef___n_kwredef__eq},
-  {(bigint) parser_nodes___AClassdef___n_visibility},
-  {(bigint) parser_prod___AClassdef___n_visibility__eq},
-  {(bigint) parser_nodes___AClassdef___n_classkind},
-  {(bigint) parser_prod___AClassdef___n_classkind__eq},
-  {(bigint) parser_nodes___AClassdef___n_id},
-  {(bigint) parser_prod___AClassdef___n_id__eq},
-  {(bigint) parser_nodes___AClassdef___n_formaldefs},
-  {(bigint) parser_nodes___AClassdef___n_formaldefs__eq},
-  {(bigint) parser_nodes___AClassdef___n_superclasses},
-  {(bigint) parser_nodes___AClassdef___n_superclasses__eq},
-  {(bigint) parser_nodes___AClassdef___n_propdefs},
-  {(bigint) parser_nodes___AClassdef___n_propdefs__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AClassdef::_parent */
-/* 2: Attribute AClassdef::_first_token */
-/* 3: Attribute AClassdef::_last_token */
-/* 4: Attribute AClassdef::_local_class */
-/* 5: Attribute AClassdef::_n_doc */
-/* 6: Attribute AClassdef::_n_kwredef */
-/* 7: Attribute AClassdef::_n_visibility */
-/* 8: Attribute AClassdef::_n_classkind */
-/* 9: Attribute AClassdef::_n_id */
-/* 10: Attribute AClassdef::_n_formaldefs */
-/* 11: Attribute AClassdef::_n_superclasses */
-/* 12: Attribute AClassdef::_n_propdefs */
-val_t NEW_AClassdef(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_AClassdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AClassdef___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AClassdef();
-  parser_prod___AClassdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AClassdef___init_aclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AClassdef();
-  parser_prod___AClassdef___init_aclassdef(self, p0, p1, p2, p3, p4, p5, p6, p7, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ATopClassdef[80] = {
-  {(bigint) 3351 /* 0: Identity */},
-  {(bigint) 3 /* 1: ATopClassdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ATopClassdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ATopClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 4: ATopClassdef < PClassdef: superclass typecheck marker */},
-  {(bigint) 3351 /* 5: ATopClassdef < ATopClassdef: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ATopClassdef < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
-  {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
-  {(bigint) kernel___Object___exit},
-  {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
-  {(bigint) file___Object___printn},
-  {(bigint) file___Object___print},
-  {(bigint) file___Object___getc},
-  {(bigint) file___Object___gets},
-  {(bigint) file___Object___stdin},
-  {(bigint) file___Object___stdout},
-  {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
-  {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PClassdef___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) mmbuilder___PClassdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___ATopClassdef___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___ATopClassdef___visit_all},
-  {(bigint) parser_prod___ATopClassdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ATopClassdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PClassdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: ATopClassdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___ATopClassdef___name},
-  {(bigint) mmbuilder___PClassdef___arity},
-  {(bigint) mmbuilder___PClassdef___visibility_level},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) mmbuilder___PClassdef___local_class},
-  {(bigint) 3 /* 73: ATopClassdef < PClassdef: superclass init_table position */},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) parser_prod___ATopClassdef___empty_init},
-  {(bigint) parser_prod___ATopClassdef___init_atopclassdef},
-  {(bigint) 4 /* 77: ATopClassdef < ATopClassdef: superclass init_table position */},
-  {(bigint) parser_nodes___ATopClassdef___n_propdefs},
-  {(bigint) parser_nodes___ATopClassdef___n_propdefs__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ATopClassdef::_parent */
-/* 2: Attribute ATopClassdef::_first_token */
-/* 3: Attribute ATopClassdef::_last_token */
-/* 4: Attribute ATopClassdef::_local_class */
-/* 5: Attribute ATopClassdef::_n_propdefs */
-val_t NEW_ATopClassdef(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_ATopClassdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ATopClassdef___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ATopClassdef();
-  parser_prod___ATopClassdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ATopClassdef___init_atopclassdef(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ATopClassdef();
-  parser_prod___ATopClassdef___init_atopclassdef(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_AMainClassdef[80] = {
-  {(bigint) 3471 /* 0: Identity */},
-  {(bigint) 3 /* 1: AMainClassdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AMainClassdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AMainClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 4: AMainClassdef < PClassdef: superclass typecheck marker */},
-  {(bigint) 3471 /* 5: AMainClassdef < AMainClassdef: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AMainClassdef < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
-  {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
-  {(bigint) kernel___Object___exit},
-  {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
-  {(bigint) file___Object___printn},
-  {(bigint) file___Object___print},
-  {(bigint) file___Object___getc},
-  {(bigint) file___Object___gets},
-  {(bigint) file___Object___stdin},
-  {(bigint) file___Object___stdout},
-  {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
-  {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PClassdef___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) mmbuilder___PClassdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AMainClassdef___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AMainClassdef___visit_all},
-  {(bigint) parser_prod___AMainClassdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AMainClassdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PClassdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AMainClassdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___AMainClassdef___name},
-  {(bigint) mmbuilder___PClassdef___arity},
-  {(bigint) mmbuilder___PClassdef___visibility_level},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) mmbuilder___PClassdef___local_class},
-  {(bigint) 3 /* 73: AMainClassdef < PClassdef: superclass init_table position */},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) parser_prod___AMainClassdef___empty_init},
-  {(bigint) parser_prod___AMainClassdef___init_amainclassdef},
-  {(bigint) 4 /* 77: AMainClassdef < AMainClassdef: superclass init_table position */},
-  {(bigint) parser_nodes___AMainClassdef___n_propdefs},
-  {(bigint) parser_nodes___AMainClassdef___n_propdefs__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AMainClassdef::_parent */
-/* 2: Attribute AMainClassdef::_first_token */
-/* 3: Attribute AMainClassdef::_last_token */
-/* 4: Attribute AMainClassdef::_local_class */
-/* 5: Attribute AMainClassdef::_n_propdefs */
-val_t NEW_AMainClassdef(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_AMainClassdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AMainClassdef___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AMainClassdef();
-  parser_prod___AMainClassdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AMainClassdef___init_amainclassdef(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AMainClassdef();
-  parser_prod___AMainClassdef___init_amainclassdef(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_AConcreteClasskind[76] = {
-  {(bigint) 3547 /* 0: Identity */},
-  {(bigint) 3 /* 1: AConcreteClasskind < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AConcreteClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AConcreteClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3103 /* 4: AConcreteClasskind < PClasskind: superclass typecheck marker */},
-  {(bigint) 3547 /* 5: AConcreteClasskind < AConcreteClasskind: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AConcreteClasskind < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
-  {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
-  {(bigint) kernel___Object___exit},
-  {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
-  {(bigint) file___Object___printn},
-  {(bigint) file___Object___print},
-  {(bigint) file___Object___getc},
-  {(bigint) file___Object___gets},
-  {(bigint) file___Object___stdin},
-  {(bigint) file___Object___stdout},
-  {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
-  {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AConcreteClasskind___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AConcreteClasskind___visit_all},
-  {(bigint) parser_prod___AConcreteClasskind___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AConcreteClasskind < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AConcreteClasskind < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PClasskind___is_interface},
-  {(bigint) mmbuilder___PClasskind___is_universal},
-  {(bigint) mmbuilder___PClasskind___is_abstract},
-  {(bigint) 3 /* 70: AConcreteClasskind < PClasskind: superclass init_table position */},
-  {(bigint) parser_prod___AConcreteClasskind___empty_init},
-  {(bigint) parser_prod___AConcreteClasskind___init_aconcreteclasskind},
-  {(bigint) 4 /* 73: AConcreteClasskind < AConcreteClasskind: superclass init_table position */},
-  {(bigint) parser_nodes___AConcreteClasskind___n_kwclass},
-  {(bigint) parser_prod___AConcreteClasskind___n_kwclass__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AConcreteClasskind::_parent */
-/* 2: Attribute AConcreteClasskind::_first_token */
-/* 3: Attribute AConcreteClasskind::_last_token */
-/* 4: Attribute AConcreteClasskind::_n_kwclass */
-val_t NEW_AConcreteClasskind(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_AConcreteClasskind;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AConcreteClasskind___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AConcreteClasskind();
-  parser_prod___AConcreteClasskind___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AConcreteClasskind();
-  parser_prod___AConcreteClasskind___init_aconcreteclasskind(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_AAbstractClasskind[78] = {
-  {(bigint) 3607 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAbstractClasskind < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAbstractClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAbstractClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3103 /* 4: AAbstractClasskind < PClasskind: superclass typecheck marker */},
-  {(bigint) 3607 /* 5: AAbstractClasskind < AAbstractClasskind: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAbstractClasskind < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
-  {(bigint) kernel___Object_____neq},
-  {(bigint) kernel___Object___output},
-  {(bigint) kernel___Object___exit},
-  {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
-  {(bigint) file___Object___printn},
-  {(bigint) file___Object___print},
-  {(bigint) file___Object___getc},
-  {(bigint) file___Object___gets},
-  {(bigint) file___Object___stdin},
-  {(bigint) file___Object___stdout},
-  {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
-  {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AAbstractClasskind___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AAbstractClasskind___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAbstractClasskind___visit_all},
   {(bigint) parser_prod___AAbstractClasskind___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAbstractClasskind < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AAbstractClasskind < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAbstractClasskind < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PClasskind___is_interface},
-  {(bigint) mmbuilder___PClasskind___is_universal},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AClasskind___is_interface},
+  {(bigint) mmbuilder___AClasskind___is_universal},
   {(bigint) mmbuilder___AAbstractClasskind___is_abstract},
-  {(bigint) 3 /* 70: AAbstractClasskind < PClasskind: superclass init_table position */},
+  {(bigint) 3 /* 71: AAbstractClasskind < AClasskind: superclass init_table position */},
   {(bigint) parser_prod___AAbstractClasskind___empty_init},
   {(bigint) parser_prod___AAbstractClasskind___init_aabstractclasskind},
-  {(bigint) 4 /* 73: AAbstractClasskind < AAbstractClasskind: superclass init_table position */},
+  {(bigint) 4 /* 74: AAbstractClasskind < AAbstractClasskind: superclass init_table position */},
   {(bigint) parser_nodes___AAbstractClasskind___n_kwabstract},
   {(bigint) parser_prod___AAbstractClasskind___n_kwabstract__eq},
   {(bigint) parser_nodes___AAbstractClasskind___n_kwclass},
   {(bigint) parser_prod___AAbstractClasskind___n_kwclass__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAbstractClasskind::_parent */
-/* 2: Attribute AAbstractClasskind::_first_token */
-/* 3: Attribute AAbstractClasskind::_last_token */
-/* 4: Attribute AAbstractClasskind::_n_kwabstract */
-/* 5: Attribute AAbstractClasskind::_n_kwclass */
-val_t NEW_AAbstractClasskind(void) {
+/* 1: Object_id */
+/* 2: Attribute AAbstractClasskind::_parent */
+/* 3: Attribute AAbstractClasskind::_location */
+/* 4: Attribute AAbstractClasskind::_first_location */
+/* 5: Attribute AAbstractClasskind::_last_location */
+/* 6: Attribute AAbstractClasskind::_n_kwabstract */
+/* 7: Attribute AAbstractClasskind::_n_kwclass */
+void INIT_ATTRIBUTES__AAbstractClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAbstractClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAbstractClasskind(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AAbstractClasskind;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAbstractClasskind___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAbstractClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAbstractClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwabstract");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwclass");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAbstractClasskind_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAbstractClasskind();
-  parser_prod___AAbstractClasskind___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAbstractClasskind_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAbstractClasskind();
+  INIT_ATTRIBUTES__AAbstractClasskind(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAbstractClasskind(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 965;
+  fra.me.meth = LOCATE_NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAbstractClasskind();
+  /* ./parser//parser_prod.nit:965 */
+  INIT_ATTRIBUTES__AAbstractClasskind(fra.me.REG[0]);
+  parser_prod___AAbstractClasskind___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAbstractClasskind(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAbstractClasskind();
-  parser_prod___AAbstractClasskind___init_aabstractclasskind(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 967;
+  fra.me.meth = LOCATE_NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractclasskind;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AAbstractClasskind();
+  /* ./parser//parser_prod.nit:967 */
+  INIT_ATTRIBUTES__AAbstractClasskind(fra.me.REG[2]);
+  parser_prod___AAbstractClasskind___init_aabstractclasskind(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AAbstractClasskind(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AInterfaceClasskind[76] = {
-  {(bigint) 3487 /* 0: Identity */},
-  {(bigint) 3 /* 1: AInterfaceClasskind < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AInterfaceClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AInterfaceClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3103 /* 4: AInterfaceClasskind < PClasskind: superclass typecheck marker */},
-  {(bigint) 3487 /* 5: AInterfaceClasskind < AInterfaceClasskind: superclass typecheck marker */},
+const classtable_elt_t VFT_AInterfaceClasskind[77] = {
+  {(bigint) 6259 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AInterfaceClasskind < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AInterfaceClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AInterfaceClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 5987 /* 5: AInterfaceClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 6259 /* 6: AInterfaceClasskind < AInterfaceClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24512,14 +53918,12 @@ const classtable_elt_t VFT_AInterfaceClasskind[76] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AInterfaceClasskind < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AInterfaceClasskind < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -24527,7 +53931,6 @@ const classtable_elt_t VFT_AInterfaceClasskind[76] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -24535,77 +53938,166 @@ const classtable_elt_t VFT_AInterfaceClasskind[76] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AInterfaceClasskind___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AInterfaceClasskind___visit_all},
   {(bigint) parser_prod___AInterfaceClasskind___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AInterfaceClasskind < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AInterfaceClasskind < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AInterfaceClasskind < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) mmbuilder___AInterfaceClasskind___is_interface},
-  {(bigint) mmbuilder___PClasskind___is_universal},
-  {(bigint) mmbuilder___PClasskind___is_abstract},
-  {(bigint) 3 /* 70: AInterfaceClasskind < PClasskind: superclass init_table position */},
+  {(bigint) mmbuilder___AClasskind___is_universal},
+  {(bigint) mmbuilder___AClasskind___is_abstract},
+  {(bigint) 3 /* 71: AInterfaceClasskind < AClasskind: superclass init_table position */},
   {(bigint) parser_prod___AInterfaceClasskind___empty_init},
   {(bigint) parser_prod___AInterfaceClasskind___init_ainterfaceclasskind},
-  {(bigint) 4 /* 73: AInterfaceClasskind < AInterfaceClasskind: superclass init_table position */},
+  {(bigint) 4 /* 74: AInterfaceClasskind < AInterfaceClasskind: superclass init_table position */},
   {(bigint) parser_nodes___AInterfaceClasskind___n_kwinterface},
   {(bigint) parser_prod___AInterfaceClasskind___n_kwinterface__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AInterfaceClasskind::_parent */
-/* 2: Attribute AInterfaceClasskind::_first_token */
-/* 3: Attribute AInterfaceClasskind::_last_token */
-/* 4: Attribute AInterfaceClasskind::_n_kwinterface */
-val_t NEW_AInterfaceClasskind(void) {
+/* 1: Object_id */
+/* 2: Attribute AInterfaceClasskind::_parent */
+/* 3: Attribute AInterfaceClasskind::_location */
+/* 4: Attribute AInterfaceClasskind::_first_location */
+/* 5: Attribute AInterfaceClasskind::_last_location */
+/* 6: Attribute AInterfaceClasskind::_n_kwinterface */
+void INIT_ATTRIBUTES__AInterfaceClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AInterfaceClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AInterfaceClasskind(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
+  obj = alloc(sizeof(val_t) * 7);
   obj->vft = (classtable_elt_t*)VFT_AInterfaceClasskind;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AInterfaceClasskind___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AInterfaceClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AInterfaceClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwinterface");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AInterfaceClasskind_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AInterfaceClasskind();
-  parser_prod___AInterfaceClasskind___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AInterfaceClasskind_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AInterfaceClasskind();
+  INIT_ATTRIBUTES__AInterfaceClasskind(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AInterfaceClasskind(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1022;
+  fra.me.meth = LOCATE_NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AInterfaceClasskind();
+  /* ./parser//parser_prod.nit:1022 */
+  INIT_ATTRIBUTES__AInterfaceClasskind(fra.me.REG[0]);
+  parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AInterfaceClasskind(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AInterfaceClasskind();
-  parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1024;
+  fra.me.meth = LOCATE_NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
+  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;
+  fra.me.REG[1] = NEW_AInterfaceClasskind();
+  /* ./parser//parser_prod.nit:1024 */
+  INIT_ATTRIBUTES__AInterfaceClasskind(fra.me.REG[1]);
+  parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AInterfaceClasskind(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AUniversalClasskind[76] = {
-  {(bigint) 3339 /* 0: Identity */},
-  {(bigint) 3 /* 1: AUniversalClasskind < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AUniversalClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AUniversalClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3103 /* 4: AUniversalClasskind < PClasskind: superclass typecheck marker */},
-  {(bigint) 3339 /* 5: AUniversalClasskind < AUniversalClasskind: superclass typecheck marker */},
+const classtable_elt_t VFT_AUniversalClasskind[77] = {
+  {(bigint) 6119 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AUniversalClasskind < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AUniversalClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AUniversalClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 5987 /* 5: AUniversalClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 6119 /* 6: AUniversalClasskind < AUniversalClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24613,14 +54105,12 @@ const classtable_elt_t VFT_AUniversalClasskind[76] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AUniversalClasskind < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AUniversalClasskind < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -24628,7 +54118,6 @@ const classtable_elt_t VFT_AUniversalClasskind[76] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -24636,77 +54125,165 @@ const classtable_elt_t VFT_AUniversalClasskind[76] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AUniversalClasskind___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AUniversalClasskind___visit_all},
   {(bigint) parser_prod___AUniversalClasskind___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AUniversalClasskind < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AUniversalClasskind < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AUniversalClasskind < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PClasskind___is_interface},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AClasskind___is_interface},
   {(bigint) mmbuilder___AUniversalClasskind___is_universal},
-  {(bigint) mmbuilder___PClasskind___is_abstract},
-  {(bigint) 3 /* 70: AUniversalClasskind < PClasskind: superclass init_table position */},
+  {(bigint) mmbuilder___AClasskind___is_abstract},
+  {(bigint) 3 /* 71: AUniversalClasskind < AClasskind: superclass init_table position */},
   {(bigint) parser_prod___AUniversalClasskind___empty_init},
   {(bigint) parser_prod___AUniversalClasskind___init_auniversalclasskind},
-  {(bigint) 4 /* 73: AUniversalClasskind < AUniversalClasskind: superclass init_table position */},
+  {(bigint) 4 /* 74: AUniversalClasskind < AUniversalClasskind: superclass init_table position */},
   {(bigint) parser_nodes___AUniversalClasskind___n_kwuniversal},
   {(bigint) parser_prod___AUniversalClasskind___n_kwuniversal__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AUniversalClasskind::_parent */
-/* 2: Attribute AUniversalClasskind::_first_token */
-/* 3: Attribute AUniversalClasskind::_last_token */
-/* 4: Attribute AUniversalClasskind::_n_kwuniversal */
-val_t NEW_AUniversalClasskind(void) {
+/* 1: Object_id */
+/* 2: Attribute AUniversalClasskind::_parent */
+/* 3: Attribute AUniversalClasskind::_location */
+/* 4: Attribute AUniversalClasskind::_first_location */
+/* 5: Attribute AUniversalClasskind::_last_location */
+/* 6: Attribute AUniversalClasskind::_n_kwuniversal */
+void INIT_ATTRIBUTES__AUniversalClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AUniversalClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AUniversalClasskind(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
+  obj = alloc(sizeof(val_t) * 7);
   obj->vft = (classtable_elt_t*)VFT_AUniversalClasskind;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AUniversalClasskind___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AUniversalClasskind(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AUniversalClasskind;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwuniversal");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AUniversalClasskind_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AUniversalClasskind();
-  parser_prod___AUniversalClasskind___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AUniversalClasskind_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AUniversalClasskind();
+  INIT_ATTRIBUTES__AUniversalClasskind(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AUniversalClasskind(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1064;
+  fra.me.meth = LOCATE_NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AUniversalClasskind();
+  /* ./parser//parser_prod.nit:1064 */
+  INIT_ATTRIBUTES__AUniversalClasskind(fra.me.REG[0]);
+  parser_prod___AUniversalClasskind___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AUniversalClasskind(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AUniversalClasskind();
-  parser_prod___AUniversalClasskind___init_auniversalclasskind(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1066;
+  fra.me.meth = LOCATE_NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___init_auniversalclasskind;
+  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;
+  fra.me.REG[1] = NEW_AUniversalClasskind();
+  /* ./parser//parser_prod.nit:1066 */
+  INIT_ATTRIBUTES__AUniversalClasskind(fra.me.REG[1]);
+  parser_prod___AUniversalClasskind___init_auniversalclasskind(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AUniversalClasskind(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
 const classtable_elt_t VFT_AFormaldef[77] = {
-  {(bigint) 3519 /* 0: Identity */},
-  {(bigint) 3 /* 1: AFormaldef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AFormaldef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AFormaldef < Prod: superclass typecheck marker */},
-  {(bigint) 3091 /* 4: AFormaldef < PFormaldef: superclass typecheck marker */},
-  {(bigint) 3519 /* 5: AFormaldef < AFormaldef: superclass typecheck marker */},
+  {(bigint) 5967 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AFormaldef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AFormaldef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AFormaldef < Prod: superclass typecheck marker */},
+  {(bigint) 5967 /* 5: AFormaldef < AFormaldef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24714,14 +54291,13 @@ const classtable_elt_t VFT_AFormaldef[77] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AFormaldef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AFormaldef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -24729,7 +54305,6 @@ const classtable_elt_t VFT_AFormaldef[77] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -24737,80 +54312,175 @@ const classtable_elt_t VFT_AFormaldef[77] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
   {(bigint) mmbuilder___AFormaldef___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
   {(bigint) mmbuilder___AFormaldef___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AFormaldef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AFormaldef___visit_all},
   {(bigint) parser_prod___AFormaldef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AFormaldef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AFormaldef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AFormaldef < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: AFormaldef < PFormaldef: superclass init_table position */},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) parser_prod___AFormaldef___empty_init},
   {(bigint) parser_prod___AFormaldef___init_aformaldef},
-  {(bigint) 4 /* 72: AFormaldef < AFormaldef: superclass init_table position */},
+  {(bigint) 3 /* 72: AFormaldef < AFormaldef: superclass init_table position */},
   {(bigint) parser_nodes___AFormaldef___n_id},
   {(bigint) parser_prod___AFormaldef___n_id__eq},
   {(bigint) parser_nodes___AFormaldef___n_type},
   {(bigint) parser_prod___AFormaldef___n_type__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AFormaldef::_parent */
-/* 2: Attribute AFormaldef::_first_token */
-/* 3: Attribute AFormaldef::_last_token */
-/* 4: Attribute AFormaldef::_formal */
-/* 5: Attribute AFormaldef::_n_id */
-/* 6: Attribute AFormaldef::_n_type */
-val_t NEW_AFormaldef(void) {
+/* 1: Object_id */
+/* 2: Attribute AFormaldef::_parent */
+/* 3: Attribute AFormaldef::_location */
+/* 4: Attribute AFormaldef::_first_location */
+/* 5: Attribute AFormaldef::_last_location */
+/* 6: Attribute AFormaldef::_formal */
+/* 7: Attribute AFormaldef::_n_id */
+/* 8: Attribute AFormaldef::_n_type */
+void INIT_ATTRIBUTES__AFormaldef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AFormaldef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:394 */
+  ATTR_parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AFormaldef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_AFormaldef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AFormaldef___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AFormaldef();
-  parser_prod___AFormaldef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AFormaldef();
-  parser_prod___AFormaldef___init_aformaldef(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AFormaldef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AFormaldef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AFormaldef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AFormaldef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AFormaldef();
+  INIT_ATTRIBUTES__AFormaldef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AFormaldef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AFormaldef_parser_prod___AFormaldef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1113;
+  fra.me.meth = LOCATE_NEW_AFormaldef_parser_prod___AFormaldef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AFormaldef();
+  /* ./parser//parser_prod.nit:1113 */
+  INIT_ATTRIBUTES__AFormaldef(fra.me.REG[0]);
+  parser_prod___AFormaldef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AFormaldef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1115;
+  fra.me.meth = LOCATE_NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AFormaldef();
+  /* ./parser//parser_prod.nit:1115 */
+  INIT_ATTRIBUTES__AFormaldef(fra.me.REG[2]);
+  parser_prod___AFormaldef___init_aformaldef(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AFormaldef(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
 const classtable_elt_t VFT_ASuperclass[79] = {
-  {(bigint) 3359 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASuperclass < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASuperclass < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASuperclass < Prod: superclass typecheck marker */},
-  {(bigint) 3055 /* 4: ASuperclass < PSuperclass: superclass typecheck marker */},
-  {(bigint) 3359 /* 5: ASuperclass < ASuperclass: superclass typecheck marker */},
+  {(bigint) 5923 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASuperclass < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASuperclass < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASuperclass < Prod: superclass typecheck marker */},
+  {(bigint) 5923 /* 5: ASuperclass < ASuperclass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24818,14 +54488,13 @@ const classtable_elt_t VFT_ASuperclass[79] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ASuperclass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ASuperclass < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -24833,7 +54502,6 @@ const classtable_elt_t VFT_ASuperclass[79] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -24841,82 +54509,178 @@ const classtable_elt_t VFT_ASuperclass[79] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
   {(bigint) mmbuilder___ASuperclass___accept_class_specialization_builder},
   {(bigint) mmbuilder___ASuperclass___accept_class_ancestor_builder},
   {(bigint) mmbuilder___ASuperclass___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASuperclass___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASuperclass___visit_all},
   {(bigint) parser_prod___ASuperclass___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ASuperclass < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ASuperclass < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ASuperclass < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: ASuperclass < PSuperclass: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) mmbuilder___ASuperclass___ancestor},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) parser_prod___ASuperclass___empty_init},
   {(bigint) parser_prod___ASuperclass___init_asuperclass},
-  {(bigint) 4 /* 74: ASuperclass < ASuperclass: superclass init_table position */},
+  {(bigint) 3 /* 74: ASuperclass < ASuperclass: superclass init_table position */},
   {(bigint) parser_nodes___ASuperclass___n_kwspecial},
   {(bigint) parser_prod___ASuperclass___n_kwspecial__eq},
   {(bigint) parser_nodes___ASuperclass___n_type},
   {(bigint) parser_prod___ASuperclass___n_type__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASuperclass::_parent */
-/* 2: Attribute ASuperclass::_first_token */
-/* 3: Attribute ASuperclass::_last_token */
-/* 4: Attribute ASuperclass::_ancestor */
-/* 5: Attribute ASuperclass::_n_kwspecial */
-/* 6: Attribute ASuperclass::_n_type */
-val_t NEW_ASuperclass(void) {
+/* 1: Object_id */
+/* 2: Attribute ASuperclass::_parent */
+/* 3: Attribute ASuperclass::_location */
+/* 4: Attribute ASuperclass::_first_location */
+/* 5: Attribute ASuperclass::_last_location */
+/* 6: Attribute ASuperclass::_ancestor */
+/* 7: Attribute ASuperclass::_n_kwspecial */
+/* 8: Attribute ASuperclass::_n_type */
+void INIT_ATTRIBUTES__ASuperclass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASuperclass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperclass(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_ASuperclass;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ASuperclass___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASuperclass();
-  parser_prod___ASuperclass___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASuperclass();
-  parser_prod___ASuperclass___init_asuperclass(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASuperclass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASuperclass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwspecial");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_type");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperclass_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASuperclass_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASuperclass();
+  INIT_ATTRIBUTES__ASuperclass(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASuperclass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASuperclass_parser_prod___ASuperclass___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1181;
+  fra.me.meth = LOCATE_NEW_ASuperclass_parser_prod___ASuperclass___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASuperclass();
+  /* ./parser//parser_prod.nit:1181 */
+  INIT_ATTRIBUTES__ASuperclass(fra.me.REG[0]);
+  parser_prod___ASuperclass___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASuperclass(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1183;
+  fra.me.meth = LOCATE_NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ASuperclass();
+  /* ./parser//parser_prod.nit:1183 */
+  INIT_ATTRIBUTES__ASuperclass(fra.me.REG[2]);
+  parser_prod___ASuperclass___init_asuperclass(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ASuperclass(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AAttrPropdef[100] = {
-  {(bigint) 3579 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAttrPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAttrPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAttrPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: AAttrPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3579 /* 5: AAttrPropdef < AAttrPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_APropdef[76] = {
+  {(bigint) 5935 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: APropdef < APropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24924,14 +54688,156 @@ const classtable_elt_t VFT_AAttrPropdef[100] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: APropdef < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAttrPropdef < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: APropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: APropdef < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: APropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
+  {(bigint) parser_nodes___APropdef___n_doc__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute APropdef::_parent */
+/* 3: Attribute APropdef::_location */
+/* 4: Attribute APropdef::_first_location */
+/* 5: Attribute APropdef::_last_location */
+/* 6: Attribute APropdef::_n_doc */
+/* 7: Attribute APropdef::_self_var */
+void INIT_ATTRIBUTES__APropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APropdef(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_APropdef;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APropdef();
+  INIT_ATTRIBUTES__APropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_AAttrPropdef[103] = {
+  {(bigint) 6343 /* 0: Identity */},
+  {(bigint) 19 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAttrPropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAttrPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAttrPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: AAttrPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6343 /* 6: AAttrPropdef < AAttrPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAttrPropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -24939,7 +54845,6 @@ const classtable_elt_t VFT_AAttrPropdef[100] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -24947,59 +54852,63 @@ const classtable_elt_t VFT_AAttrPropdef[100] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___AAttrPropdef___accept_property_builder},
   {(bigint) mmbuilder___AAttrPropdef___accept_property_verifier},
   {(bigint) mmbuilder___AAttrPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AAttrPropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAttrPropdef___visit_all},
   {(bigint) parser_prod___AAttrPropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAttrPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) 1 /* 59: AAttrPropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AAttrPropdef___accept_icode_generation},
   {(bigint) typing___AAttrPropdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAttrPropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: AAttrPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: AAttrPropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___AAttrPropdef___n_doc__eq},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___AAttrPropdef___prop},
   {(bigint) mmbuilder___AAttrPropdef___readmethod},
   {(bigint) mmbuilder___AAttrPropdef___writemethod},
   {(bigint) parser_prod___AAttrPropdef___empty_init},
   {(bigint) parser_prod___AAttrPropdef___init_aattrpropdef},
-  {(bigint) 4 /* 82: AAttrPropdef < AAttrPropdef: superclass init_table position */},
+  {(bigint) 4 /* 84: AAttrPropdef < AAttrPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AAttrPropdef___n_kwredef},
   {(bigint) parser_prod___AAttrPropdef___n_kwredef__eq},
   {(bigint) parser_nodes___AAttrPropdef___n_visibility},
   {(bigint) parser_prod___AAttrPropdef___n_visibility__eq},
-  {(bigint) parser_nodes___AAttrPropdef___n_kwattr},
-  {(bigint) parser_prod___AAttrPropdef___n_kwattr__eq},
+  {(bigint) parser_nodes___AAttrPropdef___n_kwvar},
+  {(bigint) parser_prod___AAttrPropdef___n_kwvar__eq},
   {(bigint) parser_nodes___AAttrPropdef___n_id},
   {(bigint) parser_prod___AAttrPropdef___n_id__eq},
   {(bigint) parser_nodes___AAttrPropdef___n_type},
@@ -25010,49 +54919,188 @@ const classtable_elt_t VFT_AAttrPropdef[100] = {
   {(bigint) parser_prod___AAttrPropdef___n_writable__eq},
   {(bigint) parser_nodes___AAttrPropdef___n_expr},
   {(bigint) parser_prod___AAttrPropdef___n_expr__eq},
-  {(bigint) typing___PNode___accept_typing},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AAttrPropdef::_parent */
-/* 2: Attribute AAttrPropdef::_first_token */
-/* 3: Attribute AAttrPropdef::_last_token */
-/* 4: Attribute AAttrPropdef::_n_doc */
-/* 5: Attribute AAttrPropdef::_readmethod */
-/* 6: Attribute AAttrPropdef::_writemethod */
-/* 7: Attribute AAttrPropdef::_prop */
-/* 8: Attribute AAttrPropdef::_n_kwredef */
-/* 9: Attribute AAttrPropdef::_n_visibility */
-/* 10: Attribute AAttrPropdef::_n_kwattr */
-/* 11: Attribute AAttrPropdef::_n_id */
-/* 12: Attribute AAttrPropdef::_n_type */
-/* 13: Attribute AAttrPropdef::_n_readable */
-/* 14: Attribute AAttrPropdef::_n_writable */
-/* 15: Attribute AAttrPropdef::_n_expr */
-val_t NEW_AAttrPropdef(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 16);
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AAttrPropdef::_parent */
+/* 3: Attribute AAttrPropdef::_location */
+/* 4: Attribute AAttrPropdef::_first_location */
+/* 5: Attribute AAttrPropdef::_last_location */
+/* 6: Attribute AAttrPropdef::_n_doc */
+/* 7: Attribute AAttrPropdef::_self_var */
+/* 8: Attribute AAttrPropdef::_readmethod */
+/* 9: Attribute AAttrPropdef::_writemethod */
+/* 10: Attribute AAttrPropdef::_prop */
+/* 11: Attribute AAttrPropdef::_n_kwredef */
+/* 12: Attribute AAttrPropdef::_n_visibility */
+/* 13: Attribute AAttrPropdef::_n_kwvar */
+/* 14: Attribute AAttrPropdef::_n_id */
+/* 15: Attribute AAttrPropdef::_n_type */
+/* 16: Attribute AAttrPropdef::_n_readable */
+/* 17: Attribute AAttrPropdef::_n_writable */
+/* 18: Attribute AAttrPropdef::_n_expr */
+void INIT_ATTRIBUTES__AAttrPropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAttrPropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:406 */
+  ATTR_parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:410 */
+  ATTR_parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:411 */
+  ATTR_parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:412 */
+  ATTR_parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:413 */
+  ATTR_parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrPropdef(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 19);
   obj->vft = (classtable_elt_t*)VFT_AAttrPropdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAttrPropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAttrPropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAttrPropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_visibility");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwvar");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrPropdef____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrPropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAttrPropdef();
-  parser_prod___AAttrPropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAttrPropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAttrPropdef();
+  INIT_ATTRIBUTES__AAttrPropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAttrPropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAttrPropdef_parser_prod___AAttrPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1290;
+  fra.me.meth = LOCATE_NEW_AAttrPropdef_parser_prod___AAttrPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAttrPropdef();
+  /* ./parser//parser_prod.nit:1290 */
+  INIT_ATTRIBUTES__AAttrPropdef(fra.me.REG[0]);
+  parser_prod___AAttrPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAttrPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8){
+  struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAttrPropdef();
-  parser_prod___AAttrPropdef___init_aattrpropdef(self, p0, p1, p2, p3, p4, p5, p6, p7, p8, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1292;
+  fra.me.meth = LOCATE_NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 10;
+  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[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  fra.me.REG[7] = p7;
+  fra.me.REG[8] = p8;
+  fra.me.REG[9] = NEW_AAttrPropdef();
+  /* ./parser//parser_prod.nit:1292 */
+  INIT_ATTRIBUTES__AAttrPropdef(fra.me.REG[9]);
+  parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7], fra.me.REG[8], init_table);
+  CHECKNEW_AAttrPropdef(fra.me.REG[9]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[9];
 }
-const classtable_elt_t VFT_AMethPropdef[93] = {
-  {(bigint) 3467 /* 0: Identity */},
-  {(bigint) 3 /* 1: AMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: AMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3467 /* 5: AMethPropdef < AMethPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_AMethPropdef[95] = {
+  {(bigint) 6235 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AMethPropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: AMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6235 /* 6: AMethPropdef < AMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25060,14 +55108,12 @@ const classtable_elt_t VFT_AMethPropdef[93] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AMethPropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AMethPropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -25075,7 +55121,6 @@ const classtable_elt_t VFT_AMethPropdef[93] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -25083,53 +55128,56 @@ const classtable_elt_t VFT_AMethPropdef[93] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_property_builder},
   {(bigint) mmbuilder___AMethPropdef___accept_property_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AMethPropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AMethPropdef___visit_all},
   {(bigint) parser_prod___AMethPropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AMethPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___AMethPropdef___accept_control_flow},
+  {(bigint) 1 /* 59: AMethPropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) typing___AMethPropdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AMethPropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: AMethPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: AMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___AMethPropdef___n_doc__eq},
-  {(bigint) compiling_methods___AMethPropdef___do_compile_inside},
   {(bigint) mmbuilder___AMethPropdef___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___AMethPropdef___method},
   {(bigint) parser_prod___AMethPropdef___empty_init},
   {(bigint) parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 82: AMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 4 /* 83: AMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser_prod___AMethPropdef___n_kwredef__eq},
   {(bigint) parser_nodes___AMethPropdef___n_visibility},
@@ -25138,60 +55186,156 @@ const classtable_elt_t VFT_AMethPropdef[93] = {
   {(bigint) parser_prod___AMethPropdef___n_methid__eq},
   {(bigint) parser_nodes___AMethPropdef___n_signature},
   {(bigint) parser_prod___AMethPropdef___n_signature__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AMethPropdef::_parent */
-/* 2: Attribute AMethPropdef::_first_token */
-/* 3: Attribute AMethPropdef::_last_token */
-/* 4: Attribute AMethPropdef::_n_doc */
-/* 5: Attribute AMethPropdef::_name */
-/* 6: Attribute AMethPropdef::_method */
-/* 7: Attribute AMethPropdef::_n_kwredef */
-/* 8: Attribute AMethPropdef::_n_visibility */
-/* 9: Attribute AMethPropdef::_n_methid */
-/* 10: Attribute AMethPropdef::_n_signature */
-val_t NEW_AMethPropdef(void) {
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) icode_generation___AMethPropdef___fill_iroutine},
+  {(bigint) typing___ANode___accept_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AMethPropdef::_parent */
+/* 3: Attribute AMethPropdef::_location */
+/* 4: Attribute AMethPropdef::_first_location */
+/* 5: Attribute AMethPropdef::_last_location */
+/* 6: Attribute AMethPropdef::_n_doc */
+/* 7: Attribute AMethPropdef::_self_var */
+/* 8: Attribute AMethPropdef::_name */
+/* 9: Attribute AMethPropdef::_method */
+/* 10: Attribute AMethPropdef::_n_kwredef */
+/* 11: Attribute AMethPropdef::_n_visibility */
+/* 12: Attribute AMethPropdef::_n_methid */
+/* 13: Attribute AMethPropdef::_n_signature */
+void INIT_ATTRIBUTES__AMethPropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AMethPropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:417 */
+  ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:419 */
+  ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMethPropdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_AMethPropdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AMethPropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AMethPropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AMethPropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMethPropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AMethPropdef();
-  parser_prod___AMethPropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AMethPropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AMethPropdef();
+  INIT_ATTRIBUTES__AMethPropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMethPropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AMethPropdef_parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1512;
+  fra.me.meth = LOCATE_NEW_AMethPropdef_parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMethPropdef();
+  /* ./parser//parser_prod.nit:1512 */
+  INIT_ATTRIBUTES__AMethPropdef(fra.me.REG[0]);
+  parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(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[5];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AMethPropdef();
-  parser_prod___AMethPropdef___init_amethpropdef(self, p0, p1, p2, p3, p4, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1514;
+  fra.me.meth = LOCATE_NEW_AMethPropdef_parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AMethPropdef();
+  /* ./parser//parser_prod.nit:1514 */
+  INIT_ATTRIBUTES__AMethPropdef(fra.me.REG[5]);
+  parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AMethPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
 }
-const classtable_elt_t VFT_ADeferredMethPropdef[98] = {
-  {(bigint) 3747 /* 0: Identity */},
-  {(bigint) 3 /* 1: ADeferredMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ADeferredMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ADeferredMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: ADeferredMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3467 /* 5: ADeferredMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3747 /* 6: ADeferredMethPropdef < ADeferredMethPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_ADeferredMethPropdef[100] = {
+  {(bigint) 6507 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ADeferredMethPropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ADeferredMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ADeferredMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: ADeferredMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6235 /* 6: ADeferredMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 6507 /* 7: ADeferredMethPropdef < ADeferredMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ADeferredMethPropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ADeferredMethPropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -25199,7 +55343,6 @@ const classtable_elt_t VFT_ADeferredMethPropdef[98] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -25207,53 +55350,56 @@ const classtable_elt_t VFT_ADeferredMethPropdef[98] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_property_builder},
   {(bigint) mmbuilder___AMethPropdef___accept_property_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ADeferredMethPropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ADeferredMethPropdef___visit_all},
   {(bigint) parser_prod___ADeferredMethPropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ADeferredMethPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___AMethPropdef___accept_control_flow},
+  {(bigint) 1 /* 59: ADeferredMethPropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) typing___AMethPropdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ADeferredMethPropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: ADeferredMethPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: ADeferredMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___ADeferredMethPropdef___n_doc__eq},
-  {(bigint) compiling_methods___ADeferredMethPropdef___do_compile_inside},
   {(bigint) mmbuilder___AMethPropdef___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___AMethPropdef___method},
   {(bigint) parser_prod___AMethPropdef___empty_init},
   {(bigint) parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 82: ADeferredMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 4 /* 83: ADeferredMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser_prod___ADeferredMethPropdef___n_kwredef__eq},
   {(bigint) parser_nodes___AMethPropdef___n_visibility},
@@ -25262,66 +55408,222 @@ const classtable_elt_t VFT_ADeferredMethPropdef[98] = {
   {(bigint) parser_prod___ADeferredMethPropdef___n_methid__eq},
   {(bigint) parser_nodes___AMethPropdef___n_signature},
   {(bigint) parser_prod___ADeferredMethPropdef___n_signature__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) icode_generation___ADeferredMethPropdef___fill_iroutine},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) parser_prod___ADeferredMethPropdef___empty_init},
   {(bigint) parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef},
-  {(bigint) 5 /* 95: ADeferredMethPropdef < ADeferredMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 97: ADeferredMethPropdef < ADeferredMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___ADeferredMethPropdef___n_kwmeth},
   {(bigint) parser_prod___ADeferredMethPropdef___n_kwmeth__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ADeferredMethPropdef::_parent */
-/* 2: Attribute ADeferredMethPropdef::_first_token */
-/* 3: Attribute ADeferredMethPropdef::_last_token */
-/* 4: Attribute ADeferredMethPropdef::_n_doc */
-/* 5: Attribute ADeferredMethPropdef::_name */
-/* 6: Attribute ADeferredMethPropdef::_method */
-/* 7: Attribute ADeferredMethPropdef::_n_kwredef */
-/* 8: Attribute ADeferredMethPropdef::_n_visibility */
-/* 9: Attribute ADeferredMethPropdef::_n_methid */
-/* 10: Attribute ADeferredMethPropdef::_n_signature */
-/* 11: Attribute ADeferredMethPropdef::_n_kwmeth */
-val_t NEW_ADeferredMethPropdef(void) {
+/* 1: Object_id */
+/* 2: Attribute ADeferredMethPropdef::_parent */
+/* 3: Attribute ADeferredMethPropdef::_location */
+/* 4: Attribute ADeferredMethPropdef::_first_location */
+/* 5: Attribute ADeferredMethPropdef::_last_location */
+/* 6: Attribute ADeferredMethPropdef::_n_doc */
+/* 7: Attribute ADeferredMethPropdef::_self_var */
+/* 8: Attribute ADeferredMethPropdef::_name */
+/* 9: Attribute ADeferredMethPropdef::_method */
+/* 10: Attribute ADeferredMethPropdef::_n_kwredef */
+/* 11: Attribute ADeferredMethPropdef::_n_visibility */
+/* 12: Attribute ADeferredMethPropdef::_n_methid */
+/* 13: Attribute ADeferredMethPropdef::_n_signature */
+/* 14: Attribute ADeferredMethPropdef::_n_kwmeth */
+void INIT_ATTRIBUTES__ADeferredMethPropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ADeferredMethPropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:417 */
+  ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:419 */
+  ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ADeferredMethPropdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_ADeferredMethPropdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ADeferredMethPropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ADeferredMethPropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ADeferredMethPropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwmeth");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ADeferredMethPropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ADeferredMethPropdef();
-  parser_prod___ADeferredMethPropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ADeferredMethPropdef();
+  INIT_ATTRIBUTES__ADeferredMethPropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ADeferredMethPropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1512;
+  fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ADeferredMethPropdef();
+  /* ./parser//parser_prod.nit:1512 */
+  INIT_ATTRIBUTES__ADeferredMethPropdef(fra.me.REG[0]);
+  parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ADeferredMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(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[5];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ADeferredMethPropdef();
-  parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(self, p0, p1, p2, p3, p4, p5, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1514;
+  fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_ADeferredMethPropdef();
+  /* ./parser//parser_prod.nit:1514 */
+  INIT_ATTRIBUTES__ADeferredMethPropdef(fra.me.REG[5]);
+  parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_ADeferredMethPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+val_t NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1655;
+  fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ADeferredMethPropdef();
+  /* ./parser//parser_prod.nit:1655 */
+  INIT_ATTRIBUTES__ADeferredMethPropdef(fra.me.REG[0]);
+  parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ADeferredMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1657;
+  fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = NEW_ADeferredMethPropdef();
+  /* ./parser//parser_prod.nit:1657 */
+  INIT_ATTRIBUTES__ADeferredMethPropdef(fra.me.REG[6]);
+  parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
+  CHECKNEW_ADeferredMethPropdef(fra.me.REG[6]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[6];
 }
-const classtable_elt_t VFT_AInternMethPropdef[98] = {
-  {(bigint) 3719 /* 0: Identity */},
-  {(bigint) 3 /* 1: AInternMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AInternMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AInternMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: AInternMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3467 /* 5: AInternMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3719 /* 6: AInternMethPropdef < AInternMethPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_AInternMethPropdef[100] = {
+  {(bigint) 6483 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AInternMethPropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AInternMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AInternMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: AInternMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6235 /* 6: AInternMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 6483 /* 7: AInternMethPropdef < AInternMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AInternMethPropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AInternMethPropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -25329,7 +55631,6 @@ const classtable_elt_t VFT_AInternMethPropdef[98] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -25337,53 +55638,56 @@ const classtable_elt_t VFT_AInternMethPropdef[98] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_property_builder},
   {(bigint) mmbuilder___AMethPropdef___accept_property_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AInternMethPropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AInternMethPropdef___visit_all},
   {(bigint) parser_prod___AInternMethPropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AInternMethPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___AMethPropdef___accept_control_flow},
+  {(bigint) 1 /* 59: AInternMethPropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) typing___AMethPropdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AInternMethPropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: AInternMethPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: AInternMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___AInternMethPropdef___n_doc__eq},
-  {(bigint) compiling_methods___AInternMethPropdef___do_compile_inside},
   {(bigint) mmbuilder___AMethPropdef___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___AMethPropdef___method},
   {(bigint) parser_prod___AMethPropdef___empty_init},
   {(bigint) parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 82: AInternMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 4 /* 83: AInternMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser_prod___AInternMethPropdef___n_kwredef__eq},
   {(bigint) parser_nodes___AMethPropdef___n_visibility},
@@ -25392,66 +55696,222 @@ const classtable_elt_t VFT_AInternMethPropdef[98] = {
   {(bigint) parser_prod___AInternMethPropdef___n_methid__eq},
   {(bigint) parser_nodes___AMethPropdef___n_signature},
   {(bigint) parser_prod___AInternMethPropdef___n_signature__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) icode_generation___AInternMethPropdef___fill_iroutine},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) parser_prod___AInternMethPropdef___empty_init},
   {(bigint) parser_prod___AInternMethPropdef___init_ainternmethpropdef},
-  {(bigint) 5 /* 95: AInternMethPropdef < AInternMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 97: AInternMethPropdef < AInternMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AInternMethPropdef___n_kwmeth},
   {(bigint) parser_prod___AInternMethPropdef___n_kwmeth__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AInternMethPropdef::_parent */
-/* 2: Attribute AInternMethPropdef::_first_token */
-/* 3: Attribute AInternMethPropdef::_last_token */
-/* 4: Attribute AInternMethPropdef::_n_doc */
-/* 5: Attribute AInternMethPropdef::_name */
-/* 6: Attribute AInternMethPropdef::_method */
-/* 7: Attribute AInternMethPropdef::_n_kwredef */
-/* 8: Attribute AInternMethPropdef::_n_visibility */
-/* 9: Attribute AInternMethPropdef::_n_methid */
-/* 10: Attribute AInternMethPropdef::_n_signature */
-/* 11: Attribute AInternMethPropdef::_n_kwmeth */
-val_t NEW_AInternMethPropdef(void) {
+/* 1: Object_id */
+/* 2: Attribute AInternMethPropdef::_parent */
+/* 3: Attribute AInternMethPropdef::_location */
+/* 4: Attribute AInternMethPropdef::_first_location */
+/* 5: Attribute AInternMethPropdef::_last_location */
+/* 6: Attribute AInternMethPropdef::_n_doc */
+/* 7: Attribute AInternMethPropdef::_self_var */
+/* 8: Attribute AInternMethPropdef::_name */
+/* 9: Attribute AInternMethPropdef::_method */
+/* 10: Attribute AInternMethPropdef::_n_kwredef */
+/* 11: Attribute AInternMethPropdef::_n_visibility */
+/* 12: Attribute AInternMethPropdef::_n_methid */
+/* 13: Attribute AInternMethPropdef::_n_signature */
+/* 14: Attribute AInternMethPropdef::_n_kwmeth */
+void INIT_ATTRIBUTES__AInternMethPropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AInternMethPropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:417 */
+  ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:419 */
+  ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AInternMethPropdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_AInternMethPropdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AInternMethPropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AInternMethPropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AInternMethPropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwmeth");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AInternMethPropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AInternMethPropdef();
-  parser_prod___AInternMethPropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AInternMethPropdef();
+  INIT_ATTRIBUTES__AInternMethPropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AInternMethPropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AInternMethPropdef_parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1512;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AInternMethPropdef();
+  /* ./parser//parser_prod.nit:1512 */
+  INIT_ATTRIBUTES__AInternMethPropdef(fra.me.REG[0]);
+  parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AInternMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(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[5];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AInternMethPropdef();
-  parser_prod___AInternMethPropdef___init_ainternmethpropdef(self, p0, p1, p2, p3, p4, p5, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1514;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AInternMethPropdef();
+  /* ./parser//parser_prod.nit:1514 */
+  INIT_ATTRIBUTES__AInternMethPropdef(fra.me.REG[5]);
+  parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AInternMethPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+val_t NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1813;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AInternMethPropdef();
+  /* ./parser//parser_prod.nit:1813 */
+  INIT_ATTRIBUTES__AInternMethPropdef(fra.me.REG[0]);
+  parser_prod___AInternMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AInternMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1815;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = NEW_AInternMethPropdef();
+  /* ./parser//parser_prod.nit:1815 */
+  INIT_ATTRIBUTES__AInternMethPropdef(fra.me.REG[6]);
+  parser_prod___AInternMethPropdef___init_ainternmethpropdef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
+  CHECKNEW_AInternMethPropdef(fra.me.REG[6]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[6];
 }
-const classtable_elt_t VFT_AExternMethPropdef[100] = {
-  {(bigint) 3735 /* 0: Identity */},
-  {(bigint) 3 /* 1: AExternMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AExternMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AExternMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: AExternMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3467 /* 5: AExternMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3735 /* 6: AExternMethPropdef < AExternMethPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_AExternMethPropdef[102] = {
+  {(bigint) 6495 /* 0: Identity */},
+  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AExternMethPropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AExternMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AExternMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: AExternMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6235 /* 6: AExternMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 6495 /* 7: AExternMethPropdef < AExternMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AExternMethPropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AExternMethPropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -25459,7 +55919,6 @@ const classtable_elt_t VFT_AExternMethPropdef[100] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -25467,53 +55926,56 @@ const classtable_elt_t VFT_AExternMethPropdef[100] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_property_builder},
   {(bigint) mmbuilder___AMethPropdef___accept_property_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AExternMethPropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AExternMethPropdef___visit_all},
   {(bigint) parser_prod___AExternMethPropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AExternMethPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___AMethPropdef___accept_control_flow},
+  {(bigint) 1 /* 59: AExternMethPropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) typing___AMethPropdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AExternMethPropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: AExternMethPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: AExternMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___AExternMethPropdef___n_doc__eq},
-  {(bigint) compiling_methods___AExternMethPropdef___do_compile_inside},
   {(bigint) mmbuilder___AMethPropdef___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___AMethPropdef___method},
   {(bigint) parser_prod___AMethPropdef___empty_init},
   {(bigint) parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 82: AExternMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 4 /* 83: AExternMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser_prod___AExternMethPropdef___n_kwredef__eq},
   {(bigint) parser_nodes___AMethPropdef___n_visibility},
@@ -25522,69 +55984,230 @@ const classtable_elt_t VFT_AExternMethPropdef[100] = {
   {(bigint) parser_prod___AExternMethPropdef___n_methid__eq},
   {(bigint) parser_nodes___AMethPropdef___n_signature},
   {(bigint) parser_prod___AExternMethPropdef___n_signature__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) icode_generation___AExternMethPropdef___fill_iroutine},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) parser_prod___AExternMethPropdef___empty_init},
   {(bigint) parser_prod___AExternMethPropdef___init_aexternmethpropdef},
-  {(bigint) 5 /* 95: AExternMethPropdef < AExternMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 97: AExternMethPropdef < AExternMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AExternMethPropdef___n_kwmeth},
   {(bigint) parser_prod___AExternMethPropdef___n_kwmeth__eq},
   {(bigint) parser_nodes___AExternMethPropdef___n_extern},
   {(bigint) parser_prod___AExternMethPropdef___n_extern__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AExternMethPropdef::_parent */
-/* 2: Attribute AExternMethPropdef::_first_token */
-/* 3: Attribute AExternMethPropdef::_last_token */
-/* 4: Attribute AExternMethPropdef::_n_doc */
-/* 5: Attribute AExternMethPropdef::_name */
-/* 6: Attribute AExternMethPropdef::_method */
-/* 7: Attribute AExternMethPropdef::_n_kwredef */
-/* 8: Attribute AExternMethPropdef::_n_visibility */
-/* 9: Attribute AExternMethPropdef::_n_methid */
-/* 10: Attribute AExternMethPropdef::_n_signature */
-/* 11: Attribute AExternMethPropdef::_n_kwmeth */
-/* 12: Attribute AExternMethPropdef::_n_extern */
-val_t NEW_AExternMethPropdef(void) {
+/* 1: Object_id */
+/* 2: Attribute AExternMethPropdef::_parent */
+/* 3: Attribute AExternMethPropdef::_location */
+/* 4: Attribute AExternMethPropdef::_first_location */
+/* 5: Attribute AExternMethPropdef::_last_location */
+/* 6: Attribute AExternMethPropdef::_n_doc */
+/* 7: Attribute AExternMethPropdef::_self_var */
+/* 8: Attribute AExternMethPropdef::_name */
+/* 9: Attribute AExternMethPropdef::_method */
+/* 10: Attribute AExternMethPropdef::_n_kwredef */
+/* 11: Attribute AExternMethPropdef::_n_visibility */
+/* 12: Attribute AExternMethPropdef::_n_methid */
+/* 13: Attribute AExternMethPropdef::_n_signature */
+/* 14: Attribute AExternMethPropdef::_n_kwmeth */
+/* 15: Attribute AExternMethPropdef::_n_extern */
+void INIT_ATTRIBUTES__AExternMethPropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AExternMethPropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:417 */
+  ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:419 */
+  ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:433 */
+  ATTR_parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AExternMethPropdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 16);
   obj->vft = (classtable_elt_t*)VFT_AExternMethPropdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AExternMethPropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AExternMethPropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AExternMethPropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwmeth");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AExternMethPropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AExternMethPropdef();
-  parser_prod___AExternMethPropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AExternMethPropdef();
+  INIT_ATTRIBUTES__AExternMethPropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AExternMethPropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AExternMethPropdef_parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1512;
+  fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AExternMethPropdef();
+  /* ./parser//parser_prod.nit:1512 */
+  INIT_ATTRIBUTES__AExternMethPropdef(fra.me.REG[0]);
+  parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AExternMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AExternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(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[5];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AExternMethPropdef();
-  parser_prod___AExternMethPropdef___init_aexternmethpropdef(self, p0, p1, p2, p3, p4, p5, p6, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1514;
+  fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AExternMethPropdef();
+  /* ./parser//parser_prod.nit:1514 */
+  INIT_ATTRIBUTES__AExternMethPropdef(fra.me.REG[5]);
+  parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AExternMethPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+val_t NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1978;
+  fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AExternMethPropdef();
+  /* ./parser//parser_prod.nit:1978 */
+  INIT_ATTRIBUTES__AExternMethPropdef(fra.me.REG[0]);
+  parser_prod___AExternMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AExternMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1980;
+  fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 8;
+  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;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  fra.me.REG[7] = NEW_AExternMethPropdef();
+  /* ./parser//parser_prod.nit:1980 */
+  INIT_ATTRIBUTES__AExternMethPropdef(fra.me.REG[7]);
+  parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
+  CHECKNEW_AExternMethPropdef(fra.me.REG[7]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[7];
 }
-const classtable_elt_t VFT_AConcreteMethPropdef[101] = {
-  {(bigint) 3759 /* 0: Identity */},
-  {(bigint) 3 /* 1: AConcreteMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AConcreteMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AConcreteMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: AConcreteMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3467 /* 5: AConcreteMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3759 /* 6: AConcreteMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_AConcreteMethPropdef[103] = {
+  {(bigint) 6519 /* 0: Identity */},
+  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AConcreteMethPropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AConcreteMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AConcreteMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: AConcreteMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6235 /* 6: AConcreteMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 6519 /* 7: AConcreteMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AConcreteMethPropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AConcreteMethPropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -25592,7 +56215,6 @@ const classtable_elt_t VFT_AConcreteMethPropdef[101] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -25600,53 +56222,56 @@ const classtable_elt_t VFT_AConcreteMethPropdef[101] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_property_builder},
   {(bigint) mmbuilder___AMethPropdef___accept_property_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AConcreteMethPropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AConcreteMethPropdef___visit_all},
   {(bigint) parser_prod___AConcreteMethPropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AConcreteMethPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___AConcreteMethPropdef___accept_control_flow},
+  {(bigint) 1 /* 59: AConcreteMethPropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) typing___AMethPropdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___AConcreteMethPropdef___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AConcreteMethPropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: AConcreteMethPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: AConcreteMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___AConcreteMethPropdef___n_doc__eq},
-  {(bigint) compiling_methods___AConcreteMethPropdef___do_compile_inside},
   {(bigint) mmbuilder___AMethPropdef___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___AMethPropdef___method},
   {(bigint) parser_prod___AMethPropdef___empty_init},
   {(bigint) parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 82: AConcreteMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 4 /* 83: AConcreteMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser_prod___AConcreteMethPropdef___n_kwredef__eq},
   {(bigint) parser_nodes___AMethPropdef___n_visibility},
@@ -25655,70 +56280,221 @@ const classtable_elt_t VFT_AConcreteMethPropdef[101] = {
   {(bigint) parser_prod___AConcreteMethPropdef___n_methid__eq},
   {(bigint) parser_nodes___AMethPropdef___n_signature},
   {(bigint) parser_prod___AConcreteMethPropdef___n_signature__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) control_flow___AMethPropdef___accept_control_flow},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) icode_generation___AConcreteMethPropdef___fill_iroutine},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) parser_prod___AConcreteMethPropdef___empty_init},
   {(bigint) parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
-  {(bigint) 5 /* 96: AConcreteMethPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 98: AConcreteMethPropdef < AConcreteMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AConcreteMethPropdef___n_kwmeth},
   {(bigint) parser_prod___AConcreteMethPropdef___n_kwmeth__eq},
   {(bigint) parser_nodes___AConcreteMethPropdef___n_block},
   {(bigint) parser_prod___AConcreteMethPropdef___n_block__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AConcreteMethPropdef::_parent */
-/* 2: Attribute AConcreteMethPropdef::_first_token */
-/* 3: Attribute AConcreteMethPropdef::_last_token */
-/* 4: Attribute AConcreteMethPropdef::_n_doc */
-/* 5: Attribute AConcreteMethPropdef::_name */
-/* 6: Attribute AConcreteMethPropdef::_method */
-/* 7: Attribute AConcreteMethPropdef::_n_kwredef */
-/* 8: Attribute AConcreteMethPropdef::_n_visibility */
-/* 9: Attribute AConcreteMethPropdef::_n_methid */
-/* 10: Attribute AConcreteMethPropdef::_n_signature */
-/* 11: Attribute AConcreteMethPropdef::_n_kwmeth */
-/* 12: Attribute AConcreteMethPropdef::_n_block */
-val_t NEW_AConcreteMethPropdef(void) {
+/* 1: Object_id */
+/* 2: Attribute AConcreteMethPropdef::_parent */
+/* 3: Attribute AConcreteMethPropdef::_location */
+/* 4: Attribute AConcreteMethPropdef::_first_location */
+/* 5: Attribute AConcreteMethPropdef::_last_location */
+/* 6: Attribute AConcreteMethPropdef::_n_doc */
+/* 7: Attribute AConcreteMethPropdef::_self_var */
+/* 8: Attribute AConcreteMethPropdef::_name */
+/* 9: Attribute AConcreteMethPropdef::_method */
+/* 10: Attribute AConcreteMethPropdef::_n_kwredef */
+/* 11: Attribute AConcreteMethPropdef::_n_visibility */
+/* 12: Attribute AConcreteMethPropdef::_n_methid */
+/* 13: Attribute AConcreteMethPropdef::_n_signature */
+/* 14: Attribute AConcreteMethPropdef::_n_kwmeth */
+/* 15: Attribute AConcreteMethPropdef::_n_block */
+void INIT_ATTRIBUTES__AConcreteMethPropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AConcreteMethPropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:417 */
+  ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:419 */
+  ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:438 */
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AConcreteMethPropdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 16);
   obj->vft = (classtable_elt_t*)VFT_AConcreteMethPropdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AConcreteMethPropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AConcreteMethPropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AConcreteMethPropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AConcreteMethPropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AConcreteMethPropdef();
-  parser_prod___AConcreteMethPropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AConcreteMethPropdef();
+  INIT_ATTRIBUTES__AConcreteMethPropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteMethPropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1512;
+  fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AConcreteMethPropdef();
+  /* ./parser//parser_prod.nit:1512 */
+  INIT_ATTRIBUTES__AConcreteMethPropdef(fra.me.REG[0]);
+  parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(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[5];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AConcreteMethPropdef();
-  parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(self, p0, p1, p2, p3, p4, p5, p6, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1514;
+  fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AConcreteMethPropdef();
+  /* ./parser//parser_prod.nit:1514 */
+  INIT_ATTRIBUTES__AConcreteMethPropdef(fra.me.REG[5]);
+  parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AConcreteMethPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+val_t NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2164;
+  fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AConcreteMethPropdef();
+  /* ./parser//parser_prod.nit:2164 */
+  INIT_ATTRIBUTES__AConcreteMethPropdef(fra.me.REG[0]);
+  parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2166;
+  fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 8;
+  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;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  fra.me.REG[7] = NEW_AConcreteMethPropdef();
+  /* ./parser//parser_prod.nit:2166 */
+  INIT_ATTRIBUTES__AConcreteMethPropdef(fra.me.REG[7]);
+  parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
+  CHECKNEW_AConcreteMethPropdef(fra.me.REG[7]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[7];
 }
-const classtable_elt_t VFT_AConcreteInitPropdef[109] = {
-  {(bigint) 3803 /* 0: Identity */},
-  {(bigint) 3 /* 1: AConcreteInitPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AConcreteInitPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AConcreteInitPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: AConcreteInitPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3467 /* 5: AConcreteInitPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3759 /* 6: AConcreteInitPropdef < AConcreteMethPropdef: superclass typecheck marker */},
-  {(bigint) 3803 /* 7: AConcreteInitPropdef < AConcreteInitPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_AConcreteInitPropdef[112] = {
+  {(bigint) 6579 /* 0: Identity */},
+  {(bigint) 19 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AConcreteInitPropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AConcreteInitPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AConcreteInitPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: AConcreteInitPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6235 /* 6: AConcreteInitPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 6519 /* 7: AConcreteInitPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(bigint) 6579 /* 8: AConcreteInitPropdef < AConcreteInitPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AConcreteInitPropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AConcreteInitPropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -25726,7 +56502,6 @@ const classtable_elt_t VFT_AConcreteInitPropdef[109] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -25734,53 +56509,56 @@ const classtable_elt_t VFT_AConcreteInitPropdef[109] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_property_builder},
   {(bigint) mmbuilder___AMethPropdef___accept_property_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AConcreteInitPropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AConcreteInitPropdef___visit_all},
   {(bigint) parser_prod___AConcreteInitPropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AConcreteInitPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___AConcreteMethPropdef___accept_control_flow},
+  {(bigint) 1 /* 59: AConcreteInitPropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) typing___AConcreteInitPropdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___AConcreteInitPropdef___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AConcreteInitPropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: AConcreteInitPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: AConcreteInitPropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___AConcreteInitPropdef___n_doc__eq},
-  {(bigint) compiling_methods___AConcreteMethPropdef___do_compile_inside},
   {(bigint) mmbuilder___AMethPropdef___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___AMethPropdef___method},
   {(bigint) parser_prod___AMethPropdef___empty_init},
   {(bigint) parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 82: AConcreteInitPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 4 /* 83: AConcreteInitPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser_prod___AConcreteInitPropdef___n_kwredef__eq},
   {(bigint) parser_nodes___AMethPropdef___n_visibility},
@@ -25789,87 +56567,315 @@ const classtable_elt_t VFT_AConcreteInitPropdef[109] = {
   {(bigint) parser_prod___AConcreteInitPropdef___n_methid__eq},
   {(bigint) parser_nodes___AMethPropdef___n_signature},
   {(bigint) parser_prod___AConcreteInitPropdef___n_signature__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) control_flow___AMethPropdef___accept_control_flow},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) icode_generation___AConcreteMethPropdef___fill_iroutine},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) parser_prod___AConcreteMethPropdef___empty_init},
   {(bigint) parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
-  {(bigint) 5 /* 96: AConcreteInitPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 98: AConcreteInitPropdef < AConcreteMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AConcreteMethPropdef___n_kwmeth},
   {(bigint) parser_prod___AConcreteMethPropdef___n_kwmeth__eq},
   {(bigint) parser_nodes___AConcreteMethPropdef___n_block},
   {(bigint) parser_prod___AConcreteInitPropdef___n_block__eq},
-  {(bigint) typing___AConcreteInitPropdef___super_init_calls},
-  {(bigint) typing___AConcreteInitPropdef___explicit_super_init_calls},
   {(bigint) typing___AMethPropdef___accept_typing},
+  {(bigint) typing___AConcreteMethPropdef___after_typing},
+  {(bigint) syntax_base___AConcreteInitPropdef___super_init_calls},
+  {(bigint) syntax_base___AConcreteInitPropdef___explicit_super_init_calls},
   {(bigint) parser_prod___AConcreteInitPropdef___empty_init},
   {(bigint) parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef},
-  {(bigint) 6 /* 106: AConcreteInitPropdef < AConcreteInitPropdef: superclass init_table position */},
+  {(bigint) 6 /* 109: AConcreteInitPropdef < AConcreteInitPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AConcreteInitPropdef___n_kwinit},
   {(bigint) parser_prod___AConcreteInitPropdef___n_kwinit__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AConcreteInitPropdef::_parent */
-/* 2: Attribute AConcreteInitPropdef::_first_token */
-/* 3: Attribute AConcreteInitPropdef::_last_token */
-/* 4: Attribute AConcreteInitPropdef::_n_doc */
-/* 5: Attribute AConcreteInitPropdef::_name */
-/* 6: Attribute AConcreteInitPropdef::_method */
-/* 7: Attribute AConcreteInitPropdef::_n_kwredef */
-/* 8: Attribute AConcreteInitPropdef::_n_visibility */
-/* 9: Attribute AConcreteInitPropdef::_n_methid */
-/* 10: Attribute AConcreteInitPropdef::_n_signature */
-/* 11: Attribute AConcreteInitPropdef::_n_kwmeth */
-/* 12: Attribute AConcreteInitPropdef::_n_block */
-/* 13: Attribute AConcreteInitPropdef::_super_init_calls */
-/* 14: Attribute AConcreteInitPropdef::_explicit_super_init_calls */
-/* 15: Attribute AConcreteInitPropdef::_n_kwinit */
-val_t NEW_AConcreteInitPropdef(void) {
-  val_t variable0;
-  val_t variable1;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 16);
+/* 1: Object_id */
+/* 2: Attribute AConcreteInitPropdef::_parent */
+/* 3: Attribute AConcreteInitPropdef::_location */
+/* 4: Attribute AConcreteInitPropdef::_first_location */
+/* 5: Attribute AConcreteInitPropdef::_last_location */
+/* 6: Attribute AConcreteInitPropdef::_n_doc */
+/* 7: Attribute AConcreteInitPropdef::_self_var */
+/* 8: Attribute AConcreteInitPropdef::_name */
+/* 9: Attribute AConcreteInitPropdef::_method */
+/* 10: Attribute AConcreteInitPropdef::_n_kwredef */
+/* 11: Attribute AConcreteInitPropdef::_n_visibility */
+/* 12: Attribute AConcreteInitPropdef::_n_methid */
+/* 13: Attribute AConcreteInitPropdef::_n_signature */
+/* 14: Attribute AConcreteInitPropdef::_n_kwmeth */
+/* 15: Attribute AConcreteInitPropdef::_n_block */
+/* 16: Attribute AConcreteInitPropdef::_super_init_calls */
+/* 17: Attribute AConcreteInitPropdef::_explicit_super_init_calls */
+/* 18: Attribute AConcreteInitPropdef::_n_kwinit */
+void INIT_ATTRIBUTES__AConcreteInitPropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AConcreteInitPropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:417 */
+  ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:419 */
+  ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:438 */
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./syntax//syntax_base.nit:552 */
+  ATTR_syntax_base___AConcreteInitPropdef____super_init_calls(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./syntax//syntax_base.nit:553 */
+  ATTR_syntax_base___AConcreteInitPropdef____explicit_super_init_calls(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AConcreteInitPropdef(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 19);
   obj->vft = (classtable_elt_t*)VFT_AConcreteInitPropdef;
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_typing___AConcreteInitPropdef____super_init_calls(obj) = variable0;
-  variable1 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls(obj) = variable1;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AConcreteInitPropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AConcreteInitPropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AConcreteInitPropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwinit");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AConcreteInitPropdef____super_init_calls(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_super_init_calls");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AConcreteInitPropdef____explicit_super_init_calls(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_explicit_super_init_calls");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AConcreteInitPropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AConcreteInitPropdef();
-  parser_prod___AConcreteInitPropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AConcreteInitPropdef();
+  INIT_ATTRIBUTES__AConcreteInitPropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteInitPropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1512;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AConcreteInitPropdef();
+  /* ./parser//parser_prod.nit:1512 */
+  INIT_ATTRIBUTES__AConcreteInitPropdef(fra.me.REG[0]);
+  parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteInitPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___init_amethpropdef(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[5];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1514;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AConcreteInitPropdef();
+  /* ./parser//parser_prod.nit:1514 */
+  INIT_ATTRIBUTES__AConcreteInitPropdef(fra.me.REG[5]);
+  parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AConcreteInitPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2164;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AConcreteInitPropdef();
+  /* ./parser//parser_prod.nit:2164 */
+  INIT_ATTRIBUTES__AConcreteInitPropdef(fra.me.REG[0]);
+  parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteInitPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2166;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 8;
+  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;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  fra.me.REG[7] = NEW_AConcreteInitPropdef();
+  /* ./parser//parser_prod.nit:2166 */
+  INIT_ATTRIBUTES__AConcreteInitPropdef(fra.me.REG[7]);
+  parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
+  CHECKNEW_AConcreteInitPropdef(fra.me.REG[7]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[7];
+}
+val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2352;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AConcreteInitPropdef();
+  /* ./parser//parser_prod.nit:2352 */
+  INIT_ATTRIBUTES__AConcreteInitPropdef(fra.me.REG[0]);
+  parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AConcreteInitPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AConcreteInitPropdef();
-  parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(self, p0, p1, p2, p3, p4, p5, p6, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2354;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 8;
+  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;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  fra.me.REG[7] = NEW_AConcreteInitPropdef();
+  /* ./parser//parser_prod.nit:2354 */
+  INIT_ATTRIBUTES__AConcreteInitPropdef(fra.me.REG[7]);
+  parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
+  CHECKNEW_AConcreteInitPropdef(fra.me.REG[7]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[7];
 }
-const classtable_elt_t VFT_AMainMethPropdef[104] = {
-  {(bigint) 3799 /* 0: Identity */},
-  {(bigint) 3 /* 1: AMainMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AMainMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AMainMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: AMainMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3467 /* 5: AMainMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3759 /* 6: AMainMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
-  {(bigint) 3799 /* 7: AMainMethPropdef < AMainMethPropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_AMainMethPropdef[106] = {
+  {(bigint) 6575 /* 0: Identity */},
+  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AMainMethPropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AMainMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AMainMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: AMainMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6235 /* 6: AMainMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 6519 /* 7: AMainMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(bigint) 6575 /* 8: AMainMethPropdef < AMainMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AMainMethPropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AMainMethPropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -25877,7 +56883,6 @@ const classtable_elt_t VFT_AMainMethPropdef[104] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -25885,53 +56890,56 @@ const classtable_elt_t VFT_AMainMethPropdef[104] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_property_builder},
   {(bigint) mmbuilder___AMethPropdef___accept_property_verifier},
   {(bigint) mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AMainMethPropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AMainMethPropdef___visit_all},
   {(bigint) parser_prod___AMainMethPropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AMainMethPropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___AConcreteMethPropdef___accept_control_flow},
+  {(bigint) 1 /* 59: AMainMethPropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) typing___AMethPropdef___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___AConcreteMethPropdef___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AMainMethPropdef < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) mmbuilder___AMainMethPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: AMainMethPropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: AMainMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___AConcreteMethPropdef___n_doc__eq},
-  {(bigint) compiling_methods___AConcreteMethPropdef___do_compile_inside},
   {(bigint) mmbuilder___AMethPropdef___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___AMethPropdef___method},
   {(bigint) parser_prod___AMethPropdef___empty_init},
   {(bigint) parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 82: AMainMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 4 /* 83: AMainMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser_prod___AMainMethPropdef___n_kwredef__eq},
   {(bigint) parser_nodes___AMethPropdef___n_visibility},
@@ -25940,58 +56948,253 @@ const classtable_elt_t VFT_AMainMethPropdef[104] = {
   {(bigint) parser_prod___AConcreteMethPropdef___n_methid__eq},
   {(bigint) parser_nodes___AMethPropdef___n_signature},
   {(bigint) parser_prod___AConcreteMethPropdef___n_signature__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) control_flow___AMethPropdef___accept_control_flow},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) icode_generation___AConcreteMethPropdef___fill_iroutine},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
   {(bigint) parser_prod___AConcreteMethPropdef___empty_init},
   {(bigint) parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
-  {(bigint) 5 /* 96: AMainMethPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 98: AMainMethPropdef < AConcreteMethPropdef: superclass init_table position */},
   {(bigint) parser_nodes___AConcreteMethPropdef___n_kwmeth},
   {(bigint) parser_prod___AConcreteMethPropdef___n_kwmeth__eq},
   {(bigint) parser_nodes___AConcreteMethPropdef___n_block},
   {(bigint) parser_prod___AMainMethPropdef___n_block__eq},
   {(bigint) parser_prod___AMainMethPropdef___empty_init},
   {(bigint) parser_prod___AMainMethPropdef___init_amainmethpropdef},
-  {(bigint) 6 /* 103: AMainMethPropdef < AMainMethPropdef: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AMainMethPropdef::_parent */
-/* 2: Attribute AMainMethPropdef::_first_token */
-/* 3: Attribute AMainMethPropdef::_last_token */
-/* 4: Attribute AMainMethPropdef::_n_doc */
-/* 5: Attribute AMainMethPropdef::_name */
-/* 6: Attribute AMainMethPropdef::_method */
-/* 7: Attribute AMainMethPropdef::_n_kwredef */
-/* 8: Attribute AMainMethPropdef::_n_visibility */
-/* 9: Attribute AMainMethPropdef::_n_methid */
-/* 10: Attribute AMainMethPropdef::_n_signature */
-/* 11: Attribute AMainMethPropdef::_n_kwmeth */
-/* 12: Attribute AMainMethPropdef::_n_block */
-val_t NEW_AMainMethPropdef(void) {
+  {(bigint) 6 /* 105: AMainMethPropdef < AMainMethPropdef: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AMainMethPropdef::_parent */
+/* 3: Attribute AMainMethPropdef::_location */
+/* 4: Attribute AMainMethPropdef::_first_location */
+/* 5: Attribute AMainMethPropdef::_last_location */
+/* 6: Attribute AMainMethPropdef::_n_doc */
+/* 7: Attribute AMainMethPropdef::_self_var */
+/* 8: Attribute AMainMethPropdef::_name */
+/* 9: Attribute AMainMethPropdef::_method */
+/* 10: Attribute AMainMethPropdef::_n_kwredef */
+/* 11: Attribute AMainMethPropdef::_n_visibility */
+/* 12: Attribute AMainMethPropdef::_n_methid */
+/* 13: Attribute AMainMethPropdef::_n_signature */
+/* 14: Attribute AMainMethPropdef::_n_kwmeth */
+/* 15: Attribute AMainMethPropdef::_n_block */
+void INIT_ATTRIBUTES__AMainMethPropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AMainMethPropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:417 */
+  ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:419 */
+  ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:438 */
+  ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMainMethPropdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 16);
   obj->vft = (classtable_elt_t*)VFT_AMainMethPropdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AMainMethPropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AMainMethPropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AMainMethPropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMainMethPropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AMainMethPropdef();
-  parser_prod___AMainMethPropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AMainMethPropdef();
+  INIT_ATTRIBUTES__AMainMethPropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMainMethPropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AMainMethPropdef_parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1512;
+  fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMainMethPropdef();
+  /* ./parser//parser_prod.nit:1512 */
+  INIT_ATTRIBUTES__AMainMethPropdef(fra.me.REG[0]);
+  parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMainMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMainMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(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[5];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1514;
+  fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AMainMethPropdef();
+  /* ./parser//parser_prod.nit:1514 */
+  INIT_ATTRIBUTES__AMainMethPropdef(fra.me.REG[5]);
+  parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AMainMethPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+val_t NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2164;
+  fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMainMethPropdef();
+  /* ./parser//parser_prod.nit:2164 */
+  INIT_ATTRIBUTES__AMainMethPropdef(fra.me.REG[0]);
+  parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMainMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AMainMethPropdef();
-  parser_prod___AMainMethPropdef___init_amainmethpropdef(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2166;
+  fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 8;
+  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;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  fra.me.REG[7] = NEW_AMainMethPropdef();
+  /* ./parser//parser_prod.nit:2166 */
+  INIT_ATTRIBUTES__AMainMethPropdef(fra.me.REG[7]);
+  parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
+  CHECKNEW_AMainMethPropdef(fra.me.REG[7]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[7];
+}
+val_t NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2517;
+  fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMainMethPropdef();
+  /* ./parser//parser_prod.nit:2517 */
+  INIT_ATTRIBUTES__AMainMethPropdef(fra.me.REG[0]);
+  parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMainMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2519;
+  fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AMainMethPropdef();
+  /* ./parser//parser_prod.nit:2519 */
+  INIT_ATTRIBUTES__AMainMethPropdef(fra.me.REG[2]);
+  parser_prod___AMainMethPropdef___init_amainmethpropdef(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AMainMethPropdef(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ATypePropdef[91] = {
-  {(bigint) 3343 /* 0: Identity */},
-  {(bigint) 3 /* 1: ATypePropdef < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ATypePropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ATypePropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: ATypePropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3343 /* 5: ATypePropdef < ATypePropdef: superclass typecheck marker */},
+const classtable_elt_t VFT_ATypePropdef[93] = {
+  {(bigint) 6123 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ATypePropdef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ATypePropdef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ATypePropdef < Prod: superclass typecheck marker */},
+  {(bigint) 5935 /* 5: ATypePropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 6123 /* 6: ATypePropdef < ATypePropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25999,14 +57202,12 @@ const classtable_elt_t VFT_ATypePropdef[91] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ATypePropdef < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ATypePropdef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26014,7 +57215,6 @@ const classtable_elt_t VFT_ATypePropdef[91] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26022,51 +57222,55 @@ const classtable_elt_t VFT_ATypePropdef[91] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
   {(bigint) mmbuilder___ATypePropdef___accept_property_builder},
   {(bigint) mmbuilder___ATypePropdef___accept_property_verifier},
   {(bigint) mmbuilder___ATypePropdef___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ATypePropdef___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ATypePropdef___visit_all},
   {(bigint) parser_prod___ATypePropdef___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ATypePropdef < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ATypePropdef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ATypePropdef < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PPropdef___process_and_check},
-  {(bigint) mmbuilder___PPropdef___do_and_check_intro},
-  {(bigint) mmbuilder___PPropdef___inherit_signature},
-  {(bigint) mmbuilder___PPropdef___do_and_check_redef},
-  {(bigint) 3 /* 71: ATypePropdef < PPropdef: superclass init_table position */},
-  {(bigint) parser_nodes___PPropdef___n_doc},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___APropdef___process_and_check},
+  {(bigint) mmbuilder___APropdef___do_and_check_intro},
+  {(bigint) mmbuilder___APropdef___inherit_signature},
+  {(bigint) mmbuilder___APropdef___do_and_check_redef},
+  {(bigint) typing___APropdef___self_var},
+  {(bigint) 3 /* 73: ATypePropdef < APropdef: superclass init_table position */},
+  {(bigint) parser_nodes___APropdef___n_doc},
   {(bigint) parser_prod___ATypePropdef___n_doc__eq},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) mmbuilder___ATypePropdef___prop},
   {(bigint) parser_prod___ATypePropdef___empty_init},
   {(bigint) parser_prod___ATypePropdef___init_atypepropdef},
-  {(bigint) 4 /* 80: ATypePropdef < ATypePropdef: superclass init_table position */},
+  {(bigint) 4 /* 82: ATypePropdef < ATypePropdef: superclass init_table position */},
   {(bigint) parser_nodes___ATypePropdef___n_kwredef},
   {(bigint) parser_prod___ATypePropdef___n_kwredef__eq},
   {(bigint) parser_nodes___ATypePropdef___n_visibility},
@@ -26079,41 +57283,167 @@ const classtable_elt_t VFT_ATypePropdef[91] = {
   {(bigint) parser_prod___ATypePropdef___n_type__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ATypePropdef::_parent */
-/* 2: Attribute ATypePropdef::_first_token */
-/* 3: Attribute ATypePropdef::_last_token */
-/* 4: Attribute ATypePropdef::_n_doc */
-/* 5: Attribute ATypePropdef::_prop */
-/* 6: Attribute ATypePropdef::_n_kwredef */
-/* 7: Attribute ATypePropdef::_n_visibility */
-/* 8: Attribute ATypePropdef::_n_kwtype */
-/* 9: Attribute ATypePropdef::_n_id */
-/* 10: Attribute ATypePropdef::_n_type */
-val_t NEW_ATypePropdef(void) {
+/* 1: Object_id */
+/* 2: Attribute ATypePropdef::_parent */
+/* 3: Attribute ATypePropdef::_location */
+/* 4: Attribute ATypePropdef::_first_location */
+/* 5: Attribute ATypePropdef::_last_location */
+/* 6: Attribute ATypePropdef::_n_doc */
+/* 7: Attribute ATypePropdef::_self_var */
+/* 8: Attribute ATypePropdef::_prop */
+/* 9: Attribute ATypePropdef::_n_kwredef */
+/* 10: Attribute ATypePropdef::_n_visibility */
+/* 11: Attribute ATypePropdef::_n_kwtype */
+/* 12: Attribute ATypePropdef::_n_id */
+/* 13: Attribute ATypePropdef::_n_type */
+void INIT_ATTRIBUTES__ATypePropdef(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ATypePropdef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:402 */
+  ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:449 */
+  ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ATypePropdef(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_ATypePropdef;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ATypePropdef___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ATypePropdef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ATypePropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_visibility");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwtype");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_type");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ATypePropdef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ATypePropdef();
-  parser_prod___ATypePropdef___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ATypePropdef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ATypePropdef();
+  INIT_ATTRIBUTES__ATypePropdef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ATypePropdef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ATypePropdef_parser_prod___ATypePropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2615;
+  fra.me.meth = LOCATE_NEW_ATypePropdef_parser_prod___ATypePropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ATypePropdef();
+  /* ./parser//parser_prod.nit:2615 */
+  INIT_ATTRIBUTES__ATypePropdef(fra.me.REG[0]);
+  parser_prod___ATypePropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ATypePropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ATypePropdef();
-  parser_prod___ATypePropdef___init_atypepropdef(self, p0, p1, p2, p3, p4, p5, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2617;
+  fra.me.meth = LOCATE_NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = NEW_ATypePropdef();
+  /* ./parser//parser_prod.nit:2617 */
+  INIT_ATTRIBUTES__ATypePropdef(fra.me.REG[6]);
+  parser_prod___ATypePropdef___init_atypepropdef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
+  CHECKNEW_ATypePropdef(fra.me.REG[6]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[6];
 }
-const classtable_elt_t VFT_AReadAble[75] = {
-  {(bigint) 3395 /* 0: Identity */},
-  {(bigint) 3 /* 1: AReadAble < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AReadAble < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AReadAble < Prod: superclass typecheck marker */},
-  {(bigint) 3115 /* 4: AReadAble < PAble: superclass typecheck marker */},
-  {(bigint) 3395 /* 5: AReadAble < AReadAble: superclass typecheck marker */},
+const classtable_elt_t VFT_AAble[71] = {
+  {(bigint) 5999 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAble < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAble < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAble < Prod: superclass typecheck marker */},
+  {(bigint) 5999 /* 5: AAble < AAble: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26121,14 +57451,150 @@ const classtable_elt_t VFT_AReadAble[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAble < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AReadAble < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AAble < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AAble < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 3 /* 68: AAble < AAble: superclass init_table position */},
+  {(bigint) parser_nodes___AAble___n_kwredef},
+  {(bigint) parser_nodes___AAble___n_kwredef__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AAble::_parent */
+/* 3: Attribute AAble::_location */
+/* 4: Attribute AAble::_first_location */
+/* 5: Attribute AAble::_last_location */
+/* 6: Attribute AAble::_n_kwredef */
+void INIT_ATTRIBUTES__AAble(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAble;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:456 */
+  ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAble(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AAble;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAble(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAble;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAble_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAble_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAble();
+  INIT_ATTRIBUTES__AAble(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAble(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_AReadAble[76] = {
+  {(bigint) 6179 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AReadAble < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AReadAble < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AReadAble < Prod: superclass typecheck marker */},
+  {(bigint) 5999 /* 5: AReadAble < AAble: superclass typecheck marker */},
+  {(bigint) 6179 /* 6: AReadAble < AReadAble: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AReadAble < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26136,7 +57602,6 @@ const classtable_elt_t VFT_AReadAble[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26144,77 +57609,174 @@ const classtable_elt_t VFT_AReadAble[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AReadAble___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AReadAble___visit_all},
   {(bigint) parser_prod___AReadAble___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AReadAble < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AReadAble < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AReadAble < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: AReadAble < PAble: superclass init_table position */},
-  {(bigint) parser_nodes___PAble___n_kwredef},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 3 /* 68: AReadAble < AAble: superclass init_table position */},
+  {(bigint) parser_nodes___AAble___n_kwredef},
   {(bigint) parser_prod___AReadAble___n_kwredef__eq},
   {(bigint) parser_prod___AReadAble___empty_init},
   {(bigint) parser_prod___AReadAble___init_areadable},
-  {(bigint) 4 /* 72: AReadAble < AReadAble: superclass init_table position */},
+  {(bigint) 4 /* 73: AReadAble < AReadAble: superclass init_table position */},
   {(bigint) parser_nodes___AReadAble___n_kwreadable},
   {(bigint) parser_prod___AReadAble___n_kwreadable__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AReadAble::_parent */
-/* 2: Attribute AReadAble::_first_token */
-/* 3: Attribute AReadAble::_last_token */
-/* 4: Attribute AReadAble::_n_kwredef */
-/* 5: Attribute AReadAble::_n_kwreadable */
-val_t NEW_AReadAble(void) {
+/* 1: Object_id */
+/* 2: Attribute AReadAble::_parent */
+/* 3: Attribute AReadAble::_location */
+/* 4: Attribute AReadAble::_first_location */
+/* 5: Attribute AReadAble::_last_location */
+/* 6: Attribute AReadAble::_n_kwredef */
+/* 7: Attribute AReadAble::_n_kwreadable */
+void INIT_ATTRIBUTES__AReadAble(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AReadAble;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:456 */
+  ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AReadAble(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AReadAble;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AReadAble___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AReadAble(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AReadAble;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwreadable");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AReadAble_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AReadAble();
-  parser_prod___AReadAble___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AReadAble___init_areadable(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AReadAble_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AReadAble();
+  INIT_ATTRIBUTES__AReadAble(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AReadAble(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AReadAble_parser_prod___AReadAble___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2751;
+  fra.me.meth = LOCATE_NEW_AReadAble_parser_prod___AReadAble___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AReadAble();
+  /* ./parser//parser_prod.nit:2751 */
+  INIT_ATTRIBUTES__AReadAble(fra.me.REG[0]);
+  parser_prod___AReadAble___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AReadAble(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AReadAble_parser_prod___AReadAble___init_areadable(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AReadAble();
-  parser_prod___AReadAble___init_areadable(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2753;
+  fra.me.meth = LOCATE_NEW_AReadAble_parser_prod___AReadAble___init_areadable;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AReadAble();
+  /* ./parser//parser_prod.nit:2753 */
+  INIT_ATTRIBUTES__AReadAble(fra.me.REG[2]);
+  parser_prod___AReadAble___init_areadable(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AReadAble(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AWriteAble[75] = {
-  {(bigint) 3327 /* 0: Identity */},
-  {(bigint) 3 /* 1: AWriteAble < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AWriteAble < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AWriteAble < Prod: superclass typecheck marker */},
-  {(bigint) 3115 /* 4: AWriteAble < PAble: superclass typecheck marker */},
-  {(bigint) 3327 /* 5: AWriteAble < AWriteAble: superclass typecheck marker */},
+const classtable_elt_t VFT_AWriteAble[76] = {
+  {(bigint) 6103 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AWriteAble < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AWriteAble < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AWriteAble < Prod: superclass typecheck marker */},
+  {(bigint) 5999 /* 5: AWriteAble < AAble: superclass typecheck marker */},
+  {(bigint) 6103 /* 6: AWriteAble < AWriteAble: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26222,14 +57784,12 @@ const classtable_elt_t VFT_AWriteAble[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AWriteAble < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AWriteAble < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26237,7 +57797,6 @@ const classtable_elt_t VFT_AWriteAble[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26245,77 +57804,173 @@ const classtable_elt_t VFT_AWriteAble[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AWriteAble___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AWriteAble___visit_all},
   {(bigint) parser_prod___AWriteAble___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AWriteAble < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AWriteAble < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AWriteAble < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: AWriteAble < PAble: superclass init_table position */},
-  {(bigint) parser_nodes___PAble___n_kwredef},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 3 /* 68: AWriteAble < AAble: superclass init_table position */},
+  {(bigint) parser_nodes___AAble___n_kwredef},
   {(bigint) parser_prod___AWriteAble___n_kwredef__eq},
   {(bigint) parser_prod___AWriteAble___empty_init},
   {(bigint) parser_prod___AWriteAble___init_awriteable},
-  {(bigint) 4 /* 72: AWriteAble < AWriteAble: superclass init_table position */},
+  {(bigint) 4 /* 73: AWriteAble < AWriteAble: superclass init_table position */},
   {(bigint) parser_nodes___AWriteAble___n_kwwritable},
   {(bigint) parser_prod___AWriteAble___n_kwwritable__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AWriteAble::_parent */
-/* 2: Attribute AWriteAble::_first_token */
-/* 3: Attribute AWriteAble::_last_token */
-/* 4: Attribute AWriteAble::_n_kwredef */
-/* 5: Attribute AWriteAble::_n_kwwritable */
-val_t NEW_AWriteAble(void) {
+/* 1: Object_id */
+/* 2: Attribute AWriteAble::_parent */
+/* 3: Attribute AWriteAble::_location */
+/* 4: Attribute AWriteAble::_first_location */
+/* 5: Attribute AWriteAble::_last_location */
+/* 6: Attribute AWriteAble::_n_kwredef */
+/* 7: Attribute AWriteAble::_n_kwwritable */
+void INIT_ATTRIBUTES__AWriteAble(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AWriteAble;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:456 */
+  ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AWriteAble(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AWriteAble;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AWriteAble___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AWriteAble(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AWriteAble;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwwritable");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AWriteAble_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AWriteAble();
-  parser_prod___AWriteAble___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AWriteAble_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AWriteAble();
+  INIT_ATTRIBUTES__AWriteAble(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AWriteAble(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AWriteAble_parser_prod___AWriteAble___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2821;
+  fra.me.meth = LOCATE_NEW_AWriteAble_parser_prod___AWriteAble___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AWriteAble();
+  /* ./parser//parser_prod.nit:2821 */
+  INIT_ATTRIBUTES__AWriteAble(fra.me.REG[0]);
+  parser_prod___AWriteAble___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AWriteAble(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AWriteAble();
-  parser_prod___AWriteAble___init_awriteable(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2823;
+  fra.me.meth = LOCATE_NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AWriteAble();
+  /* ./parser//parser_prod.nit:2823 */
+  INIT_ATTRIBUTES__AWriteAble(fra.me.REG[2]);
+  parser_prod___AWriteAble___init_awriteable(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AWriteAble(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AIdMethid[75] = {
-  {(bigint) 3507 /* 0: Identity */},
-  {(bigint) 3 /* 1: AIdMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AIdMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AIdMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: AIdMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3507 /* 5: AIdMethid < AIdMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_AMethid[71] = {
+  {(bigint) 5951 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AMethid < AMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26323,14 +57978,144 @@ const classtable_elt_t VFT_AIdMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AMethid < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AIdMethid < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AMethid < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AMethid < AMethid: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AMethid::_parent */
+/* 3: Attribute AMethid::_location */
+/* 4: Attribute AMethid::_first_location */
+/* 5: Attribute AMethid::_last_location */
+/* 6: Attribute AMethid::_name */
+void INIT_ATTRIBUTES__AMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMethid(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AMethid;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AMethid();
+  INIT_ATTRIBUTES__AMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_AIdMethid[76] = {
+  {(bigint) 6275 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AIdMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AIdMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AIdMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AIdMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6275 /* 6: AIdMethid < AIdMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AIdMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26338,7 +58123,6 @@ const classtable_elt_t VFT_AIdMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26346,77 +58130,166 @@ const classtable_elt_t VFT_AIdMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AIdMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AIdMethid___visit_all},
   {(bigint) parser_prod___AIdMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AIdMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AIdMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AIdMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: AIdMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AIdMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___AIdMethid___empty_init},
   {(bigint) parser_prod___AIdMethid___init_aidmethid},
-  {(bigint) 4 /* 72: AIdMethid < AIdMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: AIdMethid < AIdMethid: superclass init_table position */},
   {(bigint) parser_nodes___AIdMethid___n_id},
   {(bigint) parser_prod___AIdMethid___n_id__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AIdMethid::_parent */
-/* 2: Attribute AIdMethid::_first_token */
-/* 3: Attribute AIdMethid::_last_token */
-/* 4: Attribute AIdMethid::_name */
-/* 5: Attribute AIdMethid::_n_id */
-val_t NEW_AIdMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute AIdMethid::_parent */
+/* 3: Attribute AIdMethid::_location */
+/* 4: Attribute AIdMethid::_first_location */
+/* 5: Attribute AIdMethid::_last_location */
+/* 6: Attribute AIdMethid::_name */
+/* 7: Attribute AIdMethid::_n_id */
+void INIT_ATTRIBUTES__AIdMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AIdMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIdMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AIdMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AIdMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AIdMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AIdMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIdMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIdMethid();
-  parser_prod___AIdMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AIdMethid___init_aidmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AIdMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AIdMethid();
+  INIT_ATTRIBUTES__AIdMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIdMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AIdMethid_parser_prod___AIdMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2884;
+  fra.me.meth = LOCATE_NEW_AIdMethid_parser_prod___AIdMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AIdMethid();
+  /* ./parser//parser_prod.nit:2884 */
+  INIT_ATTRIBUTES__AIdMethid(fra.me.REG[0]);
+  parser_prod___AIdMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AIdMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIdMethid();
-  parser_prod___AIdMethid___init_aidmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2886;
+  fra.me.meth = LOCATE_NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid;
+  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;
+  fra.me.REG[1] = NEW_AIdMethid();
+  /* ./parser//parser_prod.nit:2886 */
+  INIT_ATTRIBUTES__AIdMethid(fra.me.REG[1]);
+  parser_prod___AIdMethid___init_aidmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIdMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_APlusMethid[75] = {
-  {(bigint) 3423 /* 0: Identity */},
-  {(bigint) 3 /* 1: APlusMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: APlusMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: APlusMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: APlusMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3423 /* 5: APlusMethid < APlusMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_APlusMethid[76] = {
+  {(bigint) 6203 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APlusMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APlusMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APlusMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: APlusMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6203 /* 6: APlusMethid < APlusMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26424,14 +58297,12 @@ const classtable_elt_t VFT_APlusMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: APlusMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: APlusMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26439,7 +58310,6 @@ const classtable_elt_t VFT_APlusMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26447,77 +58317,166 @@ const classtable_elt_t VFT_APlusMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___APlusMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___APlusMethid___visit_all},
   {(bigint) parser_prod___APlusMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: APlusMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: APlusMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: APlusMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: APlusMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: APlusMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___APlusMethid___empty_init},
   {(bigint) parser_prod___APlusMethid___init_aplusmethid},
-  {(bigint) 4 /* 72: APlusMethid < APlusMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: APlusMethid < APlusMethid: superclass init_table position */},
   {(bigint) parser_nodes___APlusMethid___n_plus},
   {(bigint) parser_prod___APlusMethid___n_plus__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute APlusMethid::_parent */
-/* 2: Attribute APlusMethid::_first_token */
-/* 3: Attribute APlusMethid::_last_token */
-/* 4: Attribute APlusMethid::_name */
-/* 5: Attribute APlusMethid::_n_plus */
-val_t NEW_APlusMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute APlusMethid::_parent */
+/* 3: Attribute APlusMethid::_location */
+/* 4: Attribute APlusMethid::_first_location */
+/* 5: Attribute APlusMethid::_last_location */
+/* 6: Attribute APlusMethid::_name */
+/* 7: Attribute APlusMethid::_n_plus */
+void INIT_ATTRIBUTES__APlusMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APlusMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APlusMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_APlusMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___APlusMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APlusMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APlusMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_plus");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APlusMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APlusMethid();
-  parser_prod___APlusMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___APlusMethid___init_aplusmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APlusMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APlusMethid();
+  INIT_ATTRIBUTES__APlusMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APlusMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APlusMethid_parser_prod___APlusMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2926;
+  fra.me.meth = LOCATE_NEW_APlusMethid_parser_prod___APlusMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APlusMethid();
+  /* ./parser//parser_prod.nit:2926 */
+  INIT_ATTRIBUTES__APlusMethid(fra.me.REG[0]);
+  parser_prod___APlusMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APlusMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APlusMethid();
-  parser_prod___APlusMethid___init_aplusmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2928;
+  fra.me.meth = LOCATE_NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid;
+  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;
+  fra.me.REG[1] = NEW_APlusMethid();
+  /* ./parser//parser_prod.nit:2928 */
+  INIT_ATTRIBUTES__APlusMethid(fra.me.REG[1]);
+  parser_prod___APlusMethid___init_aplusmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APlusMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AMinusMethid[75] = {
-  {(bigint) 3459 /* 0: Identity */},
-  {(bigint) 3 /* 1: AMinusMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AMinusMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AMinusMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: AMinusMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3459 /* 5: AMinusMethid < AMinusMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_AMinusMethid[76] = {
+  {(bigint) 6227 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AMinusMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AMinusMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AMinusMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AMinusMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6227 /* 6: AMinusMethid < AMinusMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26525,14 +58484,12 @@ const classtable_elt_t VFT_AMinusMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AMinusMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AMinusMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26540,7 +58497,6 @@ const classtable_elt_t VFT_AMinusMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26548,77 +58504,166 @@ const classtable_elt_t VFT_AMinusMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AMinusMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AMinusMethid___visit_all},
   {(bigint) parser_prod___AMinusMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AMinusMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AMinusMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AMinusMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: AMinusMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AMinusMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___AMinusMethid___empty_init},
   {(bigint) parser_prod___AMinusMethid___init_aminusmethid},
-  {(bigint) 4 /* 72: AMinusMethid < AMinusMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: AMinusMethid < AMinusMethid: superclass init_table position */},
   {(bigint) parser_nodes___AMinusMethid___n_minus},
   {(bigint) parser_prod___AMinusMethid___n_minus__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AMinusMethid::_parent */
-/* 2: Attribute AMinusMethid::_first_token */
-/* 3: Attribute AMinusMethid::_last_token */
-/* 4: Attribute AMinusMethid::_name */
-/* 5: Attribute AMinusMethid::_n_minus */
-val_t NEW_AMinusMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute AMinusMethid::_parent */
+/* 3: Attribute AMinusMethid::_location */
+/* 4: Attribute AMinusMethid::_first_location */
+/* 5: Attribute AMinusMethid::_last_location */
+/* 6: Attribute AMinusMethid::_name */
+/* 7: Attribute AMinusMethid::_n_minus */
+void INIT_ATTRIBUTES__AMinusMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AMinusMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMinusMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AMinusMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AMinusMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AMinusMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AMinusMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_minus");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMinusMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AMinusMethid();
-  parser_prod___AMinusMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AMinusMethid___init_aminusmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AMinusMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AMinusMethid();
+  INIT_ATTRIBUTES__AMinusMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMinusMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AMinusMethid_parser_prod___AMinusMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2968;
+  fra.me.meth = LOCATE_NEW_AMinusMethid_parser_prod___AMinusMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMinusMethid();
+  /* ./parser//parser_prod.nit:2968 */
+  INIT_ATTRIBUTES__AMinusMethid(fra.me.REG[0]);
+  parser_prod___AMinusMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMinusMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AMinusMethid();
-  parser_prod___AMinusMethid___init_aminusmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2970;
+  fra.me.meth = LOCATE_NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid;
+  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;
+  fra.me.REG[1] = NEW_AMinusMethid();
+  /* ./parser//parser_prod.nit:2970 */
+  INIT_ATTRIBUTES__AMinusMethid(fra.me.REG[1]);
+  parser_prod___AMinusMethid___init_aminusmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMinusMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AStarMethid[75] = {
-  {(bigint) 3371 /* 0: Identity */},
-  {(bigint) 3 /* 1: AStarMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AStarMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AStarMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: AStarMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3371 /* 5: AStarMethid < AStarMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_AStarMethid[76] = {
+  {(bigint) 6155 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStarMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStarMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStarMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AStarMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6155 /* 6: AStarMethid < AStarMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26626,14 +58671,12 @@ const classtable_elt_t VFT_AStarMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AStarMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AStarMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26641,7 +58684,6 @@ const classtable_elt_t VFT_AStarMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26649,77 +58691,166 @@ const classtable_elt_t VFT_AStarMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AStarMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AStarMethid___visit_all},
   {(bigint) parser_prod___AStarMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AStarMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AStarMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AStarMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: AStarMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AStarMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___AStarMethid___empty_init},
   {(bigint) parser_prod___AStarMethid___init_astarmethid},
-  {(bigint) 4 /* 72: AStarMethid < AStarMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: AStarMethid < AStarMethid: superclass init_table position */},
   {(bigint) parser_nodes___AStarMethid___n_star},
   {(bigint) parser_prod___AStarMethid___n_star__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AStarMethid::_parent */
-/* 2: Attribute AStarMethid::_first_token */
-/* 3: Attribute AStarMethid::_last_token */
-/* 4: Attribute AStarMethid::_name */
-/* 5: Attribute AStarMethid::_n_star */
-val_t NEW_AStarMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute AStarMethid::_parent */
+/* 3: Attribute AStarMethid::_location */
+/* 4: Attribute AStarMethid::_first_location */
+/* 5: Attribute AStarMethid::_last_location */
+/* 6: Attribute AStarMethid::_name */
+/* 7: Attribute AStarMethid::_n_star */
+void INIT_ATTRIBUTES__AStarMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStarMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStarMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AStarMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AStarMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStarMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStarMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_star");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStarMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AStarMethid();
-  parser_prod___AStarMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AStarMethid___init_astarmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStarMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStarMethid();
+  INIT_ATTRIBUTES__AStarMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStarMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStarMethid_parser_prod___AStarMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3010;
+  fra.me.meth = LOCATE_NEW_AStarMethid_parser_prod___AStarMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStarMethid();
+  /* ./parser//parser_prod.nit:3010 */
+  INIT_ATTRIBUTES__AStarMethid(fra.me.REG[0]);
+  parser_prod___AStarMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStarMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AStarMethid();
-  parser_prod___AStarMethid___init_astarmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3012;
+  fra.me.meth = LOCATE_NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid;
+  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;
+  fra.me.REG[1] = NEW_AStarMethid();
+  /* ./parser//parser_prod.nit:3012 */
+  INIT_ATTRIBUTES__AStarMethid(fra.me.REG[1]);
+  parser_prod___AStarMethid___init_astarmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStarMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ASlashMethid[75] = {
-  {(bigint) 3375 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASlashMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASlashMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASlashMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: ASlashMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3375 /* 5: ASlashMethid < ASlashMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_ASlashMethid[76] = {
+  {(bigint) 6159 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASlashMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASlashMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASlashMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: ASlashMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6159 /* 6: ASlashMethid < ASlashMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26727,14 +58858,12 @@ const classtable_elt_t VFT_ASlashMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ASlashMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ASlashMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26742,7 +58871,6 @@ const classtable_elt_t VFT_ASlashMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26750,77 +58878,166 @@ const classtable_elt_t VFT_ASlashMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASlashMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASlashMethid___visit_all},
   {(bigint) parser_prod___ASlashMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ASlashMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ASlashMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ASlashMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: ASlashMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: ASlashMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___ASlashMethid___empty_init},
   {(bigint) parser_prod___ASlashMethid___init_aslashmethid},
-  {(bigint) 4 /* 72: ASlashMethid < ASlashMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: ASlashMethid < ASlashMethid: superclass init_table position */},
   {(bigint) parser_nodes___ASlashMethid___n_slash},
   {(bigint) parser_prod___ASlashMethid___n_slash__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASlashMethid::_parent */
-/* 2: Attribute ASlashMethid::_first_token */
-/* 3: Attribute ASlashMethid::_last_token */
-/* 4: Attribute ASlashMethid::_name */
-/* 5: Attribute ASlashMethid::_n_slash */
-val_t NEW_ASlashMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute ASlashMethid::_parent */
+/* 3: Attribute ASlashMethid::_location */
+/* 4: Attribute ASlashMethid::_first_location */
+/* 5: Attribute ASlashMethid::_last_location */
+/* 6: Attribute ASlashMethid::_name */
+/* 7: Attribute ASlashMethid::_n_slash */
+void INIT_ATTRIBUTES__ASlashMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASlashMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASlashMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_ASlashMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ASlashMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASlashMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASlashMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_slash");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASlashMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASlashMethid();
-  parser_prod___ASlashMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ASlashMethid___init_aslashmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASlashMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASlashMethid();
+  INIT_ATTRIBUTES__ASlashMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASlashMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASlashMethid_parser_prod___ASlashMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3052;
+  fra.me.meth = LOCATE_NEW_ASlashMethid_parser_prod___ASlashMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASlashMethid();
+  /* ./parser//parser_prod.nit:3052 */
+  INIT_ATTRIBUTES__ASlashMethid(fra.me.REG[0]);
+  parser_prod___ASlashMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASlashMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASlashMethid();
-  parser_prod___ASlashMethid___init_aslashmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3054;
+  fra.me.meth = LOCATE_NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid;
+  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;
+  fra.me.REG[1] = NEW_ASlashMethid();
+  /* ./parser//parser_prod.nit:3054 */
+  INIT_ATTRIBUTES__ASlashMethid(fra.me.REG[1]);
+  parser_prod___ASlashMethid___init_aslashmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASlashMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_APercentMethid[75] = {
-  {(bigint) 3431 /* 0: Identity */},
-  {(bigint) 3 /* 1: APercentMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: APercentMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: APercentMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: APercentMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3431 /* 5: APercentMethid < APercentMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_APercentMethid[76] = {
+  {(bigint) 6211 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APercentMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APercentMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APercentMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: APercentMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6211 /* 6: APercentMethid < APercentMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26828,14 +59045,12 @@ const classtable_elt_t VFT_APercentMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: APercentMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: APercentMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26843,7 +59058,6 @@ const classtable_elt_t VFT_APercentMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26851,77 +59065,166 @@ const classtable_elt_t VFT_APercentMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___APercentMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___APercentMethid___visit_all},
   {(bigint) parser_prod___APercentMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: APercentMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: APercentMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: APercentMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: APercentMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: APercentMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___APercentMethid___empty_init},
   {(bigint) parser_prod___APercentMethid___init_apercentmethid},
-  {(bigint) 4 /* 72: APercentMethid < APercentMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: APercentMethid < APercentMethid: superclass init_table position */},
   {(bigint) parser_nodes___APercentMethid___n_percent},
   {(bigint) parser_prod___APercentMethid___n_percent__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute APercentMethid::_parent */
-/* 2: Attribute APercentMethid::_first_token */
-/* 3: Attribute APercentMethid::_last_token */
-/* 4: Attribute APercentMethid::_name */
-/* 5: Attribute APercentMethid::_n_percent */
-val_t NEW_APercentMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute APercentMethid::_parent */
+/* 3: Attribute APercentMethid::_location */
+/* 4: Attribute APercentMethid::_first_location */
+/* 5: Attribute APercentMethid::_last_location */
+/* 6: Attribute APercentMethid::_name */
+/* 7: Attribute APercentMethid::_n_percent */
+void INIT_ATTRIBUTES__APercentMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APercentMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APercentMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_APercentMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___APercentMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APercentMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APercentMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_percent");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APercentMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APercentMethid();
-  parser_prod___APercentMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___APercentMethid___init_apercentmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APercentMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APercentMethid();
+  INIT_ATTRIBUTES__APercentMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APercentMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APercentMethid_parser_prod___APercentMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3094;
+  fra.me.meth = LOCATE_NEW_APercentMethid_parser_prod___APercentMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APercentMethid();
+  /* ./parser//parser_prod.nit:3094 */
+  INIT_ATTRIBUTES__APercentMethid(fra.me.REG[0]);
+  parser_prod___APercentMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APercentMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APercentMethid();
-  parser_prod___APercentMethid___init_apercentmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3096;
+  fra.me.meth = LOCATE_NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid;
+  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;
+  fra.me.REG[1] = NEW_APercentMethid();
+  /* ./parser//parser_prod.nit:3096 */
+  INIT_ATTRIBUTES__APercentMethid(fra.me.REG[1]);
+  parser_prod___APercentMethid___init_apercentmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APercentMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AEqMethid[75] = {
-  {(bigint) 3531 /* 0: Identity */},
-  {(bigint) 3 /* 1: AEqMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AEqMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AEqMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: AEqMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3531 /* 5: AEqMethid < AEqMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_AEqMethid[76] = {
+  {(bigint) 6303 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AEqMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AEqMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AEqMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AEqMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6303 /* 6: AEqMethid < AEqMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26929,14 +59232,12 @@ const classtable_elt_t VFT_AEqMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AEqMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AEqMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -26944,7 +59245,6 @@ const classtable_elt_t VFT_AEqMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -26952,77 +59252,166 @@ const classtable_elt_t VFT_AEqMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AEqMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AEqMethid___visit_all},
   {(bigint) parser_prod___AEqMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AEqMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AEqMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AEqMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: AEqMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AEqMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___AEqMethid___empty_init},
   {(bigint) parser_prod___AEqMethid___init_aeqmethid},
-  {(bigint) 4 /* 72: AEqMethid < AEqMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: AEqMethid < AEqMethid: superclass init_table position */},
   {(bigint) parser_nodes___AEqMethid___n_eq},
   {(bigint) parser_prod___AEqMethid___n_eq__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AEqMethid::_parent */
-/* 2: Attribute AEqMethid::_first_token */
-/* 3: Attribute AEqMethid::_last_token */
-/* 4: Attribute AEqMethid::_name */
-/* 5: Attribute AEqMethid::_n_eq */
-val_t NEW_AEqMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute AEqMethid::_parent */
+/* 3: Attribute AEqMethid::_location */
+/* 4: Attribute AEqMethid::_first_location */
+/* 5: Attribute AEqMethid::_last_location */
+/* 6: Attribute AEqMethid::_name */
+/* 7: Attribute AEqMethid::_n_eq */
+void INIT_ATTRIBUTES__AEqMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AEqMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEqMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AEqMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AEqMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AEqMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AEqMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_eq");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEqMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AEqMethid();
-  parser_prod___AEqMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AEqMethid___init_aeqmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AEqMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AEqMethid();
+  INIT_ATTRIBUTES__AEqMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AEqMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AEqMethid_parser_prod___AEqMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3136;
+  fra.me.meth = LOCATE_NEW_AEqMethid_parser_prod___AEqMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AEqMethid();
+  /* ./parser//parser_prod.nit:3136 */
+  INIT_ATTRIBUTES__AEqMethid(fra.me.REG[0]);
+  parser_prod___AEqMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AEqMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AEqMethid();
-  parser_prod___AEqMethid___init_aeqmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3138;
+  fra.me.meth = LOCATE_NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid;
+  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;
+  fra.me.REG[1] = NEW_AEqMethid();
+  /* ./parser//parser_prod.nit:3138 */
+  INIT_ATTRIBUTES__AEqMethid(fra.me.REG[1]);
+  parser_prod___AEqMethid___init_aeqmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AEqMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ANeMethid[75] = {
-  {(bigint) 3451 /* 0: Identity */},
-  {(bigint) 3 /* 1: ANeMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ANeMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ANeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: ANeMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3451 /* 5: ANeMethid < ANeMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_ANeMethid[76] = {
+  {(bigint) 6223 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ANeMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ANeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ANeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: ANeMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6223 /* 6: ANeMethid < ANeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27030,14 +59419,12 @@ const classtable_elt_t VFT_ANeMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ANeMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ANeMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27045,7 +59432,6 @@ const classtable_elt_t VFT_ANeMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27053,77 +59439,166 @@ const classtable_elt_t VFT_ANeMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ANeMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ANeMethid___visit_all},
   {(bigint) parser_prod___ANeMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ANeMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ANeMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ANeMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: ANeMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: ANeMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___ANeMethid___empty_init},
   {(bigint) parser_prod___ANeMethid___init_anemethid},
-  {(bigint) 4 /* 72: ANeMethid < ANeMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: ANeMethid < ANeMethid: superclass init_table position */},
   {(bigint) parser_nodes___ANeMethid___n_ne},
   {(bigint) parser_prod___ANeMethid___n_ne__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ANeMethid::_parent */
-/* 2: Attribute ANeMethid::_first_token */
-/* 3: Attribute ANeMethid::_last_token */
-/* 4: Attribute ANeMethid::_name */
-/* 5: Attribute ANeMethid::_n_ne */
-val_t NEW_ANeMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute ANeMethid::_parent */
+/* 3: Attribute ANeMethid::_location */
+/* 4: Attribute ANeMethid::_first_location */
+/* 5: Attribute ANeMethid::_last_location */
+/* 6: Attribute ANeMethid::_name */
+/* 7: Attribute ANeMethid::_n_ne */
+void INIT_ATTRIBUTES__ANeMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ANeMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANeMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_ANeMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ANeMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ANeMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ANeMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_ne");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANeMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ANeMethid();
-  parser_prod___ANeMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ANeMethid___init_anemethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ANeMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ANeMethid();
+  INIT_ATTRIBUTES__ANeMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANeMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ANeMethid_parser_prod___ANeMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3178;
+  fra.me.meth = LOCATE_NEW_ANeMethid_parser_prod___ANeMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ANeMethid();
+  /* ./parser//parser_prod.nit:3178 */
+  INIT_ATTRIBUTES__ANeMethid(fra.me.REG[0]);
+  parser_prod___ANeMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ANeMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ANeMethid();
-  parser_prod___ANeMethid___init_anemethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3180;
+  fra.me.meth = LOCATE_NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid;
+  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;
+  fra.me.REG[1] = NEW_ANeMethid();
+  /* ./parser//parser_prod.nit:3180 */
+  INIT_ATTRIBUTES__ANeMethid(fra.me.REG[1]);
+  parser_prod___ANeMethid___init_anemethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANeMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ALeMethid[75] = {
-  {(bigint) 3479 /* 0: Identity */},
-  {(bigint) 3 /* 1: ALeMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ALeMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ALeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: ALeMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3479 /* 5: ALeMethid < ALeMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_ALeMethid[76] = {
+  {(bigint) 6251 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ALeMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ALeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ALeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: ALeMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6251 /* 6: ALeMethid < ALeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27131,14 +59606,12 @@ const classtable_elt_t VFT_ALeMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ALeMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ALeMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27146,7 +59619,6 @@ const classtable_elt_t VFT_ALeMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27154,77 +59626,166 @@ const classtable_elt_t VFT_ALeMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ALeMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ALeMethid___visit_all},
   {(bigint) parser_prod___ALeMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ALeMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ALeMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ALeMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: ALeMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: ALeMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___ALeMethid___empty_init},
   {(bigint) parser_prod___ALeMethid___init_alemethid},
-  {(bigint) 4 /* 72: ALeMethid < ALeMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: ALeMethid < ALeMethid: superclass init_table position */},
   {(bigint) parser_nodes___ALeMethid___n_le},
   {(bigint) parser_prod___ALeMethid___n_le__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ALeMethid::_parent */
-/* 2: Attribute ALeMethid::_first_token */
-/* 3: Attribute ALeMethid::_last_token */
-/* 4: Attribute ALeMethid::_name */
-/* 5: Attribute ALeMethid::_n_le */
-val_t NEW_ALeMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute ALeMethid::_parent */
+/* 3: Attribute ALeMethid::_location */
+/* 4: Attribute ALeMethid::_first_location */
+/* 5: Attribute ALeMethid::_last_location */
+/* 6: Attribute ALeMethid::_name */
+/* 7: Attribute ALeMethid::_n_le */
+void INIT_ATTRIBUTES__ALeMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ALeMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALeMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_ALeMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ALeMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ALeMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ALeMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_le");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALeMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ALeMethid();
-  parser_prod___ALeMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ALeMethid___init_alemethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ALeMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ALeMethid();
+  INIT_ATTRIBUTES__ALeMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALeMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ALeMethid_parser_prod___ALeMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3220;
+  fra.me.meth = LOCATE_NEW_ALeMethid_parser_prod___ALeMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALeMethid();
+  /* ./parser//parser_prod.nit:3220 */
+  INIT_ATTRIBUTES__ALeMethid(fra.me.REG[0]);
+  parser_prod___ALeMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALeMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ALeMethid();
-  parser_prod___ALeMethid___init_alemethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3222;
+  fra.me.meth = LOCATE_NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid;
+  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;
+  fra.me.REG[1] = NEW_ALeMethid();
+  /* ./parser//parser_prod.nit:3222 */
+  INIT_ATTRIBUTES__ALeMethid(fra.me.REG[1]);
+  parser_prod___ALeMethid___init_alemethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALeMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AGeMethid[75] = {
-  {(bigint) 3515 /* 0: Identity */},
-  {(bigint) 3 /* 1: AGeMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AGeMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AGeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: AGeMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3515 /* 5: AGeMethid < AGeMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_AGeMethid[76] = {
+  {(bigint) 6283 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AGeMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AGeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AGeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AGeMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6283 /* 6: AGeMethid < AGeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27232,14 +59793,12 @@ const classtable_elt_t VFT_AGeMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AGeMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AGeMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27247,7 +59806,6 @@ const classtable_elt_t VFT_AGeMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27255,77 +59813,166 @@ const classtable_elt_t VFT_AGeMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AGeMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AGeMethid___visit_all},
   {(bigint) parser_prod___AGeMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AGeMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AGeMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AGeMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: AGeMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AGeMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___AGeMethid___empty_init},
   {(bigint) parser_prod___AGeMethid___init_agemethid},
-  {(bigint) 4 /* 72: AGeMethid < AGeMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: AGeMethid < AGeMethid: superclass init_table position */},
   {(bigint) parser_nodes___AGeMethid___n_ge},
   {(bigint) parser_prod___AGeMethid___n_ge__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AGeMethid::_parent */
-/* 2: Attribute AGeMethid::_first_token */
-/* 3: Attribute AGeMethid::_last_token */
-/* 4: Attribute AGeMethid::_name */
-/* 5: Attribute AGeMethid::_n_ge */
-val_t NEW_AGeMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute AGeMethid::_parent */
+/* 3: Attribute AGeMethid::_location */
+/* 4: Attribute AGeMethid::_first_location */
+/* 5: Attribute AGeMethid::_last_location */
+/* 6: Attribute AGeMethid::_name */
+/* 7: Attribute AGeMethid::_n_ge */
+void INIT_ATTRIBUTES__AGeMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AGeMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AGeMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AGeMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AGeMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AGeMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AGeMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_ge");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AGeMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AGeMethid();
-  parser_prod___AGeMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AGeMethid___init_agemethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AGeMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AGeMethid();
+  INIT_ATTRIBUTES__AGeMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AGeMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AGeMethid_parser_prod___AGeMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3262;
+  fra.me.meth = LOCATE_NEW_AGeMethid_parser_prod___AGeMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AGeMethid();
+  /* ./parser//parser_prod.nit:3262 */
+  INIT_ATTRIBUTES__AGeMethid(fra.me.REG[0]);
+  parser_prod___AGeMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AGeMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AGeMethid();
-  parser_prod___AGeMethid___init_agemethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3264;
+  fra.me.meth = LOCATE_NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid;
+  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;
+  fra.me.REG[1] = NEW_AGeMethid();
+  /* ./parser//parser_prod.nit:3264 */
+  INIT_ATTRIBUTES__AGeMethid(fra.me.REG[1]);
+  parser_prod___AGeMethid___init_agemethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AGeMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ALtMethid[75] = {
-  {(bigint) 3475 /* 0: Identity */},
-  {(bigint) 3 /* 1: ALtMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ALtMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ALtMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: ALtMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3475 /* 5: ALtMethid < ALtMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_ALtMethid[76] = {
+  {(bigint) 6243 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ALtMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ALtMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ALtMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: ALtMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6243 /* 6: ALtMethid < ALtMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27333,14 +59980,12 @@ const classtable_elt_t VFT_ALtMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ALtMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ALtMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27348,7 +59993,6 @@ const classtable_elt_t VFT_ALtMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27356,77 +60000,166 @@ const classtable_elt_t VFT_ALtMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ALtMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ALtMethid___visit_all},
   {(bigint) parser_prod___ALtMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ALtMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ALtMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ALtMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: ALtMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: ALtMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___ALtMethid___empty_init},
   {(bigint) parser_prod___ALtMethid___init_altmethid},
-  {(bigint) 4 /* 72: ALtMethid < ALtMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: ALtMethid < ALtMethid: superclass init_table position */},
   {(bigint) parser_nodes___ALtMethid___n_lt},
   {(bigint) parser_prod___ALtMethid___n_lt__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ALtMethid::_parent */
-/* 2: Attribute ALtMethid::_first_token */
-/* 3: Attribute ALtMethid::_last_token */
-/* 4: Attribute ALtMethid::_name */
-/* 5: Attribute ALtMethid::_n_lt */
-val_t NEW_ALtMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute ALtMethid::_parent */
+/* 3: Attribute ALtMethid::_location */
+/* 4: Attribute ALtMethid::_first_location */
+/* 5: Attribute ALtMethid::_last_location */
+/* 6: Attribute ALtMethid::_name */
+/* 7: Attribute ALtMethid::_n_lt */
+void INIT_ATTRIBUTES__ALtMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ALtMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALtMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_ALtMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ALtMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ALtMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ALtMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_lt");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALtMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ALtMethid();
-  parser_prod___ALtMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ALtMethid___init_altmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ALtMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ALtMethid();
+  INIT_ATTRIBUTES__ALtMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALtMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ALtMethid_parser_prod___ALtMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3304;
+  fra.me.meth = LOCATE_NEW_ALtMethid_parser_prod___ALtMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALtMethid();
+  /* ./parser//parser_prod.nit:3304 */
+  INIT_ATTRIBUTES__ALtMethid(fra.me.REG[0]);
+  parser_prod___ALtMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALtMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ALtMethid();
-  parser_prod___ALtMethid___init_altmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3306;
+  fra.me.meth = LOCATE_NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid;
+  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;
+  fra.me.REG[1] = NEW_ALtMethid();
+  /* ./parser//parser_prod.nit:3306 */
+  INIT_ATTRIBUTES__ALtMethid(fra.me.REG[1]);
+  parser_prod___ALtMethid___init_altmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALtMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AGtMethid[75] = {
-  {(bigint) 3511 /* 0: Identity */},
-  {(bigint) 3 /* 1: AGtMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AGtMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AGtMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: AGtMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3511 /* 5: AGtMethid < AGtMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_AGtMethid[76] = {
+  {(bigint) 6279 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AGtMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AGtMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AGtMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AGtMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6279 /* 6: AGtMethid < AGtMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27434,14 +60167,12 @@ const classtable_elt_t VFT_AGtMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AGtMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AGtMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27449,7 +60180,6 @@ const classtable_elt_t VFT_AGtMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27457,77 +60187,166 @@ const classtable_elt_t VFT_AGtMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AGtMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AGtMethid___visit_all},
   {(bigint) parser_prod___AGtMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AGtMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AGtMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AGtMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: AGtMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AGtMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___AGtMethid___empty_init},
   {(bigint) parser_prod___AGtMethid___init_agtmethid},
-  {(bigint) 4 /* 72: AGtMethid < AGtMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: AGtMethid < AGtMethid: superclass init_table position */},
   {(bigint) parser_nodes___AGtMethid___n_gt},
   {(bigint) parser_prod___AGtMethid___n_gt__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AGtMethid::_parent */
-/* 2: Attribute AGtMethid::_first_token */
-/* 3: Attribute AGtMethid::_last_token */
-/* 4: Attribute AGtMethid::_name */
-/* 5: Attribute AGtMethid::_n_gt */
-val_t NEW_AGtMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute AGtMethid::_parent */
+/* 3: Attribute AGtMethid::_location */
+/* 4: Attribute AGtMethid::_first_location */
+/* 5: Attribute AGtMethid::_last_location */
+/* 6: Attribute AGtMethid::_name */
+/* 7: Attribute AGtMethid::_n_gt */
+void INIT_ATTRIBUTES__AGtMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AGtMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AGtMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AGtMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AGtMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AGtMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AGtMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_gt");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AGtMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AGtMethid();
-  parser_prod___AGtMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AGtMethid___init_agtmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AGtMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AGtMethid();
+  INIT_ATTRIBUTES__AGtMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AGtMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AGtMethid_parser_prod___AGtMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3346;
+  fra.me.meth = LOCATE_NEW_AGtMethid_parser_prod___AGtMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AGtMethid();
+  /* ./parser//parser_prod.nit:3346 */
+  INIT_ATTRIBUTES__AGtMethid(fra.me.REG[0]);
+  parser_prod___AGtMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AGtMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AGtMethid();
-  parser_prod___AGtMethid___init_agtmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3348;
+  fra.me.meth = LOCATE_NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid;
+  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;
+  fra.me.REG[1] = NEW_AGtMethid();
+  /* ./parser//parser_prod.nit:3348 */
+  INIT_ATTRIBUTES__AGtMethid(fra.me.REG[1]);
+  parser_prod___AGtMethid___init_agtmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AGtMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ABraMethid[77] = {
-  {(bigint) 3563 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABraMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABraMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABraMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: ABraMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3563 /* 5: ABraMethid < ABraMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_ABraMethid[78] = {
+  {(bigint) 6331 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABraMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABraMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABraMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: ABraMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6331 /* 6: ABraMethid < ABraMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27535,14 +60354,12 @@ const classtable_elt_t VFT_ABraMethid[77] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ABraMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ABraMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27550,7 +60367,6 @@ const classtable_elt_t VFT_ABraMethid[77] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27558,80 +60374,178 @@ const classtable_elt_t VFT_ABraMethid[77] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ABraMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ABraMethid___visit_all},
   {(bigint) parser_prod___ABraMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ABraMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ABraMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ABraMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: ABraMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: ABraMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___ABraMethid___empty_init},
   {(bigint) parser_prod___ABraMethid___init_abramethid},
-  {(bigint) 4 /* 72: ABraMethid < ABraMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: ABraMethid < ABraMethid: superclass init_table position */},
   {(bigint) parser_nodes___ABraMethid___n_obra},
   {(bigint) parser_prod___ABraMethid___n_obra__eq},
   {(bigint) parser_nodes___ABraMethid___n_cbra},
   {(bigint) parser_prod___ABraMethid___n_cbra__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ABraMethid::_parent */
-/* 2: Attribute ABraMethid::_first_token */
-/* 3: Attribute ABraMethid::_last_token */
-/* 4: Attribute ABraMethid::_name */
-/* 5: Attribute ABraMethid::_n_obra */
-/* 6: Attribute ABraMethid::_n_cbra */
-val_t NEW_ABraMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute ABraMethid::_parent */
+/* 3: Attribute ABraMethid::_location */
+/* 4: Attribute ABraMethid::_first_location */
+/* 5: Attribute ABraMethid::_last_location */
+/* 6: Attribute ABraMethid::_name */
+/* 7: Attribute ABraMethid::_n_obra */
+/* 8: Attribute ABraMethid::_n_cbra */
+void INIT_ATTRIBUTES__ABraMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABraMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_ABraMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ABraMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABraMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABraMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_obra");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_cbra");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ABraMethid();
-  parser_prod___ABraMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABraMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABraMethid();
+  INIT_ATTRIBUTES__ABraMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraMethid_parser_prod___ABraMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3393;
+  fra.me.meth = LOCATE_NEW_ABraMethid_parser_prod___ABraMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraMethid();
+  /* ./parser//parser_prod.nit:3393 */
+  INIT_ATTRIBUTES__ABraMethid(fra.me.REG[0]);
+  parser_prod___ABraMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ABraMethid();
-  parser_prod___ABraMethid___init_abramethid(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3395;
+  fra.me.meth = LOCATE_NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ABraMethid();
+  /* ./parser//parser_prod.nit:3395 */
+  INIT_ATTRIBUTES__ABraMethid(fra.me.REG[2]);
+  parser_prod___ABraMethid___init_abramethid(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ABraMethid(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AStarshipMethid[75] = {
-  {(bigint) 3367 /* 0: Identity */},
-  {(bigint) 3 /* 1: AStarshipMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AStarshipMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AStarshipMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: AStarshipMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3367 /* 5: AStarshipMethid < AStarshipMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_AStarshipMethid[76] = {
+  {(bigint) 6151 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStarshipMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStarshipMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStarshipMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AStarshipMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6151 /* 6: AStarshipMethid < AStarshipMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27639,14 +60553,12 @@ const classtable_elt_t VFT_AStarshipMethid[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AStarshipMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AStarshipMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27654,7 +60566,6 @@ const classtable_elt_t VFT_AStarshipMethid[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27662,77 +60573,166 @@ const classtable_elt_t VFT_AStarshipMethid[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AStarshipMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AStarshipMethid___visit_all},
   {(bigint) parser_prod___AStarshipMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AStarshipMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AStarshipMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AStarshipMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: AStarshipMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AStarshipMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___AStarshipMethid___empty_init},
   {(bigint) parser_prod___AStarshipMethid___init_astarshipmethid},
-  {(bigint) 4 /* 72: AStarshipMethid < AStarshipMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: AStarshipMethid < AStarshipMethid: superclass init_table position */},
   {(bigint) parser_nodes___AStarshipMethid___n_starship},
   {(bigint) parser_prod___AStarshipMethid___n_starship__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AStarshipMethid::_parent */
-/* 2: Attribute AStarshipMethid::_first_token */
-/* 3: Attribute AStarshipMethid::_last_token */
-/* 4: Attribute AStarshipMethid::_name */
-/* 5: Attribute AStarshipMethid::_n_starship */
-val_t NEW_AStarshipMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute AStarshipMethid::_parent */
+/* 3: Attribute AStarshipMethid::_location */
+/* 4: Attribute AStarshipMethid::_first_location */
+/* 5: Attribute AStarshipMethid::_last_location */
+/* 6: Attribute AStarshipMethid::_name */
+/* 7: Attribute AStarshipMethid::_n_starship */
+void INIT_ATTRIBUTES__AStarshipMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStarshipMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStarshipMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AStarshipMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AStarshipMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStarshipMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStarshipMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_starship");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStarshipMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AStarshipMethid();
-  parser_prod___AStarshipMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStarshipMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStarshipMethid();
+  INIT_ATTRIBUTES__AStarshipMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStarshipMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStarshipMethid_parser_prod___AStarshipMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3450;
+  fra.me.meth = LOCATE_NEW_AStarshipMethid_parser_prod___AStarshipMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStarshipMethid();
+  /* ./parser//parser_prod.nit:3450 */
+  INIT_ATTRIBUTES__AStarshipMethid(fra.me.REG[0]);
+  parser_prod___AStarshipMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStarshipMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AStarshipMethid();
-  parser_prod___AStarshipMethid___init_astarshipmethid(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3452;
+  fra.me.meth = LOCATE_NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid;
+  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;
+  fra.me.REG[1] = NEW_AStarshipMethid();
+  /* ./parser//parser_prod.nit:3452 */
+  INIT_ATTRIBUTES__AStarshipMethid(fra.me.REG[1]);
+  parser_prod___AStarshipMethid___init_astarshipmethid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStarshipMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AAssignMethid[77] = {
-  {(bigint) 3587 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAssignMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAssignMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAssignMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: AAssignMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3587 /* 5: AAssignMethid < AAssignMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_AAssignMethid[78] = {
+  {(bigint) 6351 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAssignMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAssignMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAssignMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: AAssignMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6351 /* 6: AAssignMethid < AAssignMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27740,14 +60740,12 @@ const classtable_elt_t VFT_AAssignMethid[77] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAssignMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAssignMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27755,7 +60753,6 @@ const classtable_elt_t VFT_AAssignMethid[77] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27763,80 +60760,178 @@ const classtable_elt_t VFT_AAssignMethid[77] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AAssignMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAssignMethid___visit_all},
   {(bigint) parser_prod___AAssignMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAssignMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AAssignMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAssignMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: AAssignMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: AAssignMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___AAssignMethid___empty_init},
   {(bigint) parser_prod___AAssignMethid___init_aassignmethid},
-  {(bigint) 4 /* 72: AAssignMethid < AAssignMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: AAssignMethid < AAssignMethid: superclass init_table position */},
   {(bigint) parser_nodes___AAssignMethid___n_id},
   {(bigint) parser_prod___AAssignMethid___n_id__eq},
   {(bigint) parser_nodes___AAssignMethid___n_assign},
   {(bigint) parser_prod___AAssignMethid___n_assign__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAssignMethid::_parent */
-/* 2: Attribute AAssignMethid::_first_token */
-/* 3: Attribute AAssignMethid::_last_token */
-/* 4: Attribute AAssignMethid::_name */
-/* 5: Attribute AAssignMethid::_n_id */
-/* 6: Attribute AAssignMethid::_n_assign */
-val_t NEW_AAssignMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute AAssignMethid::_parent */
+/* 3: Attribute AAssignMethid::_location */
+/* 4: Attribute AAssignMethid::_first_location */
+/* 5: Attribute AAssignMethid::_last_location */
+/* 6: Attribute AAssignMethid::_name */
+/* 7: Attribute AAssignMethid::_n_id */
+/* 8: Attribute AAssignMethid::_n_assign */
+void INIT_ATTRIBUTES__AAssignMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAssignMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAssignMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_AAssignMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAssignMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAssignMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAssignMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAssignMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAssignMethid();
-  parser_prod___AAssignMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAssignMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAssignMethid();
+  INIT_ATTRIBUTES__AAssignMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAssignMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAssignMethid_parser_prod___AAssignMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3497;
+  fra.me.meth = LOCATE_NEW_AAssignMethid_parser_prod___AAssignMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAssignMethid();
+  /* ./parser//parser_prod.nit:3497 */
+  INIT_ATTRIBUTES__AAssignMethid(fra.me.REG[0]);
+  parser_prod___AAssignMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAssignMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAssignMethid();
-  parser_prod___AAssignMethid___init_aassignmethid(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3499;
+  fra.me.meth = LOCATE_NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AAssignMethid();
+  /* ./parser//parser_prod.nit:3499 */
+  INIT_ATTRIBUTES__AAssignMethid(fra.me.REG[2]);
+  parser_prod___AAssignMethid___init_aassignmethid(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AAssignMethid(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ABraassignMethid[79] = {
-  {(bigint) 3559 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABraassignMethid < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABraassignMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABraassignMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: ABraassignMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3559 /* 5: ABraassignMethid < ABraassignMethid: superclass typecheck marker */},
+const classtable_elt_t VFT_ABraassignMethid[80] = {
+  {(bigint) 6327 /* 0: Identity */},
+  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABraassignMethid < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABraassignMethid < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABraassignMethid < Prod: superclass typecheck marker */},
+  {(bigint) 5951 /* 5: ABraassignMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 6327 /* 6: ABraassignMethid < ABraassignMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27844,14 +60939,12 @@ const classtable_elt_t VFT_ABraassignMethid[79] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ABraassignMethid < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ABraassignMethid < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27859,7 +60952,6 @@ const classtable_elt_t VFT_ABraassignMethid[79] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27867,43 +60959,46 @@ const classtable_elt_t VFT_ABraassignMethid[79] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PMethid___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AMethid___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ABraassignMethid___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ABraassignMethid___visit_all},
   {(bigint) parser_prod___ABraassignMethid___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ABraassignMethid < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ABraassignMethid < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ABraassignMethid < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PMethid___name},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) 3 /* 69: ABraassignMethid < PMethid: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AMethid___name},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) 3 /* 70: ABraassignMethid < AMethid: superclass init_table position */},
   {(bigint) parser_prod___ABraassignMethid___empty_init},
   {(bigint) parser_prod___ABraassignMethid___init_abraassignmethid},
-  {(bigint) 4 /* 72: ABraassignMethid < ABraassignMethid: superclass init_table position */},
+  {(bigint) 4 /* 73: ABraassignMethid < ABraassignMethid: superclass init_table position */},
   {(bigint) parser_nodes___ABraassignMethid___n_obra},
   {(bigint) parser_prod___ABraassignMethid___n_obra__eq},
   {(bigint) parser_nodes___ABraassignMethid___n_cbra},
@@ -27912,38 +61007,141 @@ const classtable_elt_t VFT_ABraassignMethid[79] = {
   {(bigint) parser_prod___ABraassignMethid___n_assign__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ABraassignMethid::_parent */
-/* 2: Attribute ABraassignMethid::_first_token */
-/* 3: Attribute ABraassignMethid::_last_token */
-/* 4: Attribute ABraassignMethid::_name */
-/* 5: Attribute ABraassignMethid::_n_obra */
-/* 6: Attribute ABraassignMethid::_n_cbra */
-/* 7: Attribute ABraassignMethid::_n_assign */
-val_t NEW_ABraassignMethid(void) {
+/* 1: Object_id */
+/* 2: Attribute ABraassignMethid::_parent */
+/* 3: Attribute ABraassignMethid::_location */
+/* 4: Attribute ABraassignMethid::_first_location */
+/* 5: Attribute ABraassignMethid::_last_location */
+/* 6: Attribute ABraassignMethid::_name */
+/* 7: Attribute ABraassignMethid::_n_obra */
+/* 8: Attribute ABraassignMethid::_n_cbra */
+/* 9: Attribute ABraassignMethid::_n_assign */
+void INIT_ATTRIBUTES__ABraassignMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABraassignMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraassignMethid(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 10);
   obj->vft = (classtable_elt_t*)VFT_ABraassignMethid;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ABraassignMethid___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABraassignMethid(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABraassignMethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_obra");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_cbra");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraassignMethid_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ABraassignMethid();
-  parser_prod___ABraassignMethid___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABraassignMethid_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABraassignMethid();
+  INIT_ATTRIBUTES__ABraassignMethid(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraassignMethid(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraassignMethid_parser_prod___ABraassignMethid___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3564;
+  fra.me.meth = LOCATE_NEW_ABraassignMethid_parser_prod___ABraassignMethid___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraassignMethid();
+  /* ./parser//parser_prod.nit:3564 */
+  INIT_ATTRIBUTES__ABraassignMethid(fra.me.REG[0]);
+  parser_prod___ABraassignMethid___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraassignMethid(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ABraassignMethid();
-  parser_prod___ABraassignMethid___init_abraassignmethid(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3566;
+  fra.me.meth = LOCATE_NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethid;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ABraassignMethid();
+  /* ./parser//parser_prod.nit:3566 */
+  INIT_ATTRIBUTES__ABraassignMethid(fra.me.REG[3]);
+  parser_prod___ABraassignMethid___init_abraassignmethid(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ABraassignMethid(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ASignature[77] = {
-  {(bigint) 3379 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASignature < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASignature < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASignature < Prod: superclass typecheck marker */},
-  {(bigint) 3059 /* 4: ASignature < PSignature: superclass typecheck marker */},
-  {(bigint) 3379 /* 5: ASignature < ASignature: superclass typecheck marker */},
+const classtable_elt_t VFT_ASignature[80] = {
+  {(bigint) 5927 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASignature < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASignature < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASignature < Prod: superclass typecheck marker */},
+  {(bigint) 5927 /* 5: ASignature < ASignature: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27951,14 +61149,13 @@ const classtable_elt_t VFT_ASignature[77] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ASignature < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ASignature < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -27966,7 +61163,6 @@ const classtable_elt_t VFT_ASignature[77] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -27974,79 +61170,193 @@ const classtable_elt_t VFT_ASignature[77] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
   {(bigint) mmbuilder___ASignature___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASignature___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASignature___visit_all},
   {(bigint) parser_prod___ASignature___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ASignature < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ASignature < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ASignature < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
   {(bigint) mmbuilder___ASignature___check_visibility},
-  {(bigint) 3 /* 68: ASignature < PSignature: superclass init_table position */},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
   {(bigint) parser_prod___ASignature___empty_init},
   {(bigint) parser_prod___ASignature___init_asignature},
-  {(bigint) 4 /* 72: ASignature < ASignature: superclass init_table position */},
+  {(bigint) 3 /* 72: ASignature < ASignature: superclass init_table position */},
   {(bigint) parser_nodes___ASignature___n_params},
   {(bigint) parser_nodes___ASignature___n_params__eq},
   {(bigint) parser_nodes___ASignature___n_type},
   {(bigint) parser_prod___ASignature___n_type__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ASignature::_parent */
-/* 2: Attribute ASignature::_first_token */
-/* 3: Attribute ASignature::_last_token */
-/* 4: Attribute ASignature::_n_params */
-/* 5: Attribute ASignature::_n_type */
-val_t NEW_ASignature(void) {
+  {(bigint) parser_nodes___ASignature___n_closure_decls},
+  {(bigint) parser_nodes___ASignature___n_closure_decls__eq},
+  {(bigint) icode_generation___ASignature___fill_iroutine_parameters},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ASignature::_parent */
+/* 3: Attribute ASignature::_location */
+/* 4: Attribute ASignature::_first_location */
+/* 5: Attribute ASignature::_last_location */
+/* 6: Attribute ASignature::_n_params */
+/* 7: Attribute ASignature::_n_type */
+/* 8: Attribute ASignature::_n_closure_decls */
+void INIT_ATTRIBUTES__ASignature(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASignature;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:537 */
+  ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:538 */
+  ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:539 */
+  ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASignature(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_ASignature;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ASignature___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASignature();
-  parser_prod___ASignature___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ASignature___init_asignature(val_t p0, val_t p1) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASignature();
-  parser_prod___ASignature___init_asignature(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASignature(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASignature;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_params");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_decls");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASignature_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASignature_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASignature();
+  INIT_ATTRIBUTES__ASignature(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASignature(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASignature_parser_prod___ASignature___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3638;
+  fra.me.meth = LOCATE_NEW_ASignature_parser_prod___ASignature___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASignature();
+  /* ./parser//parser_prod.nit:3638 */
+  INIT_ATTRIBUTES__ASignature(fra.me.REG[0]);
+  parser_prod___ASignature___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASignature(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASignature_parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3640;
+  fra.me.meth = LOCATE_NEW_ASignature_parser_prod___ASignature___init_asignature;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ASignature();
+  /* ./parser//parser_prod.nit:3640 */
+  INIT_ATTRIBUTES__ASignature(fra.me.REG[3]);
+  parser_prod___ASignature___init_asignature(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ASignature(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_AParam[84] = {
-  {(bigint) 3435 /* 0: Identity */},
-  {(bigint) 3 /* 1: AParam < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AParam < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AParam < Prod: superclass typecheck marker */},
-  {(bigint) 3071 /* 4: AParam < PParam: superclass typecheck marker */},
-  {(bigint) 3435 /* 5: AParam < AParam: superclass typecheck marker */},
+const classtable_elt_t VFT_AParam[83] = {
+  {(bigint) 5939 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AParam < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AParam < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AParam < Prod: superclass typecheck marker */},
+  {(bigint) 5939 /* 5: AParam < AParam: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28054,14 +61364,13 @@ const classtable_elt_t VFT_AParam[84] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AParam < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AParam < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28069,7 +61378,6 @@ const classtable_elt_t VFT_AParam[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28077,91 +61385,200 @@ const classtable_elt_t VFT_AParam[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PParam___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___AParam___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AParam___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AParam___visit_all},
   {(bigint) parser_prod___AParam___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AParam < PNode: superclass init_table position */},
-  {(bigint) control_flow___PParam___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PParam___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AParam < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AParam___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AParam < Prod: superclass init_table position */},
-  {(bigint) mmbuilder___PParam___stype},
-  {(bigint) mmbuilder___PParam___stype__eq},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___AParam___stype},
+  {(bigint) mmbuilder___AParam___stype__eq},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
   {(bigint) mmbuilder___AParam___is_vararg},
-  {(bigint) mmbuilder___PParam___position},
-  {(bigint) mmbuilder___PParam___variable},
-  {(bigint) 3 /* 73: AParam < PParam: superclass init_table position */},
-  {(bigint) parser_nodes___PParam___n_id},
-  {(bigint) parser_prod___AParam___n_id__eq},
-  {(bigint) parser_nodes___PParam___n_type},
-  {(bigint) parser_prod___AParam___n_type__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) mmbuilder___AParam___position},
+  {(bigint) mmbuilder___AParam___variable},
   {(bigint) parser_prod___AParam___empty_init},
   {(bigint) parser_prod___AParam___init_aparam},
-  {(bigint) 4 /* 81: AParam < AParam: superclass init_table position */},
+  {(bigint) 3 /* 76: AParam < AParam: superclass init_table position */},
+  {(bigint) parser_nodes___AParam___n_id},
+  {(bigint) parser_prod___AParam___n_id__eq},
+  {(bigint) parser_nodes___AParam___n_type},
+  {(bigint) parser_prod___AParam___n_type__eq},
   {(bigint) parser_nodes___AParam___n_dotdotdot},
   {(bigint) parser_prod___AParam___n_dotdotdot__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AParam::_parent */
-/* 2: Attribute AParam::_first_token */
-/* 3: Attribute AParam::_last_token */
-/* 4: Attribute AParam::_position */
-/* 5: Attribute AParam::_variable */
-/* 6: Attribute AParam::_stype */
-/* 7: Attribute AParam::_n_id */
-/* 8: Attribute AParam::_n_type */
-/* 9: Attribute AParam::_n_dotdotdot */
-val_t NEW_AParam(void) {
+/* 1: Object_id */
+/* 2: Attribute AParam::_parent */
+/* 3: Attribute AParam::_location */
+/* 4: Attribute AParam::_first_location */
+/* 5: Attribute AParam::_last_location */
+/* 6: Attribute AParam::_position */
+/* 7: Attribute AParam::_variable */
+/* 8: Attribute AParam::_stype */
+/* 9: Attribute AParam::_n_id */
+/* 10: Attribute AParam::_n_type */
+/* 11: Attribute AParam::_n_dotdotdot */
+void INIT_ATTRIBUTES__AParam(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AParam;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:544 */
+  ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:545 */
+  ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./syntax//mmbuilder.nit:1167 */
+  ATTR_mmbuilder___AParam____position(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AParam(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AParam;
-  ATTR_mmbuilder___PParam____position(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AParam___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AParam();
-  parser_prod___AParam___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AParam();
-  parser_prod___AParam___init_aparam(self, p0, p1, p2, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AParam(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AParam;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_position");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AParam_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AParam_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AParam();
+  INIT_ATTRIBUTES__AParam(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AParam(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AParam_parser_prod___AParam___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3756;
+  fra.me.meth = LOCATE_NEW_AParam_parser_prod___AParam___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AParam();
+  /* ./parser//parser_prod.nit:3756 */
+  INIT_ATTRIBUTES__AParam(fra.me.REG[0]);
+  parser_prod___AParam___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AParam(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AParam_parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3758;
+  fra.me.meth = LOCATE_NEW_AParam_parser_prod___AParam___init_aparam;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AParam();
+  /* ./parser//parser_prod.nit:3758 */
+  INIT_ATTRIBUTES__AParam(fra.me.REG[3]);
+  parser_prod___AParam___init_aparam(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AParam(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_AType[81] = {
-  {(bigint) 3347 /* 0: Identity */},
-  {(bigint) 3 /* 1: AType < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AType < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AType < Prod: superclass typecheck marker */},
-  {(bigint) 3051 /* 4: AType < PType: superclass typecheck marker */},
-  {(bigint) 3347 /* 5: AType < AType: superclass typecheck marker */},
+const classtable_elt_t VFT_AClosureDecl[86] = {
+  {(bigint) 5983 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AClosureDecl < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AClosureDecl < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AClosureDecl < Prod: superclass typecheck marker */},
+  {(bigint) 5983 /* 5: AClosureDecl < AClosureDecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28169,14 +61586,258 @@ const classtable_elt_t VFT_AType[81] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AClosureDecl < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AType < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___AClosureDecl___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AClosureDecl___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___AClosureDecl___visit_all},
+  {(bigint) parser_prod___AClosureDecl___visit_all_reverse},
+  {(bigint) 1 /* 59: AClosureDecl < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AClosureDecl___accept_icode_generation},
+  {(bigint) typing___AClosureDecl___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AClosureDecl < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) mmbuilder___AClosureDecl___position},
+  {(bigint) mmbuilder___AClosureDecl___variable},
+  {(bigint) parser_prod___AClosureDecl___empty_init},
+  {(bigint) parser_prod___AClosureDecl___init_aclosuredecl},
+  {(bigint) 3 /* 73: AClosureDecl < AClosureDecl: superclass init_table position */},
+  {(bigint) parser_nodes___AClosureDecl___n_kwbreak},
+  {(bigint) parser_prod___AClosureDecl___n_kwbreak__eq},
+  {(bigint) parser_nodes___AClosureDecl___n_bang},
+  {(bigint) parser_prod___AClosureDecl___n_bang__eq},
+  {(bigint) parser_nodes___AClosureDecl___n_id},
+  {(bigint) parser_prod___AClosureDecl___n_id__eq},
+  {(bigint) parser_nodes___AClosureDecl___n_signature},
+  {(bigint) parser_prod___AClosureDecl___n_signature__eq},
+  {(bigint) parser_nodes___AClosureDecl___n_expr},
+  {(bigint) parser_prod___AClosureDecl___n_expr__eq},
+  {(bigint) typing___AClosureDecl___escapable},
+  {(bigint) typing___ANode___accept_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AClosureDecl::_parent */
+/* 3: Attribute AClosureDecl::_location */
+/* 4: Attribute AClosureDecl::_first_location */
+/* 5: Attribute AClosureDecl::_last_location */
+/* 6: Attribute AClosureDecl::_position */
+/* 7: Attribute AClosureDecl::_variable */
+/* 8: Attribute AClosureDecl::_n_kwbreak */
+/* 9: Attribute AClosureDecl::_n_bang */
+/* 10: Attribute AClosureDecl::_n_id */
+/* 11: Attribute AClosureDecl::_n_signature */
+/* 12: Attribute AClosureDecl::_n_expr */
+/* 13: Attribute AClosureDecl::_escapable */
+void INIT_ATTRIBUTES__AClosureDecl(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AClosureDecl;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:549 */
+  ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:553 */
+  ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./syntax//mmbuilder.nit:1208 */
+  ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClosureDecl(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_AClosureDecl;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AClosureDecl(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AClosureDecl;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_bang");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_signature");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_position");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClosureDecl_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AClosureDecl_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AClosureDecl();
+  INIT_ATTRIBUTES__AClosureDecl(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AClosureDecl(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AClosureDecl_parser_prod___AClosureDecl___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3864;
+  fra.me.meth = LOCATE_NEW_AClosureDecl_parser_prod___AClosureDecl___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AClosureDecl();
+  /* ./parser//parser_prod.nit:3864 */
+  INIT_ATTRIBUTES__AClosureDecl(fra.me.REG[0]);
+  parser_prod___AClosureDecl___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AClosureDecl(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(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[5];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3866;
+  fra.me.meth = LOCATE_NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AClosureDecl();
+  /* ./parser//parser_prod.nit:3866 */
+  INIT_ATTRIBUTES__AClosureDecl(fra.me.REG[5]);
+  parser_prod___AClosureDecl___init_aclosuredecl(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AClosureDecl(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+const classtable_elt_t VFT_AType[84] = {
+  {(bigint) 5919 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AType < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AType < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AType < Prod: superclass typecheck marker */},
+  {(bigint) 5919 /* 5: AType < AType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AType < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28184,7 +61845,6 @@ const classtable_elt_t VFT_AType[81] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28192,87 +61852,213 @@ const classtable_elt_t VFT_AType[81] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AType___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AType___visit_all},
   {(bigint) parser_prod___AType___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AType < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PType___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AType < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AType___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AType < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) mmbuilder___AType___check_visibility},
+  {(bigint) typing___AType___is_typed},
+  {(bigint) typing___AType___stype},
   {(bigint) syntax_base___AType___get_local_class},
-  {(bigint) syntax_base___AType___get_stype},
   {(bigint) syntax_base___AType___get_unchecked_stype},
+  {(bigint) syntax_base___AType___get_stype},
   {(bigint) syntax_base___AType___check_conform},
-  {(bigint) 3 /* 72: AType < PType: superclass init_table position */},
-  {(bigint) typing___PType___stype},
   {(bigint) parser_prod___AType___empty_init},
   {(bigint) parser_prod___AType___init_atype},
-  {(bigint) 4 /* 76: AType < AType: superclass init_table position */},
+  {(bigint) 3 /* 77: AType < AType: superclass init_table position */},
+  {(bigint) parser_nodes___AType___n_kwnullable},
+  {(bigint) parser_prod___AType___n_kwnullable__eq},
   {(bigint) parser_nodes___AType___n_id},
   {(bigint) parser_prod___AType___n_id__eq},
   {(bigint) parser_nodes___AType___n_types},
   {(bigint) parser_nodes___AType___n_types__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AType::_parent */
-/* 2: Attribute AType::_first_token */
-/* 3: Attribute AType::_last_token */
-/* 4: Attribute AType::_stype */
-/* 5: Attribute AType::_stype_cache */
-/* 6: Attribute AType::_stype_cached */
-/* 7: Attribute AType::_n_id */
-/* 8: Attribute AType::_n_types */
-val_t NEW_AType(void) {
+/* 1: Object_id */
+/* 2: Attribute AType::_parent */
+/* 3: Attribute AType::_location */
+/* 4: Attribute AType::_first_location */
+/* 5: Attribute AType::_last_location */
+/* 6: Attribute AType::_stype_cache */
+/* 7: Attribute AType::_stype_cached */
+/* 8: Attribute AType::_n_kwnullable */
+/* 9: Attribute AType::_n_id */
+/* 10: Attribute AType::_n_types */
+/* 11: Attribute AType::_stype */
+void INIT_ATTRIBUTES__AType(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AType;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:557 */
+  ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:559 */
+  ATTR_parser_nodes___AType____n_types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//syntax_base.nit:591 */
+  ATTR_syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//syntax_base.nit:592 */
+  ATTR_syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AType(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AType;
-  ATTR_syntax_base___AType____stype_cached(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AType___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AType();
-  parser_prod___AType___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AType___init_atype(val_t p0, val_t p1) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AType();
-  parser_prod___AType___init_atype(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AType(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AType;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AType____stype_cached(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stype_cached");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AType_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AType_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AType();
+  INIT_ATTRIBUTES__AType(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AType(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AType_parser_prod___AType___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3985;
+  fra.me.meth = LOCATE_NEW_AType_parser_prod___AType___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AType();
+  /* ./parser//parser_prod.nit:3985 */
+  INIT_ATTRIBUTES__AType(fra.me.REG[0]);
+  parser_prod___AType___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AType(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AType_parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3987;
+  fra.me.meth = LOCATE_NEW_AType_parser_prod___AType___init_atype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AType();
+  /* ./parser//parser_prod.nit:3987 */
+  INIT_ATTRIBUTES__AType(fra.me.REG[3]);
+  parser_prod___AType___init_atype(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AType(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ABlockExpr[82] = {
-  {(bigint) 3571 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABlockExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABlockExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABlockExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABlockExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3571 /* 5: ABlockExpr < ABlockExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ALabel[75] = {
+  {(bigint) 5959 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ALabel < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ALabel < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ALabel < Prod: superclass typecheck marker */},
+  {(bigint) 5959 /* 5: ALabel < ALabel: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28280,14 +62066,367 @@ const classtable_elt_t VFT_ABlockExpr[82] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ALabel < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ALabel___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ALabel___visit_all},
+  {(bigint) parser_prod___ALabel___visit_all_reverse},
+  {(bigint) 1 /* 59: ALabel < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ALabel < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) parser_prod___ALabel___empty_init},
+  {(bigint) parser_prod___ALabel___init_alabel},
+  {(bigint) 3 /* 70: ALabel < ALabel: superclass init_table position */},
+  {(bigint) parser_nodes___ALabel___n_kwlabel},
+  {(bigint) parser_prod___ALabel___n_kwlabel__eq},
+  {(bigint) parser_nodes___ALabel___n_id},
+  {(bigint) parser_prod___ALabel___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ALabel::_parent */
+/* 3: Attribute ALabel::_location */
+/* 4: Attribute ALabel::_first_location */
+/* 5: Attribute ALabel::_last_location */
+/* 6: Attribute ALabel::_n_kwlabel */
+/* 7: Attribute ALabel::_n_id */
+void INIT_ATTRIBUTES__ALabel(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ALabel;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALabel(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ALabel;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ALabel(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ALabel;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwlabel");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALabel_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ALabel_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ALabel();
+  INIT_ATTRIBUTES__ALabel(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALabel(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ALabel_parser_prod___ALabel___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4081;
+  fra.me.meth = LOCATE_NEW_ALabel_parser_prod___ALabel___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALabel();
+  /* ./parser//parser_prod.nit:4081 */
+  INIT_ATTRIBUTES__ALabel(fra.me.REG[0]);
+  parser_prod___ALabel___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALabel(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALabel_parser_prod___ALabel___init_alabel(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4083;
+  fra.me.meth = LOCATE_NEW_ALabel_parser_prod___ALabel___init_alabel;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ALabel();
+  /* ./parser//parser_prod.nit:4083 */
+  INIT_ATTRIBUTES__ALabel(fra.me.REG[2]);
+  parser_prod___ALabel___init_alabel(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ALabel(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_AExpr[81] = {
+  {(bigint) 5971 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AExpr < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ABlockExpr < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AExpr::_parent */
+/* 3: Attribute AExpr::_location */
+/* 4: Attribute AExpr::_first_location */
+/* 5: Attribute AExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AExpr::_is_typed */
+/* 8: Attribute AExpr::_stype */
+/* 9: Attribute AExpr::_if_true_variable_ctx */
+/* 10: Attribute AExpr::_if_false_variable_ctx */
+void INIT_ATTRIBUTES__AExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_AExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AExpr();
+  INIT_ATTRIBUTES__AExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ABlockExpr[86] = {
+  {(bigint) 6339 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABlockExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABlockExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABlockExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ABlockExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6339 /* 7: ABlockExpr < ABlockExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ABlockExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28295,7 +62434,6 @@ const classtable_elt_t VFT_ABlockExpr[82] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28303,100 +62441,210 @@ const classtable_elt_t VFT_ABlockExpr[82] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ABlockExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ABlockExpr___visit_all},
   {(bigint) parser_prod___ABlockExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ABlockExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___ABlockExpr___accept_control_flow},
+  {(bigint) 1 /* 59: ABlockExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
   {(bigint) typing___ABlockExpr___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ABlockExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ABlockExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ABlockExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ABlockExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ABlockExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ABlockExpr___empty_init},
   {(bigint) parser_prod___ABlockExpr___init_ablockexpr},
-  {(bigint) 4 /* 78: ABlockExpr < ABlockExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: ABlockExpr < ABlockExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABlockExpr___n_expr},
   {(bigint) parser_nodes___ABlockExpr___n_expr__eq},
-  {(bigint) typing___PNode___accept_typing},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ABlockExpr::_parent */
-/* 2: Attribute ABlockExpr::_first_token */
-/* 3: Attribute ABlockExpr::_last_token */
-/* 4: Attribute ABlockExpr::_stype */
-/* 5: Attribute ABlockExpr::_if_true_variable_ctx */
-/* 6: Attribute ABlockExpr::_n_expr */
-val_t NEW_ABlockExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ABlockExpr::_parent */
+/* 3: Attribute ABlockExpr::_location */
+/* 4: Attribute ABlockExpr::_first_location */
+/* 5: Attribute ABlockExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ABlockExpr::_is_typed */
+/* 8: Attribute ABlockExpr::_stype */
+/* 9: Attribute ABlockExpr::_if_true_variable_ctx */
+/* 10: Attribute ABlockExpr::_if_false_variable_ctx */
+/* 11: Attribute ABlockExpr::_n_expr */
+void INIT_ATTRIBUTES__ABlockExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABlockExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:569 */
+  ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABlockExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_ABlockExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ABlockExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABlockExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABlockExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABlockExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ABlockExpr();
-  parser_prod___ABlockExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ABlockExpr___init_ablockexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABlockExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABlockExpr();
+  INIT_ATTRIBUTES__ABlockExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABlockExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABlockExpr_parser_prod___ABlockExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4133;
+  fra.me.meth = LOCATE_NEW_ABlockExpr_parser_prod___ABlockExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABlockExpr();
+  /* ./parser//parser_prod.nit:4133 */
+  INIT_ATTRIBUTES__ABlockExpr(fra.me.REG[0]);
+  parser_prod___ABlockExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABlockExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ABlockExpr();
-  parser_prod___ABlockExpr___init_ablockexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4135;
+  fra.me.meth = LOCATE_NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr;
+  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;
+  fra.me.REG[1] = NEW_ABlockExpr();
+  /* ./parser//parser_prod.nit:4135 */
+  INIT_ATTRIBUTES__ABlockExpr(fra.me.REG[1]);
+  parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABlockExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AVardeclExpr[92] = {
-  {(bigint) 3331 /* 0: Identity */},
-  {(bigint) 3 /* 1: AVardeclExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AVardeclExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AVardeclExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AVardeclExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3331 /* 5: AVardeclExpr < AVardeclExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AVardeclExpr[95] = {
+  {(bigint) 6111 /* 0: Identity */},
+  {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AVardeclExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AVardeclExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AVardeclExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AVardeclExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6111 /* 7: AVardeclExpr < AVardeclExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AVardeclExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AVardeclExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28404,7 +62652,6 @@ const classtable_elt_t VFT_AVardeclExpr[92] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28412,52 +62659,57 @@ const classtable_elt_t VFT_AVardeclExpr[92] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AVardeclExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AVardeclExpr___visit_all},
   {(bigint) parser_prod___AVardeclExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AVardeclExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AVardeclExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AVardeclExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AVardeclExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AVardeclExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___AVardeclExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AVardeclExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AVardeclExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) syntax_base___AVardeclExpr___variable},
-  {(bigint) syntax_base___AVardeclExpr___variable__eq},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AVardeclExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AVardeclExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___AVardeclExpr___variable},
   {(bigint) parser_prod___AVardeclExpr___empty_init},
   {(bigint) parser_prod___AVardeclExpr___init_avardeclexpr},
-  {(bigint) 4 /* 81: AVardeclExpr < AVardeclExpr: superclass init_table position */},
+  {(bigint) 4 /* 84: AVardeclExpr < AVardeclExpr: superclass init_table position */},
   {(bigint) parser_nodes___AVardeclExpr___n_kwvar},
   {(bigint) parser_prod___AVardeclExpr___n_kwvar__eq},
   {(bigint) parser_nodes___AVardeclExpr___n_id},
@@ -28470,57 +62722,182 @@ const classtable_elt_t VFT_AVardeclExpr[92] = {
   {(bigint) parser_prod___AVardeclExpr___n_expr__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AVardeclExpr::_parent */
-/* 2: Attribute AVardeclExpr::_first_token */
-/* 3: Attribute AVardeclExpr::_last_token */
-/* 4: Attribute AVardeclExpr::_stype */
-/* 5: Attribute AVardeclExpr::_if_true_variable_ctx */
-/* 6: Attribute AVardeclExpr::_variable */
-/* 7: Attribute AVardeclExpr::_n_kwvar */
-/* 8: Attribute AVardeclExpr::_n_id */
-/* 9: Attribute AVardeclExpr::_n_type */
-/* 10: Attribute AVardeclExpr::_n_assign */
-/* 11: Attribute AVardeclExpr::_n_expr */
-val_t NEW_AVardeclExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AVardeclExpr::_parent */
+/* 3: Attribute AVardeclExpr::_location */
+/* 4: Attribute AVardeclExpr::_first_location */
+/* 5: Attribute AVardeclExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AVardeclExpr::_is_typed */
+/* 8: Attribute AVardeclExpr::_stype */
+/* 9: Attribute AVardeclExpr::_if_true_variable_ctx */
+/* 10: Attribute AVardeclExpr::_if_false_variable_ctx */
+/* 11: Attribute AVardeclExpr::_variable */
+/* 12: Attribute AVardeclExpr::_n_kwvar */
+/* 13: Attribute AVardeclExpr::_n_id */
+/* 14: Attribute AVardeclExpr::_n_type */
+/* 15: Attribute AVardeclExpr::_n_assign */
+/* 16: Attribute AVardeclExpr::_n_expr */
+void INIT_ATTRIBUTES__AVardeclExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AVardeclExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:575 */
+  ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:576 */
+  ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:577 */
+  ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVardeclExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+  obj = alloc(sizeof(val_t) * 17);
   obj->vft = (classtable_elt_t*)VFT_AVardeclExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AVardeclExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AVardeclExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AVardeclExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwvar");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVardeclExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AVardeclExpr();
-  parser_prod___AVardeclExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AVardeclExpr();
+  INIT_ATTRIBUTES__AVardeclExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AVardeclExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AVardeclExpr_parser_prod___AVardeclExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4214;
+  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser_prod___AVardeclExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AVardeclExpr();
+  /* ./parser//parser_prod.nit:4214 */
+  INIT_ATTRIBUTES__AVardeclExpr(fra.me.REG[0]);
+  parser_prod___AVardeclExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AVardeclExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr(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[5];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AVardeclExpr();
-  parser_prod___AVardeclExpr___init_avardeclexpr(self, p0, p1, p2, p3, p4, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4216;
+  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AVardeclExpr();
+  /* ./parser//parser_prod.nit:4216 */
+  INIT_ATTRIBUTES__AVardeclExpr(fra.me.REG[5]);
+  parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AVardeclExpr(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
 }
-const classtable_elt_t VFT_AReturnExpr[84] = {
-  {(bigint) 3387 /* 0: Identity */},
-  {(bigint) 3 /* 1: AReturnExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AReturnExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AReturnExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AReturnExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3387 /* 5: AReturnExpr < AReturnExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AReturnExpr[88] = {
+  {(bigint) 6171 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AReturnExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AReturnExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AReturnExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AReturnExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6171 /* 7: AReturnExpr < AReturnExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AReturnExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AReturnExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28528,7 +62905,6 @@ const classtable_elt_t VFT_AReturnExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28536,103 +62912,211 @@ const classtable_elt_t VFT_AReturnExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AReturnExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AReturnExpr___visit_all},
   {(bigint) parser_prod___AReturnExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AReturnExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AReturnExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AReturnExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AReturnExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AReturnExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AReturnExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AReturnExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AReturnExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AReturnExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AReturnExpr___empty_init},
   {(bigint) parser_prod___AReturnExpr___init_areturnexpr},
-  {(bigint) 4 /* 79: AReturnExpr < AReturnExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: AReturnExpr < AReturnExpr: superclass init_table position */},
   {(bigint) parser_nodes___AReturnExpr___n_kwreturn},
   {(bigint) parser_prod___AReturnExpr___n_kwreturn__eq},
   {(bigint) parser_nodes___AReturnExpr___n_expr},
   {(bigint) parser_prod___AReturnExpr___n_expr__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AReturnExpr::_parent */
-/* 2: Attribute AReturnExpr::_first_token */
-/* 3: Attribute AReturnExpr::_last_token */
-/* 4: Attribute AReturnExpr::_stype */
-/* 5: Attribute AReturnExpr::_if_true_variable_ctx */
-/* 6: Attribute AReturnExpr::_n_kwreturn */
-/* 7: Attribute AReturnExpr::_n_expr */
-val_t NEW_AReturnExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AReturnExpr::_parent */
+/* 3: Attribute AReturnExpr::_location */
+/* 4: Attribute AReturnExpr::_first_location */
+/* 5: Attribute AReturnExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AReturnExpr::_is_typed */
+/* 8: Attribute AReturnExpr::_stype */
+/* 9: Attribute AReturnExpr::_if_true_variable_ctx */
+/* 10: Attribute AReturnExpr::_if_false_variable_ctx */
+/* 11: Attribute AReturnExpr::_n_kwreturn */
+/* 12: Attribute AReturnExpr::_n_expr */
+void INIT_ATTRIBUTES__AReturnExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AReturnExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:581 */
+  ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:582 */
+  ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AReturnExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AReturnExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AReturnExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AReturnExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AReturnExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AReturnExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AReturnExpr();
-  parser_prod___AReturnExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AReturnExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AReturnExpr();
+  INIT_ATTRIBUTES__AReturnExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AReturnExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AReturnExpr_parser_prod___AReturnExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4343;
+  fra.me.meth = LOCATE_NEW_AReturnExpr_parser_prod___AReturnExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AReturnExpr();
+  /* ./parser//parser_prod.nit:4343 */
+  INIT_ATTRIBUTES__AReturnExpr(fra.me.REG[0]);
+  parser_prod___AReturnExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AReturnExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AReturnExpr();
-  parser_prod___AReturnExpr___init_areturnexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4345;
+  fra.me.meth = LOCATE_NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AReturnExpr();
+  /* ./parser//parser_prod.nit:4345 */
+  INIT_ATTRIBUTES__AReturnExpr(fra.me.REG[2]);
+  parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AReturnExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ABreakExpr[84] = {
-  {(bigint) 3763 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABreakExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABreakExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABreakExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABreakExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3575 /* 5: ABreakExpr < ABlockControler: superclass typecheck marker */},
-  {(bigint) 3763 /* 6: ABreakExpr < ABreakExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ALabelable[71] = {
+  {(bigint) 5955 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ALabelable < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ALabelable < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ALabelable < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: ALabelable < ALabelable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 1 /* 20: ABreakExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ALabelable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28640,7 +63124,6 @@ const classtable_elt_t VFT_ABreakExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28648,88 +63131,118 @@ const classtable_elt_t VFT_ABreakExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___ABreakExpr___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___ABreakExpr___visit_all},
-  {(bigint) parser_prod___ABreakExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 2 /* 57: ABreakExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___ABreakExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 3 /* 66: ABreakExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ABreakExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 4 /* 71: ABreakExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ABreakExpr < ABlockControler: superclass init_table position */},
-  {(bigint) control_flow___ABlockControler___block},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) parser_prod___ABreakExpr___empty_init},
-  {(bigint) parser_prod___ABreakExpr___init_abreakexpr},
-  {(bigint) 5 /* 81: ABreakExpr < ABreakExpr: superclass init_table position */},
-  {(bigint) parser_nodes___ABreakExpr___n_kwbreak},
-  {(bigint) parser_prod___ABreakExpr___n_kwbreak__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ABreakExpr::_parent */
-/* 2: Attribute ABreakExpr::_first_token */
-/* 3: Attribute ABreakExpr::_last_token */
-/* 4: Attribute ABreakExpr::_stype */
-/* 5: Attribute ABreakExpr::_if_true_variable_ctx */
-/* 6: Attribute ABreakExpr::_block */
-/* 7: Attribute ABreakExpr::_n_kwbreak */
-val_t NEW_ABreakExpr(void) {
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: ALabelable < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ALabelable < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 3 /* 68: ALabelable < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_nodes___ALabelable___n_label__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ALabelable::_parent */
+/* 3: Attribute ALabelable::_location */
+/* 4: Attribute ALabelable::_first_location */
+/* 5: Attribute ALabelable::_last_location */
+/* 6: Attribute ALabelable::_n_label */
+void INIT_ATTRIBUTES__ALabelable(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ALabelable;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALabelable(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_ABreakExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ABreakExpr___empty_init() {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABreakExpr();
-  parser_prod___ABreakExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ABreakExpr___init_abreakexpr(val_t p0) {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABreakExpr();
-  parser_prod___ABreakExpr___init_abreakexpr(self, p0, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ALabelable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ALabelable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ALabelable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALabelable_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ALabelable_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ALabelable();
+  INIT_ATTRIBUTES__ALabelable(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALabelable(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AAbortExpr[82] = {
-  {(bigint) 3615 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAbortExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAbortExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAbortExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAbortExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3615 /* 5: AAbortExpr < AAbortExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ABreakExpr[92] = {
+  {(bigint) 6527 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABreakExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABreakExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABreakExpr < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: ABreakExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ABreakExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6295 /* 7: ABreakExpr < AEscapeExpr: superclass typecheck marker */},
+  {(bigint) 6527 /* 8: ABreakExpr < ABreakExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28737,14 +63250,243 @@ const classtable_elt_t VFT_AAbortExpr[82] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 1 /* 19: ABreakExpr < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAbortExpr < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ABreakExpr___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ABreakExpr___visit_all},
+  {(bigint) parser_prod___ABreakExpr___visit_all_reverse},
+  {(bigint) 2 /* 59: ABreakExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ABreakExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 3 /* 66: ABreakExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 4 /* 68: ABreakExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_prod___ABreakExpr___n_label__eq},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 5 /* 74: ABreakExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ABreakExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) 0 /* 81: ABreakExpr < AEscapeExpr: superclass init_table position */},
+  {(bigint) escape___AEscapeExpr___escapable},
+  {(bigint) escape___ABreakExpr___kwname},
+  {(bigint) escape___AEscapeExpr___compute_escapable_block},
+  {(bigint) parser_prod___ABreakExpr___empty_init},
+  {(bigint) parser_prod___ABreakExpr___init_abreakexpr},
+  {(bigint) 6 /* 87: ABreakExpr < ABreakExpr: superclass init_table position */},
+  {(bigint) parser_nodes___ABreakExpr___n_kwbreak},
+  {(bigint) parser_prod___ABreakExpr___n_kwbreak__eq},
+  {(bigint) parser_nodes___ABreakExpr___n_expr},
+  {(bigint) parser_prod___ABreakExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ABreakExpr::_parent */
+/* 3: Attribute ABreakExpr::_location */
+/* 4: Attribute ABreakExpr::_first_location */
+/* 5: Attribute ABreakExpr::_last_location */
+/* 6: Attribute ABreakExpr::_n_label */
+/* 7: Attribute ABreakExpr::_is_typed */
+/* 8: Attribute ABreakExpr::_stype */
+/* 9: Attribute ABreakExpr::_if_true_variable_ctx */
+/* 10: Attribute ABreakExpr::_if_false_variable_ctx */
+/* 11: Attribute ABreakExpr::_escapable */
+/* 12: Attribute ABreakExpr::_n_kwbreak */
+/* 13: Attribute ABreakExpr::_n_expr */
+void INIT_ATTRIBUTES__ABreakExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABreakExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:592 */
+  ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABreakExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_ABreakExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABreakExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABreakExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwbreak");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABreakExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABreakExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABreakExpr();
+  INIT_ATTRIBUTES__ABreakExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABreakExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABreakExpr_parser_prod___ABreakExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4426;
+  fra.me.meth = LOCATE_NEW_ABreakExpr_parser_prod___ABreakExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABreakExpr();
+  /* ./parser//parser_prod.nit:4426 */
+  INIT_ATTRIBUTES__ABreakExpr(fra.me.REG[0]);
+  parser_prod___ABreakExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABreakExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4428;
+  fra.me.meth = LOCATE_NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ABreakExpr();
+  /* ./parser//parser_prod.nit:4428 */
+  INIT_ATTRIBUTES__ABreakExpr(fra.me.REG[3]);
+  parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ABreakExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_AAbortExpr[86] = {
+  {(bigint) 6379 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAbortExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAbortExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAbortExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AAbortExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6379 /* 7: AAbortExpr < AAbortExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAbortExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28752,7 +63494,6 @@ const classtable_elt_t VFT_AAbortExpr[82] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28760,100 +63501,206 @@ const classtable_elt_t VFT_AAbortExpr[82] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AAbortExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAbortExpr___visit_all},
   {(bigint) parser_prod___AAbortExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAbortExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AAbortExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AAbortExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AAbortExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAbortExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AAbortExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAbortExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAbortExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAbortExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AAbortExpr___empty_init},
   {(bigint) parser_prod___AAbortExpr___init_aabortexpr},
-  {(bigint) 4 /* 79: AAbortExpr < AAbortExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: AAbortExpr < AAbortExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAbortExpr___n_kwabort},
   {(bigint) parser_prod___AAbortExpr___n_kwabort__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAbortExpr::_parent */
-/* 2: Attribute AAbortExpr::_first_token */
-/* 3: Attribute AAbortExpr::_last_token */
-/* 4: Attribute AAbortExpr::_stype */
-/* 5: Attribute AAbortExpr::_if_true_variable_ctx */
-/* 6: Attribute AAbortExpr::_n_kwabort */
-val_t NEW_AAbortExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AAbortExpr::_parent */
+/* 3: Attribute AAbortExpr::_location */
+/* 4: Attribute AAbortExpr::_first_location */
+/* 5: Attribute AAbortExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAbortExpr::_is_typed */
+/* 8: Attribute AAbortExpr::_stype */
+/* 9: Attribute AAbortExpr::_if_true_variable_ctx */
+/* 10: Attribute AAbortExpr::_if_false_variable_ctx */
+/* 11: Attribute AAbortExpr::_n_kwabort */
+void INIT_ATTRIBUTES__AAbortExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAbortExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAbortExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AAbortExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAbortExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAbortExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAbortExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwabort");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAbortExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAbortExpr();
-  parser_prod___AAbortExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAbortExpr___init_aabortexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAbortExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAbortExpr();
+  INIT_ATTRIBUTES__AAbortExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAbortExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAbortExpr_parser_prod___AAbortExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAbortExpr();
-  parser_prod___AAbortExpr___init_aabortexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4510;
+  fra.me.meth = LOCATE_NEW_AAbortExpr_parser_prod___AAbortExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAbortExpr();
+  /* ./parser//parser_prod.nit:4510 */
+  INIT_ATTRIBUTES__AAbortExpr(fra.me.REG[0]);
+  parser_prod___AAbortExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAbortExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4512;
+  fra.me.meth = LOCATE_NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr;
+  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;
+  fra.me.REG[1] = NEW_AAbortExpr();
+  /* ./parser//parser_prod.nit:4512 */
+  INIT_ATTRIBUTES__AAbortExpr(fra.me.REG[1]);
+  parser_prod___AAbortExpr___init_aabortexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAbortExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AContinueExpr[84] = {
-  {(bigint) 3755 /* 0: Identity */},
-  {(bigint) 3 /* 1: AContinueExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AContinueExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AContinueExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AContinueExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3575 /* 5: AContinueExpr < ABlockControler: superclass typecheck marker */},
-  {(bigint) 3755 /* 6: AContinueExpr < AContinueExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AContinueExpr[92] = {
+  {(bigint) 6515 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AContinueExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AContinueExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AContinueExpr < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: AContinueExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AContinueExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6295 /* 7: AContinueExpr < AEscapeExpr: superclass typecheck marker */},
+  {(bigint) 6515 /* 8: AContinueExpr < AContinueExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 1 /* 20: AContinueExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 1 /* 19: AContinueExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28861,7 +63708,6 @@ const classtable_elt_t VFT_AContinueExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28869,88 +63715,209 @@ const classtable_elt_t VFT_AContinueExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AContinueExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AContinueExpr___visit_all},
   {(bigint) parser_prod___AContinueExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 2 /* 57: AContinueExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AContinueExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 2 /* 59: AContinueExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AContinueExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 3 /* 66: AContinueExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AContinueExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 4 /* 71: AContinueExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AContinueExpr < ABlockControler: superclass init_table position */},
-  {(bigint) control_flow___ABlockControler___block},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 4 /* 68: AContinueExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_prod___AContinueExpr___n_label__eq},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 5 /* 74: AContinueExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AContinueExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) 0 /* 81: AContinueExpr < AEscapeExpr: superclass init_table position */},
+  {(bigint) escape___AEscapeExpr___escapable},
+  {(bigint) escape___AContinueExpr___kwname},
+  {(bigint) escape___AEscapeExpr___compute_escapable_block},
   {(bigint) parser_prod___AContinueExpr___empty_init},
   {(bigint) parser_prod___AContinueExpr___init_acontinueexpr},
-  {(bigint) 5 /* 81: AContinueExpr < AContinueExpr: superclass init_table position */},
+  {(bigint) 6 /* 87: AContinueExpr < AContinueExpr: superclass init_table position */},
   {(bigint) parser_nodes___AContinueExpr___n_kwcontinue},
   {(bigint) parser_prod___AContinueExpr___n_kwcontinue__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AContinueExpr::_parent */
-/* 2: Attribute AContinueExpr::_first_token */
-/* 3: Attribute AContinueExpr::_last_token */
-/* 4: Attribute AContinueExpr::_stype */
-/* 5: Attribute AContinueExpr::_if_true_variable_ctx */
-/* 6: Attribute AContinueExpr::_block */
-/* 7: Attribute AContinueExpr::_n_kwcontinue */
-val_t NEW_AContinueExpr(void) {
+  {(bigint) parser_nodes___AContinueExpr___n_expr},
+  {(bigint) parser_prod___AContinueExpr___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AContinueExpr::_parent */
+/* 3: Attribute AContinueExpr::_location */
+/* 4: Attribute AContinueExpr::_first_location */
+/* 5: Attribute AContinueExpr::_last_location */
+/* 6: Attribute AContinueExpr::_n_label */
+/* 7: Attribute AContinueExpr::_is_typed */
+/* 8: Attribute AContinueExpr::_stype */
+/* 9: Attribute AContinueExpr::_if_true_variable_ctx */
+/* 10: Attribute AContinueExpr::_if_false_variable_ctx */
+/* 11: Attribute AContinueExpr::_escapable */
+/* 12: Attribute AContinueExpr::_n_kwcontinue */
+/* 13: Attribute AContinueExpr::_n_expr */
+void INIT_ATTRIBUTES__AContinueExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AContinueExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:601 */
+  ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:602 */
+  ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AContinueExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_AContinueExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AContinueExpr___empty_init() {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AContinueExpr();
-  parser_prod___AContinueExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AContinueExpr___init_acontinueexpr(val_t p0) {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AContinueExpr();
-  parser_prod___AContinueExpr___init_acontinueexpr(self, p0, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AContinueExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AContinueExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AContinueExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AContinueExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AContinueExpr();
+  INIT_ATTRIBUTES__AContinueExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AContinueExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AContinueExpr_parser_prod___AContinueExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4568;
+  fra.me.meth = LOCATE_NEW_AContinueExpr_parser_prod___AContinueExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AContinueExpr();
+  /* ./parser//parser_prod.nit:4568 */
+  INIT_ATTRIBUTES__AContinueExpr(fra.me.REG[0]);
+  parser_prod___AContinueExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AContinueExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4570;
+  fra.me.meth = LOCATE_NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AContinueExpr();
+  /* ./parser//parser_prod.nit:4570 */
+  INIT_ATTRIBUTES__AContinueExpr(fra.me.REG[3]);
+  parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AContinueExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ADoExpr[83] = {
-  {(bigint) 3539 /* 0: Identity */},
-  {(bigint) 3 /* 1: ADoExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ADoExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ADoExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ADoExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3539 /* 5: ADoExpr < ADoExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ADoExpr[90] = {
+  {(bigint) 6307 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ADoExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ADoExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ADoExpr < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: ADoExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ADoExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6307 /* 7: ADoExpr < ADoExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28958,14 +63925,11 @@ const classtable_elt_t VFT_ADoExpr[83] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ADoExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ADoExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -28973,7 +63937,6 @@ const classtable_elt_t VFT_ADoExpr[83] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -28981,102 +63944,223 @@ const classtable_elt_t VFT_ADoExpr[83] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ADoExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ADoExpr___visit_all},
   {(bigint) parser_prod___ADoExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ADoExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ADoExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ADoExpr___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ADoExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ADoExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ADoExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 4 /* 68: ADoExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_prod___ADoExpr___n_label__eq},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ADoExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ADoExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___ADoExpr___escapable},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) parser_prod___ADoExpr___empty_init},
   {(bigint) parser_prod___ADoExpr___init_adoexpr},
-  {(bigint) 4 /* 78: ADoExpr < ADoExpr: superclass init_table position */},
+  {(bigint) 5 /* 85: ADoExpr < ADoExpr: superclass init_table position */},
   {(bigint) parser_nodes___ADoExpr___n_kwdo},
   {(bigint) parser_prod___ADoExpr___n_kwdo__eq},
   {(bigint) parser_nodes___ADoExpr___n_block},
   {(bigint) parser_prod___ADoExpr___n_block__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ADoExpr::_parent */
-/* 2: Attribute ADoExpr::_first_token */
-/* 3: Attribute ADoExpr::_last_token */
-/* 4: Attribute ADoExpr::_stype */
-/* 5: Attribute ADoExpr::_if_true_variable_ctx */
-/* 6: Attribute ADoExpr::_n_kwdo */
-/* 7: Attribute ADoExpr::_n_block */
-val_t NEW_ADoExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ADoExpr::_parent */
+/* 3: Attribute ADoExpr::_location */
+/* 4: Attribute ADoExpr::_first_location */
+/* 5: Attribute ADoExpr::_last_location */
+/* 6: Attribute ADoExpr::_n_label */
+/* 7: Attribute ADoExpr::_is_typed */
+/* 8: Attribute ADoExpr::_stype */
+/* 9: Attribute ADoExpr::_if_true_variable_ctx */
+/* 10: Attribute ADoExpr::_if_false_variable_ctx */
+/* 11: Attribute ADoExpr::_escapable */
+/* 12: Attribute ADoExpr::_n_kwdo */
+/* 13: Attribute ADoExpr::_n_block */
+void INIT_ATTRIBUTES__ADoExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ADoExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:608 */
+  ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ADoExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_ADoExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ADoExpr___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ADoExpr();
-  parser_prod___ADoExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ADoExpr();
-  parser_prod___ADoExpr___init_adoexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ADoExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ADoExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwdo");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ADoExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ADoExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ADoExpr();
+  INIT_ATTRIBUTES__ADoExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ADoExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ADoExpr_parser_prod___ADoExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4672;
+  fra.me.meth = LOCATE_NEW_ADoExpr_parser_prod___ADoExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ADoExpr();
+  /* ./parser//parser_prod.nit:4672 */
+  INIT_ATTRIBUTES__ADoExpr(fra.me.REG[0]);
+  parser_prod___ADoExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ADoExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4674;
+  fra.me.meth = LOCATE_NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ADoExpr();
+  /* ./parser//parser_prod.nit:4674 */
+  INIT_ATTRIBUTES__ADoExpr(fra.me.REG[3]);
+  parser_prod___ADoExpr___init_adoexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ADoExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_AIfExpr[87] = {
-  {(bigint) 3503 /* 0: Identity */},
-  {(bigint) 3 /* 1: AIfExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AIfExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AIfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AIfExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3503 /* 5: AIfExpr < AIfExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AIfExpr[92] = {
+  {(bigint) 6271 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AIfExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AIfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AIfExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AIfExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6271 /* 7: AIfExpr < AIfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AIfExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AIfExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -29084,7 +64168,6 @@ const classtable_elt_t VFT_AIfExpr[87] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -29092,49 +64175,56 @@ const classtable_elt_t VFT_AIfExpr[87] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AIfExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AIfExpr___visit_all},
   {(bigint) parser_prod___AIfExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AIfExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AIfExpr___accept_control_flow},
+  {(bigint) 1 /* 59: AIfExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
   {(bigint) typing___AIfExpr___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AIfExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AIfExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AIfExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AIfExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AIfExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AIfExpr___empty_init},
   {(bigint) parser_prod___AIfExpr___init_aifexpr},
-  {(bigint) 4 /* 78: AIfExpr < AIfExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: AIfExpr < AIfExpr: superclass init_table position */},
   {(bigint) parser_nodes___AIfExpr___n_kwif},
   {(bigint) parser_prod___AIfExpr___n_kwif__eq},
   {(bigint) parser_nodes___AIfExpr___n_expr},
@@ -29145,55 +64235,175 @@ const classtable_elt_t VFT_AIfExpr[87] = {
   {(bigint) parser_prod___AIfExpr___n_else__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AIfExpr::_parent */
-/* 2: Attribute AIfExpr::_first_token */
-/* 3: Attribute AIfExpr::_last_token */
-/* 4: Attribute AIfExpr::_stype */
-/* 5: Attribute AIfExpr::_if_true_variable_ctx */
-/* 6: Attribute AIfExpr::_n_kwif */
-/* 7: Attribute AIfExpr::_n_expr */
-/* 8: Attribute AIfExpr::_n_then */
-/* 9: Attribute AIfExpr::_n_else */
-val_t NEW_AIfExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AIfExpr::_parent */
+/* 3: Attribute AIfExpr::_location */
+/* 4: Attribute AIfExpr::_first_location */
+/* 5: Attribute AIfExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AIfExpr::_is_typed */
+/* 8: Attribute AIfExpr::_stype */
+/* 9: Attribute AIfExpr::_if_true_variable_ctx */
+/* 10: Attribute AIfExpr::_if_false_variable_ctx */
+/* 11: Attribute AIfExpr::_n_kwif */
+/* 12: Attribute AIfExpr::_n_expr */
+/* 13: Attribute AIfExpr::_n_then */
+/* 14: Attribute AIfExpr::_n_else */
+void INIT_ATTRIBUTES__AIfExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AIfExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:614 */
+  ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:615 */
+  ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIfExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_AIfExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AIfExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AIfExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AIfExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwif");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIfExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIfExpr();
-  parser_prod___AIfExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AIfExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AIfExpr();
+  INIT_ATTRIBUTES__AIfExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIfExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AIfExpr_parser_prod___AIfExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIfExpr();
-  parser_prod___AIfExpr___init_aifexpr(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4775;
+  fra.me.meth = LOCATE_NEW_AIfExpr_parser_prod___AIfExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AIfExpr();
+  /* ./parser//parser_prod.nit:4775 */
+  INIT_ATTRIBUTES__AIfExpr(fra.me.REG[0]);
+  parser_prod___AIfExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AIfExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4777;
+  fra.me.meth = LOCATE_NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_AIfExpr();
+  /* ./parser//parser_prod.nit:4777 */
+  INIT_ATTRIBUTES__AIfExpr(fra.me.REG[4]);
+  parser_prod___AIfExpr___init_aifexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_AIfExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_AIfexprExpr[91] = {
-  {(bigint) 3499 /* 0: Identity */},
-  {(bigint) 3 /* 1: AIfexprExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AIfexprExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AIfexprExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AIfexprExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3499 /* 5: AIfexprExpr < AIfexprExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AIfexprExpr[96] = {
+  {(bigint) 6267 /* 0: Identity */},
+  {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AIfexprExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AIfexprExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AIfexprExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AIfexprExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6267 /* 7: AIfexprExpr < AIfexprExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AIfexprExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AIfexprExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -29201,7 +64411,6 @@ const classtable_elt_t VFT_AIfexprExpr[91] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -29209,49 +64418,56 @@ const classtable_elt_t VFT_AIfexprExpr[91] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AIfexprExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AIfexprExpr___visit_all},
   {(bigint) parser_prod___AIfexprExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AIfexprExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) 1 /* 59: AIfexprExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
   {(bigint) typing___AIfexprExpr___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AIfexprExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AIfexprExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AIfexprExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AIfexprExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AIfexprExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AIfexprExpr___empty_init},
   {(bigint) parser_prod___AIfexprExpr___init_aifexprexpr},
-  {(bigint) 4 /* 78: AIfexprExpr < AIfexprExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: AIfexprExpr < AIfexprExpr: superclass init_table position */},
   {(bigint) parser_nodes___AIfexprExpr___n_kwif},
   {(bigint) parser_prod___AIfexprExpr___n_kwif__eq},
   {(bigint) parser_nodes___AIfexprExpr___n_expr},
@@ -29266,57 +64482,202 @@ const classtable_elt_t VFT_AIfexprExpr[91] = {
   {(bigint) parser_prod___AIfexprExpr___n_else__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AIfexprExpr::_parent */
-/* 2: Attribute AIfexprExpr::_first_token */
-/* 3: Attribute AIfexprExpr::_last_token */
-/* 4: Attribute AIfexprExpr::_stype */
-/* 5: Attribute AIfexprExpr::_if_true_variable_ctx */
-/* 6: Attribute AIfexprExpr::_n_kwif */
-/* 7: Attribute AIfexprExpr::_n_expr */
-/* 8: Attribute AIfexprExpr::_n_kwthen */
-/* 9: Attribute AIfexprExpr::_n_then */
-/* 10: Attribute AIfexprExpr::_n_kwelse */
-/* 11: Attribute AIfexprExpr::_n_else */
-val_t NEW_AIfexprExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AIfexprExpr::_parent */
+/* 3: Attribute AIfexprExpr::_location */
+/* 4: Attribute AIfexprExpr::_first_location */
+/* 5: Attribute AIfexprExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AIfexprExpr::_is_typed */
+/* 8: Attribute AIfexprExpr::_stype */
+/* 9: Attribute AIfexprExpr::_if_true_variable_ctx */
+/* 10: Attribute AIfexprExpr::_if_false_variable_ctx */
+/* 11: Attribute AIfexprExpr::_n_kwif */
+/* 12: Attribute AIfexprExpr::_n_expr */
+/* 13: Attribute AIfexprExpr::_n_kwthen */
+/* 14: Attribute AIfexprExpr::_n_then */
+/* 15: Attribute AIfexprExpr::_n_kwelse */
+/* 16: Attribute AIfexprExpr::_n_else */
+void INIT_ATTRIBUTES__AIfexprExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AIfexprExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIfexprExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+  obj = alloc(sizeof(val_t) * 17);
   obj->vft = (classtable_elt_t*)VFT_AIfexprExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AIfexprExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AIfexprExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AIfexprExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwif");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwthen");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_then");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwelse");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_else");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIfexprExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIfexprExpr();
-  parser_prod___AIfexprExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AIfexprExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AIfexprExpr();
+  INIT_ATTRIBUTES__AIfexprExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIfexprExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AIfexprExpr_parser_prod___AIfexprExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIfexprExpr();
-  parser_prod___AIfexprExpr___init_aifexprexpr(self, p0, p1, p2, p3, p4, p5, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4899;
+  fra.me.meth = LOCATE_NEW_AIfexprExpr_parser_prod___AIfexprExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AIfexprExpr();
+  /* ./parser//parser_prod.nit:4899 */
+  INIT_ATTRIBUTES__AIfexprExpr(fra.me.REG[0]);
+  parser_prod___AIfexprExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AIfexprExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4901;
+  fra.me.meth = LOCATE_NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = NEW_AIfexprExpr();
+  /* ./parser//parser_prod.nit:4901 */
+  INIT_ATTRIBUTES__AIfexprExpr(fra.me.REG[6]);
+  parser_prod___AIfexprExpr___init_aifexprexpr(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
+  CHECKNEW_AIfexprExpr(fra.me.REG[6]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[6];
 }
-const classtable_elt_t VFT_AWhileExpr[90] = {
-  {(bigint) 3655 /* 0: Identity */},
-  {(bigint) 3 /* 1: AWhileExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AWhileExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AWhileExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AWhileExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3543 /* 5: AWhileExpr < AControlableBlock: superclass typecheck marker */},
-  {(bigint) 3655 /* 6: AWhileExpr < AWhileExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AWhileExpr[93] = {
+  {(bigint) 6107 /* 0: Identity */},
+  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AWhileExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AWhileExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AWhileExpr < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: AWhileExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AWhileExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6107 /* 7: AWhileExpr < AWhileExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 1 /* 20: AWhileExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AWhileExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -29324,7 +64685,6 @@ const classtable_elt_t VFT_AWhileExpr[90] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -29332,52 +64692,57 @@ const classtable_elt_t VFT_AWhileExpr[90] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AWhileExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AWhileExpr___visit_all},
   {(bigint) parser_prod___AWhileExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 2 /* 57: AWhileExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AControlableBlock___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___AWhileExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 3 /* 66: AWhileExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AControlableBlock___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 4 /* 71: AWhileExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AWhileExpr___compile_inside_block},
-  {(bigint) 0 /* 77: AWhileExpr < AControlableBlock: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) 1 /* 59: AWhileExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___AWhileExpr___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AWhileExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 4 /* 68: AWhileExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_prod___AWhileExpr___n_label__eq},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AWhileExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AWhileExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___AWhileExpr___escapable},
   {(bigint) parser_prod___AWhileExpr___empty_init},
   {(bigint) parser_prod___AWhileExpr___init_awhileexpr},
-  {(bigint) 5 /* 81: AWhileExpr < AWhileExpr: superclass init_table position */},
+  {(bigint) 5 /* 84: AWhileExpr < AWhileExpr: superclass init_table position */},
   {(bigint) parser_nodes___AWhileExpr___n_kwwhile},
   {(bigint) parser_prod___AWhileExpr___n_kwwhile__eq},
   {(bigint) parser_nodes___AWhileExpr___n_expr},
@@ -29388,55 +64753,185 @@ const classtable_elt_t VFT_AWhileExpr[90] = {
   {(bigint) parser_prod___AWhileExpr___n_block__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AWhileExpr::_parent */
-/* 2: Attribute AWhileExpr::_first_token */
-/* 3: Attribute AWhileExpr::_last_token */
-/* 4: Attribute AWhileExpr::_stype */
-/* 5: Attribute AWhileExpr::_if_true_variable_ctx */
-/* 6: Attribute AWhileExpr::_n_kwwhile */
-/* 7: Attribute AWhileExpr::_n_expr */
-/* 8: Attribute AWhileExpr::_n_kwdo */
-/* 9: Attribute AWhileExpr::_n_block */
-val_t NEW_AWhileExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AWhileExpr::_parent */
+/* 3: Attribute AWhileExpr::_location */
+/* 4: Attribute AWhileExpr::_first_location */
+/* 5: Attribute AWhileExpr::_last_location */
+/* 6: Attribute AWhileExpr::_n_label */
+/* 7: Attribute AWhileExpr::_is_typed */
+/* 8: Attribute AWhileExpr::_stype */
+/* 9: Attribute AWhileExpr::_if_true_variable_ctx */
+/* 10: Attribute AWhileExpr::_if_false_variable_ctx */
+/* 11: Attribute AWhileExpr::_escapable */
+/* 12: Attribute AWhileExpr::_n_kwwhile */
+/* 13: Attribute AWhileExpr::_n_expr */
+/* 14: Attribute AWhileExpr::_n_kwdo */
+/* 15: Attribute AWhileExpr::_n_block */
+void INIT_ATTRIBUTES__AWhileExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AWhileExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:632 */
+  ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AWhileExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
+  obj = alloc(sizeof(val_t) * 16);
   obj->vft = (classtable_elt_t*)VFT_AWhileExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AWhileExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AWhileExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AWhileExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwwhile");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwdo");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AWhileExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AWhileExpr();
-  parser_prod___AWhileExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AWhileExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AWhileExpr();
+  INIT_ATTRIBUTES__AWhileExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AWhileExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AWhileExpr_parser_prod___AWhileExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AWhileExpr();
-  parser_prod___AWhileExpr___init_awhileexpr(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5040;
+  fra.me.meth = LOCATE_NEW_AWhileExpr_parser_prod___AWhileExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AWhileExpr();
+  /* ./parser//parser_prod.nit:5040 */
+  INIT_ATTRIBUTES__AWhileExpr(fra.me.REG[0]);
+  parser_prod___AWhileExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AWhileExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr(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[5];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5042;
+  fra.me.meth = LOCATE_NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_AWhileExpr();
+  /* ./parser//parser_prod.nit:5042 */
+  INIT_ATTRIBUTES__AWhileExpr(fra.me.REG[5]);
+  parser_prod___AWhileExpr___init_awhileexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_AWhileExpr(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
 }
-const classtable_elt_t VFT_AForExpr[88] = {
-  {(bigint) 3727 /* 0: Identity */},
-  {(bigint) 3 /* 1: AForExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AForExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AForExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AForExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3543 /* 5: AForExpr < AControlableBlock: superclass typecheck marker */},
-  {(bigint) 3727 /* 6: AForExpr < AForExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ALoopExpr[89] = {
+  {(bigint) 6247 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ALoopExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ALoopExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ALoopExpr < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: ALoopExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ALoopExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6247 /* 7: ALoopExpr < ALoopExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 1 /* 20: AForExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ALoopExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -29444,7 +64939,6 @@ const classtable_elt_t VFT_AForExpr[88] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -29452,93 +64946,210 @@ const classtable_elt_t VFT_AForExpr[88] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AForExpr___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ALoopExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AForExpr___visit_all},
-  {(bigint) parser_prod___AForExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 2 /* 57: AForExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AControlableBlock___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___AForExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 3 /* 66: AForExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AControlableBlock___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 4 /* 71: AForExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AForExpr___compile_inside_block},
-  {(bigint) 0 /* 77: AForExpr < AControlableBlock: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) parser_prod___AForExpr___empty_init},
-  {(bigint) parser_prod___AForExpr___init_aforexpr},
-  {(bigint) 5 /* 81: AForExpr < AForExpr: superclass init_table position */},
-  {(bigint) parser_nodes___AForExpr___n_vardecl},
-  {(bigint) parser_prod___AForExpr___n_vardecl__eq},
-  {(bigint) parser_nodes___AForExpr___n_kwdo},
-  {(bigint) parser_prod___AForExpr___n_kwdo__eq},
-  {(bigint) parser_nodes___AForExpr___n_block},
-  {(bigint) parser_prod___AForExpr___n_block__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AForExpr::_parent */
-/* 2: Attribute AForExpr::_first_token */
-/* 3: Attribute AForExpr::_last_token */
-/* 4: Attribute AForExpr::_stype */
-/* 5: Attribute AForExpr::_if_true_variable_ctx */
-/* 6: Attribute AForExpr::_n_vardecl */
-/* 7: Attribute AForExpr::_n_kwdo */
-/* 8: Attribute AForExpr::_n_block */
-val_t NEW_AForExpr(void) {
+  {(bigint) parser_prod___ALoopExpr___visit_all},
+  {(bigint) parser_prod___ALoopExpr___visit_all_reverse},
+  {(bigint) 1 /* 59: ALoopExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ALoopExpr___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ALoopExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 4 /* 68: ALoopExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_prod___ALoopExpr___n_label__eq},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ALoopExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ALoopExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___ALoopExpr___escapable},
+  {(bigint) parser_prod___ALoopExpr___empty_init},
+  {(bigint) parser_prod___ALoopExpr___init_aloopexpr},
+  {(bigint) 5 /* 84: ALoopExpr < ALoopExpr: superclass init_table position */},
+  {(bigint) parser_nodes___ALoopExpr___n_kwloop},
+  {(bigint) parser_prod___ALoopExpr___n_kwloop__eq},
+  {(bigint) parser_nodes___ALoopExpr___n_block},
+  {(bigint) parser_prod___ALoopExpr___n_block__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ALoopExpr::_parent */
+/* 3: Attribute ALoopExpr::_location */
+/* 4: Attribute ALoopExpr::_first_location */
+/* 5: Attribute ALoopExpr::_last_location */
+/* 6: Attribute ALoopExpr::_n_label */
+/* 7: Attribute ALoopExpr::_is_typed */
+/* 8: Attribute ALoopExpr::_stype */
+/* 9: Attribute ALoopExpr::_if_true_variable_ctx */
+/* 10: Attribute ALoopExpr::_if_false_variable_ctx */
+/* 11: Attribute ALoopExpr::_escapable */
+/* 12: Attribute ALoopExpr::_n_kwloop */
+/* 13: Attribute ALoopExpr::_n_block */
+void INIT_ATTRIBUTES__ALoopExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ALoopExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:638 */
+  ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALoopExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_AForExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AForExpr___empty_init() {
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_ALoopExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ALoopExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ALoopExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwloop");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALoopExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AForExpr();
-  parser_prod___AForExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ALoopExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ALoopExpr();
+  INIT_ATTRIBUTES__ALoopExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALoopExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ALoopExpr_parser_prod___ALoopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AForExpr();
-  parser_prod___AForExpr___init_aforexpr(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5168;
+  fra.me.meth = LOCATE_NEW_ALoopExpr_parser_prod___ALoopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALoopExpr();
+  /* ./parser//parser_prod.nit:5168 */
+  INIT_ATTRIBUTES__ALoopExpr(fra.me.REG[0]);
+  parser_prod___ALoopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALoopExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5170;
+  fra.me.meth = LOCATE_NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ALoopExpr();
+  /* ./parser//parser_prod.nit:5170 */
+  INIT_ATTRIBUTES__ALoopExpr(fra.me.REG[3]);
+  parser_prod___ALoopExpr___init_aloopexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ALoopExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_AForVardeclExpr[88] = {
-  {(bigint) 3523 /* 0: Identity */},
-  {(bigint) 3 /* 1: AForVardeclExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AForVardeclExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AForVardeclExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AForVardeclExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3523 /* 5: AForVardeclExpr < AForVardeclExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AForExpr[96] = {
+  {(bigint) 6287 /* 0: Identity */},
+  {(bigint) 18 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AForExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AForExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AForExpr < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: AForExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AForExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6287 /* 7: AForExpr < AForExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29546,14 +65157,11 @@ const classtable_elt_t VFT_AForVardeclExpr[88] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AForVardeclExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AForExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -29561,7 +65169,6 @@ const classtable_elt_t VFT_AForVardeclExpr[88] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -29569,109 +65176,260 @@ const classtable_elt_t VFT_AForVardeclExpr[88] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AForVardeclExpr___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AForExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___AForVardeclExpr___visit_all},
-  {(bigint) parser_prod___AForVardeclExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AForVardeclExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AForVardeclExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___AForVardeclExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AForVardeclExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AForVardeclExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AForVardeclExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) syntax_base___AForVardeclExpr___variable},
-  {(bigint) syntax_base___AForVardeclExpr___variable__eq},
-  {(bigint) parser_prod___AForVardeclExpr___empty_init},
-  {(bigint) parser_prod___AForVardeclExpr___init_aforvardeclexpr},
-  {(bigint) 4 /* 81: AForVardeclExpr < AForVardeclExpr: superclass init_table position */},
-  {(bigint) parser_nodes___AForVardeclExpr___n_kwfor},
-  {(bigint) parser_prod___AForVardeclExpr___n_kwfor__eq},
-  {(bigint) parser_nodes___AForVardeclExpr___n_id},
-  {(bigint) parser_prod___AForVardeclExpr___n_id__eq},
-  {(bigint) parser_nodes___AForVardeclExpr___n_expr},
-  {(bigint) parser_prod___AForVardeclExpr___n_expr__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AForVardeclExpr::_parent */
-/* 2: Attribute AForVardeclExpr::_first_token */
-/* 3: Attribute AForVardeclExpr::_last_token */
-/* 4: Attribute AForVardeclExpr::_stype */
-/* 5: Attribute AForVardeclExpr::_if_true_variable_ctx */
-/* 6: Attribute AForVardeclExpr::_variable */
-/* 7: Attribute AForVardeclExpr::_n_kwfor */
-/* 8: Attribute AForVardeclExpr::_n_id */
-/* 9: Attribute AForVardeclExpr::_n_expr */
-val_t NEW_AForVardeclExpr(void) {
+  {(bigint) parser_prod___AForExpr___visit_all},
+  {(bigint) parser_prod___AForExpr___visit_all_reverse},
+  {(bigint) 1 /* 59: AForExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___AForExpr___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AForExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 4 /* 68: AForExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_prod___AForExpr___n_label__eq},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AForExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AForExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___AForExpr___escapable},
+  {(bigint) typing___AForExpr___variable},
+  {(bigint) parser_prod___AForExpr___empty_init},
+  {(bigint) parser_prod___AForExpr___init_aforexpr},
+  {(bigint) 5 /* 85: AForExpr < AForExpr: superclass init_table position */},
+  {(bigint) parser_nodes___AForExpr___n_kwfor},
+  {(bigint) parser_prod___AForExpr___n_kwfor__eq},
+  {(bigint) parser_nodes___AForExpr___n_id},
+  {(bigint) parser_prod___AForExpr___n_id__eq},
+  {(bigint) parser_nodes___AForExpr___n_expr},
+  {(bigint) parser_prod___AForExpr___n_expr__eq},
+  {(bigint) parser_nodes___AForExpr___n_kwdo},
+  {(bigint) parser_prod___AForExpr___n_kwdo__eq},
+  {(bigint) parser_nodes___AForExpr___n_block},
+  {(bigint) parser_prod___AForExpr___n_block__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AForExpr::_parent */
+/* 3: Attribute AForExpr::_location */
+/* 4: Attribute AForExpr::_first_location */
+/* 5: Attribute AForExpr::_last_location */
+/* 6: Attribute AForExpr::_n_label */
+/* 7: Attribute AForExpr::_is_typed */
+/* 8: Attribute AForExpr::_stype */
+/* 9: Attribute AForExpr::_if_true_variable_ctx */
+/* 10: Attribute AForExpr::_if_false_variable_ctx */
+/* 11: Attribute AForExpr::_variable */
+/* 12: Attribute AForExpr::_escapable */
+/* 13: Attribute AForExpr::_n_kwfor */
+/* 14: Attribute AForExpr::_n_id */
+/* 15: Attribute AForExpr::_n_expr */
+/* 16: Attribute AForExpr::_n_kwdo */
+/* 17: Attribute AForExpr::_n_block */
+void INIT_ATTRIBUTES__AForExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AForExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:647 */
+  ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AForExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_AForVardeclExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AForVardeclExpr___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AForVardeclExpr();
-  parser_prod___AForVardeclExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t p0, val_t p1, val_t p2) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AForVardeclExpr();
-  parser_prod___AForVardeclExpr___init_aforvardeclexpr(self, p0, p1, p2, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 18);
+  obj->vft = (classtable_elt_t*)VFT_AForExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AForExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AForExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwfor");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwdo");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AForExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AForExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AForExpr();
+  INIT_ATTRIBUTES__AForExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AForExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AForExpr_parser_prod___AForExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5281;
+  fra.me.meth = LOCATE_NEW_AForExpr_parser_prod___AForExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AForExpr();
+  /* ./parser//parser_prod.nit:5281 */
+  INIT_ATTRIBUTES__AForExpr(fra.me.REG[0]);
+  parser_prod___AForExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AForExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AForExpr_parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5283;
+  fra.me.meth = LOCATE_NEW_AForExpr_parser_prod___AForExpr___init_aforexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = NEW_AForExpr();
+  /* ./parser//parser_prod.nit:5283 */
+  INIT_ATTRIBUTES__AForExpr(fra.me.REG[6]);
+  parser_prod___AForExpr___init_aforexpr(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
+  CHECKNEW_AForExpr(fra.me.REG[6]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[6];
 }
-const classtable_elt_t VFT_AAssertExpr[85] = {
-  {(bigint) 3595 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAssertExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAssertExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAssertExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAssertExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3595 /* 5: AAssertExpr < AAssertExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AAssertExpr[92] = {
+  {(bigint) 6359 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAssertExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAssertExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAssertExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AAssertExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6359 /* 7: AAssertExpr < AAssertExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAssertExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAssertExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -29679,7 +65437,6 @@ const classtable_elt_t VFT_AAssertExpr[85] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -29687,105 +65444,235 @@ const classtable_elt_t VFT_AAssertExpr[85] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AAssertExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAssertExpr___visit_all},
   {(bigint) parser_prod___AAssertExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAssertExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___AAssertExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AAssertExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___AAssertExpr___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAssertExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AAssertExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAssertExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAssertExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAssertExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AAssertExpr___empty_init},
   {(bigint) parser_prod___AAssertExpr___init_aassertexpr},
-  {(bigint) 4 /* 78: AAssertExpr < AAssertExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: AAssertExpr < AAssertExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAssertExpr___n_kwassert},
   {(bigint) parser_prod___AAssertExpr___n_kwassert__eq},
   {(bigint) parser_nodes___AAssertExpr___n_id},
   {(bigint) parser_prod___AAssertExpr___n_id__eq},
   {(bigint) parser_nodes___AAssertExpr___n_expr},
   {(bigint) parser_prod___AAssertExpr___n_expr__eq},
+  {(bigint) parser_nodes___AAssertExpr___n_else},
+  {(bigint) parser_prod___AAssertExpr___n_else__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAssertExpr::_parent */
-/* 2: Attribute AAssertExpr::_first_token */
-/* 3: Attribute AAssertExpr::_last_token */
-/* 4: Attribute AAssertExpr::_stype */
-/* 5: Attribute AAssertExpr::_if_true_variable_ctx */
-/* 6: Attribute AAssertExpr::_n_kwassert */
-/* 7: Attribute AAssertExpr::_n_id */
-/* 8: Attribute AAssertExpr::_n_expr */
-val_t NEW_AAssertExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AAssertExpr::_parent */
+/* 3: Attribute AAssertExpr::_location */
+/* 4: Attribute AAssertExpr::_first_location */
+/* 5: Attribute AAssertExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAssertExpr::_is_typed */
+/* 8: Attribute AAssertExpr::_stype */
+/* 9: Attribute AAssertExpr::_if_true_variable_ctx */
+/* 10: Attribute AAssertExpr::_if_false_variable_ctx */
+/* 11: Attribute AAssertExpr::_n_kwassert */
+/* 12: Attribute AAssertExpr::_n_id */
+/* 13: Attribute AAssertExpr::_n_expr */
+/* 14: Attribute AAssertExpr::_n_else */
+void INIT_ATTRIBUTES__AAssertExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAssertExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:652 */
+  ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:654 */
+  ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAssertExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_AAssertExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAssertExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAssertExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAssertExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwassert");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAssertExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAssertExpr();
-  parser_prod___AAssertExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAssertExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAssertExpr();
+  INIT_ATTRIBUTES__AAssertExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAssertExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAssertExpr_parser_prod___AAssertExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5429;
+  fra.me.meth = LOCATE_NEW_AAssertExpr_parser_prod___AAssertExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAssertExpr();
+  /* ./parser//parser_prod.nit:5429 */
+  INIT_ATTRIBUTES__AAssertExpr(fra.me.REG[0]);
+  parser_prod___AAssertExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAssertExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAssertExpr();
-  parser_prod___AAssertExpr___init_aassertexpr(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5431;
+  fra.me.meth = LOCATE_NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_AAssertExpr();
+  /* ./parser//parser_prod.nit:5431 */
+  INIT_ATTRIBUTES__AAssertExpr(fra.me.REG[4]);
+  parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_AAssertExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_AAssignFormExpr[86] = {
-  {(bigint) 3591 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAssignFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAssignFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAssignFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAssignFormExpr < PExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AAssignFormExpr[90] = {
+  {(bigint) 6355 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAssignFormExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAssignFormExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAssignFormExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3591 /* 6: AAssignFormExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AAssignFormExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6355 /* 7: AAssignFormExpr < AAssignFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAssignFormExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAssignFormExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -29793,7 +65680,6 @@ const classtable_elt_t VFT_AAssignFormExpr[86] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -29801,95 +65687,180 @@ const classtable_elt_t VFT_AAssignFormExpr[86] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAssignFormExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AAssignFormExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAssignFormExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAssignFormExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAssignFormExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 81: AAssignFormExpr < AAssignFormExpr: superclass init_table position */},
+  {(bigint) 4 /* 85: AAssignFormExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser_nodes___AAssignFormExpr___n_assign__eq},
   {(bigint) parser_nodes___AAssignFormExpr___n_value},
   {(bigint) parser_nodes___AAssignFormExpr___n_value__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAssignFormExpr::_parent */
-/* 2: Attribute AAssignFormExpr::_first_token */
-/* 3: Attribute AAssignFormExpr::_last_token */
-/* 4: Attribute AAssignFormExpr::_stype */
-/* 5: Attribute AAssignFormExpr::_if_true_variable_ctx */
+/* 1: Object_id */
+/* 2: Attribute AAssignFormExpr::_parent */
+/* 3: Attribute AAssignFormExpr::_location */
+/* 4: Attribute AAssignFormExpr::_first_location */
+/* 5: Attribute AAssignFormExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute AAssignFormExpr::_is_typed */
+/* 8: Attribute AAssignFormExpr::_stype */
+/* 9: Attribute AAssignFormExpr::_if_true_variable_ctx */
+/* 10: Attribute AAssignFormExpr::_if_false_variable_ctx */
 /* Instance Hole :( */
-/* 8: Attribute AAssignFormExpr::_n_assign */
-/* 9: Attribute AAssignFormExpr::_n_value */
-val_t NEW_AAssignFormExpr(void) {
+/* Instance Hole :( */
+/* 13: Attribute AAssignFormExpr::_n_assign */
+/* 14: Attribute AAssignFormExpr::_n_value */
+void INIT_ATTRIBUTES__AAssignFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAssignFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAssignFormExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_AAssignFormExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAssignFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAssignFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAssignFormExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAssignFormExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAssignFormExpr();
+  INIT_ATTRIBUTES__AAssignFormExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAssignFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AReassignFormExpr[88] = {
-  {(bigint) 3391 /* 0: Identity */},
-  {(bigint) 3 /* 1: AReassignFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AReassignFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AReassignFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AReassignFormExpr < PExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AReassignFormExpr[92] = {
+  {(bigint) 6175 /* 0: Identity */},
+  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AReassignFormExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AReassignFormExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AReassignFormExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3391 /* 6: AReassignFormExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AReassignFormExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6175 /* 7: AReassignFormExpr < AReassignFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AReassignFormExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AReassignFormExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -29897,7 +65868,6 @@ const classtable_elt_t VFT_AReassignFormExpr[88] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -29905,98 +65875,183 @@ const classtable_elt_t VFT_AReassignFormExpr[88] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AReassignFormExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AReassignFormExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AReassignFormExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AReassignFormExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AReassignFormExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) typing___AReassignFormExpr___do_lvalue_typing},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AReassignFormExpr___do_rvalue_typing},
   {(bigint) typing___AReassignFormExpr___assign_method},
-  {(bigint) 4 /* 83: AReassignFormExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) 4 /* 87: AReassignFormExpr < AReassignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AReassignFormExpr___n_assign_op},
   {(bigint) parser_nodes___AReassignFormExpr___n_assign_op__eq},
   {(bigint) parser_nodes___AReassignFormExpr___n_value},
   {(bigint) parser_nodes___AReassignFormExpr___n_value__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AReassignFormExpr::_parent */
-/* 2: Attribute AReassignFormExpr::_first_token */
-/* 3: Attribute AReassignFormExpr::_last_token */
-/* 4: Attribute AReassignFormExpr::_stype */
-/* 5: Attribute AReassignFormExpr::_if_true_variable_ctx */
+/* 1: Object_id */
+/* 2: Attribute AReassignFormExpr::_parent */
+/* 3: Attribute AReassignFormExpr::_location */
+/* 4: Attribute AReassignFormExpr::_first_location */
+/* 5: Attribute AReassignFormExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AReassignFormExpr::_is_typed */
+/* 8: Attribute AReassignFormExpr::_stype */
+/* 9: Attribute AReassignFormExpr::_if_true_variable_ctx */
+/* 10: Attribute AReassignFormExpr::_if_false_variable_ctx */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 8: Attribute AReassignFormExpr::_assign_method */
-/* 9: Attribute AReassignFormExpr::_n_assign_op */
-/* 10: Attribute AReassignFormExpr::_n_value */
-val_t NEW_AReassignFormExpr(void) {
+/* 13: Attribute AReassignFormExpr::_assign_method */
+/* 14: Attribute AReassignFormExpr::_n_assign_op */
+/* 15: Attribute AReassignFormExpr::_n_value */
+void INIT_ATTRIBUTES__AReassignFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AReassignFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AReassignFormExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
+  obj = alloc(sizeof(val_t) * 16);
   obj->vft = (classtable_elt_t*)VFT_AReassignFormExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AReassignFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AReassignFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign_op");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AReassignFormExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AReassignFormExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AReassignFormExpr();
+  INIT_ATTRIBUTES__AReassignFormExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AReassignFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AOnceExpr[85] = {
-  {(bigint) 3699 /* 0: Identity */},
-  {(bigint) 3 /* 1: AOnceExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AOnceExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AOnceExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AOnceExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3411 /* 5: AOnceExpr < AProxyExpr: superclass typecheck marker */},
-  {(bigint) 3699 /* 6: AOnceExpr < AOnceExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AOnceExpr[90] = {
+  {(bigint) 6463 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AOnceExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AOnceExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AOnceExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AOnceExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6191 /* 7: AOnceExpr < AProxyExpr: superclass typecheck marker */},
+  {(bigint) 6463 /* 8: AOnceExpr < AOnceExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 1 /* 20: AOnceExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 1 /* 19: AOnceExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30004,7 +66059,6 @@ const classtable_elt_t VFT_AOnceExpr[85] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30012,104 +66066,220 @@ const classtable_elt_t VFT_AOnceExpr[85] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AOnceExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AOnceExpr___visit_all},
   {(bigint) parser_prod___AOnceExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 2 /* 57: AOnceExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AOnceExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 2 /* 59: AOnceExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___AOnceExpr___accept_typing},
   {(bigint) typing___AProxyExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 3 /* 66: AOnceExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AOnceExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 4 /* 71: AOnceExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AOnceExpr < AProxyExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 4 /* 74: AOnceExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AOnceExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) 0 /* 81: AOnceExpr < AProxyExpr: superclass init_table position */},
   {(bigint) parser_nodes___AProxyExpr___n_expr},
   {(bigint) parser_prod___AOnceExpr___n_expr__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) parser_prod___AOnceExpr___empty_init},
   {(bigint) parser_prod___AOnceExpr___init_aonceexpr},
-  {(bigint) 5 /* 82: AOnceExpr < AOnceExpr: superclass init_table position */},
+  {(bigint) 5 /* 87: AOnceExpr < AOnceExpr: superclass init_table position */},
   {(bigint) parser_nodes___AOnceExpr___n_kwonce},
   {(bigint) parser_prod___AOnceExpr___n_kwonce__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AOnceExpr::_parent */
-/* 2: Attribute AOnceExpr::_first_token */
-/* 3: Attribute AOnceExpr::_last_token */
-/* 4: Attribute AOnceExpr::_stype */
-/* 5: Attribute AOnceExpr::_if_true_variable_ctx */
-/* 6: Attribute AOnceExpr::_n_expr */
-/* 7: Attribute AOnceExpr::_n_kwonce */
-val_t NEW_AOnceExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AOnceExpr::_parent */
+/* 3: Attribute AOnceExpr::_location */
+/* 4: Attribute AOnceExpr::_first_location */
+/* 5: Attribute AOnceExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AOnceExpr::_is_typed */
+/* 8: Attribute AOnceExpr::_stype */
+/* 9: Attribute AOnceExpr::_if_true_variable_ctx */
+/* 10: Attribute AOnceExpr::_if_false_variable_ctx */
+/* 11: Attribute AOnceExpr::_n_expr */
+/* 12: Attribute AOnceExpr::_n_kwonce */
+void INIT_ATTRIBUTES__AOnceExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AOnceExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AOnceExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AOnceExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AOnceExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AOnceExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AOnceExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwonce");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AOnceExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AOnceExpr();
-  parser_prod___AOnceExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AOnceExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AOnceExpr();
+  INIT_ATTRIBUTES__AOnceExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AOnceExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AOnceExpr_parser_prod___AOnceExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5533;
+  fra.me.meth = LOCATE_NEW_AOnceExpr_parser_prod___AOnceExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AOnceExpr();
+  /* ./parser//parser_prod.nit:5533 */
+  INIT_ATTRIBUTES__AOnceExpr(fra.me.REG[0]);
+  parser_prod___AOnceExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AOnceExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AOnceExpr();
-  parser_prod___AOnceExpr___init_aonceexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5535;
+  fra.me.meth = LOCATE_NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AOnceExpr();
+  /* ./parser//parser_prod.nit:5535 */
+  INIT_ATTRIBUTES__AOnceExpr(fra.me.REG[2]);
+  parser_prod___AOnceExpr___init_aonceexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AOnceExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ASendExpr[102] = {
-  {(bigint) 3795 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASendExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASendExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASendExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ASendExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ASendExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ASendExpr[115] = {
+  {(bigint) 6587 /* 0: Identity */},
+  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASendExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASendExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASendExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ASendExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ASendExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ASendExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ASendExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ASendExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ASendExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ASendExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ASendExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ASendExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30117,7 +66287,6 @@ const classtable_elt_t VFT_ASendExpr[102] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30125,48 +66294,53 @@ const classtable_elt_t VFT_ASendExpr[102] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASendExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASendExpr___visit_all},
   {(bigint) parser_prod___ASendExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ASendExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ASendExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ASendExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ASendExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ASendExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ASendExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ASendExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ASendExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30177,73 +66351,200 @@ const classtable_elt_t VFT_ASendExpr[102] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ASendExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AAbsAbsSendExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ASendExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ASendExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ASendExpr___name},
-  {(bigint) typing___ASendExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ASendExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ASendExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ASendExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASendExpr::_parent */
-/* 2: Attribute ASendExpr::_first_token */
-/* 3: Attribute ASendExpr::_last_token */
-/* 4: Attribute ASendExpr::_stype */
-/* 5: Attribute ASendExpr::_if_true_variable_ctx */
-/* 6: Attribute ASendExpr::_prop */
-/* 7: Attribute ASendExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ASendExpr::_parent */
+/* 3: Attribute ASendExpr::_location */
+/* 4: Attribute ASendExpr::_first_location */
+/* 5: Attribute ASendExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ASendExpr::_is_typed */
+/* 8: Attribute ASendExpr::_stype */
+/* 9: Attribute ASendExpr::_if_true_variable_ctx */
+/* 10: Attribute ASendExpr::_if_false_variable_ctx */
+/* 11: Attribute ASendExpr::_prop_signature */
+/* 12: Attribute ASendExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ASendExpr::_n_expr */
-val_t NEW_ASendExpr(void) {
+/* 16: Attribute ASendExpr::_prop */
+/* 17: Attribute ASendExpr::_return_type */
+/* 18: Attribute ASendExpr::_n_expr */
+/* 19: Attribute ASendExpr::_n_closure_defs */
+void INIT_ATTRIBUTES__ASendExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASendExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASendExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+  obj = alloc(sizeof(val_t) * 20);
   obj->vft = (classtable_elt_t*)VFT_ASendExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ASendExpr___empty_init() {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ASendExpr();
-  parser_prod___ASendExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ASendExpr___init_asendexpr(val_t p0) {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ASendExpr();
-  parser_prod___ASendExpr___init_asendexpr(self, p0, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASendExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASendExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASendExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASendExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASendExpr();
+  INIT_ATTRIBUTES__ASendExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASendExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASendExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ASendExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASendExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ASendExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASendExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASendExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ASendExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ASendExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ASendExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASendExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ABinopExpr[107] = {
-  {(bigint) 3827 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABinopExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABinopExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABinopExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABinopExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ABinopExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ABinopExpr[120] = {
+  {(bigint) 6611 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABinopExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABinopExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABinopExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ABinopExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ABinopExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ABinopExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ABinopExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: ABinopExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ABinopExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ABinopExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ABinopExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: ABinopExpr < ABinopExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ABinopExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ABinopExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30251,7 +66552,6 @@ const classtable_elt_t VFT_ABinopExpr[107] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30259,48 +66559,53 @@ const classtable_elt_t VFT_ABinopExpr[107] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ABinopExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ABinopExpr___visit_all},
   {(bigint) parser_prod___ABinopExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ABinopExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ABinopExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ABinopExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ABinopExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ABinopExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ABinopExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ABinopExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ABinopExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30311,79 +66616,255 @@ const classtable_elt_t VFT_ABinopExpr[107] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ABinopExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ABinopExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ABinopExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ASendExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ABinopExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ABinopExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ABinopExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: ABinopExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: ABinopExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___ABinopExpr___n_expr2__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ABinopExpr::_parent */
-/* 2: Attribute ABinopExpr::_first_token */
-/* 3: Attribute ABinopExpr::_last_token */
-/* 4: Attribute ABinopExpr::_stype */
-/* 5: Attribute ABinopExpr::_if_true_variable_ctx */
-/* 6: Attribute ABinopExpr::_prop */
-/* 7: Attribute ABinopExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ABinopExpr::_parent */
+/* 3: Attribute ABinopExpr::_location */
+/* 4: Attribute ABinopExpr::_first_location */
+/* 5: Attribute ABinopExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ABinopExpr::_is_typed */
+/* 8: Attribute ABinopExpr::_stype */
+/* 9: Attribute ABinopExpr::_if_true_variable_ctx */
+/* 10: Attribute ABinopExpr::_if_false_variable_ctx */
+/* 11: Attribute ABinopExpr::_prop_signature */
+/* 12: Attribute ABinopExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ABinopExpr::_n_expr */
-/* 12: Attribute ABinopExpr::_n_expr2 */
-val_t NEW_ABinopExpr(void) {
+/* 16: Attribute ABinopExpr::_prop */
+/* 17: Attribute ABinopExpr::_return_type */
+/* 18: Attribute ABinopExpr::_n_expr */
+/* 19: Attribute ABinopExpr::_n_closure_defs */
+/* 20: Attribute ABinopExpr::_n_expr2 */
+void INIT_ATTRIBUTES__ABinopExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABinopExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABinopExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ABinopExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ABinopExpr___empty_init() {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABinopExpr();
-  parser_prod___ABinopExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1) {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABinopExpr();
-  parser_prod___ABinopExpr___init_abinopexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABinopExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABinopExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABinopExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABinopExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABinopExpr();
+  INIT_ATTRIBUTES__ABinopExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABinopExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABinopExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ABinopExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABinopExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ABinopExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABinopExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABinopExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ABinopExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ABinopExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ABinopExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABinopExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABinopExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_ABinopExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABinopExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__ABinopExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABinopExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABinopExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_ABinopExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ABinopExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__ABinopExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ABinopExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ABoolExpr[77] = {
-  {(bigint) 3567 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABoolExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABoolExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABoolExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABoolExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3567 /* 5: ABoolExpr < ABoolExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ABoolExpr[81] = {
+  {(bigint) 6335 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABoolExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABoolExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABoolExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ABoolExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6335 /* 7: ABoolExpr < ABoolExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ABoolExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ABoolExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30391,7 +66872,6 @@ const classtable_elt_t VFT_ABoolExpr[77] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30399,82 +66879,153 @@ const classtable_elt_t VFT_ABoolExpr[77] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ABoolExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: ABoolExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ABoolExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ABoolExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ABoolExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: ABoolExpr < ABoolExpr: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ABoolExpr::_parent */
-/* 2: Attribute ABoolExpr::_first_token */
-/* 3: Attribute ABoolExpr::_last_token */
-/* 4: Attribute ABoolExpr::_stype */
-/* 5: Attribute ABoolExpr::_if_true_variable_ctx */
-val_t NEW_ABoolExpr(void) {
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 70: ABoolExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ABoolExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ABoolExpr::_parent */
+/* 3: Attribute ABoolExpr::_location */
+/* 4: Attribute ABoolExpr::_first_location */
+/* 5: Attribute ABoolExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ABoolExpr::_is_typed */
+/* 8: Attribute ABoolExpr::_stype */
+/* 9: Attribute ABoolExpr::_if_true_variable_ctx */
+/* 10: Attribute ABoolExpr::_if_false_variable_ctx */
+void INIT_ATTRIBUTES__ABoolExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABoolExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABoolExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 11);
   obj->vft = (classtable_elt_t*)VFT_ABoolExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABoolExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABoolExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABoolExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABoolExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABoolExpr();
+  INIT_ATTRIBUTES__ABoolExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABoolExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AOrExpr[84] = {
-  {(bigint) 3695 /* 0: Identity */},
-  {(bigint) 3 /* 1: AOrExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AOrExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AOrExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AOrExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3567 /* 5: AOrExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3695 /* 6: AOrExpr < AOrExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AOrExpr[88] = {
+  {(bigint) 6459 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AOrExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AOrExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AOrExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AOrExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6335 /* 7: AOrExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 6459 /* 8: AOrExpr < AOrExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AOrExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AOrExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30482,7 +67033,6 @@ const classtable_elt_t VFT_AOrExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30490,103 +67040,218 @@ const classtable_elt_t VFT_AOrExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AOrExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AOrExpr___visit_all},
   {(bigint) parser_prod___AOrExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AOrExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___AOrExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AOrExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___AOrExpr___accept_typing},
+  {(bigint) typing___ABoolExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AOrExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AOrExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AOrExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: AOrExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 70: AOrExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AOrExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AOrExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AOrExpr___empty_init},
   {(bigint) parser_prod___AOrExpr___init_aorexpr},
-  {(bigint) 5 /* 79: AOrExpr < AOrExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AOrExpr < AOrExpr: superclass init_table position */},
   {(bigint) parser_nodes___AOrExpr___n_expr},
   {(bigint) parser_prod___AOrExpr___n_expr__eq},
   {(bigint) parser_nodes___AOrExpr___n_expr2},
   {(bigint) parser_prod___AOrExpr___n_expr2__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AOrExpr::_parent */
-/* 2: Attribute AOrExpr::_first_token */
-/* 3: Attribute AOrExpr::_last_token */
-/* 4: Attribute AOrExpr::_stype */
-/* 5: Attribute AOrExpr::_if_true_variable_ctx */
-/* 6: Attribute AOrExpr::_n_expr */
-/* 7: Attribute AOrExpr::_n_expr2 */
-val_t NEW_AOrExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AOrExpr::_parent */
+/* 3: Attribute AOrExpr::_location */
+/* 4: Attribute AOrExpr::_first_location */
+/* 5: Attribute AOrExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AOrExpr::_is_typed */
+/* 8: Attribute AOrExpr::_stype */
+/* 9: Attribute AOrExpr::_if_true_variable_ctx */
+/* 10: Attribute AOrExpr::_if_false_variable_ctx */
+/* 11: Attribute AOrExpr::_n_expr */
+/* 12: Attribute AOrExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AOrExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AOrExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AOrExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AOrExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AOrExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AOrExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AOrExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AOrExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AOrExpr();
-  parser_prod___AOrExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AOrExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AOrExpr();
+  INIT_ATTRIBUTES__AOrExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AOrExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AOrExpr_parser_prod___AOrExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AOrExpr();
-  parser_prod___AOrExpr___init_aorexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5699;
+  fra.me.meth = LOCATE_NEW_AOrExpr_parser_prod___AOrExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AOrExpr();
+  /* ./parser//parser_prod.nit:5699 */
+  INIT_ATTRIBUTES__AOrExpr(fra.me.REG[0]);
+  parser_prod___AOrExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AOrExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5701;
+  fra.me.meth = LOCATE_NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AOrExpr();
+  /* ./parser//parser_prod.nit:5701 */
+  INIT_ATTRIBUTES__AOrExpr(fra.me.REG[2]);
+  parser_prod___AOrExpr___init_aorexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AOrExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AAndExpr[84] = {
-  {(bigint) 3779 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAndExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAndExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAndExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAndExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3567 /* 5: AAndExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3779 /* 6: AAndExpr < AAndExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AAndExpr[88] = {
+  {(bigint) 6547 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAndExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAndExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAndExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AAndExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6335 /* 7: AAndExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 6547 /* 8: AAndExpr < AAndExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAndExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAndExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30594,7 +67259,6 @@ const classtable_elt_t VFT_AAndExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30602,103 +67266,218 @@ const classtable_elt_t VFT_AAndExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AAndExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAndExpr___visit_all},
   {(bigint) parser_prod___AAndExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAndExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
+  {(bigint) 1 /* 59: AAndExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
   {(bigint) typing___AAndExpr___accept_typing},
   {(bigint) typing___ABoolExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAndExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AAndExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAndExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: AAndExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 70: AAndExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAndExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAndExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AAndExpr___empty_init},
   {(bigint) parser_prod___AAndExpr___init_aandexpr},
-  {(bigint) 5 /* 79: AAndExpr < AAndExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AAndExpr < AAndExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAndExpr___n_expr},
   {(bigint) parser_prod___AAndExpr___n_expr__eq},
   {(bigint) parser_nodes___AAndExpr___n_expr2},
   {(bigint) parser_prod___AAndExpr___n_expr2__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAndExpr::_parent */
-/* 2: Attribute AAndExpr::_first_token */
-/* 3: Attribute AAndExpr::_last_token */
-/* 4: Attribute AAndExpr::_stype */
-/* 5: Attribute AAndExpr::_if_true_variable_ctx */
-/* 6: Attribute AAndExpr::_n_expr */
-/* 7: Attribute AAndExpr::_n_expr2 */
-val_t NEW_AAndExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AAndExpr::_parent */
+/* 3: Attribute AAndExpr::_location */
+/* 4: Attribute AAndExpr::_first_location */
+/* 5: Attribute AAndExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAndExpr::_is_typed */
+/* 8: Attribute AAndExpr::_stype */
+/* 9: Attribute AAndExpr::_if_true_variable_ctx */
+/* 10: Attribute AAndExpr::_if_false_variable_ctx */
+/* 11: Attribute AAndExpr::_n_expr */
+/* 12: Attribute AAndExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AAndExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAndExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAndExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AAndExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAndExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAndExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAndExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAndExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AAndExpr();
-  parser_prod___AAndExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAndExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAndExpr();
+  INIT_ATTRIBUTES__AAndExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAndExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAndExpr_parser_prod___AAndExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5761;
+  fra.me.meth = LOCATE_NEW_AAndExpr_parser_prod___AAndExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAndExpr();
+  /* ./parser//parser_prod.nit:5761 */
+  INIT_ATTRIBUTES__AAndExpr(fra.me.REG[0]);
+  parser_prod___AAndExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAndExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AAndExpr();
-  parser_prod___AAndExpr___init_aandexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5763;
+  fra.me.meth = LOCATE_NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AAndExpr();
+  /* ./parser//parser_prod.nit:5763 */
+  INIT_ATTRIBUTES__AAndExpr(fra.me.REG[2]);
+  parser_prod___AAndExpr___init_aandexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AAndExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ANotExpr[84] = {
-  {(bigint) 3703 /* 0: Identity */},
-  {(bigint) 3 /* 1: ANotExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ANotExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ANotExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ANotExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3567 /* 5: ANotExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3703 /* 6: ANotExpr < ANotExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ANotExpr[88] = {
+  {(bigint) 6467 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ANotExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ANotExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ANotExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ANotExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6335 /* 7: ANotExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 6467 /* 8: ANotExpr < ANotExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ANotExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ANotExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30706,7 +67485,6 @@ const classtable_elt_t VFT_ANotExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30714,103 +67492,218 @@ const classtable_elt_t VFT_ANotExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ANotExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ANotExpr___visit_all},
   {(bigint) parser_prod___ANotExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ANotExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: ANotExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ANotExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ANotExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ANotExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ANotExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: ANotExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 70: ANotExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ANotExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ANotExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ANotExpr___empty_init},
   {(bigint) parser_prod___ANotExpr___init_anotexpr},
-  {(bigint) 5 /* 79: ANotExpr < ANotExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: ANotExpr < ANotExpr: superclass init_table position */},
   {(bigint) parser_nodes___ANotExpr___n_kwnot},
   {(bigint) parser_prod___ANotExpr___n_kwnot__eq},
   {(bigint) parser_nodes___ANotExpr___n_expr},
   {(bigint) parser_prod___ANotExpr___n_expr__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ANotExpr::_parent */
-/* 2: Attribute ANotExpr::_first_token */
-/* 3: Attribute ANotExpr::_last_token */
-/* 4: Attribute ANotExpr::_stype */
-/* 5: Attribute ANotExpr::_if_true_variable_ctx */
-/* 6: Attribute ANotExpr::_n_kwnot */
-/* 7: Attribute ANotExpr::_n_expr */
-val_t NEW_ANotExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ANotExpr::_parent */
+/* 3: Attribute ANotExpr::_location */
+/* 4: Attribute ANotExpr::_first_location */
+/* 5: Attribute ANotExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ANotExpr::_is_typed */
+/* 8: Attribute ANotExpr::_stype */
+/* 9: Attribute ANotExpr::_if_true_variable_ctx */
+/* 10: Attribute ANotExpr::_if_false_variable_ctx */
+/* 11: Attribute ANotExpr::_n_kwnot */
+/* 12: Attribute ANotExpr::_n_expr */
+void INIT_ATTRIBUTES__ANotExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ANotExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANotExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_ANotExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ANotExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ANotExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ANotExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwnot");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANotExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ANotExpr();
-  parser_prod___ANotExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ANotExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ANotExpr();
+  INIT_ATTRIBUTES__ANotExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANotExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ANotExpr_parser_prod___ANotExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ANotExpr();
-  parser_prod___ANotExpr___init_anotexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5823;
+  fra.me.meth = LOCATE_NEW_ANotExpr_parser_prod___ANotExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ANotExpr();
+  /* ./parser//parser_prod.nit:5823 */
+  INIT_ATTRIBUTES__ANotExpr(fra.me.REG[0]);
+  parser_prod___ANotExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ANotExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5825;
+  fra.me.meth = LOCATE_NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ANotExpr();
+  /* ./parser//parser_prod.nit:5825 */
+  INIT_ATTRIBUTES__ANotExpr(fra.me.REG[2]);
+  parser_prod___ANotExpr___init_anotexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ANotExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AEqExpr[110] = {
-  {(bigint) 3875 /* 0: Identity */},
-  {(bigint) 3 /* 1: AEqExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AEqExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AEqExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AEqExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AEqExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AEqExpr[125] = {
+  {(bigint) 6659 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AEqExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AEqExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AEqExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AEqExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AEqExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: AEqExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: AEqExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: AEqExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3875 /* 10: AEqExpr < AEqExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: AEqExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: AEqExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: AEqExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: AEqExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6659 /* 12: AEqExpr < AEqExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: AEqExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: AEqExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30818,7 +67711,6 @@ const classtable_elt_t VFT_AEqExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30826,48 +67718,53 @@ const classtable_elt_t VFT_AEqExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AEqExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AEqExpr___visit_all},
   {(bigint) parser_prod___AEqExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: AEqExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: AEqExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: AEqExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AEqExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) 4 /* 59: AEqExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AEqExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: AEqExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: AEqExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: AEqExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30878,82 +67775,302 @@ const classtable_elt_t VFT_AEqExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: AEqExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: AEqExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: AEqExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___AEqExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: AEqExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: AEqExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___AEqExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: AEqExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: AEqExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___AEqExpr___n_expr2__eq},
+  {(bigint) typing___ASendExpr___after_typing},
+  {(bigint) typing___AEqExpr___try_to_isa},
   {(bigint) parser_prod___AEqExpr___empty_init},
   {(bigint) parser_prod___AEqExpr___init_aeqexpr},
-  {(bigint) 8 /* 109: AEqExpr < AEqExpr: superclass init_table position */},
+  {(bigint) 9 /* 124: AEqExpr < AEqExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AEqExpr::_parent */
-/* 2: Attribute AEqExpr::_first_token */
-/* 3: Attribute AEqExpr::_last_token */
-/* 4: Attribute AEqExpr::_stype */
-/* 5: Attribute AEqExpr::_if_true_variable_ctx */
-/* 6: Attribute AEqExpr::_prop */
-/* 7: Attribute AEqExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute AEqExpr::_parent */
+/* 3: Attribute AEqExpr::_location */
+/* 4: Attribute AEqExpr::_first_location */
+/* 5: Attribute AEqExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute AEqExpr::_is_typed */
+/* 8: Attribute AEqExpr::_stype */
+/* 9: Attribute AEqExpr::_if_true_variable_ctx */
+/* 10: Attribute AEqExpr::_if_false_variable_ctx */
+/* 11: Attribute AEqExpr::_prop_signature */
+/* 12: Attribute AEqExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AEqExpr::_n_expr */
-/* 12: Attribute AEqExpr::_n_expr2 */
-val_t NEW_AEqExpr(void) {
+/* Instance Hole :( */
+/* 16: Attribute AEqExpr::_prop */
+/* 17: Attribute AEqExpr::_return_type */
+/* 18: Attribute AEqExpr::_n_expr */
+/* 19: Attribute AEqExpr::_n_closure_defs */
+/* 20: Attribute AEqExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AEqExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AEqExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEqExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_AEqExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AEqExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AEqExpr();
-  parser_prod___AEqExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AEqExpr();
-  parser_prod___AEqExpr___init_aeqexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AEqExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AEqExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEqExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AEqExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AEqExpr();
+  INIT_ATTRIBUTES__AEqExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AEqExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AEqExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_AEqExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AEqExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__AEqExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AEqExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AEqExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_AEqExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_AEqExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__AEqExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AEqExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AEqExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_AEqExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AEqExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__AEqExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AEqExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AEqExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_AEqExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AEqExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__AEqExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AEqExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_AEqExpr_parser_prod___AEqExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5885;
+  fra.me.meth = LOCATE_NEW_AEqExpr_parser_prod___AEqExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AEqExpr();
+  /* ./parser//parser_prod.nit:5885 */
+  INIT_ATTRIBUTES__AEqExpr(fra.me.REG[0]);
+  parser_prod___AEqExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AEqExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5887;
+  fra.me.meth = LOCATE_NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AEqExpr();
+  /* ./parser//parser_prod.nit:5887 */
+  INIT_ATTRIBUTES__AEqExpr(fra.me.REG[2]);
+  parser_prod___AEqExpr___init_aeqexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AEqExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AEeExpr[84] = {
-  {(bigint) 3743 /* 0: Identity */},
-  {(bigint) 3 /* 1: AEeExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AEeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AEeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AEeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3567 /* 5: AEeExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3743 /* 6: AEeExpr < AEeExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AEeExpr[88] = {
+  {(bigint) 6503 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AEeExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AEeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AEeExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AEeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6335 /* 7: AEeExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 6503 /* 8: AEeExpr < AEeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AEeExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AEeExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -30961,7 +68078,6 @@ const classtable_elt_t VFT_AEeExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -30969,103 +68085,218 @@ const classtable_elt_t VFT_AEeExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AEeExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AEeExpr___visit_all},
   {(bigint) parser_prod___AEeExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AEeExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AEeExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ABoolExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AEeExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AEeExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AEeExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: AEeExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 70: AEeExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AEeExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AEeExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AEeExpr___empty_init},
   {(bigint) parser_prod___AEeExpr___init_aeeexpr},
-  {(bigint) 5 /* 79: AEeExpr < AEeExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AEeExpr < AEeExpr: superclass init_table position */},
   {(bigint) parser_nodes___AEeExpr___n_expr},
   {(bigint) parser_prod___AEeExpr___n_expr__eq},
   {(bigint) parser_nodes___AEeExpr___n_expr2},
   {(bigint) parser_prod___AEeExpr___n_expr2__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AEeExpr::_parent */
-/* 2: Attribute AEeExpr::_first_token */
-/* 3: Attribute AEeExpr::_last_token */
-/* 4: Attribute AEeExpr::_stype */
-/* 5: Attribute AEeExpr::_if_true_variable_ctx */
-/* 6: Attribute AEeExpr::_n_expr */
-/* 7: Attribute AEeExpr::_n_expr2 */
-val_t NEW_AEeExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AEeExpr::_parent */
+/* 3: Attribute AEeExpr::_location */
+/* 4: Attribute AEeExpr::_first_location */
+/* 5: Attribute AEeExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AEeExpr::_is_typed */
+/* 8: Attribute AEeExpr::_stype */
+/* 9: Attribute AEeExpr::_if_true_variable_ctx */
+/* 10: Attribute AEeExpr::_if_false_variable_ctx */
+/* 11: Attribute AEeExpr::_n_expr */
+/* 12: Attribute AEeExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AEeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AEeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEeExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AEeExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AEeExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AEeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AEeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEeExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AEeExpr();
-  parser_prod___AEeExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AEeExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AEeExpr();
+  INIT_ATTRIBUTES__AEeExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AEeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AEeExpr_parser_prod___AEeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5947;
+  fra.me.meth = LOCATE_NEW_AEeExpr_parser_prod___AEeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AEeExpr();
+  /* ./parser//parser_prod.nit:5947 */
+  INIT_ATTRIBUTES__AEeExpr(fra.me.REG[0]);
+  parser_prod___AEeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AEeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AEeExpr();
-  parser_prod___AEeExpr___init_aeeexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5949;
+  fra.me.meth = LOCATE_NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AEeExpr();
+  /* ./parser//parser_prod.nit:5949 */
+  INIT_ATTRIBUTES__AEeExpr(fra.me.REG[2]);
+  parser_prod___AEeExpr___init_aeeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AEeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ANeExpr[110] = {
-  {(bigint) 3851 /* 0: Identity */},
-  {(bigint) 3 /* 1: ANeExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ANeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ANeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ANeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ANeExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ANeExpr[125] = {
+  {(bigint) 6635 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ANeExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ANeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ANeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ANeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ANeExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ANeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ANeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: ANeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3851 /* 10: ANeExpr < ANeExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ANeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ANeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ANeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: ANeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6635 /* 12: ANeExpr < ANeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ANeExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ANeExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -31073,7 +68304,6 @@ const classtable_elt_t VFT_ANeExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -31081,49 +68311,53 @@ const classtable_elt_t VFT_ANeExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ANeExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ANeExpr___visit_all},
   {(bigint) parser_prod___ANeExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ANeExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ANeExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ANeExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ANeExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) 4 /* 59: ANeExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANeExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ANeExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ANeExpr < ASuperInitCall: superclass init_table position */},
   {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ANeExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31133,82 +68367,303 @@ const classtable_elt_t VFT_ANeExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ANeExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ANeExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ANeExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ANeExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ANeExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ANeExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ANeExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: ANeExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: ANeExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___ANeExpr___n_expr2__eq},
+  {(bigint) typing___ASendExpr___after_typing},
+  {(bigint) typing___ANeExpr___try_to_isa},
   {(bigint) parser_prod___ANeExpr___empty_init},
   {(bigint) parser_prod___ANeExpr___init_aneexpr},
-  {(bigint) 8 /* 109: ANeExpr < ANeExpr: superclass init_table position */},
+  {(bigint) 9 /* 124: ANeExpr < ANeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ANeExpr::_parent */
-/* 2: Attribute ANeExpr::_first_token */
-/* 3: Attribute ANeExpr::_last_token */
-/* 4: Attribute ANeExpr::_stype */
-/* 5: Attribute ANeExpr::_if_true_variable_ctx */
-/* 6: Attribute ANeExpr::_prop */
-/* 7: Attribute ANeExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ANeExpr::_parent */
+/* 3: Attribute ANeExpr::_location */
+/* 4: Attribute ANeExpr::_first_location */
+/* 5: Attribute ANeExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ANeExpr::_is_typed */
+/* 8: Attribute ANeExpr::_stype */
+/* 9: Attribute ANeExpr::_if_true_variable_ctx */
+/* 10: Attribute ANeExpr::_if_false_variable_ctx */
+/* 11: Attribute ANeExpr::_prop_signature */
+/* 12: Attribute ANeExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ANeExpr::_n_expr */
-/* 12: Attribute ANeExpr::_n_expr2 */
-val_t NEW_ANeExpr(void) {
+/* 16: Attribute ANeExpr::_prop */
+/* 17: Attribute ANeExpr::_return_type */
+/* 18: Attribute ANeExpr::_n_expr */
+/* 19: Attribute ANeExpr::_n_closure_defs */
+/* 20: Attribute ANeExpr::_n_expr2 */
+void INIT_ATTRIBUTES__ANeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ANeExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANeExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ANeExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ANeExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ANeExpr();
-  parser_prod___ANeExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ANeExpr();
-  parser_prod___ANeExpr___init_aneexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ANeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ANeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANeExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ANeExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ANeExpr();
+  INIT_ATTRIBUTES__ANeExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ANeExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ANeExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ANeExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ANeExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ANeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ANeExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ANeExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ANeExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ANeExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ANeExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_ANeExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ANeExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__ANeExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ANeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ANeExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_ANeExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ANeExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__ANeExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ANeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_ANeExpr_parser_prod___ANeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6009;
+  fra.me.meth = LOCATE_NEW_ANeExpr_parser_prod___ANeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ANeExpr();
+  /* ./parser//parser_prod.nit:6009 */
+  INIT_ATTRIBUTES__ANeExpr(fra.me.REG[0]);
+  parser_prod___ANeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ANeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6011;
+  fra.me.meth = LOCATE_NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ANeExpr();
+  /* ./parser//parser_prod.nit:6011 */
+  INIT_ATTRIBUTES__ANeExpr(fra.me.REG[2]);
+  parser_prod___ANeExpr___init_aneexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ANeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ALtExpr[110] = {
-  {(bigint) 3859 /* 0: Identity */},
-  {(bigint) 3 /* 1: ALtExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ALtExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ALtExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ALtExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ALtExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ALtExpr[123] = {
+  {(bigint) 6643 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ALtExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ALtExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ALtExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ALtExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ALtExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ALtExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ALtExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: ALtExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3859 /* 10: ALtExpr < ALtExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ALtExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ALtExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ALtExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: ALtExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6643 /* 12: ALtExpr < ALtExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ALtExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ALtExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -31216,7 +68671,6 @@ const classtable_elt_t VFT_ALtExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -31224,48 +68678,53 @@ const classtable_elt_t VFT_ALtExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ALtExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ALtExpr___visit_all},
   {(bigint) parser_prod___ALtExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ALtExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ALtExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ALtExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ALtExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ALtExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ALtExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ALtExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ALtExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31276,82 +68735,300 @@ const classtable_elt_t VFT_ALtExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ALtExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ALtExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ALtExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ALtExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ALtExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ALtExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ALtExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: ALtExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: ALtExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___ALtExpr___n_expr2__eq},
   {(bigint) parser_prod___ALtExpr___empty_init},
   {(bigint) parser_prod___ALtExpr___init_altexpr},
-  {(bigint) 8 /* 109: ALtExpr < ALtExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: ALtExpr < ALtExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ALtExpr::_parent */
-/* 2: Attribute ALtExpr::_first_token */
-/* 3: Attribute ALtExpr::_last_token */
-/* 4: Attribute ALtExpr::_stype */
-/* 5: Attribute ALtExpr::_if_true_variable_ctx */
-/* 6: Attribute ALtExpr::_prop */
-/* 7: Attribute ALtExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ALtExpr::_parent */
+/* 3: Attribute ALtExpr::_location */
+/* 4: Attribute ALtExpr::_first_location */
+/* 5: Attribute ALtExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ALtExpr::_is_typed */
+/* 8: Attribute ALtExpr::_stype */
+/* 9: Attribute ALtExpr::_if_true_variable_ctx */
+/* 10: Attribute ALtExpr::_if_false_variable_ctx */
+/* 11: Attribute ALtExpr::_prop_signature */
+/* 12: Attribute ALtExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ALtExpr::_n_expr */
-/* 12: Attribute ALtExpr::_n_expr2 */
-val_t NEW_ALtExpr(void) {
+/* 16: Attribute ALtExpr::_prop */
+/* 17: Attribute ALtExpr::_return_type */
+/* 18: Attribute ALtExpr::_n_expr */
+/* 19: Attribute ALtExpr::_n_closure_defs */
+/* 20: Attribute ALtExpr::_n_expr2 */
+void INIT_ATTRIBUTES__ALtExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ALtExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALtExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ALtExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ALtExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ALtExpr();
-  parser_prod___ALtExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ALtExpr();
-  parser_prod___ALtExpr___init_altexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ALtExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ALtExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALtExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ALtExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ALtExpr();
+  INIT_ATTRIBUTES__ALtExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALtExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ALtExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ALtExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALtExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ALtExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALtExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALtExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ALtExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ALtExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ALtExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALtExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ALtExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_ALtExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALtExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__ALtExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALtExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALtExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_ALtExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ALtExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__ALtExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ALtExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_ALtExpr_parser_prod___ALtExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6071;
+  fra.me.meth = LOCATE_NEW_ALtExpr_parser_prod___ALtExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALtExpr();
+  /* ./parser//parser_prod.nit:6071 */
+  INIT_ATTRIBUTES__ALtExpr(fra.me.REG[0]);
+  parser_prod___ALtExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALtExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6073;
+  fra.me.meth = LOCATE_NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ALtExpr();
+  /* ./parser//parser_prod.nit:6073 */
+  INIT_ATTRIBUTES__ALtExpr(fra.me.REG[2]);
+  parser_prod___ALtExpr___init_altexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ALtExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ALeExpr[110] = {
-  {(bigint) 3863 /* 0: Identity */},
-  {(bigint) 3 /* 1: ALeExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ALeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ALeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ALeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ALeExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ALeExpr[123] = {
+  {(bigint) 6647 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ALeExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ALeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ALeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ALeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ALeExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ALeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ALeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: ALeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3863 /* 10: ALeExpr < ALeExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ALeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ALeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ALeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: ALeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6647 /* 12: ALeExpr < ALeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ALeExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ALeExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -31359,7 +69036,6 @@ const classtable_elt_t VFT_ALeExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -31367,48 +69043,53 @@ const classtable_elt_t VFT_ALeExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ALeExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ALeExpr___visit_all},
   {(bigint) parser_prod___ALeExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ALeExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ALeExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ALeExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ALeExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ALeExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ALeExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ALeExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ALeExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31419,82 +69100,300 @@ const classtable_elt_t VFT_ALeExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ALeExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ALeExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ALeExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ALeExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ALeExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ALeExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ALeExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: ALeExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: ALeExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___ALeExpr___n_expr2__eq},
   {(bigint) parser_prod___ALeExpr___empty_init},
   {(bigint) parser_prod___ALeExpr___init_aleexpr},
-  {(bigint) 8 /* 109: ALeExpr < ALeExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: ALeExpr < ALeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ALeExpr::_parent */
-/* 2: Attribute ALeExpr::_first_token */
-/* 3: Attribute ALeExpr::_last_token */
-/* 4: Attribute ALeExpr::_stype */
-/* 5: Attribute ALeExpr::_if_true_variable_ctx */
-/* 6: Attribute ALeExpr::_prop */
-/* 7: Attribute ALeExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ALeExpr::_parent */
+/* 3: Attribute ALeExpr::_location */
+/* 4: Attribute ALeExpr::_first_location */
+/* 5: Attribute ALeExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ALeExpr::_is_typed */
+/* 8: Attribute ALeExpr::_stype */
+/* 9: Attribute ALeExpr::_if_true_variable_ctx */
+/* 10: Attribute ALeExpr::_if_false_variable_ctx */
+/* 11: Attribute ALeExpr::_prop_signature */
+/* 12: Attribute ALeExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ALeExpr::_n_expr */
-/* 12: Attribute ALeExpr::_n_expr2 */
-val_t NEW_ALeExpr(void) {
+/* 16: Attribute ALeExpr::_prop */
+/* 17: Attribute ALeExpr::_return_type */
+/* 18: Attribute ALeExpr::_n_expr */
+/* 19: Attribute ALeExpr::_n_closure_defs */
+/* 20: Attribute ALeExpr::_n_expr2 */
+void INIT_ATTRIBUTES__ALeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ALeExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALeExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ALeExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ALeExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ALeExpr();
-  parser_prod___ALeExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ALeExpr();
-  parser_prod___ALeExpr___init_aleexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ALeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ALeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ALeExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ALeExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ALeExpr();
+  INIT_ATTRIBUTES__ALeExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ALeExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ALeExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALeExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ALeExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALeExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ALeExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ALeExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ALeExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ALeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ALeExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_ALeExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALeExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__ALeExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALeExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_ALeExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ALeExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__ALeExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ALeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_ALeExpr_parser_prod___ALeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6133;
+  fra.me.meth = LOCATE_NEW_ALeExpr_parser_prod___ALeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ALeExpr();
+  /* ./parser//parser_prod.nit:6133 */
+  INIT_ATTRIBUTES__ALeExpr(fra.me.REG[0]);
+  parser_prod___ALeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ALeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6135;
+  fra.me.meth = LOCATE_NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ALeExpr();
+  /* ./parser//parser_prod.nit:6135 */
+  INIT_ATTRIBUTES__ALeExpr(fra.me.REG[2]);
+  parser_prod___ALeExpr___init_aleexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ALeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AGtExpr[110] = {
-  {(bigint) 3867 /* 0: Identity */},
-  {(bigint) 3 /* 1: AGtExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AGtExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AGtExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AGtExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AGtExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AGtExpr[123] = {
+  {(bigint) 6651 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AGtExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AGtExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AGtExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AGtExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AGtExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: AGtExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: AGtExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: AGtExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3867 /* 10: AGtExpr < AGtExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: AGtExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: AGtExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: AGtExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: AGtExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6651 /* 12: AGtExpr < AGtExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: AGtExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: AGtExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -31502,7 +69401,6 @@ const classtable_elt_t VFT_AGtExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -31510,48 +69408,53 @@ const classtable_elt_t VFT_AGtExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AGtExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AGtExpr___visit_all},
   {(bigint) parser_prod___AGtExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: AGtExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: AGtExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: AGtExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: AGtExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AGtExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: AGtExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: AGtExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: AGtExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31562,82 +69465,300 @@ const classtable_elt_t VFT_AGtExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: AGtExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: AGtExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: AGtExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___AGtExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: AGtExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: AGtExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___AGtExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: AGtExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: AGtExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___AGtExpr___n_expr2__eq},
   {(bigint) parser_prod___AGtExpr___empty_init},
   {(bigint) parser_prod___AGtExpr___init_agtexpr},
-  {(bigint) 8 /* 109: AGtExpr < AGtExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: AGtExpr < AGtExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AGtExpr::_parent */
-/* 2: Attribute AGtExpr::_first_token */
-/* 3: Attribute AGtExpr::_last_token */
-/* 4: Attribute AGtExpr::_stype */
-/* 5: Attribute AGtExpr::_if_true_variable_ctx */
-/* 6: Attribute AGtExpr::_prop */
-/* 7: Attribute AGtExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute AGtExpr::_parent */
+/* 3: Attribute AGtExpr::_location */
+/* 4: Attribute AGtExpr::_first_location */
+/* 5: Attribute AGtExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AGtExpr::_is_typed */
+/* 8: Attribute AGtExpr::_stype */
+/* 9: Attribute AGtExpr::_if_true_variable_ctx */
+/* 10: Attribute AGtExpr::_if_false_variable_ctx */
+/* 11: Attribute AGtExpr::_prop_signature */
+/* 12: Attribute AGtExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AGtExpr::_n_expr */
-/* 12: Attribute AGtExpr::_n_expr2 */
-val_t NEW_AGtExpr(void) {
+/* 16: Attribute AGtExpr::_prop */
+/* 17: Attribute AGtExpr::_return_type */
+/* 18: Attribute AGtExpr::_n_expr */
+/* 19: Attribute AGtExpr::_n_closure_defs */
+/* 20: Attribute AGtExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AGtExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AGtExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AGtExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_AGtExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AGtExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AGtExpr();
-  parser_prod___AGtExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AGtExpr();
-  parser_prod___AGtExpr___init_agtexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AGtExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AGtExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AGtExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AGtExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AGtExpr();
+  INIT_ATTRIBUTES__AGtExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AGtExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AGtExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_AGtExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AGtExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__AGtExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AGtExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AGtExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_AGtExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_AGtExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__AGtExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AGtExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AGtExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_AGtExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AGtExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__AGtExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AGtExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AGtExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_AGtExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AGtExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__AGtExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AGtExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_AGtExpr_parser_prod___AGtExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6195;
+  fra.me.meth = LOCATE_NEW_AGtExpr_parser_prod___AGtExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AGtExpr();
+  /* ./parser//parser_prod.nit:6195 */
+  INIT_ATTRIBUTES__AGtExpr(fra.me.REG[0]);
+  parser_prod___AGtExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AGtExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6197;
+  fra.me.meth = LOCATE_NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AGtExpr();
+  /* ./parser//parser_prod.nit:6197 */
+  INIT_ATTRIBUTES__AGtExpr(fra.me.REG[2]);
+  parser_prod___AGtExpr___init_agtexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AGtExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AGeExpr[110] = {
-  {(bigint) 3871 /* 0: Identity */},
-  {(bigint) 3 /* 1: AGeExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AGeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AGeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AGeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AGeExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AGeExpr[123] = {
+  {(bigint) 6655 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AGeExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AGeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AGeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AGeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AGeExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: AGeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: AGeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: AGeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3871 /* 10: AGeExpr < AGeExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: AGeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: AGeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: AGeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: AGeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6655 /* 12: AGeExpr < AGeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: AGeExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: AGeExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -31645,7 +69766,6 @@ const classtable_elt_t VFT_AGeExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -31653,48 +69773,53 @@ const classtable_elt_t VFT_AGeExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AGeExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AGeExpr___visit_all},
   {(bigint) parser_prod___AGeExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: AGeExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: AGeExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: AGeExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: AGeExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AGeExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: AGeExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: AGeExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: AGeExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31705,82 +69830,300 @@ const classtable_elt_t VFT_AGeExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: AGeExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: AGeExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: AGeExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___AGeExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: AGeExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: AGeExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___AGeExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: AGeExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: AGeExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___AGeExpr___n_expr2__eq},
   {(bigint) parser_prod___AGeExpr___empty_init},
   {(bigint) parser_prod___AGeExpr___init_ageexpr},
-  {(bigint) 8 /* 109: AGeExpr < AGeExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: AGeExpr < AGeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AGeExpr::_parent */
-/* 2: Attribute AGeExpr::_first_token */
-/* 3: Attribute AGeExpr::_last_token */
-/* 4: Attribute AGeExpr::_stype */
-/* 5: Attribute AGeExpr::_if_true_variable_ctx */
-/* 6: Attribute AGeExpr::_prop */
-/* 7: Attribute AGeExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute AGeExpr::_parent */
+/* 3: Attribute AGeExpr::_location */
+/* 4: Attribute AGeExpr::_first_location */
+/* 5: Attribute AGeExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AGeExpr::_is_typed */
+/* 8: Attribute AGeExpr::_stype */
+/* 9: Attribute AGeExpr::_if_true_variable_ctx */
+/* 10: Attribute AGeExpr::_if_false_variable_ctx */
+/* 11: Attribute AGeExpr::_prop_signature */
+/* 12: Attribute AGeExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AGeExpr::_n_expr */
-/* 12: Attribute AGeExpr::_n_expr2 */
-val_t NEW_AGeExpr(void) {
+/* 16: Attribute AGeExpr::_prop */
+/* 17: Attribute AGeExpr::_return_type */
+/* 18: Attribute AGeExpr::_n_expr */
+/* 19: Attribute AGeExpr::_n_closure_defs */
+/* 20: Attribute AGeExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AGeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AGeExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AGeExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_AGeExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AGeExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AGeExpr();
-  parser_prod___AGeExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AGeExpr();
-  parser_prod___AGeExpr___init_ageexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AGeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AGeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AGeExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AGeExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AGeExpr();
+  INIT_ATTRIBUTES__AGeExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AGeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AGeExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_AGeExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AGeExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__AGeExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AGeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AGeExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_AGeExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_AGeExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__AGeExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AGeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AGeExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_AGeExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AGeExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__AGeExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AGeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AGeExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_AGeExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AGeExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__AGeExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AGeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_AGeExpr_parser_prod___AGeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6257;
+  fra.me.meth = LOCATE_NEW_AGeExpr_parser_prod___AGeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AGeExpr();
+  /* ./parser//parser_prod.nit:6257 */
+  INIT_ATTRIBUTES__AGeExpr(fra.me.REG[0]);
+  parser_prod___AGeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AGeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6259;
+  fra.me.meth = LOCATE_NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AGeExpr();
+  /* ./parser//parser_prod.nit:6259 */
+  INIT_ATTRIBUTES__AGeExpr(fra.me.REG[2]);
+  parser_prod___AGeExpr___init_ageexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AGeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AIsaExpr[84] = {
-  {(bigint) 3715 /* 0: Identity */},
-  {(bigint) 3 /* 1: AIsaExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AIsaExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AIsaExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AIsaExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3567 /* 5: AIsaExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3715 /* 6: AIsaExpr < AIsaExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AIsaExpr[88] = {
+  {(bigint) 6479 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AIsaExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AIsaExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AIsaExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6127 /* 5: AIsaExpr < ATypeCheckExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AIsaExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6335 /* 7: AIsaExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 6479 /* 8: AIsaExpr < AIsaExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AIsaExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 1 /* 19: AIsaExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -31788,7 +70131,6 @@ const classtable_elt_t VFT_AIsaExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -31796,103 +70138,218 @@ const classtable_elt_t VFT_AIsaExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AIsaExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AIsaExpr___visit_all},
   {(bigint) parser_prod___AIsaExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AIsaExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 2 /* 59: AIsaExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AIsaExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AIsaExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AIsaExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AIsaExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: AIsaExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 3 /* 66: AIsaExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 0 /* 68: AIsaExpr < ATypeCheckExpr: superclass init_table position */},
+  {(bigint) typing___ATypeCheckExpr___check_expr_cast},
+  {(bigint) 5 /* 70: AIsaExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 4 /* 74: AIsaExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AIsaExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AIsaExpr___empty_init},
   {(bigint) parser_prod___AIsaExpr___init_aisaexpr},
-  {(bigint) 5 /* 79: AIsaExpr < AIsaExpr: superclass init_table position */},
+  {(bigint) 6 /* 83: AIsaExpr < AIsaExpr: superclass init_table position */},
   {(bigint) parser_nodes___AIsaExpr___n_expr},
   {(bigint) parser_prod___AIsaExpr___n_expr__eq},
   {(bigint) parser_nodes___AIsaExpr___n_type},
   {(bigint) parser_prod___AIsaExpr___n_type__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AIsaExpr::_parent */
-/* 2: Attribute AIsaExpr::_first_token */
-/* 3: Attribute AIsaExpr::_last_token */
-/* 4: Attribute AIsaExpr::_stype */
-/* 5: Attribute AIsaExpr::_if_true_variable_ctx */
-/* 6: Attribute AIsaExpr::_n_expr */
-/* 7: Attribute AIsaExpr::_n_type */
-val_t NEW_AIsaExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AIsaExpr::_parent */
+/* 3: Attribute AIsaExpr::_location */
+/* 4: Attribute AIsaExpr::_first_location */
+/* 5: Attribute AIsaExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AIsaExpr::_is_typed */
+/* 8: Attribute AIsaExpr::_stype */
+/* 9: Attribute AIsaExpr::_if_true_variable_ctx */
+/* 10: Attribute AIsaExpr::_if_false_variable_ctx */
+/* 11: Attribute AIsaExpr::_n_expr */
+/* 12: Attribute AIsaExpr::_n_type */
+void INIT_ATTRIBUTES__AIsaExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AIsaExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIsaExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AIsaExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AIsaExpr___empty_init() {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AIsaExpr();
-  parser_prod___AIsaExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1) {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AIsaExpr();
-  parser_prod___AIsaExpr___init_aisaexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AIsaExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AIsaExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_type");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIsaExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AIsaExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AIsaExpr();
+  INIT_ATTRIBUTES__AIsaExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIsaExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AIsaExpr_parser_prod___AIsaExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6319;
+  fra.me.meth = LOCATE_NEW_AIsaExpr_parser_prod___AIsaExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AIsaExpr();
+  /* ./parser//parser_prod.nit:6319 */
+  INIT_ATTRIBUTES__AIsaExpr(fra.me.REG[0]);
+  parser_prod___AIsaExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AIsaExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6321;
+  fra.me.meth = LOCATE_NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AIsaExpr();
+  /* ./parser//parser_prod.nit:6321 */
+  INIT_ATTRIBUTES__AIsaExpr(fra.me.REG[2]);
+  parser_prod___AIsaExpr___init_aisaexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AIsaExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_APlusExpr[110] = {
-  {(bigint) 3843 /* 0: Identity */},
-  {(bigint) 3 /* 1: APlusExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: APlusExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: APlusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: APlusExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: APlusExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_APlusExpr[123] = {
+  {(bigint) 6627 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APlusExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APlusExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APlusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: APlusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: APlusExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: APlusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: APlusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: APlusExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3843 /* 10: APlusExpr < APlusExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: APlusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: APlusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: APlusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: APlusExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6627 /* 12: APlusExpr < APlusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: APlusExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: APlusExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -31900,7 +70357,6 @@ const classtable_elt_t VFT_APlusExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -31908,48 +70364,53 @@ const classtable_elt_t VFT_APlusExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___APlusExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___APlusExpr___visit_all},
   {(bigint) parser_prod___APlusExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: APlusExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: APlusExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: APlusExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: APlusExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: APlusExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: APlusExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: APlusExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: APlusExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31960,82 +70421,300 @@ const classtable_elt_t VFT_APlusExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: APlusExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: APlusExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: APlusExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___APlusExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: APlusExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: APlusExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___APlusExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: APlusExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: APlusExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___APlusExpr___n_expr2__eq},
   {(bigint) parser_prod___APlusExpr___empty_init},
   {(bigint) parser_prod___APlusExpr___init_aplusexpr},
-  {(bigint) 8 /* 109: APlusExpr < APlusExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: APlusExpr < APlusExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute APlusExpr::_parent */
-/* 2: Attribute APlusExpr::_first_token */
-/* 3: Attribute APlusExpr::_last_token */
-/* 4: Attribute APlusExpr::_stype */
-/* 5: Attribute APlusExpr::_if_true_variable_ctx */
-/* 6: Attribute APlusExpr::_prop */
-/* 7: Attribute APlusExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute APlusExpr::_parent */
+/* 3: Attribute APlusExpr::_location */
+/* 4: Attribute APlusExpr::_first_location */
+/* 5: Attribute APlusExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute APlusExpr::_is_typed */
+/* 8: Attribute APlusExpr::_stype */
+/* 9: Attribute APlusExpr::_if_true_variable_ctx */
+/* 10: Attribute APlusExpr::_if_false_variable_ctx */
+/* 11: Attribute APlusExpr::_prop_signature */
+/* 12: Attribute APlusExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute APlusExpr::_n_expr */
-/* 12: Attribute APlusExpr::_n_expr2 */
-val_t NEW_APlusExpr(void) {
+/* 16: Attribute APlusExpr::_prop */
+/* 17: Attribute APlusExpr::_return_type */
+/* 18: Attribute APlusExpr::_n_expr */
+/* 19: Attribute APlusExpr::_n_closure_defs */
+/* 20: Attribute APlusExpr::_n_expr2 */
+void INIT_ATTRIBUTES__APlusExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APlusExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APlusExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_APlusExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___APlusExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_APlusExpr();
-  parser_prod___APlusExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_APlusExpr();
-  parser_prod___APlusExpr___init_aplusexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APlusExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APlusExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APlusExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APlusExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APlusExpr();
+  INIT_ATTRIBUTES__APlusExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APlusExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APlusExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_APlusExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APlusExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__APlusExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APlusExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APlusExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_APlusExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_APlusExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__APlusExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APlusExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APlusExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_APlusExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APlusExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__APlusExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APlusExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APlusExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_APlusExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_APlusExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__APlusExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_APlusExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_APlusExpr_parser_prod___APlusExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6381;
+  fra.me.meth = LOCATE_NEW_APlusExpr_parser_prod___APlusExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APlusExpr();
+  /* ./parser//parser_prod.nit:6381 */
+  INIT_ATTRIBUTES__APlusExpr(fra.me.REG[0]);
+  parser_prod___APlusExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APlusExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6383;
+  fra.me.meth = LOCATE_NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_APlusExpr();
+  /* ./parser//parser_prod.nit:6383 */
+  INIT_ATTRIBUTES__APlusExpr(fra.me.REG[2]);
+  parser_prod___APlusExpr___init_aplusexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_APlusExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AMinusExpr[110] = {
-  {(bigint) 3855 /* 0: Identity */},
-  {(bigint) 3 /* 1: AMinusExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AMinusExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AMinusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AMinusExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AMinusExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AMinusExpr[123] = {
+  {(bigint) 6639 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AMinusExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AMinusExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AMinusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AMinusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AMinusExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: AMinusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: AMinusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: AMinusExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3855 /* 10: AMinusExpr < AMinusExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: AMinusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: AMinusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: AMinusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: AMinusExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6639 /* 12: AMinusExpr < AMinusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: AMinusExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: AMinusExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -32043,7 +70722,6 @@ const classtable_elt_t VFT_AMinusExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -32051,48 +70729,53 @@ const classtable_elt_t VFT_AMinusExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AMinusExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AMinusExpr___visit_all},
   {(bigint) parser_prod___AMinusExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: AMinusExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: AMinusExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: AMinusExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: AMinusExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AMinusExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: AMinusExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: AMinusExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: AMinusExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32103,82 +70786,300 @@ const classtable_elt_t VFT_AMinusExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: AMinusExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: AMinusExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: AMinusExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___AMinusExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: AMinusExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: AMinusExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___AMinusExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: AMinusExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: AMinusExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___AMinusExpr___n_expr2__eq},
   {(bigint) parser_prod___AMinusExpr___empty_init},
   {(bigint) parser_prod___AMinusExpr___init_aminusexpr},
-  {(bigint) 8 /* 109: AMinusExpr < AMinusExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: AMinusExpr < AMinusExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AMinusExpr::_parent */
-/* 2: Attribute AMinusExpr::_first_token */
-/* 3: Attribute AMinusExpr::_last_token */
-/* 4: Attribute AMinusExpr::_stype */
-/* 5: Attribute AMinusExpr::_if_true_variable_ctx */
-/* 6: Attribute AMinusExpr::_prop */
-/* 7: Attribute AMinusExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute AMinusExpr::_parent */
+/* 3: Attribute AMinusExpr::_location */
+/* 4: Attribute AMinusExpr::_first_location */
+/* 5: Attribute AMinusExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AMinusExpr::_is_typed */
+/* 8: Attribute AMinusExpr::_stype */
+/* 9: Attribute AMinusExpr::_if_true_variable_ctx */
+/* 10: Attribute AMinusExpr::_if_false_variable_ctx */
+/* 11: Attribute AMinusExpr::_prop_signature */
+/* 12: Attribute AMinusExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AMinusExpr::_n_expr */
-/* 12: Attribute AMinusExpr::_n_expr2 */
-val_t NEW_AMinusExpr(void) {
+/* 16: Attribute AMinusExpr::_prop */
+/* 17: Attribute AMinusExpr::_return_type */
+/* 18: Attribute AMinusExpr::_n_expr */
+/* 19: Attribute AMinusExpr::_n_closure_defs */
+/* 20: Attribute AMinusExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AMinusExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AMinusExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMinusExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_AMinusExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AMinusExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AMinusExpr();
-  parser_prod___AMinusExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AMinusExpr();
-  parser_prod___AMinusExpr___init_aminusexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AMinusExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AMinusExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMinusExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AMinusExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AMinusExpr();
+  INIT_ATTRIBUTES__AMinusExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMinusExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AMinusExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_AMinusExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMinusExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__AMinusExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMinusExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMinusExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_AMinusExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_AMinusExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__AMinusExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMinusExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AMinusExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_AMinusExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMinusExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__AMinusExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMinusExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMinusExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_AMinusExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AMinusExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__AMinusExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AMinusExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_AMinusExpr_parser_prod___AMinusExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6443;
+  fra.me.meth = LOCATE_NEW_AMinusExpr_parser_prod___AMinusExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMinusExpr();
+  /* ./parser//parser_prod.nit:6443 */
+  INIT_ATTRIBUTES__AMinusExpr(fra.me.REG[0]);
+  parser_prod___AMinusExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMinusExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6445;
+  fra.me.meth = LOCATE_NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AMinusExpr();
+  /* ./parser//parser_prod.nit:6445 */
+  INIT_ATTRIBUTES__AMinusExpr(fra.me.REG[2]);
+  parser_prod___AMinusExpr___init_aminusexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AMinusExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AStarshipExpr[110] = {
-  {(bigint) 3831 /* 0: Identity */},
-  {(bigint) 3 /* 1: AStarshipExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AStarshipExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AStarshipExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AStarshipExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AStarshipExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AStarshipExpr[123] = {
+  {(bigint) 6615 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStarshipExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStarshipExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStarshipExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AStarshipExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AStarshipExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: AStarshipExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: AStarshipExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: AStarshipExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3831 /* 10: AStarshipExpr < AStarshipExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: AStarshipExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: AStarshipExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: AStarshipExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: AStarshipExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6615 /* 12: AStarshipExpr < AStarshipExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: AStarshipExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: AStarshipExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -32186,7 +71087,6 @@ const classtable_elt_t VFT_AStarshipExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -32194,48 +71094,53 @@ const classtable_elt_t VFT_AStarshipExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AStarshipExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AStarshipExpr___visit_all},
   {(bigint) parser_prod___AStarshipExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: AStarshipExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: AStarshipExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: AStarshipExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: AStarshipExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AStarshipExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: AStarshipExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: AStarshipExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: AStarshipExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32246,82 +71151,300 @@ const classtable_elt_t VFT_AStarshipExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: AStarshipExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: AStarshipExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: AStarshipExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___AStarshipExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: AStarshipExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: AStarshipExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___AStarshipExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: AStarshipExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: AStarshipExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___AStarshipExpr___n_expr2__eq},
   {(bigint) parser_prod___AStarshipExpr___empty_init},
   {(bigint) parser_prod___AStarshipExpr___init_astarshipexpr},
-  {(bigint) 8 /* 109: AStarshipExpr < AStarshipExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: AStarshipExpr < AStarshipExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AStarshipExpr::_parent */
-/* 2: Attribute AStarshipExpr::_first_token */
-/* 3: Attribute AStarshipExpr::_last_token */
-/* 4: Attribute AStarshipExpr::_stype */
-/* 5: Attribute AStarshipExpr::_if_true_variable_ctx */
-/* 6: Attribute AStarshipExpr::_prop */
-/* 7: Attribute AStarshipExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute AStarshipExpr::_parent */
+/* 3: Attribute AStarshipExpr::_location */
+/* 4: Attribute AStarshipExpr::_first_location */
+/* 5: Attribute AStarshipExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AStarshipExpr::_is_typed */
+/* 8: Attribute AStarshipExpr::_stype */
+/* 9: Attribute AStarshipExpr::_if_true_variable_ctx */
+/* 10: Attribute AStarshipExpr::_if_false_variable_ctx */
+/* 11: Attribute AStarshipExpr::_prop_signature */
+/* 12: Attribute AStarshipExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AStarshipExpr::_n_expr */
-/* 12: Attribute AStarshipExpr::_n_expr2 */
-val_t NEW_AStarshipExpr(void) {
+/* 16: Attribute AStarshipExpr::_prop */
+/* 17: Attribute AStarshipExpr::_return_type */
+/* 18: Attribute AStarshipExpr::_n_expr */
+/* 19: Attribute AStarshipExpr::_n_closure_defs */
+/* 20: Attribute AStarshipExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AStarshipExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStarshipExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStarshipExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_AStarshipExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AStarshipExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AStarshipExpr();
-  parser_prod___AStarshipExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AStarshipExpr();
-  parser_prod___AStarshipExpr___init_astarshipexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStarshipExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStarshipExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStarshipExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStarshipExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStarshipExpr();
+  INIT_ATTRIBUTES__AStarshipExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStarshipExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStarshipExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_AStarshipExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStarshipExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__AStarshipExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStarshipExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStarshipExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_AStarshipExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_AStarshipExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__AStarshipExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStarshipExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStarshipExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_AStarshipExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStarshipExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__AStarshipExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStarshipExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStarshipExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_AStarshipExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AStarshipExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__AStarshipExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AStarshipExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_AStarshipExpr_parser_prod___AStarshipExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6505;
+  fra.me.meth = LOCATE_NEW_AStarshipExpr_parser_prod___AStarshipExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStarshipExpr();
+  /* ./parser//parser_prod.nit:6505 */
+  INIT_ATTRIBUTES__AStarshipExpr(fra.me.REG[0]);
+  parser_prod___AStarshipExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStarshipExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6507;
+  fra.me.meth = LOCATE_NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AStarshipExpr();
+  /* ./parser//parser_prod.nit:6507 */
+  INIT_ATTRIBUTES__AStarshipExpr(fra.me.REG[2]);
+  parser_prod___AStarshipExpr___init_astarshipexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AStarshipExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AStarExpr[110] = {
-  {(bigint) 3835 /* 0: Identity */},
-  {(bigint) 3 /* 1: AStarExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AStarExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AStarExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AStarExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AStarExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AStarExpr[123] = {
+  {(bigint) 6619 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStarExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStarExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStarExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AStarExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AStarExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: AStarExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: AStarExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: AStarExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3835 /* 10: AStarExpr < AStarExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: AStarExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: AStarExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: AStarExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: AStarExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6619 /* 12: AStarExpr < AStarExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: AStarExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: AStarExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -32329,7 +71452,6 @@ const classtable_elt_t VFT_AStarExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -32337,48 +71459,53 @@ const classtable_elt_t VFT_AStarExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AStarExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AStarExpr___visit_all},
   {(bigint) parser_prod___AStarExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: AStarExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: AStarExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: AStarExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: AStarExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AStarExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: AStarExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: AStarExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: AStarExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32389,82 +71516,300 @@ const classtable_elt_t VFT_AStarExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: AStarExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: AStarExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: AStarExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___AStarExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: AStarExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: AStarExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___AStarExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: AStarExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: AStarExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___AStarExpr___n_expr2__eq},
   {(bigint) parser_prod___AStarExpr___empty_init},
   {(bigint) parser_prod___AStarExpr___init_astarexpr},
-  {(bigint) 8 /* 109: AStarExpr < AStarExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: AStarExpr < AStarExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AStarExpr::_parent */
-/* 2: Attribute AStarExpr::_first_token */
-/* 3: Attribute AStarExpr::_last_token */
-/* 4: Attribute AStarExpr::_stype */
-/* 5: Attribute AStarExpr::_if_true_variable_ctx */
-/* 6: Attribute AStarExpr::_prop */
-/* 7: Attribute AStarExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute AStarExpr::_parent */
+/* 3: Attribute AStarExpr::_location */
+/* 4: Attribute AStarExpr::_first_location */
+/* 5: Attribute AStarExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AStarExpr::_is_typed */
+/* 8: Attribute AStarExpr::_stype */
+/* 9: Attribute AStarExpr::_if_true_variable_ctx */
+/* 10: Attribute AStarExpr::_if_false_variable_ctx */
+/* 11: Attribute AStarExpr::_prop_signature */
+/* 12: Attribute AStarExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AStarExpr::_n_expr */
-/* 12: Attribute AStarExpr::_n_expr2 */
-val_t NEW_AStarExpr(void) {
+/* 16: Attribute AStarExpr::_prop */
+/* 17: Attribute AStarExpr::_return_type */
+/* 18: Attribute AStarExpr::_n_expr */
+/* 19: Attribute AStarExpr::_n_closure_defs */
+/* 20: Attribute AStarExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AStarExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStarExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStarExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_AStarExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AStarExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AStarExpr();
-  parser_prod___AStarExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AStarExpr();
-  parser_prod___AStarExpr___init_astarexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStarExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStarExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStarExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStarExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStarExpr();
+  INIT_ATTRIBUTES__AStarExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStarExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStarExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_AStarExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStarExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__AStarExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStarExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStarExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_AStarExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_AStarExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__AStarExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStarExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStarExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_AStarExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStarExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__AStarExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStarExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStarExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_AStarExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AStarExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__AStarExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AStarExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_AStarExpr_parser_prod___AStarExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6567;
+  fra.me.meth = LOCATE_NEW_AStarExpr_parser_prod___AStarExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStarExpr();
+  /* ./parser//parser_prod.nit:6567 */
+  INIT_ATTRIBUTES__AStarExpr(fra.me.REG[0]);
+  parser_prod___AStarExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStarExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6569;
+  fra.me.meth = LOCATE_NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AStarExpr();
+  /* ./parser//parser_prod.nit:6569 */
+  INIT_ATTRIBUTES__AStarExpr(fra.me.REG[2]);
+  parser_prod___AStarExpr___init_astarexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AStarExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ASlashExpr[110] = {
-  {(bigint) 3839 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASlashExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASlashExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASlashExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ASlashExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ASlashExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ASlashExpr[123] = {
+  {(bigint) 6623 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASlashExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASlashExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASlashExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ASlashExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ASlashExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ASlashExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ASlashExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: ASlashExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3839 /* 10: ASlashExpr < ASlashExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ASlashExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ASlashExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ASlashExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: ASlashExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6623 /* 12: ASlashExpr < ASlashExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ASlashExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ASlashExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -32472,7 +71817,6 @@ const classtable_elt_t VFT_ASlashExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -32480,48 +71824,53 @@ const classtable_elt_t VFT_ASlashExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASlashExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASlashExpr___visit_all},
   {(bigint) parser_prod___ASlashExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ASlashExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ASlashExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ASlashExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ASlashExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ASlashExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ASlashExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ASlashExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ASlashExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32532,82 +71881,300 @@ const classtable_elt_t VFT_ASlashExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ASlashExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ASlashExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ASlashExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ASlashExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ASlashExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ASlashExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ASlashExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: ASlashExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: ASlashExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___ASlashExpr___n_expr2__eq},
   {(bigint) parser_prod___ASlashExpr___empty_init},
   {(bigint) parser_prod___ASlashExpr___init_aslashexpr},
-  {(bigint) 8 /* 109: ASlashExpr < ASlashExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: ASlashExpr < ASlashExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASlashExpr::_parent */
-/* 2: Attribute ASlashExpr::_first_token */
-/* 3: Attribute ASlashExpr::_last_token */
-/* 4: Attribute ASlashExpr::_stype */
-/* 5: Attribute ASlashExpr::_if_true_variable_ctx */
-/* 6: Attribute ASlashExpr::_prop */
-/* 7: Attribute ASlashExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ASlashExpr::_parent */
+/* 3: Attribute ASlashExpr::_location */
+/* 4: Attribute ASlashExpr::_first_location */
+/* 5: Attribute ASlashExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ASlashExpr::_is_typed */
+/* 8: Attribute ASlashExpr::_stype */
+/* 9: Attribute ASlashExpr::_if_true_variable_ctx */
+/* 10: Attribute ASlashExpr::_if_false_variable_ctx */
+/* 11: Attribute ASlashExpr::_prop_signature */
+/* 12: Attribute ASlashExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ASlashExpr::_n_expr */
-/* 12: Attribute ASlashExpr::_n_expr2 */
-val_t NEW_ASlashExpr(void) {
+/* 16: Attribute ASlashExpr::_prop */
+/* 17: Attribute ASlashExpr::_return_type */
+/* 18: Attribute ASlashExpr::_n_expr */
+/* 19: Attribute ASlashExpr::_n_closure_defs */
+/* 20: Attribute ASlashExpr::_n_expr2 */
+void INIT_ATTRIBUTES__ASlashExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASlashExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASlashExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ASlashExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ASlashExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ASlashExpr();
-  parser_prod___ASlashExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ASlashExpr();
-  parser_prod___ASlashExpr___init_aslashexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASlashExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASlashExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASlashExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASlashExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASlashExpr();
+  INIT_ATTRIBUTES__ASlashExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASlashExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASlashExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ASlashExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASlashExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ASlashExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASlashExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASlashExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ASlashExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ASlashExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ASlashExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASlashExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASlashExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_ASlashExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASlashExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__ASlashExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASlashExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASlashExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_ASlashExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ASlashExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__ASlashExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ASlashExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_ASlashExpr_parser_prod___ASlashExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6629;
+  fra.me.meth = LOCATE_NEW_ASlashExpr_parser_prod___ASlashExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASlashExpr();
+  /* ./parser//parser_prod.nit:6629 */
+  INIT_ATTRIBUTES__ASlashExpr(fra.me.REG[0]);
+  parser_prod___ASlashExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASlashExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6631;
+  fra.me.meth = LOCATE_NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ASlashExpr();
+  /* ./parser//parser_prod.nit:6631 */
+  INIT_ATTRIBUTES__ASlashExpr(fra.me.REG[2]);
+  parser_prod___ASlashExpr___init_aslashexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ASlashExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_APercentExpr[110] = {
-  {(bigint) 3847 /* 0: Identity */},
-  {(bigint) 3 /* 1: APercentExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: APercentExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: APercentExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: APercentExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: APercentExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_APercentExpr[123] = {
+  {(bigint) 6631 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APercentExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APercentExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APercentExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: APercentExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: APercentExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: APercentExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: APercentExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 9: APercentExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3847 /* 10: APercentExpr < APercentExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: APercentExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: APercentExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: APercentExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6611 /* 11: APercentExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 6631 /* 12: APercentExpr < APercentExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: APercentExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: APercentExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -32615,7 +72182,6 @@ const classtable_elt_t VFT_APercentExpr[110] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -32623,49 +72189,53 @@ const classtable_elt_t VFT_APercentExpr[110] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___APercentExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___APercentExpr___visit_all},
   {(bigint) parser_prod___APercentExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: APercentExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: APercentExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: APercentExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: APercentExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: APercentExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: APercentExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: APercentExpr < ASuperInitCall: superclass init_table position */},
   {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: APercentExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32675,82 +72245,301 @@ const classtable_elt_t VFT_APercentExpr[110] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: APercentExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABinopExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: APercentExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: APercentExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___APercentExpr___name},
-  {(bigint) typing___ABinopExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: APercentExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: APercentExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___APercentExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___ABinopExpr___empty_init},
   {(bigint) parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 7 /* 104: APercentExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: APercentExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser_prod___APercentExpr___n_expr2__eq},
   {(bigint) parser_prod___APercentExpr___empty_init},
   {(bigint) parser_prod___APercentExpr___init_apercentexpr},
-  {(bigint) 8 /* 109: APercentExpr < APercentExpr: superclass init_table position */},
+  {(bigint) 9 /* 122: APercentExpr < APercentExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute APercentExpr::_parent */
-/* 2: Attribute APercentExpr::_first_token */
-/* 3: Attribute APercentExpr::_last_token */
-/* 4: Attribute APercentExpr::_stype */
-/* 5: Attribute APercentExpr::_if_true_variable_ctx */
-/* 6: Attribute APercentExpr::_prop */
-/* 7: Attribute APercentExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute APercentExpr::_parent */
+/* 3: Attribute APercentExpr::_location */
+/* 4: Attribute APercentExpr::_first_location */
+/* 5: Attribute APercentExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute APercentExpr::_is_typed */
+/* 8: Attribute APercentExpr::_stype */
+/* 9: Attribute APercentExpr::_if_true_variable_ctx */
+/* 10: Attribute APercentExpr::_if_false_variable_ctx */
+/* 11: Attribute APercentExpr::_prop_signature */
+/* 12: Attribute APercentExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute APercentExpr::_n_expr */
-/* 12: Attribute APercentExpr::_n_expr2 */
-val_t NEW_APercentExpr(void) {
+/* 16: Attribute APercentExpr::_prop */
+/* 17: Attribute APercentExpr::_return_type */
+/* 18: Attribute APercentExpr::_n_expr */
+/* 19: Attribute APercentExpr::_n_closure_defs */
+/* 20: Attribute APercentExpr::_n_expr2 */
+void INIT_ATTRIBUTES__APercentExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APercentExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APercentExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_APercentExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___APercentExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_APercentExpr();
-  parser_prod___APercentExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_APercentExpr();
-  parser_prod___APercentExpr___init_apercentexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APercentExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APercentExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APercentExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APercentExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APercentExpr();
+  INIT_ATTRIBUTES__APercentExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APercentExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APercentExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_APercentExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APercentExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__APercentExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APercentExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APercentExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_APercentExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_APercentExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__APercentExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APercentExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APercentExpr_parser_prod___ABinopExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5637;
+  fra.me.meth = LOCATE_NEW_APercentExpr_parser_prod___ABinopExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APercentExpr();
+  /* ./parser//parser_prod.nit:5637 */
+  INIT_ATTRIBUTES__APercentExpr(fra.me.REG[0]);
+  parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APercentExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APercentExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5639;
+  fra.me.meth = LOCATE_NEW_APercentExpr_parser_prod___ABinopExpr___init_abinopexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_APercentExpr();
+  /* ./parser//parser_prod.nit:5639 */
+  INIT_ATTRIBUTES__APercentExpr(fra.me.REG[2]);
+  parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_APercentExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_APercentExpr_parser_prod___APercentExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6691;
+  fra.me.meth = LOCATE_NEW_APercentExpr_parser_prod___APercentExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APercentExpr();
+  /* ./parser//parser_prod.nit:6691 */
+  INIT_ATTRIBUTES__APercentExpr(fra.me.REG[0]);
+  parser_prod___APercentExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APercentExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6693;
+  fra.me.meth = LOCATE_NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_APercentExpr();
+  /* ./parser//parser_prod.nit:6693 */
+  INIT_ATTRIBUTES__APercentExpr(fra.me.REG[2]);
+  parser_prod___APercentExpr___init_apercentexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_APercentExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AUminusExpr[107] = {
-  {(bigint) 3807 /* 0: Identity */},
-  {(bigint) 3 /* 1: AUminusExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AUminusExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AUminusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AUminusExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AUminusExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AUminusExpr[120] = {
+  {(bigint) 6591 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AUminusExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AUminusExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AUminusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AUminusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AUminusExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: AUminusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: AUminusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3807 /* 9: AUminusExpr < AUminusExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: AUminusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: AUminusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: AUminusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6591 /* 11: AUminusExpr < AUminusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: AUminusExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: AUminusExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -32758,7 +72547,6 @@ const classtable_elt_t VFT_AUminusExpr[107] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -32766,48 +72554,53 @@ const classtable_elt_t VFT_AUminusExpr[107] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AUminusExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AUminusExpr___visit_all},
   {(bigint) parser_prod___AUminusExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: AUminusExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: AUminusExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: AUminusExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: AUminusExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AUminusExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: AUminusExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: AUminusExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: AUminusExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32818,79 +72611,255 @@ const classtable_elt_t VFT_AUminusExpr[107] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: AUminusExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AUminusExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: AUminusExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: AUminusExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___AUminusExpr___name},
-  {(bigint) typing___AUminusExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: AUminusExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: AUminusExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___AUminusExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___AUminusExpr___empty_init},
   {(bigint) parser_prod___AUminusExpr___init_auminusexpr},
-  {(bigint) 7 /* 104: AUminusExpr < AUminusExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: AUminusExpr < AUminusExpr: superclass init_table position */},
   {(bigint) parser_nodes___AUminusExpr___n_minus},
   {(bigint) parser_prod___AUminusExpr___n_minus__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AUminusExpr::_parent */
-/* 2: Attribute AUminusExpr::_first_token */
-/* 3: Attribute AUminusExpr::_last_token */
-/* 4: Attribute AUminusExpr::_stype */
-/* 5: Attribute AUminusExpr::_if_true_variable_ctx */
-/* 6: Attribute AUminusExpr::_prop */
-/* 7: Attribute AUminusExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute AUminusExpr::_parent */
+/* 3: Attribute AUminusExpr::_location */
+/* 4: Attribute AUminusExpr::_first_location */
+/* 5: Attribute AUminusExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AUminusExpr::_is_typed */
+/* 8: Attribute AUminusExpr::_stype */
+/* 9: Attribute AUminusExpr::_if_true_variable_ctx */
+/* 10: Attribute AUminusExpr::_if_false_variable_ctx */
+/* 11: Attribute AUminusExpr::_prop_signature */
+/* 12: Attribute AUminusExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AUminusExpr::_n_expr */
-/* 12: Attribute AUminusExpr::_n_minus */
-val_t NEW_AUminusExpr(void) {
+/* 16: Attribute AUminusExpr::_prop */
+/* 17: Attribute AUminusExpr::_return_type */
+/* 18: Attribute AUminusExpr::_n_expr */
+/* 19: Attribute AUminusExpr::_n_closure_defs */
+/* 20: Attribute AUminusExpr::_n_minus */
+void INIT_ATTRIBUTES__AUminusExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AUminusExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AUminusExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_AUminusExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AUminusExpr___empty_init() {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AUminusExpr();
-  parser_prod___AUminusExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1) {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AUminusExpr();
-  parser_prod___AUminusExpr___init_auminusexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AUminusExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AUminusExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_minus");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AUminusExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AUminusExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AUminusExpr();
+  INIT_ATTRIBUTES__AUminusExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AUminusExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AUminusExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_AUminusExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AUminusExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__AUminusExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AUminusExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AUminusExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_AUminusExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_AUminusExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__AUminusExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AUminusExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AUminusExpr_parser_prod___AUminusExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6753;
+  fra.me.meth = LOCATE_NEW_AUminusExpr_parser_prod___AUminusExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AUminusExpr();
+  /* ./parser//parser_prod.nit:6753 */
+  INIT_ATTRIBUTES__AUminusExpr(fra.me.REG[0]);
+  parser_prod___AUminusExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AUminusExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6755;
+  fra.me.meth = LOCATE_NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AUminusExpr();
+  /* ./parser//parser_prod.nit:6755 */
+  INIT_ATTRIBUTES__AUminusExpr(fra.me.REG[2]);
+  parser_prod___AUminusExpr___init_auminusexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AUminusExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ANewExpr[105] = {
-  {(bigint) 3707 /* 0: Identity */},
-  {(bigint) 3 /* 1: ANewExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ANewExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ANewExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ANewExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ANewExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3707 /* 6: ANewExpr < ANewExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ANewExpr[116] = {
+  {(bigint) 6571 /* 0: Identity */},
+  {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ANewExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ANewExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ANewExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ANewExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ANewExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 6551 /* 8: ANewExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6571 /* 9: ANewExpr < ANewExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 1 /* 20: ANewExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 2 /* 19: ANewExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -32898,7 +72867,6 @@ const classtable_elt_t VFT_ANewExpr[105] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -32906,49 +72874,53 @@ const classtable_elt_t VFT_ANewExpr[105] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ANewExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ANewExpr___visit_all},
   {(bigint) parser_prod___ANewExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 2 /* 57: ANewExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 3 /* 59: ANewExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ANewExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 3 /* 66: ANewExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ANewExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 4 /* 71: ANewExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 4 /* 66: ANewExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 5 /* 74: ANewExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ANewExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32958,15 +72930,24 @@ const classtable_elt_t VFT_ANewExpr[105] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 0 /* 88: ANewExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ANewExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 1 /* 96: ANewExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 0 /* 102: ANewExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) parser_prod___ANewExpr___empty_init},
   {(bigint) parser_prod___ANewExpr___init_anewexpr},
-  {(bigint) 5 /* 96: ANewExpr < ANewExpr: superclass init_table position */},
+  {(bigint) 6 /* 107: ANewExpr < ANewExpr: superclass init_table position */},
   {(bigint) parser_nodes___ANewExpr___n_kwnew},
   {(bigint) parser_prod___ANewExpr___n_kwnew__eq},
   {(bigint) parser_nodes___ANewExpr___n_type},
@@ -32977,42 +72958,179 @@ const classtable_elt_t VFT_ANewExpr[105] = {
   {(bigint) parser_nodes___ANewExpr___n_args__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ANewExpr::_parent */
-/* 2: Attribute ANewExpr::_first_token */
-/* 3: Attribute ANewExpr::_last_token */
-/* 4: Attribute ANewExpr::_stype */
-/* 5: Attribute ANewExpr::_if_true_variable_ctx */
-/* 6: Attribute ANewExpr::_prop */
-/* 7: Attribute ANewExpr::_arguments */
-/* 8: Attribute ANewExpr::_n_kwnew */
-/* 9: Attribute ANewExpr::_n_type */
-/* 10: Attribute ANewExpr::_n_id */
-/* 11: Attribute ANewExpr::_n_args */
-val_t NEW_ANewExpr(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+/* 1: Object_id */
+/* 2: Attribute ANewExpr::_parent */
+/* 3: Attribute ANewExpr::_location */
+/* 4: Attribute ANewExpr::_first_location */
+/* 5: Attribute ANewExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ANewExpr::_is_typed */
+/* 8: Attribute ANewExpr::_stype */
+/* 9: Attribute ANewExpr::_if_true_variable_ctx */
+/* 10: Attribute ANewExpr::_if_false_variable_ctx */
+/* 11: Attribute ANewExpr::_prop_signature */
+/* 12: Attribute ANewExpr::_raw_arguments_cache */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 16: Attribute ANewExpr::_prop */
+/* 17: Attribute ANewExpr::_return_type */
+/* 18: Attribute ANewExpr::_n_kwnew */
+/* 19: Attribute ANewExpr::_n_type */
+/* 20: Attribute ANewExpr::_n_id */
+/* 21: Attribute ANewExpr::_n_args */
+void INIT_ATTRIBUTES__ANewExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ANewExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:751 */
+  ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:752 */
+  ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANewExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 22);
   obj->vft = (classtable_elt_t*)VFT_ANewExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ANewExpr___empty_init() {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ANewExpr();
-  parser_prod___ANewExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ANewExpr();
-  parser_prod___ANewExpr___init_anewexpr(self, p0, p1, p2, p3, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ANewExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ANewExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwnew");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_type");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANewExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ANewExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ANewExpr();
+  INIT_ATTRIBUTES__ANewExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANewExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ANewExpr_parser_prod___ANewExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6822;
+  fra.me.meth = LOCATE_NEW_ANewExpr_parser_prod___ANewExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ANewExpr();
+  /* ./parser//parser_prod.nit:6822 */
+  INIT_ATTRIBUTES__ANewExpr(fra.me.REG[0]);
+  parser_prod___ANewExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ANewExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6824;
+  fra.me.meth = LOCATE_NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_ANewExpr();
+  /* ./parser//parser_prod.nit:6824 */
+  INIT_ATTRIBUTES__ANewExpr(fra.me.REG[4]);
+  parser_prod___ANewExpr___init_anewexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_ANewExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_AAttrFormExpr[96] = {
-  {(bigint) 3583 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAttrFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAttrFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAttrFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAttrFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3583 /* 5: AAttrFormExpr < AAttrFormExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AAttrFormExpr[100] = {
+  {(bigint) 6347 /* 0: Identity */},
+  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAttrFormExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAttrFormExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAttrFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6347 /* 5: AAttrFormExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AAttrFormExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33020,14 +73138,12 @@ const classtable_elt_t VFT_AAttrFormExpr[96] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAttrFormExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAttrFormExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -33035,7 +73151,6 @@ const classtable_elt_t VFT_AAttrFormExpr[96] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -33043,48 +73158,53 @@ const classtable_elt_t VFT_AAttrFormExpr[96] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAttrFormExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AAttrFormExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAttrFormExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAttrFormExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAttrFormExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33095,58 +73215,138 @@ const classtable_elt_t VFT_AAttrFormExpr[96] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AAttrFormExpr___do_typing},
   {(bigint) typing___AAttrFormExpr___prop},
   {(bigint) typing___AAttrFormExpr___attr_type},
-  {(bigint) typing___AAttrFormExpr___do_typing},
-  {(bigint) 4 /* 91: AAttrFormExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) 4 /* 95: AAttrFormExpr < AAttrFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAttrFormExpr___n_expr},
   {(bigint) parser_nodes___AAttrFormExpr___n_expr__eq},
   {(bigint) parser_nodes___AAttrFormExpr___n_id},
   {(bigint) parser_nodes___AAttrFormExpr___n_id__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAttrFormExpr::_parent */
-/* 2: Attribute AAttrFormExpr::_first_token */
-/* 3: Attribute AAttrFormExpr::_last_token */
-/* 4: Attribute AAttrFormExpr::_stype */
-/* 5: Attribute AAttrFormExpr::_if_true_variable_ctx */
+/* 1: Object_id */
+/* 2: Attribute AAttrFormExpr::_parent */
+/* 3: Attribute AAttrFormExpr::_location */
+/* 4: Attribute AAttrFormExpr::_first_location */
+/* 5: Attribute AAttrFormExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute AAttrFormExpr::_is_typed */
+/* 8: Attribute AAttrFormExpr::_stype */
+/* 9: Attribute AAttrFormExpr::_if_true_variable_ctx */
+/* 10: Attribute AAttrFormExpr::_if_false_variable_ctx */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AAttrFormExpr::_prop */
-/* 12: Attribute AAttrFormExpr::_attr_type */
-/* 13: Attribute AAttrFormExpr::_n_expr */
-/* 14: Attribute AAttrFormExpr::_n_id */
-val_t NEW_AAttrFormExpr(void) {
+/* Instance Hole :( */
+/* 16: Attribute AAttrFormExpr::_prop */
+/* 17: Attribute AAttrFormExpr::_attr_type */
+/* 18: Attribute AAttrFormExpr::_n_expr */
+/* 19: Attribute AAttrFormExpr::_n_id */
+void INIT_ATTRIBUTES__AAttrFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAttrFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrFormExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+  obj = alloc(sizeof(val_t) * 20);
   obj->vft = (classtable_elt_t*)VFT_AAttrFormExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAttrFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAttrFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrFormExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAttrFormExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAttrFormExpr();
+  INIT_ATTRIBUTES__AAttrFormExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAttrFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AAttrExpr[99] = {
-  {(bigint) 3771 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAttrExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAttrExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAttrExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAttrExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3583 /* 5: AAttrExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 3771 /* 6: AAttrExpr < AAttrExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AAttrExpr[103] = {
+  {(bigint) 6535 /* 0: Identity */},
+  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAttrExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAttrExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAttrExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6347 /* 5: AAttrExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AAttrExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6535 /* 7: AAttrExpr < AAttrExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAttrExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAttrExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -33154,7 +73354,6 @@ const classtable_elt_t VFT_AAttrExpr[99] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -33162,48 +73361,53 @@ const classtable_elt_t VFT_AAttrExpr[99] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AAttrExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAttrExpr___visit_all},
   {(bigint) parser_prod___AAttrExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAttrExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AAttrExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AAttrExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAttrExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AAttrExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAttrExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAttrExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAttrExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33214,73 +73418,183 @@ const classtable_elt_t VFT_AAttrExpr[99] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AAttrFormExpr___do_typing},
   {(bigint) typing___AAttrFormExpr___prop},
   {(bigint) typing___AAttrFormExpr___attr_type},
-  {(bigint) typing___AAttrFormExpr___do_typing},
-  {(bigint) 4 /* 91: AAttrExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) 4 /* 95: AAttrExpr < AAttrFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAttrFormExpr___n_expr},
   {(bigint) parser_prod___AAttrExpr___n_expr__eq},
   {(bigint) parser_nodes___AAttrFormExpr___n_id},
   {(bigint) parser_prod___AAttrExpr___n_id__eq},
   {(bigint) parser_prod___AAttrExpr___empty_init},
   {(bigint) parser_prod___AAttrExpr___init_aattrexpr},
-  {(bigint) 5 /* 98: AAttrExpr < AAttrExpr: superclass init_table position */},
+  {(bigint) 5 /* 102: AAttrExpr < AAttrExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAttrExpr::_parent */
-/* 2: Attribute AAttrExpr::_first_token */
-/* 3: Attribute AAttrExpr::_last_token */
-/* 4: Attribute AAttrExpr::_stype */
-/* 5: Attribute AAttrExpr::_if_true_variable_ctx */
+/* 1: Object_id */
+/* 2: Attribute AAttrExpr::_parent */
+/* 3: Attribute AAttrExpr::_location */
+/* 4: Attribute AAttrExpr::_first_location */
+/* 5: Attribute AAttrExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute AAttrExpr::_is_typed */
+/* 8: Attribute AAttrExpr::_stype */
+/* 9: Attribute AAttrExpr::_if_true_variable_ctx */
+/* 10: Attribute AAttrExpr::_if_false_variable_ctx */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AAttrExpr::_prop */
-/* 12: Attribute AAttrExpr::_attr_type */
-/* 13: Attribute AAttrExpr::_n_expr */
-/* 14: Attribute AAttrExpr::_n_id */
-val_t NEW_AAttrExpr(void) {
+/* Instance Hole :( */
+/* 16: Attribute AAttrExpr::_prop */
+/* 17: Attribute AAttrExpr::_attr_type */
+/* 18: Attribute AAttrExpr::_n_expr */
+/* 19: Attribute AAttrExpr::_n_id */
+void INIT_ATTRIBUTES__AAttrExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAttrExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+  obj = alloc(sizeof(val_t) * 20);
   obj->vft = (classtable_elt_t*)VFT_AAttrExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAttrExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAttrExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAttrExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AAttrExpr();
-  parser_prod___AAttrExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAttrExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAttrExpr();
+  INIT_ATTRIBUTES__AAttrExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAttrExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAttrExpr_parser_prod___AAttrExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AAttrExpr();
-  parser_prod___AAttrExpr___init_aattrexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6933;
+  fra.me.meth = LOCATE_NEW_AAttrExpr_parser_prod___AAttrExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAttrExpr();
+  /* ./parser//parser_prod.nit:6933 */
+  INIT_ATTRIBUTES__AAttrExpr(fra.me.REG[0]);
+  parser_prod___AAttrExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAttrExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6935;
+  fra.me.meth = LOCATE_NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AAttrExpr();
+  /* ./parser//parser_prod.nit:6935 */
+  INIT_ATTRIBUTES__AAttrExpr(fra.me.REG[2]);
+  parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AAttrExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AAttrAssignExpr[96] = {
-  {(bigint) 3775 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAttrAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAttrAssignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAttrAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAttrAssignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3583 /* 5: AAttrAssignExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 3591 /* 6: AAttrAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 3775 /* 7: AAttrAssignExpr < AAttrAssignExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AAttrAssignExpr[100] = {
+  {(bigint) 6539 /* 0: Identity */},
+  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAttrAssignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAttrAssignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAttrAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6347 /* 5: AAttrAssignExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AAttrAssignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6355 /* 7: AAttrAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 6539 /* 8: AAttrAssignExpr < AAttrAssignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAttrAssignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAttrAssignExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -33288,7 +73602,6 @@ const classtable_elt_t VFT_AAttrAssignExpr[96] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -33296,122 +73609,255 @@ const classtable_elt_t VFT_AAttrAssignExpr[96] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AAttrAssignExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAttrAssignExpr___visit_all},
   {(bigint) parser_prod___AAttrAssignExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAttrAssignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AAttrAssignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AAttrAssignExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAttrAssignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AAttrAssignExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAttrAssignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) parser_prod___AAttrAssignExpr___empty_init},
   {(bigint) parser_prod___AAttrAssignExpr___init_aattrassignexpr},
-  {(bigint) 6 /* 78: AAttrAssignExpr < AAttrAssignExpr: superclass init_table position */},
+  {(bigint) 6 /* 70: AAttrAssignExpr < AAttrAssignExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAttrAssignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAttrAssignExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 5 /* 81: AAttrAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) 5 /* 85: AAttrAssignExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser_prod___AAttrAssignExpr___n_assign__eq},
   {(bigint) parser_nodes___AAssignFormExpr___n_value},
   {(bigint) parser_prod___AAttrAssignExpr___n_value__eq},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) typing___AAttrFormExpr___do_typing},
   {(bigint) typing___AAttrFormExpr___prop},
   {(bigint) typing___AAttrFormExpr___attr_type},
-  {(bigint) typing___AAttrFormExpr___do_typing},
-  {(bigint) 4 /* 91: AAttrAssignExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) 4 /* 95: AAttrAssignExpr < AAttrFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAttrFormExpr___n_expr},
   {(bigint) parser_prod___AAttrAssignExpr___n_expr__eq},
   {(bigint) parser_nodes___AAttrFormExpr___n_id},
   {(bigint) parser_prod___AAttrAssignExpr___n_id__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAttrAssignExpr::_parent */
-/* 2: Attribute AAttrAssignExpr::_first_token */
-/* 3: Attribute AAttrAssignExpr::_last_token */
-/* 4: Attribute AAttrAssignExpr::_stype */
-/* 5: Attribute AAttrAssignExpr::_if_true_variable_ctx */
+/* 1: Object_id */
+/* 2: Attribute AAttrAssignExpr::_parent */
+/* 3: Attribute AAttrAssignExpr::_location */
+/* 4: Attribute AAttrAssignExpr::_first_location */
+/* 5: Attribute AAttrAssignExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAttrAssignExpr::_is_typed */
+/* 8: Attribute AAttrAssignExpr::_stype */
+/* 9: Attribute AAttrAssignExpr::_if_true_variable_ctx */
+/* 10: Attribute AAttrAssignExpr::_if_false_variable_ctx */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 8: Attribute AAttrAssignExpr::_n_assign */
-/* 9: Attribute AAttrAssignExpr::_n_value */
+/* 13: Attribute AAttrAssignExpr::_n_assign */
+/* 14: Attribute AAttrAssignExpr::_n_value */
 /* Instance Hole :( */
-/* 11: Attribute AAttrAssignExpr::_prop */
-/* 12: Attribute AAttrAssignExpr::_attr_type */
-/* 13: Attribute AAttrAssignExpr::_n_expr */
-/* 14: Attribute AAttrAssignExpr::_n_id */
-val_t NEW_AAttrAssignExpr(void) {
+/* 16: Attribute AAttrAssignExpr::_prop */
+/* 17: Attribute AAttrAssignExpr::_attr_type */
+/* 18: Attribute AAttrAssignExpr::_n_expr */
+/* 19: Attribute AAttrAssignExpr::_n_id */
+void INIT_ATTRIBUTES__AAttrAssignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAttrAssignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrAssignExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+  obj = alloc(sizeof(val_t) * 20);
   obj->vft = (classtable_elt_t*)VFT_AAttrAssignExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAttrAssignExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAttrAssignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAttrAssignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrAssignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AAttrAssignExpr();
-  parser_prod___AAttrAssignExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAttrAssignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAttrAssignExpr();
+  INIT_ATTRIBUTES__AAttrAssignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAttrAssignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AAttrAssignExpr();
-  parser_prod___AAttrAssignExpr___init_aattrassignexpr(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7005;
+  fra.me.meth = LOCATE_NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAttrAssignExpr();
+  /* ./parser//parser_prod.nit:7005 */
+  INIT_ATTRIBUTES__AAttrAssignExpr(fra.me.REG[0]);
+  parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAttrAssignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7007;
+  fra.me.meth = LOCATE_NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_AAttrAssignExpr();
+  /* ./parser//parser_prod.nit:7007 */
+  INIT_ATTRIBUTES__AAttrAssignExpr(fra.me.REG[4]);
+  parser_prod___AAttrAssignExpr___init_aattrassignexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_AAttrAssignExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_ACallFormExpr[109] = {
-  {(bigint) 3819 /* 0: Identity */},
-  {(bigint) 3 /* 1: ACallFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ACallFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ACallFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ACallFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ACallFormExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ACallFormExpr[122] = {
+  {(bigint) 6603 /* 0: Identity */},
+  {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ACallFormExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ACallFormExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ACallFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ACallFormExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ACallFormExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ACallFormExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ACallFormExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ACallFormExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ACallFormExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ACallFormExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3819 /* 10: ACallFormExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 6603 /* 12: ACallFormExpr < ACallFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ACallFormExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ACallFormExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -33419,7 +73865,6 @@ const classtable_elt_t VFT_ACallFormExpr[109] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -33427,48 +73872,53 @@ const classtable_elt_t VFT_ACallFormExpr[109] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASendExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASendExpr___visit_all},
   {(bigint) parser_prod___ASendExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ACallFormExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ACallFormExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ACallFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ACallFormExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ACallFormExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ACallFormExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ACallFormExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ACallFormExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ACallFormExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33479,71 +73929,226 @@ const classtable_elt_t VFT_ACallFormExpr[109] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ACallFormExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AAbsAbsSendExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ACallFormExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ACallFormExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ASendExpr___name},
-  {(bigint) typing___ASendExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ACallFormExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ACallFormExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ACallFormExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ASendExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) typing___ASendExpr___after_typing},
   {(bigint) typing___ACallFormExpr___variable_create},
-  {(bigint) 7 /* 104: ACallFormExpr < ACallFormExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: ACallFormExpr < ACallFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___ACallFormExpr___n_id},
   {(bigint) parser_nodes___ACallFormExpr___n_id__eq},
   {(bigint) parser_nodes___ACallFormExpr___n_args},
   {(bigint) parser_nodes___ACallFormExpr___n_args__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ACallFormExpr::_parent */
-/* 2: Attribute ACallFormExpr::_first_token */
-/* 3: Attribute ACallFormExpr::_last_token */
-/* 4: Attribute ACallFormExpr::_stype */
-/* 5: Attribute ACallFormExpr::_if_true_variable_ctx */
-/* 6: Attribute ACallFormExpr::_prop */
-/* 7: Attribute ACallFormExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ACallFormExpr::_parent */
+/* 3: Attribute ACallFormExpr::_location */
+/* 4: Attribute ACallFormExpr::_first_location */
+/* 5: Attribute ACallFormExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute ACallFormExpr::_is_typed */
+/* 8: Attribute ACallFormExpr::_stype */
+/* 9: Attribute ACallFormExpr::_if_true_variable_ctx */
+/* 10: Attribute ACallFormExpr::_if_false_variable_ctx */
+/* 11: Attribute ACallFormExpr::_prop_signature */
+/* 12: Attribute ACallFormExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ACallFormExpr::_n_expr */
 /* Instance Hole :( */
-/* 13: Attribute ACallFormExpr::_n_id */
-/* 14: Attribute ACallFormExpr::_n_args */
-val_t NEW_ACallFormExpr(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+/* 16: Attribute ACallFormExpr::_prop */
+/* 17: Attribute ACallFormExpr::_return_type */
+/* 18: Attribute ACallFormExpr::_n_expr */
+/* 19: Attribute ACallFormExpr::_n_closure_defs */
+/* 20: Attribute ACallFormExpr::_n_id */
+/* 21: Attribute ACallFormExpr::_n_args */
+void INIT_ATTRIBUTES__ACallFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ACallFormExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:769 */
+  ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACallFormExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 22);
   obj->vft = (classtable_elt_t*)VFT_ACallFormExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ACallFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ACallFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACallFormExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ACallFormExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ACallFormExpr();
+  INIT_ATTRIBUTES__ACallFormExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACallFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACallFormExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ACallFormExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACallFormExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ACallFormExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACallFormExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACallFormExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ACallFormExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ACallFormExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ACallFormExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACallFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AAttrReassignExpr[96] = {
-  {(bigint) 3767 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAttrReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAttrReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAttrReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAttrReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3583 /* 5: AAttrReassignExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 3391 /* 6: AAttrReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3767 /* 7: AAttrReassignExpr < AAttrReassignExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AAttrReassignExpr[100] = {
+  {(bigint) 6531 /* 0: Identity */},
+  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAttrReassignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAttrReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAttrReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6347 /* 5: AAttrReassignExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AAttrReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6175 /* 7: AAttrReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 6531 /* 8: AAttrReassignExpr < AAttrReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAttrReassignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAttrReassignExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -33551,7 +74156,6 @@ const classtable_elt_t VFT_AAttrReassignExpr[96] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -33559,122 +74163,255 @@ const classtable_elt_t VFT_AAttrReassignExpr[96] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AAttrReassignExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAttrReassignExpr___visit_all},
   {(bigint) parser_prod___AAttrReassignExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAttrReassignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AAttrReassignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AAttrReassignExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AAttrReassignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AAttrReassignExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAttrReassignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) parser_prod___AAttrReassignExpr___empty_init},
   {(bigint) parser_prod___AAttrReassignExpr___init_aattrreassignexpr},
-  {(bigint) 6 /* 78: AAttrReassignExpr < AAttrReassignExpr: superclass init_table position */},
+  {(bigint) 6 /* 70: AAttrReassignExpr < AAttrReassignExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAttrReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAttrReassignExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) typing___AReassignFormExpr___do_lvalue_typing},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AReassignFormExpr___do_rvalue_typing},
   {(bigint) typing___AReassignFormExpr___assign_method},
-  {(bigint) 5 /* 83: AAttrReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) 5 /* 87: AAttrReassignExpr < AReassignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AReassignFormExpr___n_assign_op},
   {(bigint) parser_prod___AAttrReassignExpr___n_assign_op__eq},
   {(bigint) parser_nodes___AReassignFormExpr___n_value},
   {(bigint) parser_prod___AAttrReassignExpr___n_value__eq},
+  {(bigint) typing___AAttrFormExpr___do_typing},
   {(bigint) typing___AAttrFormExpr___prop},
   {(bigint) typing___AAttrFormExpr___attr_type},
-  {(bigint) typing___AAttrFormExpr___do_typing},
-  {(bigint) 4 /* 91: AAttrReassignExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) 4 /* 95: AAttrReassignExpr < AAttrFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAttrFormExpr___n_expr},
   {(bigint) parser_prod___AAttrReassignExpr___n_expr__eq},
   {(bigint) parser_nodes___AAttrFormExpr___n_id},
   {(bigint) parser_prod___AAttrReassignExpr___n_id__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAttrReassignExpr::_parent */
-/* 2: Attribute AAttrReassignExpr::_first_token */
-/* 3: Attribute AAttrReassignExpr::_last_token */
-/* 4: Attribute AAttrReassignExpr::_stype */
-/* 5: Attribute AAttrReassignExpr::_if_true_variable_ctx */
+/* 1: Object_id */
+/* 2: Attribute AAttrReassignExpr::_parent */
+/* 3: Attribute AAttrReassignExpr::_location */
+/* 4: Attribute AAttrReassignExpr::_first_location */
+/* 5: Attribute AAttrReassignExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAttrReassignExpr::_is_typed */
+/* 8: Attribute AAttrReassignExpr::_stype */
+/* 9: Attribute AAttrReassignExpr::_if_true_variable_ctx */
+/* 10: Attribute AAttrReassignExpr::_if_false_variable_ctx */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 8: Attribute AAttrReassignExpr::_assign_method */
-/* 9: Attribute AAttrReassignExpr::_n_assign_op */
-/* 10: Attribute AAttrReassignExpr::_n_value */
-/* 11: Attribute AAttrReassignExpr::_prop */
-/* 12: Attribute AAttrReassignExpr::_attr_type */
-/* 13: Attribute AAttrReassignExpr::_n_expr */
-/* 14: Attribute AAttrReassignExpr::_n_id */
-val_t NEW_AAttrReassignExpr(void) {
+/* 13: Attribute AAttrReassignExpr::_assign_method */
+/* 14: Attribute AAttrReassignExpr::_n_assign_op */
+/* 15: Attribute AAttrReassignExpr::_n_value */
+/* 16: Attribute AAttrReassignExpr::_prop */
+/* 17: Attribute AAttrReassignExpr::_attr_type */
+/* 18: Attribute AAttrReassignExpr::_n_expr */
+/* 19: Attribute AAttrReassignExpr::_n_id */
+void INIT_ATTRIBUTES__AAttrReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAttrReassignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrReassignExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+  obj = alloc(sizeof(val_t) * 20);
   obj->vft = (classtable_elt_t*)VFT_AAttrReassignExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AAttrReassignExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAttrReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAttrReassignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign_op");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAttrReassignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AAttrReassignExpr();
-  parser_prod___AAttrReassignExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAttrReassignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAttrReassignExpr();
+  INIT_ATTRIBUTES__AAttrReassignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAttrReassignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AAttrReassignExpr();
-  parser_prod___AAttrReassignExpr___init_aattrreassignexpr(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7107;
+  fra.me.meth = LOCATE_NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAttrReassignExpr();
+  /* ./parser//parser_prod.nit:7107 */
+  INIT_ATTRIBUTES__AAttrReassignExpr(fra.me.REG[0]);
+  parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAttrReassignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7109;
+  fra.me.meth = LOCATE_NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_AAttrReassignExpr();
+  /* ./parser//parser_prod.nit:7109 */
+  INIT_ATTRIBUTES__AAttrReassignExpr(fra.me.REG[4]);
+  parser_prod___AAttrReassignExpr___init_aattrreassignexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_AAttrReassignExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_ACallExpr[112] = {
-  {(bigint) 3883 /* 0: Identity */},
-  {(bigint) 3 /* 1: ACallExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ACallExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ACallExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ACallExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ACallExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ACallExpr[125] = {
+  {(bigint) 6667 /* 0: Identity */},
+  {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ACallExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ACallExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ACallExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ACallExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ACallExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ACallExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ACallExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ACallExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ACallExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ACallExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3819 /* 10: ACallExpr < ACallFormExpr: superclass typecheck marker */},
-  {(bigint) 3883 /* 11: ACallExpr < ACallExpr: superclass typecheck marker */},
+  {(bigint) 6603 /* 12: ACallExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 6667 /* 13: ACallExpr < ACallExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ACallExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ACallExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -33682,7 +74419,6 @@ const classtable_elt_t VFT_ACallExpr[112] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -33690,48 +74426,54 @@ const classtable_elt_t VFT_ACallExpr[112] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ACallExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ACallExpr___visit_all},
   {(bigint) parser_prod___ACallExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ACallExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ACallExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ACallFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ACallExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ACallExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ACallExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ACallExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ACallExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ACallExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33742,86 +74484,274 @@ const classtable_elt_t VFT_ACallExpr[112] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ACallExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ACallExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ACallExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ACallExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ACallExpr___name},
-  {(bigint) typing___ACallExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ACallFormExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ACallExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ACallExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ACallExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) typing___ASendExpr___after_typing},
   {(bigint) typing___ACallExpr___variable_create},
-  {(bigint) 7 /* 104: ACallExpr < ACallFormExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: ACallExpr < ACallFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___ACallFormExpr___n_id},
   {(bigint) parser_prod___ACallExpr___n_id__eq},
   {(bigint) parser_nodes___ACallFormExpr___n_args},
   {(bigint) parser_nodes___ACallFormExpr___n_args__eq},
   {(bigint) parser_prod___ACallExpr___empty_init},
   {(bigint) parser_prod___ACallExpr___init_acallexpr},
-  {(bigint) 8 /* 111: ACallExpr < ACallExpr: superclass init_table position */},
+  {(bigint) 9 /* 124: ACallExpr < ACallExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ACallExpr::_parent */
-/* 2: Attribute ACallExpr::_first_token */
-/* 3: Attribute ACallExpr::_last_token */
-/* 4: Attribute ACallExpr::_stype */
-/* 5: Attribute ACallExpr::_if_true_variable_ctx */
-/* 6: Attribute ACallExpr::_prop */
-/* 7: Attribute ACallExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ACallExpr::_parent */
+/* 3: Attribute ACallExpr::_location */
+/* 4: Attribute ACallExpr::_first_location */
+/* 5: Attribute ACallExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute ACallExpr::_is_typed */
+/* 8: Attribute ACallExpr::_stype */
+/* 9: Attribute ACallExpr::_if_true_variable_ctx */
+/* 10: Attribute ACallExpr::_if_false_variable_ctx */
+/* 11: Attribute ACallExpr::_prop_signature */
+/* 12: Attribute ACallExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ACallExpr::_n_expr */
 /* Instance Hole :( */
-/* 13: Attribute ACallExpr::_n_id */
-/* 14: Attribute ACallExpr::_n_args */
-val_t NEW_ACallExpr(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+/* 16: Attribute ACallExpr::_prop */
+/* 17: Attribute ACallExpr::_return_type */
+/* 18: Attribute ACallExpr::_n_expr */
+/* 19: Attribute ACallExpr::_n_closure_defs */
+/* 20: Attribute ACallExpr::_n_id */
+/* 21: Attribute ACallExpr::_n_args */
+void INIT_ATTRIBUTES__ACallExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ACallExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:769 */
+  ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACallExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 22);
   obj->vft = (classtable_elt_t*)VFT_ACallExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ACallExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ACallExpr();
-  parser_prod___ACallExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ACallExpr();
-  parser_prod___ACallExpr___init_acallexpr(self, p0, p1, p2, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ACallExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ACallExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACallExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ACallExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ACallExpr();
+  INIT_ATTRIBUTES__ACallExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACallExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACallExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ACallExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACallExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ACallExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACallExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACallExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ACallExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ACallExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ACallExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACallExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACallExpr_parser_prod___ACallExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7199;
+  fra.me.meth = LOCATE_NEW_ACallExpr_parser_prod___ACallExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACallExpr();
+  /* ./parser//parser_prod.nit:7199 */
+  INIT_ATTRIBUTES__ACallExpr(fra.me.REG[0]);
+  parser_prod___ACallExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACallExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7201;
+  fra.me.meth = LOCATE_NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_ACallExpr();
+  /* ./parser//parser_prod.nit:7201 */
+  INIT_ATTRIBUTES__ACallExpr(fra.me.REG[4]);
+  parser_prod___ACallExpr___init_acallexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_ACallExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_ACallAssignExpr[109] = {
-  {(bigint) 3887 /* 0: Identity */},
-  {(bigint) 3 /* 1: ACallAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ACallAssignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ACallAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ACallAssignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ACallAssignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3591 /* 6: ACallAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 3675 /* 7: ACallAssignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ACallAssignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3887 /* 9: ACallAssignExpr < ACallAssignExpr: superclass typecheck marker */},
-  {(bigint) 3819 /* 10: ACallAssignExpr < ACallFormExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ACallAssignExpr[122] = {
+  {(bigint) 6671 /* 0: Identity */},
+  {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ACallAssignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ACallAssignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ACallAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ACallAssignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ACallAssignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6355 /* 7: ACallAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ACallAssignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ACallAssignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ACallAssignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6671 /* 11: ACallAssignExpr < ACallAssignExpr: superclass typecheck marker */},
+  {(bigint) 6603 /* 12: ACallAssignExpr < ACallFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ACallAssignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ACallAssignExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -33829,7 +74759,6 @@ const classtable_elt_t VFT_ACallAssignExpr[109] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -33837,135 +74766,345 @@ const classtable_elt_t VFT_ACallAssignExpr[109] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ACallAssignExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ACallAssignExpr___visit_all},
   {(bigint) parser_prod___ACallAssignExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ACallAssignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ACallAssignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ACallFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ACallAssignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ACallAssignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ACallAssignExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ACallAssignExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ACallAssignExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ACallAssignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ACallAssignExpr___empty_init},
   {(bigint) parser_prod___ACallAssignExpr___init_acallassignexpr},
-  {(bigint) 9 /* 80: ACallAssignExpr < ACallAssignExpr: superclass init_table position */},
-  {(bigint) 8 /* 81: ACallAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(bigint) 10 /* 83: ACallAssignExpr < ACallAssignExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) 9 /* 85: ACallAssignExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser_prod___ACallAssignExpr___n_assign__eq},
   {(bigint) parser_nodes___AAssignFormExpr___n_value},
   {(bigint) parser_prod___ACallAssignExpr___n_value__eq},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ACallAssignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ACallAssignExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ACallAssignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ACallAssignExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ACallAssignExpr___name},
-  {(bigint) typing___ACallAssignExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ACallFormExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ACallAssignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ACallAssignExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ACallAssignExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) typing___ASendExpr___after_typing},
   {(bigint) typing___ACallAssignExpr___variable_create},
-  {(bigint) 7 /* 104: ACallAssignExpr < ACallFormExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: ACallAssignExpr < ACallFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___ACallFormExpr___n_id},
   {(bigint) parser_prod___ACallAssignExpr___n_id__eq},
   {(bigint) parser_nodes___ACallFormExpr___n_args},
   {(bigint) parser_nodes___ACallFormExpr___n_args__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ACallAssignExpr::_parent */
-/* 2: Attribute ACallAssignExpr::_first_token */
-/* 3: Attribute ACallAssignExpr::_last_token */
-/* 4: Attribute ACallAssignExpr::_stype */
-/* 5: Attribute ACallAssignExpr::_if_true_variable_ctx */
-/* 6: Attribute ACallAssignExpr::_prop */
-/* 7: Attribute ACallAssignExpr::_arguments */
-/* 8: Attribute ACallAssignExpr::_n_assign */
-/* 9: Attribute ACallAssignExpr::_n_value */
+/* 1: Object_id */
+/* 2: Attribute ACallAssignExpr::_parent */
+/* 3: Attribute ACallAssignExpr::_location */
+/* 4: Attribute ACallAssignExpr::_first_location */
+/* 5: Attribute ACallAssignExpr::_last_location */
 /* Instance Hole :( */
-/* 11: Attribute ACallAssignExpr::_n_expr */
+/* 7: Attribute ACallAssignExpr::_is_typed */
+/* 8: Attribute ACallAssignExpr::_stype */
+/* 9: Attribute ACallAssignExpr::_if_true_variable_ctx */
+/* 10: Attribute ACallAssignExpr::_if_false_variable_ctx */
+/* 11: Attribute ACallAssignExpr::_prop_signature */
+/* 12: Attribute ACallAssignExpr::_raw_arguments_cache */
+/* 13: Attribute ACallAssignExpr::_n_assign */
+/* 14: Attribute ACallAssignExpr::_n_value */
 /* Instance Hole :( */
-/* 13: Attribute ACallAssignExpr::_n_id */
-/* 14: Attribute ACallAssignExpr::_n_args */
-val_t NEW_ACallAssignExpr(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+/* 16: Attribute ACallAssignExpr::_prop */
+/* 17: Attribute ACallAssignExpr::_return_type */
+/* 18: Attribute ACallAssignExpr::_n_expr */
+/* 19: Attribute ACallAssignExpr::_n_closure_defs */
+/* 20: Attribute ACallAssignExpr::_n_id */
+/* 21: Attribute ACallAssignExpr::_n_args */
+void INIT_ATTRIBUTES__ACallAssignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ACallAssignExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:769 */
+  ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACallAssignExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 22);
   obj->vft = (classtable_elt_t*)VFT_ACallAssignExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ACallAssignExpr___empty_init() {
-  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ACallAssignExpr();
-  parser_prod___ACallAssignExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4) {
-  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ACallAssignExpr();
-  parser_prod___ACallAssignExpr___init_acallassignexpr(self, p0, p1, p2, p3, p4, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ACallAssignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ACallAssignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACallAssignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ACallAssignExpr();
+  INIT_ATTRIBUTES__ACallAssignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACallAssignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACallAssignExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACallAssignExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ACallAssignExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACallAssignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACallAssignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ACallAssignExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ACallAssignExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACallAssignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7327;
+  fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACallAssignExpr();
+  /* ./parser//parser_prod.nit:7327 */
+  INIT_ATTRIBUTES__ACallAssignExpr(fra.me.REG[0]);
+  parser_prod___ACallAssignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACallAssignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr(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[5];} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7329;
+  fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_ACallAssignExpr();
+  /* ./parser//parser_prod.nit:7329 */
+  INIT_ATTRIBUTES__ACallAssignExpr(fra.me.REG[5]);
+  parser_prod___ACallAssignExpr___init_acallassignexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_ACallAssignExpr(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
 }
-const classtable_elt_t VFT_ACallReassignExpr[112] = {
-  {(bigint) 3879 /* 0: Identity */},
-  {(bigint) 3 /* 1: ACallReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ACallReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ACallReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ACallReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ACallReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3391 /* 6: ACallReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3675 /* 7: ACallReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ACallReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3811 /* 9: ACallReassignExpr < ASendReassignExpr: superclass typecheck marker */},
-  {(bigint) 3819 /* 10: ACallReassignExpr < ACallFormExpr: superclass typecheck marker */},
-  {(bigint) 3879 /* 11: ACallReassignExpr < ACallReassignExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ACallReassignExpr[125] = {
+  {(bigint) 6663 /* 0: Identity */},
+  {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ACallReassignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ACallReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ACallReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ACallReassignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ACallReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6175 /* 7: ACallReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ACallReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ACallReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ACallReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6595 /* 11: ACallReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(bigint) 6603 /* 12: ACallReassignExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 6663 /* 13: ACallReassignExpr < ACallReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 4 /* 20: ACallReassignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 5 /* 19: ACallReassignExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -33973,7 +75112,6 @@ const classtable_elt_t VFT_ACallReassignExpr[112] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -33981,138 +75119,348 @@ const classtable_elt_t VFT_ACallReassignExpr[112] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ACallReassignExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ACallReassignExpr___visit_all},
   {(bigint) parser_prod___ACallReassignExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 5 /* 57: ACallReassignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 6 /* 59: ACallReassignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ACallFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 6 /* 66: ACallReassignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendReassignExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 7 /* 71: ACallReassignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 1 /* 76: ACallReassignExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 7 /* 66: ACallReassignExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 78: ACallReassignExpr < ASendReassignExpr: superclass init_table position */},
+  {(bigint) 1 /* 69: ACallReassignExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 8 /* 74: ACallReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendReassignExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) 0 /* 81: ACallReassignExpr < ASendReassignExpr: superclass init_table position */},
   {(bigint) typing___ASendReassignExpr___read_prop},
   {0} /* Class Hole :( */,
-  {(bigint) typing___AReassignFormExpr___do_lvalue_typing},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AReassignFormExpr___do_rvalue_typing},
   {(bigint) typing___AReassignFormExpr___assign_method},
-  {(bigint) 8 /* 83: ACallReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) 9 /* 87: ACallReassignExpr < AReassignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AReassignFormExpr___n_assign_op},
   {(bigint) parser_prod___ACallReassignExpr___n_assign_op__eq},
   {(bigint) parser_nodes___AReassignFormExpr___n_value},
   {(bigint) parser_prod___ACallReassignExpr___n_value__eq},
-  {(bigint) 2 /* 88: ACallReassignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ACallReassignExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 3 /* 96: ACallReassignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 2 /* 102: ACallReassignExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ACallReassignExpr___name},
-  {(bigint) typing___ACallReassignExpr___raw_arguments},
   {(bigint) typing___ASendReassignExpr___do_all_typing},
+  {(bigint) typing___ACallFormExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 3 /* 99: ACallReassignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 4 /* 110: ACallReassignExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ACallReassignExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) typing___ASendExpr___after_typing},
   {(bigint) typing___ACallReassignExpr___variable_create},
-  {(bigint) 9 /* 104: ACallReassignExpr < ACallFormExpr: superclass init_table position */},
+  {(bigint) 10 /* 117: ACallReassignExpr < ACallFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___ACallFormExpr___n_id},
   {(bigint) parser_prod___ACallReassignExpr___n_id__eq},
   {(bigint) parser_nodes___ACallFormExpr___n_args},
   {(bigint) parser_nodes___ACallFormExpr___n_args__eq},
   {(bigint) parser_prod___ACallReassignExpr___empty_init},
   {(bigint) parser_prod___ACallReassignExpr___init_acallreassignexpr},
-  {(bigint) 10 /* 111: ACallReassignExpr < ACallReassignExpr: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ACallReassignExpr::_parent */
-/* 2: Attribute ACallReassignExpr::_first_token */
-/* 3: Attribute ACallReassignExpr::_last_token */
-/* 4: Attribute ACallReassignExpr::_stype */
-/* 5: Attribute ACallReassignExpr::_if_true_variable_ctx */
-/* 6: Attribute ACallReassignExpr::_prop */
-/* 7: Attribute ACallReassignExpr::_arguments */
-/* 8: Attribute ACallReassignExpr::_assign_method */
-/* 9: Attribute ACallReassignExpr::_n_assign_op */
-/* 10: Attribute ACallReassignExpr::_n_value */
-/* 11: Attribute ACallReassignExpr::_n_expr */
-/* 12: Attribute ACallReassignExpr::_read_prop */
-/* 13: Attribute ACallReassignExpr::_n_id */
-/* 14: Attribute ACallReassignExpr::_n_args */
-val_t NEW_ACallReassignExpr(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+  {(bigint) 11 /* 124: ACallReassignExpr < ACallReassignExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ACallReassignExpr::_parent */
+/* 3: Attribute ACallReassignExpr::_location */
+/* 4: Attribute ACallReassignExpr::_first_location */
+/* 5: Attribute ACallReassignExpr::_last_location */
+/* 6: Attribute ACallReassignExpr::_read_prop */
+/* 7: Attribute ACallReassignExpr::_is_typed */
+/* 8: Attribute ACallReassignExpr::_stype */
+/* 9: Attribute ACallReassignExpr::_if_true_variable_ctx */
+/* 10: Attribute ACallReassignExpr::_if_false_variable_ctx */
+/* 11: Attribute ACallReassignExpr::_prop_signature */
+/* 12: Attribute ACallReassignExpr::_raw_arguments_cache */
+/* 13: Attribute ACallReassignExpr::_assign_method */
+/* 14: Attribute ACallReassignExpr::_n_assign_op */
+/* 15: Attribute ACallReassignExpr::_n_value */
+/* 16: Attribute ACallReassignExpr::_prop */
+/* 17: Attribute ACallReassignExpr::_return_type */
+/* 18: Attribute ACallReassignExpr::_n_expr */
+/* 19: Attribute ACallReassignExpr::_n_closure_defs */
+/* 20: Attribute ACallReassignExpr::_n_id */
+/* 21: Attribute ACallReassignExpr::_n_args */
+void INIT_ATTRIBUTES__ACallReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ACallReassignExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:769 */
+  ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACallReassignExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 22);
   obj->vft = (classtable_elt_t*)VFT_ACallReassignExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ACallReassignExpr___empty_init() {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ACallReassignExpr();
-  parser_prod___ACallReassignExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4) {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ACallReassignExpr();
-  parser_prod___ACallReassignExpr___init_acallreassignexpr(self, p0, p1, p2, p3, p4, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ASuperExpr[104] = {
-  {(bigint) 3791 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASuperExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASuperExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASuperExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ASuperExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ASuperExpr < AAbsSendExpr: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ACallReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ACallReassignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign_op");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACallReassignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ACallReassignExpr();
+  INIT_ATTRIBUTES__ACallReassignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACallReassignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACallReassignExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACallReassignExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ACallReassignExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACallReassignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACallReassignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ACallReassignExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ACallReassignExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACallReassignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7457;
+  fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACallReassignExpr();
+  /* ./parser//parser_prod.nit:7457 */
+  INIT_ATTRIBUTES__ACallReassignExpr(fra.me.REG[0]);
+  parser_prod___ACallReassignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACallReassignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr(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[5];} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7459;
+  fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_ACallReassignExpr();
+  /* ./parser//parser_prod.nit:7459 */
+  INIT_ATTRIBUTES__ACallReassignExpr(fra.me.REG[5]);
+  parser_prod___ACallReassignExpr___init_acallreassignexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_ACallReassignExpr(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+const classtable_elt_t VFT_ASuperExpr[115] = {
+  {(bigint) 6583 /* 0: Identity */},
+  {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASuperExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASuperExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASuperExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ASuperExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ASuperExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ASuperExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3791 /* 8: ASuperExpr < ASuperExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ASuperExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ASuperExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6583 /* 10: ASuperExpr < ASuperExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ASuperExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ASuperExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -34120,7 +75468,6 @@ const classtable_elt_t VFT_ASuperExpr[104] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -34128,48 +75475,53 @@ const classtable_elt_t VFT_ASuperExpr[104] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASuperExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASuperExpr___visit_all},
   {(bigint) parser_prod___ASuperExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ASuperExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ASuperExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASuperExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ASuperExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASuperExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASuperExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ASuperExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ASuperExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ASuperExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ASuperExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ASuperExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASuperExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34180,16 +75532,24 @@ const classtable_elt_t VFT_ASuperExpr[104] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ASuperExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ASuperExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ASuperExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ASuperExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ASuperExpr___init_in_superclass},
   {(bigint) parser_prod___ASuperExpr___empty_init},
   {(bigint) parser_prod___ASuperExpr___init_asuperexpr},
-  {(bigint) 6 /* 97: ASuperExpr < ASuperExpr: superclass init_table position */},
+  {(bigint) 7 /* 108: ASuperExpr < ASuperExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASuperExpr___n_qualified},
   {(bigint) parser_prod___ASuperExpr___n_qualified__eq},
   {(bigint) parser_nodes___ASuperExpr___n_kwsuper},
@@ -34198,57 +75558,183 @@ const classtable_elt_t VFT_ASuperExpr[104] = {
   {(bigint) parser_nodes___ASuperExpr___n_args__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASuperExpr::_parent */
-/* 2: Attribute ASuperExpr::_first_token */
-/* 3: Attribute ASuperExpr::_last_token */
-/* 4: Attribute ASuperExpr::_stype */
-/* 5: Attribute ASuperExpr::_if_true_variable_ctx */
-/* 6: Attribute ASuperExpr::_prop */
-/* 7: Attribute ASuperExpr::_arguments */
-/* 8: Attribute ASuperExpr::_init_in_superclass */
-/* 9: Attribute ASuperExpr::_n_qualified */
-/* 10: Attribute ASuperExpr::_n_kwsuper */
-/* 11: Attribute ASuperExpr::_n_args */
-val_t NEW_ASuperExpr(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+/* 1: Object_id */
+/* 2: Attribute ASuperExpr::_parent */
+/* 3: Attribute ASuperExpr::_location */
+/* 4: Attribute ASuperExpr::_first_location */
+/* 5: Attribute ASuperExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ASuperExpr::_is_typed */
+/* 8: Attribute ASuperExpr::_stype */
+/* 9: Attribute ASuperExpr::_if_true_variable_ctx */
+/* 10: Attribute ASuperExpr::_if_false_variable_ctx */
+/* 11: Attribute ASuperExpr::_prop_signature */
+/* 12: Attribute ASuperExpr::_raw_arguments_cache */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 16: Attribute ASuperExpr::_prop */
+/* 17: Attribute ASuperExpr::_return_type */
+/* 18: Attribute ASuperExpr::_init_in_superclass */
+/* 19: Attribute ASuperExpr::_n_qualified */
+/* 20: Attribute ASuperExpr::_n_kwsuper */
+/* 21: Attribute ASuperExpr::_n_args */
+void INIT_ATTRIBUTES__ASuperExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASuperExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:790 */
+  ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:792 */
+  ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 22);
   obj->vft = (classtable_elt_t*)VFT_ASuperExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ASuperExpr___empty_init() {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ASuperExpr();
-  parser_prod___ASuperExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2) {
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ASuperExpr();
-  parser_prod___ASuperExpr___init_asuperexpr(self, p0, p1, p2, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASuperExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASuperExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwsuper");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASuperExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASuperExpr();
+  INIT_ATTRIBUTES__ASuperExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASuperExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASuperExpr_parser_prod___ASuperExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7579;
+  fra.me.meth = LOCATE_NEW_ASuperExpr_parser_prod___ASuperExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASuperExpr();
+  /* ./parser//parser_prod.nit:7579 */
+  INIT_ATTRIBUTES__ASuperExpr(fra.me.REG[0]);
+  parser_prod___ASuperExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASuperExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7581;
+  fra.me.meth = LOCATE_NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ASuperExpr();
+  /* ./parser//parser_prod.nit:7581 */
+  INIT_ATTRIBUTES__ASuperExpr(fra.me.REG[3]);
+  parser_prod___ASuperExpr___init_asuperexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ASuperExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_AInitExpr[109] = {
-  {(bigint) 3815 /* 0: Identity */},
-  {(bigint) 3 /* 1: AInitExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AInitExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AInitExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AInitExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AInitExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AInitExpr[122] = {
+  {(bigint) 6599 /* 0: Identity */},
+  {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AInitExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AInitExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AInitExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AInitExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AInitExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: AInitExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: AInitExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3815 /* 9: AInitExpr < AInitExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: AInitExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: AInitExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: AInitExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6599 /* 11: AInitExpr < AInitExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: AInitExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: AInitExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -34256,7 +75742,6 @@ const classtable_elt_t VFT_AInitExpr[109] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -34264,48 +75749,54 @@ const classtable_elt_t VFT_AInitExpr[109] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AInitExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AInitExpr___visit_all},
   {(bigint) parser_prod___AInitExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: AInitExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: AInitExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: AInitExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: AInitExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AInitExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: AInitExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: AInitExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: AInitExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34316,82 +75807,269 @@ const classtable_elt_t VFT_AInitExpr[109] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: AInitExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AInitExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: AInitExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: AInitExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___AInitExpr___name},
-  {(bigint) typing___AInitExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: AInitExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: AInitExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___AInitExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
   {(bigint) parser_prod___AInitExpr___empty_init},
   {(bigint) parser_prod___AInitExpr___init_ainitexpr},
-  {(bigint) 7 /* 104: AInitExpr < AInitExpr: superclass init_table position */},
+  {(bigint) 8 /* 117: AInitExpr < AInitExpr: superclass init_table position */},
   {(bigint) parser_nodes___AInitExpr___n_kwinit},
   {(bigint) parser_prod___AInitExpr___n_kwinit__eq},
   {(bigint) parser_nodes___AInitExpr___n_args},
   {(bigint) parser_nodes___AInitExpr___n_args__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AInitExpr::_parent */
-/* 2: Attribute AInitExpr::_first_token */
-/* 3: Attribute AInitExpr::_last_token */
-/* 4: Attribute AInitExpr::_stype */
-/* 5: Attribute AInitExpr::_if_true_variable_ctx */
-/* 6: Attribute AInitExpr::_prop */
-/* 7: Attribute AInitExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute AInitExpr::_parent */
+/* 3: Attribute AInitExpr::_location */
+/* 4: Attribute AInitExpr::_first_location */
+/* 5: Attribute AInitExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute AInitExpr::_is_typed */
+/* 8: Attribute AInitExpr::_stype */
+/* 9: Attribute AInitExpr::_if_true_variable_ctx */
+/* 10: Attribute AInitExpr::_if_false_variable_ctx */
+/* 11: Attribute AInitExpr::_prop_signature */
+/* 12: Attribute AInitExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute AInitExpr::_n_expr */
-/* 12: Attribute AInitExpr::_n_kwinit */
-/* 13: Attribute AInitExpr::_n_args */
-val_t NEW_AInitExpr(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 14);
+/* Instance Hole :( */
+/* 16: Attribute AInitExpr::_prop */
+/* 17: Attribute AInitExpr::_return_type */
+/* 18: Attribute AInitExpr::_n_expr */
+/* 19: Attribute AInitExpr::_n_closure_defs */
+/* 20: Attribute AInitExpr::_n_kwinit */
+/* 21: Attribute AInitExpr::_n_args */
+void INIT_ATTRIBUTES__AInitExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AInitExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:797 */
+  ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AInitExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 22);
   obj->vft = (classtable_elt_t*)VFT_AInitExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AInitExpr___empty_init() {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AInitExpr();
-  parser_prod___AInitExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2) {
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AInitExpr();
-  parser_prod___AInitExpr___init_ainitexpr(self, p0, p1, p2, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AInitExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AInitExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwinit");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AInitExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AInitExpr();
+  INIT_ATTRIBUTES__AInitExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AInitExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AInitExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AInitExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__AInitExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AInitExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInitExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_AInitExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__AInitExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AInitExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AInitExpr_parser_prod___AInitExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7675;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser_prod___AInitExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AInitExpr();
+  /* ./parser//parser_prod.nit:7675 */
+  INIT_ATTRIBUTES__AInitExpr(fra.me.REG[0]);
+  parser_prod___AInitExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AInitExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7677;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AInitExpr();
+  /* ./parser//parser_prod.nit:7677 */
+  INIT_ATTRIBUTES__AInitExpr(fra.me.REG[3]);
+  parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AInitExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ABraFormExpr[105] = {
-  {(bigint) 3823 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABraFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABraFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABraFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABraFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ABraFormExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ABraFormExpr[118] = {
+  {(bigint) 6607 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABraFormExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABraFormExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABraFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ABraFormExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ABraFormExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ABraFormExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ABraFormExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ABraFormExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ABraFormExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ABraFormExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3823 /* 10: ABraFormExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 6607 /* 12: ABraFormExpr < ABraFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ABraFormExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ABraFormExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -34399,7 +76077,6 @@ const classtable_elt_t VFT_ABraFormExpr[105] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -34407,49 +76084,53 @@ const classtable_elt_t VFT_ABraFormExpr[105] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASendExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASendExpr___visit_all},
   {(bigint) parser_prod___ASendExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ABraFormExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ABraFormExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ABraFormExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ABraFormExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ABraFormExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ABraFormExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ABraFormExpr < ASuperInitCall: superclass init_table position */},
   {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ABraFormExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34459,66 +76140,215 @@ const classtable_elt_t VFT_ABraFormExpr[105] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ABraFormExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AAbsAbsSendExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ABraFormExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ABraFormExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ASendExpr___name},
-  {(bigint) typing___ASendExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ABraFormExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ABraFormExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ASendExpr___n_expr__eq},
-  {(bigint) 7 /* 102: ABraFormExpr < ABraFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
+  {(bigint) 8 /* 115: ABraFormExpr < ABraFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABraFormExpr___n_args},
   {(bigint) parser_nodes___ABraFormExpr___n_args__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ABraFormExpr::_parent */
-/* 2: Attribute ABraFormExpr::_first_token */
-/* 3: Attribute ABraFormExpr::_last_token */
-/* 4: Attribute ABraFormExpr::_stype */
-/* 5: Attribute ABraFormExpr::_if_true_variable_ctx */
-/* 6: Attribute ABraFormExpr::_prop */
-/* 7: Attribute ABraFormExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ABraFormExpr::_parent */
+/* 3: Attribute ABraFormExpr::_location */
+/* 4: Attribute ABraFormExpr::_first_location */
+/* 5: Attribute ABraFormExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute ABraFormExpr::_is_typed */
+/* 8: Attribute ABraFormExpr::_stype */
+/* 9: Attribute ABraFormExpr::_if_true_variable_ctx */
+/* 10: Attribute ABraFormExpr::_if_false_variable_ctx */
+/* 11: Attribute ABraFormExpr::_prop_signature */
+/* 12: Attribute ABraFormExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ABraFormExpr::_n_expr */
 /* Instance Hole :( */
-/* 13: Attribute ABraFormExpr::_n_args */
-val_t NEW_ABraFormExpr(void) {
+/* 16: Attribute ABraFormExpr::_prop */
+/* 17: Attribute ABraFormExpr::_return_type */
+/* 18: Attribute ABraFormExpr::_n_expr */
+/* 19: Attribute ABraFormExpr::_n_closure_defs */
+/* 20: Attribute ABraFormExpr::_n_args */
+void INIT_ATTRIBUTES__ABraFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABraFormExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:801 */
+  ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraFormExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 14);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ABraFormExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABraFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABraFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraFormExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABraFormExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABraFormExpr();
+  INIT_ATTRIBUTES__ABraFormExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraFormExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ABraFormExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraFormExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ABraFormExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraFormExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraFormExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ABraFormExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ABraFormExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ABraFormExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ABraExpr[108] = {
-  {(bigint) 3895 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABraExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABraExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABraExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABraExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ABraExpr < AAbsSendExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ABraExpr[121] = {
+  {(bigint) 6679 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABraExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABraExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABraExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ABraExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ABraExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ABraExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ABraExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ABraExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ABraExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ABraExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3823 /* 10: ABraExpr < ABraFormExpr: superclass typecheck marker */},
-  {(bigint) 3895 /* 11: ABraExpr < ABraExpr: superclass typecheck marker */},
+  {(bigint) 6607 /* 12: ABraExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 6679 /* 13: ABraExpr < ABraExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ABraExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ABraExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -34526,7 +76356,6 @@ const classtable_elt_t VFT_ABraExpr[108] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -34534,48 +76363,53 @@ const classtable_elt_t VFT_ABraExpr[108] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ABraExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ABraExpr___visit_all},
   {(bigint) parser_prod___ABraExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ABraExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ABraExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ABraExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ABraExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ABraExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ABraExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ABraExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ABraExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34586,81 +76420,261 @@ const classtable_elt_t VFT_ABraExpr[108] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ABraExpr < AAbsSendExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABraExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ABraExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ABraExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ABraExpr___name},
-  {(bigint) typing___ABraExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ABraExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ABraExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ABraExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ABraExpr___n_expr__eq},
-  {(bigint) 7 /* 102: ABraExpr < ABraFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
+  {(bigint) 8 /* 115: ABraExpr < ABraFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABraFormExpr___n_args},
   {(bigint) parser_nodes___ABraFormExpr___n_args__eq},
   {(bigint) parser_prod___ABraExpr___empty_init},
   {(bigint) parser_prod___ABraExpr___init_abraexpr},
-  {(bigint) 8 /* 107: ABraExpr < ABraExpr: superclass init_table position */},
+  {(bigint) 9 /* 120: ABraExpr < ABraExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ABraExpr::_parent */
-/* 2: Attribute ABraExpr::_first_token */
-/* 3: Attribute ABraExpr::_last_token */
-/* 4: Attribute ABraExpr::_stype */
-/* 5: Attribute ABraExpr::_if_true_variable_ctx */
-/* 6: Attribute ABraExpr::_prop */
-/* 7: Attribute ABraExpr::_arguments */
+/* 1: Object_id */
+/* 2: Attribute ABraExpr::_parent */
+/* 3: Attribute ABraExpr::_location */
+/* 4: Attribute ABraExpr::_first_location */
+/* 5: Attribute ABraExpr::_last_location */
 /* Instance Hole :( */
+/* 7: Attribute ABraExpr::_is_typed */
+/* 8: Attribute ABraExpr::_stype */
+/* 9: Attribute ABraExpr::_if_true_variable_ctx */
+/* 10: Attribute ABraExpr::_if_false_variable_ctx */
+/* 11: Attribute ABraExpr::_prop_signature */
+/* 12: Attribute ABraExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 11: Attribute ABraExpr::_n_expr */
 /* Instance Hole :( */
-/* 13: Attribute ABraExpr::_n_args */
-val_t NEW_ABraExpr(void) {
+/* 16: Attribute ABraExpr::_prop */
+/* 17: Attribute ABraExpr::_return_type */
+/* 18: Attribute ABraExpr::_n_expr */
+/* 19: Attribute ABraExpr::_n_closure_defs */
+/* 20: Attribute ABraExpr::_n_args */
+void INIT_ATTRIBUTES__ABraExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABraExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:801 */
+  ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 14);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ABraExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ABraExpr___empty_init() {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABraExpr();
-  parser_prod___ABraExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1) {
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABraExpr();
-  parser_prod___ABraExpr___init_abraexpr(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABraExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABraExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABraExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABraExpr();
+  INIT_ATTRIBUTES__ABraExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ABraExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ABraExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ABraExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ABraExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ABraExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraExpr_parser_prod___ABraExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7760;
+  fra.me.meth = LOCATE_NEW_ABraExpr_parser_prod___ABraExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraExpr();
+  /* ./parser//parser_prod.nit:7760 */
+  INIT_ATTRIBUTES__ABraExpr(fra.me.REG[0]);
+  parser_prod___ABraExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7762;
+  fra.me.meth = LOCATE_NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ABraExpr();
+  /* ./parser//parser_prod.nit:7762 */
+  INIT_ATTRIBUTES__ABraExpr(fra.me.REG[3]);
+  parser_prod___ABraExpr___init_abraexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ABraExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ABraAssignExpr[105] = {
-  {(bigint) 3899 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABraAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABraAssignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABraAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABraAssignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ABraAssignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3591 /* 6: ABraAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 3675 /* 7: ABraAssignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ABraAssignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3899 /* 9: ABraAssignExpr < ABraAssignExpr: superclass typecheck marker */},
-  {(bigint) 3823 /* 10: ABraAssignExpr < ABraFormExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ABraAssignExpr[118] = {
+  {(bigint) 6683 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABraAssignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABraAssignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABraAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ABraAssignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ABraAssignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6355 /* 7: ABraAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ABraAssignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ABraAssignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ABraAssignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6683 /* 11: ABraAssignExpr < ABraAssignExpr: superclass typecheck marker */},
+  {(bigint) 6607 /* 12: ABraAssignExpr < ABraFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ABraAssignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ABraAssignExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -34668,7 +76682,6 @@ const classtable_elt_t VFT_ABraAssignExpr[105] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -34676,115 +76689,318 @@ const classtable_elt_t VFT_ABraAssignExpr[105] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ABraAssignExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ABraAssignExpr___visit_all},
   {(bigint) parser_prod___ABraAssignExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ABraAssignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 4 /* 59: ABraAssignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ABraAssignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ABraAssignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ABraAssignExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ABraAssignExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ABraAssignExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ABraAssignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ABraAssignExpr___empty_init},
   {(bigint) parser_prod___ABraAssignExpr___init_abraassignexpr},
-  {(bigint) 9 /* 80: ABraAssignExpr < ABraAssignExpr: superclass init_table position */},
-  {(bigint) 8 /* 81: ABraAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(bigint) 10 /* 83: ABraAssignExpr < ABraAssignExpr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) 9 /* 85: ABraAssignExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser_prod___ABraAssignExpr___n_assign__eq},
   {(bigint) parser_nodes___AAssignFormExpr___n_value},
   {(bigint) parser_prod___ABraAssignExpr___n_value__eq},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 88: ABraAssignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABraAssignExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ABraAssignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ABraAssignExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ABraAssignExpr___name},
-  {(bigint) typing___ABraAssignExpr___raw_arguments},
   {(bigint) typing___ASendExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ABraAssignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 7 /* 110: ABraAssignExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ABraAssignExpr___n_expr__eq},
-  {(bigint) 7 /* 102: ABraAssignExpr < ABraFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
+  {(bigint) 8 /* 115: ABraAssignExpr < ABraFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABraFormExpr___n_args},
   {(bigint) parser_nodes___ABraFormExpr___n_args__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ABraAssignExpr::_parent */
-/* 2: Attribute ABraAssignExpr::_first_token */
-/* 3: Attribute ABraAssignExpr::_last_token */
-/* 4: Attribute ABraAssignExpr::_stype */
-/* 5: Attribute ABraAssignExpr::_if_true_variable_ctx */
-/* 6: Attribute ABraAssignExpr::_prop */
-/* 7: Attribute ABraAssignExpr::_arguments */
-/* 8: Attribute ABraAssignExpr::_n_assign */
-/* 9: Attribute ABraAssignExpr::_n_value */
+/* 1: Object_id */
+/* 2: Attribute ABraAssignExpr::_parent */
+/* 3: Attribute ABraAssignExpr::_location */
+/* 4: Attribute ABraAssignExpr::_first_location */
+/* 5: Attribute ABraAssignExpr::_last_location */
 /* Instance Hole :( */
-/* 11: Attribute ABraAssignExpr::_n_expr */
+/* 7: Attribute ABraAssignExpr::_is_typed */
+/* 8: Attribute ABraAssignExpr::_stype */
+/* 9: Attribute ABraAssignExpr::_if_true_variable_ctx */
+/* 10: Attribute ABraAssignExpr::_if_false_variable_ctx */
+/* 11: Attribute ABraAssignExpr::_prop_signature */
+/* 12: Attribute ABraAssignExpr::_raw_arguments_cache */
+/* 13: Attribute ABraAssignExpr::_n_assign */
+/* 14: Attribute ABraAssignExpr::_n_value */
 /* Instance Hole :( */
-/* 13: Attribute ABraAssignExpr::_n_args */
-val_t NEW_ABraAssignExpr(void) {
+/* 16: Attribute ABraAssignExpr::_prop */
+/* 17: Attribute ABraAssignExpr::_return_type */
+/* 18: Attribute ABraAssignExpr::_n_expr */
+/* 19: Attribute ABraAssignExpr::_n_closure_defs */
+/* 20: Attribute ABraAssignExpr::_n_args */
+void INIT_ATTRIBUTES__ABraAssignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABraAssignExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:801 */
+  ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraAssignExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 14);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ABraAssignExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ABraAssignExpr___empty_init() {
-  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABraAssignExpr();
-  parser_prod___ABraAssignExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABraAssignExpr();
-  parser_prod___ABraAssignExpr___init_abraassignexpr(self, p0, p1, p2, p3, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABraAssignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABraAssignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraAssignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABraAssignExpr();
+  INIT_ATTRIBUTES__ABraAssignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraAssignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraAssignExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraAssignExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ABraAssignExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraAssignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraAssignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ABraAssignExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ABraAssignExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraAssignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7868;
+  fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraAssignExpr();
+  /* ./parser//parser_prod.nit:7868 */
+  INIT_ATTRIBUTES__ABraAssignExpr(fra.me.REG[0]);
+  parser_prod___ABraAssignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraAssignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7870;
+  fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_ABraAssignExpr();
+  /* ./parser//parser_prod.nit:7870 */
+  INIT_ATTRIBUTES__ABraAssignExpr(fra.me.REG[4]);
+  parser_prod___ABraAssignExpr___init_abraassignexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_ABraAssignExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_AVarFormExpr[81] = {
-  {(bigint) 3335 /* 0: Identity */},
-  {(bigint) 3 /* 1: AVarFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AVarFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AVarFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AVarFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3335 /* 5: AVarFormExpr < AVarFormExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AVarFormExpr[85] = {
+  {(bigint) 6115 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AVarFormExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AVarFormExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AVarFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6115 /* 5: AVarFormExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AVarFormExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34792,14 +77008,12 @@ const classtable_elt_t VFT_AVarFormExpr[81] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AVarFormExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AVarFormExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -34807,7 +77021,6 @@ const classtable_elt_t VFT_AVarFormExpr[81] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -34815,88 +77028,166 @@ const classtable_elt_t VFT_AVarFormExpr[81] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AVarFormExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AVarFormExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AVarFormExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AVarFormExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) syntax_base___AVarFormExpr___variable},
-  {(bigint) syntax_base___AVarFormExpr___variable__eq},
-  {(bigint) 4 /* 78: AVarFormExpr < AVarFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AVarFormExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___AVarFormExpr___variable},
+  {(bigint) 4 /* 82: AVarFormExpr < AVarFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AVarFormExpr___n_id},
   {(bigint) parser_nodes___AVarFormExpr___n_id__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AVarFormExpr::_parent */
-/* 2: Attribute AVarFormExpr::_first_token */
-/* 3: Attribute AVarFormExpr::_last_token */
-/* 4: Attribute AVarFormExpr::_stype */
-/* 5: Attribute AVarFormExpr::_if_true_variable_ctx */
-/* 6: Attribute AVarFormExpr::_variable */
-/* 7: Attribute AVarFormExpr::_n_id */
-val_t NEW_AVarFormExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AVarFormExpr::_parent */
+/* 3: Attribute AVarFormExpr::_location */
+/* 4: Attribute AVarFormExpr::_first_location */
+/* 5: Attribute AVarFormExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AVarFormExpr::_is_typed */
+/* 8: Attribute AVarFormExpr::_stype */
+/* 9: Attribute AVarFormExpr::_if_true_variable_ctx */
+/* 10: Attribute AVarFormExpr::_if_false_variable_ctx */
+/* 11: Attribute AVarFormExpr::_variable */
+/* 12: Attribute AVarFormExpr::_n_id */
+void INIT_ATTRIBUTES__AVarFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AVarFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVarFormExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AVarFormExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AVarFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AVarFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVarFormExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AVarFormExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AVarFormExpr();
+  INIT_ATTRIBUTES__AVarFormExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AVarFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ABraReassignExpr[108] = {
-  {(bigint) 3891 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABraReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABraReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABraReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABraReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ABraReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3391 /* 6: ABraReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3675 /* 7: ABraReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ABraReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3811 /* 9: ABraReassignExpr < ASendReassignExpr: superclass typecheck marker */},
-  {(bigint) 3823 /* 10: ABraReassignExpr < ABraFormExpr: superclass typecheck marker */},
-  {(bigint) 3891 /* 11: ABraReassignExpr < ABraReassignExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ABraReassignExpr[121] = {
+  {(bigint) 6675 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABraReassignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABraReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABraReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ABraReassignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ABraReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6175 /* 7: ABraReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ABraReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ABraReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ABraReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6595 /* 11: ABraReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(bigint) 6607 /* 12: ABraReassignExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 6675 /* 13: ABraReassignExpr < ABraReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 4 /* 20: ABraReassignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 5 /* 19: ABraReassignExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -34904,7 +77195,6 @@ const classtable_elt_t VFT_ABraReassignExpr[108] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -34912,133 +77202,604 @@ const classtable_elt_t VFT_ABraReassignExpr[108] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ABraReassignExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ABraReassignExpr___visit_all},
   {(bigint) parser_prod___ABraReassignExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 5 /* 57: ABraReassignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 6 /* 59: ABraReassignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 6 /* 66: ABraReassignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendReassignExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 7 /* 71: ABraReassignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 1 /* 76: ABraReassignExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 7 /* 66: ABraReassignExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 78: ABraReassignExpr < ASendReassignExpr: superclass init_table position */},
+  {(bigint) 1 /* 69: ABraReassignExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 8 /* 74: ABraReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendReassignExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) 0 /* 81: ABraReassignExpr < ASendReassignExpr: superclass init_table position */},
   {(bigint) typing___ASendReassignExpr___read_prop},
   {0} /* Class Hole :( */,
-  {(bigint) typing___AReassignFormExpr___do_lvalue_typing},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AReassignFormExpr___do_rvalue_typing},
   {(bigint) typing___AReassignFormExpr___assign_method},
-  {(bigint) 8 /* 83: ABraReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) 9 /* 87: ABraReassignExpr < AReassignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AReassignFormExpr___n_assign_op},
   {(bigint) parser_prod___ABraReassignExpr___n_assign_op__eq},
   {(bigint) parser_nodes___AReassignFormExpr___n_value},
   {(bigint) parser_prod___ABraReassignExpr___n_value__eq},
-  {(bigint) 2 /* 88: ABraReassignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___ABraReassignExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 3 /* 96: ABraReassignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) typing___AAbsSendExpr___do_typing},
   {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 2 /* 102: ABraReassignExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) typing___AAbsSendExpr___return_type},
   {(bigint) typing___ABraReassignExpr___name},
-  {(bigint) typing___ABraReassignExpr___raw_arguments},
   {(bigint) typing___ASendReassignExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
   {(bigint) parser_prod___ASendExpr___empty_init},
   {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 3 /* 99: ABraReassignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 4 /* 110: ABraReassignExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASendExpr___n_expr},
   {(bigint) parser_prod___ABraReassignExpr___n_expr__eq},
-  {(bigint) 9 /* 102: ABraReassignExpr < ABraFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
+  {(bigint) 10 /* 115: ABraReassignExpr < ABraFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___ABraFormExpr___n_args},
   {(bigint) parser_nodes___ABraFormExpr___n_args__eq},
   {(bigint) parser_prod___ABraReassignExpr___empty_init},
   {(bigint) parser_prod___ABraReassignExpr___init_abrareassignexpr},
-  {(bigint) 10 /* 107: ABraReassignExpr < ABraReassignExpr: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ABraReassignExpr::_parent */
-/* 2: Attribute ABraReassignExpr::_first_token */
-/* 3: Attribute ABraReassignExpr::_last_token */
-/* 4: Attribute ABraReassignExpr::_stype */
-/* 5: Attribute ABraReassignExpr::_if_true_variable_ctx */
-/* 6: Attribute ABraReassignExpr::_prop */
-/* 7: Attribute ABraReassignExpr::_arguments */
-/* 8: Attribute ABraReassignExpr::_assign_method */
-/* 9: Attribute ABraReassignExpr::_n_assign_op */
-/* 10: Attribute ABraReassignExpr::_n_value */
-/* 11: Attribute ABraReassignExpr::_n_expr */
-/* 12: Attribute ABraReassignExpr::_read_prop */
-/* 13: Attribute ABraReassignExpr::_n_args */
-val_t NEW_ABraReassignExpr(void) {
+  {(bigint) 11 /* 120: ABraReassignExpr < ABraReassignExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ABraReassignExpr::_parent */
+/* 3: Attribute ABraReassignExpr::_location */
+/* 4: Attribute ABraReassignExpr::_first_location */
+/* 5: Attribute ABraReassignExpr::_last_location */
+/* 6: Attribute ABraReassignExpr::_read_prop */
+/* 7: Attribute ABraReassignExpr::_is_typed */
+/* 8: Attribute ABraReassignExpr::_stype */
+/* 9: Attribute ABraReassignExpr::_if_true_variable_ctx */
+/* 10: Attribute ABraReassignExpr::_if_false_variable_ctx */
+/* 11: Attribute ABraReassignExpr::_prop_signature */
+/* 12: Attribute ABraReassignExpr::_raw_arguments_cache */
+/* 13: Attribute ABraReassignExpr::_assign_method */
+/* 14: Attribute ABraReassignExpr::_n_assign_op */
+/* 15: Attribute ABraReassignExpr::_n_value */
+/* 16: Attribute ABraReassignExpr::_prop */
+/* 17: Attribute ABraReassignExpr::_return_type */
+/* 18: Attribute ABraReassignExpr::_n_expr */
+/* 19: Attribute ABraReassignExpr::_n_closure_defs */
+/* 20: Attribute ABraReassignExpr::_n_args */
+void INIT_ATTRIBUTES__ABraReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABraReassignExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:801 */
+  ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraReassignExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 14);
+  obj = alloc(sizeof(val_t) * 21);
   obj->vft = (classtable_elt_t*)VFT_ABraReassignExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ABraReassignExpr___empty_init() {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABraReassignExpr();
-  parser_prod___ABraReassignExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ABraReassignExpr();
-  parser_prod___ABraReassignExpr___init_abrareassignexpr(self, p0, p1, p2, p3, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABraReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABraReassignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign_op");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABraReassignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABraReassignExpr();
+  INIT_ATTRIBUTES__ABraReassignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraReassignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraReassignExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraReassignExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ABraReassignExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraReassignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraReassignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ABraReassignExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ABraReassignExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABraReassignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7978;
+  fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABraReassignExpr();
+  /* ./parser//parser_prod.nit:7978 */
+  INIT_ATTRIBUTES__ABraReassignExpr(fra.me.REG[0]);
+  parser_prod___ABraReassignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABraReassignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7980;
+  fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_ABraReassignExpr();
+  /* ./parser//parser_prod.nit:7980 */
+  INIT_ATTRIBUTES__ABraReassignExpr(fra.me.REG[4]);
+  parser_prod___ABraReassignExpr___init_abrareassignexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_ABraReassignExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_AVarExpr[85] = {
-  {(bigint) 3663 /* 0: Identity */},
-  {(bigint) 3 /* 1: AVarExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AVarExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AVarExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AVarExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3335 /* 5: AVarExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 3663 /* 6: AVarExpr < AVarExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AClosureCallExpr[109] = {
+  {(bigint) 6523 /* 0: Identity */},
+  {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AClosureCallExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AClosureCallExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AClosureCallExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AClosureCallExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AClosureCallExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6523 /* 7: AClosureCallExpr < AClosureCallExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 1 /* 19: AClosureCallExpr < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AVarExpr < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AClosureCallExpr___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___AClosureCallExpr___visit_all},
+  {(bigint) parser_prod___AClosureCallExpr___visit_all_reverse},
+  {(bigint) 2 /* 59: AClosureCallExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AClosureCallExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 3 /* 66: AClosureCallExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 4 /* 74: AClosureCallExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AClosureCallExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AClosureCallExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 0 /* 96: AClosureCallExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
+  {(bigint) typing___AClosureCallExpr___variable},
+  {(bigint) parser_prod___AClosureCallExpr___empty_init},
+  {(bigint) parser_prod___AClosureCallExpr___init_aclosurecallexpr},
+  {(bigint) 5 /* 102: AClosureCallExpr < AClosureCallExpr: superclass init_table position */},
+  {(bigint) parser_nodes___AClosureCallExpr___n_id},
+  {(bigint) parser_prod___AClosureCallExpr___n_id__eq},
+  {(bigint) parser_nodes___AClosureCallExpr___n_args},
+  {(bigint) parser_nodes___AClosureCallExpr___n_args__eq},
+  {(bigint) parser_nodes___AClosureCallExpr___n_closure_defs},
+  {(bigint) parser_nodes___AClosureCallExpr___n_closure_defs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AClosureCallExpr::_parent */
+/* 3: Attribute AClosureCallExpr::_location */
+/* 4: Attribute AClosureCallExpr::_first_location */
+/* 5: Attribute AClosureCallExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AClosureCallExpr::_is_typed */
+/* 8: Attribute AClosureCallExpr::_stype */
+/* 9: Attribute AClosureCallExpr::_if_true_variable_ctx */
+/* 10: Attribute AClosureCallExpr::_if_false_variable_ctx */
+/* 11: Attribute AClosureCallExpr::_prop_signature */
+/* 12: Attribute AClosureCallExpr::_raw_arguments_cache */
+/* 13: Attribute AClosureCallExpr::_variable */
+/* 14: Attribute AClosureCallExpr::_n_id */
+/* 15: Attribute AClosureCallExpr::_n_args */
+/* 16: Attribute AClosureCallExpr::_n_closure_defs */
+void INIT_ATTRIBUTES__AClosureCallExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AClosureCallExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:821 */
+  ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:822 */
+  ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClosureCallExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 17);
+  obj->vft = (classtable_elt_t*)VFT_AClosureCallExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AClosureCallExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AClosureCallExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_args");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClosureCallExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AClosureCallExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AClosureCallExpr();
+  INIT_ATTRIBUTES__AClosureCallExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AClosureCallExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8078;
+  fra.me.meth = LOCATE_NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AClosureCallExpr();
+  /* ./parser//parser_prod.nit:8078 */
+  INIT_ATTRIBUTES__AClosureCallExpr(fra.me.REG[0]);
+  parser_prod___AClosureCallExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AClosureCallExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8080;
+  fra.me.meth = LOCATE_NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AClosureCallExpr();
+  /* ./parser//parser_prod.nit:8080 */
+  INIT_ATTRIBUTES__AClosureCallExpr(fra.me.REG[3]);
+  parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AClosureCallExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_AVarExpr[88] = {
+  {(bigint) 6431 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AVarExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AVarExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AVarExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6115 /* 5: AVarExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AVarExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6431 /* 7: AVarExpr < AVarExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AVarExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35046,7 +77807,6 @@ const classtable_elt_t VFT_AVarExpr[85] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35054,104 +77814,209 @@ const classtable_elt_t VFT_AVarExpr[85] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AVarExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AVarExpr___visit_all},
   {(bigint) parser_prod___AVarExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AVarExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AVarExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AVarExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AVarExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AVarExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AVarExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AVarExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___AVarExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) syntax_base___AVarFormExpr___variable},
-  {(bigint) syntax_base___AVarFormExpr___variable__eq},
-  {(bigint) 4 /* 78: AVarExpr < AVarFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AVarExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AVarExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AVarExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___AVarFormExpr___variable},
+  {(bigint) 4 /* 82: AVarExpr < AVarFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AVarFormExpr___n_id},
   {(bigint) parser_prod___AVarExpr___n_id__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
   {(bigint) parser_prod___AVarExpr___empty_init},
   {(bigint) parser_prod___AVarExpr___init_avarexpr},
-  {(bigint) 5 /* 84: AVarExpr < AVarExpr: superclass init_table position */},
+  {(bigint) 5 /* 87: AVarExpr < AVarExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AVarExpr::_parent */
-/* 2: Attribute AVarExpr::_first_token */
-/* 3: Attribute AVarExpr::_last_token */
-/* 4: Attribute AVarExpr::_stype */
-/* 5: Attribute AVarExpr::_if_true_variable_ctx */
-/* 6: Attribute AVarExpr::_variable */
-/* 7: Attribute AVarExpr::_n_id */
-val_t NEW_AVarExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AVarExpr::_parent */
+/* 3: Attribute AVarExpr::_location */
+/* 4: Attribute AVarExpr::_first_location */
+/* 5: Attribute AVarExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AVarExpr::_is_typed */
+/* 8: Attribute AVarExpr::_stype */
+/* 9: Attribute AVarExpr::_if_true_variable_ctx */
+/* 10: Attribute AVarExpr::_if_false_variable_ctx */
+/* 11: Attribute AVarExpr::_variable */
+/* 12: Attribute AVarExpr::_n_id */
+void INIT_ATTRIBUTES__AVarExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AVarExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVarExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AVarExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AVarExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AVarExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AVarExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVarExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AVarExpr();
-  parser_prod___AVarExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AVarExpr___init_avarexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AVarExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AVarExpr();
+  INIT_ATTRIBUTES__AVarExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AVarExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AVarExpr_parser_prod___AVarExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AVarExpr();
-  parser_prod___AVarExpr___init_avarexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8176;
+  fra.me.meth = LOCATE_NEW_AVarExpr_parser_prod___AVarExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AVarExpr();
+  /* ./parser//parser_prod.nit:8176 */
+  INIT_ATTRIBUTES__AVarExpr(fra.me.REG[0]);
+  parser_prod___AVarExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AVarExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8178;
+  fra.me.meth = LOCATE_NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr;
+  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;
+  fra.me.REG[1] = NEW_AVarExpr();
+  /* ./parser//parser_prod.nit:8178 */
+  INIT_ATTRIBUTES__AVarExpr(fra.me.REG[1]);
+  parser_prod___AVarExpr___init_avarexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AVarExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
 const classtable_elt_t VFT_AVarAssignExpr[90] = {
-  {(bigint) 3667 /* 0: Identity */},
-  {(bigint) 3 /* 1: AVarAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AVarAssignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AVarAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AVarAssignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3335 /* 5: AVarAssignExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 3591 /* 6: AVarAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 3667 /* 7: AVarAssignExpr < AVarAssignExpr: superclass typecheck marker */},
+  {(bigint) 6435 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AVarAssignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AVarAssignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AVarAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6115 /* 5: AVarAssignExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AVarAssignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6355 /* 7: AVarAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 6435 /* 8: AVarAssignExpr < AVarAssignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AVarAssignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AVarAssignExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35159,7 +78024,6 @@ const classtable_elt_t VFT_AVarAssignExpr[90] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35167,111 +78031,231 @@ const classtable_elt_t VFT_AVarAssignExpr[90] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AVarAssignExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AVarAssignExpr___visit_all},
   {(bigint) parser_prod___AVarAssignExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AVarAssignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AVarAssignExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AVarAssignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AVarAssignExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AVarAssignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AVarAssignExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AVarAssignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) syntax_base___AVarFormExpr___variable},
-  {(bigint) syntax_base___AVarFormExpr___variable__eq},
-  {(bigint) 4 /* 78: AVarAssignExpr < AVarFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) parser_prod___AVarAssignExpr___empty_init},
+  {(bigint) parser_prod___AVarAssignExpr___init_avarassignexpr},
+  {(bigint) 6 /* 70: AVarAssignExpr < AVarAssignExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AVarAssignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AVarAssignExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___AVarFormExpr___variable},
+  {(bigint) 4 /* 82: AVarAssignExpr < AVarFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AVarFormExpr___n_id},
   {(bigint) parser_prod___AVarAssignExpr___n_id__eq},
-  {(bigint) 5 /* 81: AVarAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(bigint) 5 /* 85: AVarAssignExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser_prod___AVarAssignExpr___n_assign__eq},
   {(bigint) parser_nodes___AAssignFormExpr___n_value},
   {(bigint) parser_prod___AVarAssignExpr___n_value__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) parser_prod___AVarAssignExpr___empty_init},
-  {(bigint) parser_prod___AVarAssignExpr___init_avarassignexpr},
-  {(bigint) 6 /* 89: AVarAssignExpr < AVarAssignExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AVarAssignExpr::_parent */
-/* 2: Attribute AVarAssignExpr::_first_token */
-/* 3: Attribute AVarAssignExpr::_last_token */
-/* 4: Attribute AVarAssignExpr::_stype */
-/* 5: Attribute AVarAssignExpr::_if_true_variable_ctx */
-/* 6: Attribute AVarAssignExpr::_variable */
-/* 7: Attribute AVarAssignExpr::_n_id */
-/* 8: Attribute AVarAssignExpr::_n_assign */
-/* 9: Attribute AVarAssignExpr::_n_value */
-val_t NEW_AVarAssignExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AVarAssignExpr::_parent */
+/* 3: Attribute AVarAssignExpr::_location */
+/* 4: Attribute AVarAssignExpr::_first_location */
+/* 5: Attribute AVarAssignExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AVarAssignExpr::_is_typed */
+/* 8: Attribute AVarAssignExpr::_stype */
+/* 9: Attribute AVarAssignExpr::_if_true_variable_ctx */
+/* 10: Attribute AVarAssignExpr::_if_false_variable_ctx */
+/* 11: Attribute AVarAssignExpr::_variable */
+/* 12: Attribute AVarAssignExpr::_n_id */
+/* 13: Attribute AVarAssignExpr::_n_assign */
+/* 14: Attribute AVarAssignExpr::_n_value */
+void INIT_ATTRIBUTES__AVarAssignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AVarAssignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVarAssignExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_AVarAssignExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AVarAssignExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AVarAssignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AVarAssignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVarAssignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AVarAssignExpr();
-  parser_prod___AVarAssignExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AVarAssignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AVarAssignExpr();
+  INIT_ATTRIBUTES__AVarAssignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AVarAssignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8228;
+  fra.me.meth = LOCATE_NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AVarAssignExpr();
+  /* ./parser//parser_prod.nit:8228 */
+  INIT_ATTRIBUTES__AVarAssignExpr(fra.me.REG[0]);
+  parser_prod___AVarAssignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AVarAssignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AVarAssignExpr();
-  parser_prod___AVarAssignExpr___init_avarassignexpr(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8230;
+  fra.me.meth = LOCATE_NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AVarAssignExpr();
+  /* ./parser//parser_prod.nit:8230 */
+  INIT_ATTRIBUTES__AVarAssignExpr(fra.me.REG[3]);
+  parser_prod___AVarAssignExpr___init_avarassignexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AVarAssignExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
 const classtable_elt_t VFT_AVarReassignExpr[92] = {
-  {(bigint) 3659 /* 0: Identity */},
-  {(bigint) 3 /* 1: AVarReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AVarReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AVarReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AVarReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3335 /* 5: AVarReassignExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 3391 /* 6: AVarReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3659 /* 7: AVarReassignExpr < AVarReassignExpr: superclass typecheck marker */},
+  {(bigint) 6427 /* 0: Identity */},
+  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AVarReassignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AVarReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AVarReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6115 /* 5: AVarReassignExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AVarReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6175 /* 7: AVarReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 6427 /* 8: AVarReassignExpr < AVarReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AVarReassignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AVarReassignExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35279,7 +78263,6 @@ const classtable_elt_t VFT_AVarReassignExpr[92] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35287,114 +78270,234 @@ const classtable_elt_t VFT_AVarReassignExpr[92] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AVarReassignExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AVarReassignExpr___visit_all},
   {(bigint) parser_prod___AVarReassignExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AVarReassignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___AVarReassignExpr___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AVarReassignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AVarReassignExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AVarReassignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AVarReassignExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AVarReassignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) syntax_base___AVarFormExpr___variable},
-  {(bigint) syntax_base___AVarFormExpr___variable__eq},
-  {(bigint) 4 /* 78: AVarReassignExpr < AVarFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) parser_prod___AVarReassignExpr___empty_init},
+  {(bigint) parser_prod___AVarReassignExpr___init_avarreassignexpr},
+  {(bigint) 6 /* 70: AVarReassignExpr < AVarReassignExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AVarReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AVarReassignExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___AVarFormExpr___variable},
+  {(bigint) 4 /* 82: AVarReassignExpr < AVarFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AVarFormExpr___n_id},
   {(bigint) parser_prod___AVarReassignExpr___n_id__eq},
-  {(bigint) typing___AReassignFormExpr___do_lvalue_typing},
+  {(bigint) typing___AReassignFormExpr___do_rvalue_typing},
   {(bigint) typing___AReassignFormExpr___assign_method},
-  {(bigint) 5 /* 83: AVarReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) 5 /* 87: AVarReassignExpr < AReassignFormExpr: superclass init_table position */},
   {(bigint) parser_nodes___AReassignFormExpr___n_assign_op},
   {(bigint) parser_prod___AVarReassignExpr___n_assign_op__eq},
   {(bigint) parser_nodes___AReassignFormExpr___n_value},
   {(bigint) parser_prod___AVarReassignExpr___n_value__eq},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) parser_prod___AVarReassignExpr___empty_init},
-  {(bigint) parser_prod___AVarReassignExpr___init_avarreassignexpr},
-  {(bigint) 6 /* 91: AVarReassignExpr < AVarReassignExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AVarReassignExpr::_parent */
-/* 2: Attribute AVarReassignExpr::_first_token */
-/* 3: Attribute AVarReassignExpr::_last_token */
-/* 4: Attribute AVarReassignExpr::_stype */
-/* 5: Attribute AVarReassignExpr::_if_true_variable_ctx */
-/* 6: Attribute AVarReassignExpr::_variable */
-/* 7: Attribute AVarReassignExpr::_n_id */
-/* 8: Attribute AVarReassignExpr::_assign_method */
-/* 9: Attribute AVarReassignExpr::_n_assign_op */
-/* 10: Attribute AVarReassignExpr::_n_value */
-val_t NEW_AVarReassignExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AVarReassignExpr::_parent */
+/* 3: Attribute AVarReassignExpr::_location */
+/* 4: Attribute AVarReassignExpr::_first_location */
+/* 5: Attribute AVarReassignExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AVarReassignExpr::_is_typed */
+/* 8: Attribute AVarReassignExpr::_stype */
+/* 9: Attribute AVarReassignExpr::_if_true_variable_ctx */
+/* 10: Attribute AVarReassignExpr::_if_false_variable_ctx */
+/* 11: Attribute AVarReassignExpr::_variable */
+/* 12: Attribute AVarReassignExpr::_n_id */
+/* 13: Attribute AVarReassignExpr::_assign_method */
+/* 14: Attribute AVarReassignExpr::_n_assign_op */
+/* 15: Attribute AVarReassignExpr::_n_value */
+void INIT_ATTRIBUTES__AVarReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AVarReassignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVarReassignExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
+  obj = alloc(sizeof(val_t) * 16);
   obj->vft = (classtable_elt_t*)VFT_AVarReassignExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AVarReassignExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AVarReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AVarReassignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign_op");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AVarReassignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AVarReassignExpr();
-  parser_prod___AVarReassignExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AVarReassignExpr();
+  INIT_ATTRIBUTES__AVarReassignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AVarReassignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AVarReassignExpr();
-  parser_prod___AVarReassignExpr___init_avarreassignexpr(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8310;
+  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AVarReassignExpr();
+  /* ./parser//parser_prod.nit:8310 */
+  INIT_ATTRIBUTES__AVarReassignExpr(fra.me.REG[0]);
+  parser_prod___AVarReassignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AVarReassignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8312;
+  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AVarReassignExpr();
+  /* ./parser//parser_prod.nit:8312 */
+  INIT_ATTRIBUTES__AVarReassignExpr(fra.me.REG[3]);
+  parser_prod___AVarReassignExpr___init_avarreassignexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AVarReassignExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ARangeExpr[84] = {
-  {(bigint) 3399 /* 0: Identity */},
-  {(bigint) 3 /* 1: ARangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ARangeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ARangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ARangeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3399 /* 5: ARangeExpr < ARangeExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ARangeExpr[88] = {
+  {(bigint) 6183 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ARangeExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ARangeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ARangeExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ARangeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6183 /* 7: ARangeExpr < ARangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ARangeExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ARangeExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35402,7 +78505,6 @@ const classtable_elt_t VFT_ARangeExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35410,103 +78512,218 @@ const classtable_elt_t VFT_ARangeExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ARangeExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ARangeExpr___visit_all},
   {(bigint) parser_prod___ARangeExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ARangeExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: ARangeExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ARangeExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ARangeExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ARangeExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ARangeExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___ARangeExpr___propname},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ARangeExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ARangeExpr___empty_init},
   {(bigint) parser_prod___ARangeExpr___init_arangeexpr},
-  {(bigint) 4 /* 79: ARangeExpr < ARangeExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: ARangeExpr < ARangeExpr: superclass init_table position */},
   {(bigint) parser_nodes___ARangeExpr___n_expr},
   {(bigint) parser_prod___ARangeExpr___n_expr__eq},
   {(bigint) parser_nodes___ARangeExpr___n_expr2},
   {(bigint) parser_prod___ARangeExpr___n_expr2__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ARangeExpr::_parent */
-/* 2: Attribute ARangeExpr::_first_token */
-/* 3: Attribute ARangeExpr::_last_token */
-/* 4: Attribute ARangeExpr::_stype */
-/* 5: Attribute ARangeExpr::_if_true_variable_ctx */
-/* 6: Attribute ARangeExpr::_n_expr */
-/* 7: Attribute ARangeExpr::_n_expr2 */
-val_t NEW_ARangeExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ARangeExpr::_parent */
+/* 3: Attribute ARangeExpr::_location */
+/* 4: Attribute ARangeExpr::_first_location */
+/* 5: Attribute ARangeExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ARangeExpr::_is_typed */
+/* 8: Attribute ARangeExpr::_stype */
+/* 9: Attribute ARangeExpr::_if_true_variable_ctx */
+/* 10: Attribute ARangeExpr::_if_false_variable_ctx */
+/* 11: Attribute ARangeExpr::_n_expr */
+/* 12: Attribute ARangeExpr::_n_expr2 */
+void INIT_ATTRIBUTES__ARangeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ARangeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ARangeExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_ARangeExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ARangeExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ARangeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ARangeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ARangeExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ARangeExpr();
-  parser_prod___ARangeExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ARangeExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ARangeExpr();
+  INIT_ATTRIBUTES__ARangeExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ARangeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ARangeExpr_parser_prod___ARangeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ARangeExpr();
-  parser_prod___ARangeExpr___init_arangeexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8387;
+  fra.me.meth = LOCATE_NEW_ARangeExpr_parser_prod___ARangeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ARangeExpr();
+  /* ./parser//parser_prod.nit:8387 */
+  INIT_ATTRIBUTES__ARangeExpr(fra.me.REG[0]);
+  parser_prod___ARangeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ARangeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ARangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8389;
+  fra.me.meth = LOCATE_NEW_ARangeExpr_parser_prod___ARangeExpr___init_arangeexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ARangeExpr();
+  /* ./parser//parser_prod.nit:8389 */
+  INIT_ATTRIBUTES__ARangeExpr(fra.me.REG[2]);
+  parser_prod___ARangeExpr___init_arangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ARangeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ACrangeExpr[87] = {
-  {(bigint) 3751 /* 0: Identity */},
-  {(bigint) 3 /* 1: ACrangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ACrangeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ACrangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ACrangeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3399 /* 5: ACrangeExpr < ARangeExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 6: ACrangeExpr < ACrangeExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ACrangeExpr[91] = {
+  {(bigint) 6511 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ACrangeExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ACrangeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ACrangeExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ACrangeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6183 /* 7: ACrangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(bigint) 6511 /* 8: ACrangeExpr < ACrangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ACrangeExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ACrangeExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35514,7 +78731,6 @@ const classtable_elt_t VFT_ACrangeExpr[87] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35522,106 +78738,263 @@ const classtable_elt_t VFT_ACrangeExpr[87] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ACrangeExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ACrangeExpr___visit_all},
   {(bigint) parser_prod___ACrangeExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ACrangeExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: ACrangeExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ARangeExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ACrangeExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ARangeExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ACrangeExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___ACrangeExpr___propname},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ACrangeExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ACrangeExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ARangeExpr___empty_init},
   {(bigint) parser_prod___ARangeExpr___init_arangeexpr},
-  {(bigint) 4 /* 79: ACrangeExpr < ARangeExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: ACrangeExpr < ARangeExpr: superclass init_table position */},
   {(bigint) parser_nodes___ARangeExpr___n_expr},
   {(bigint) parser_prod___ACrangeExpr___n_expr__eq},
   {(bigint) parser_nodes___ARangeExpr___n_expr2},
   {(bigint) parser_prod___ACrangeExpr___n_expr2__eq},
   {(bigint) parser_prod___ACrangeExpr___empty_init},
   {(bigint) parser_prod___ACrangeExpr___init_acrangeexpr},
-  {(bigint) 5 /* 86: ACrangeExpr < ACrangeExpr: superclass init_table position */},
+  {(bigint) 5 /* 90: ACrangeExpr < ACrangeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ACrangeExpr::_parent */
-/* 2: Attribute ACrangeExpr::_first_token */
-/* 3: Attribute ACrangeExpr::_last_token */
-/* 4: Attribute ACrangeExpr::_stype */
-/* 5: Attribute ACrangeExpr::_if_true_variable_ctx */
-/* 6: Attribute ACrangeExpr::_n_expr */
-/* 7: Attribute ACrangeExpr::_n_expr2 */
-val_t NEW_ACrangeExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ACrangeExpr::_parent */
+/* 3: Attribute ACrangeExpr::_location */
+/* 4: Attribute ACrangeExpr::_first_location */
+/* 5: Attribute ACrangeExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ACrangeExpr::_is_typed */
+/* 8: Attribute ACrangeExpr::_stype */
+/* 9: Attribute ACrangeExpr::_if_true_variable_ctx */
+/* 10: Attribute ACrangeExpr::_if_false_variable_ctx */
+/* 11: Attribute ACrangeExpr::_n_expr */
+/* 12: Attribute ACrangeExpr::_n_expr2 */
+void INIT_ATTRIBUTES__ACrangeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ACrangeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACrangeExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_ACrangeExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ACrangeExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ACrangeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ACrangeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACrangeExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ACrangeExpr();
-  parser_prod___ACrangeExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ACrangeExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ACrangeExpr();
+  INIT_ATTRIBUTES__ACrangeExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACrangeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACrangeExpr_parser_prod___ARangeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ACrangeExpr();
-  parser_prod___ACrangeExpr___init_acrangeexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8387;
+  fra.me.meth = LOCATE_NEW_ACrangeExpr_parser_prod___ARangeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACrangeExpr();
+  /* ./parser//parser_prod.nit:8387 */
+  INIT_ATTRIBUTES__ACrangeExpr(fra.me.REG[0]);
+  parser_prod___ARangeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACrangeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACrangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8389;
+  fra.me.meth = LOCATE_NEW_ACrangeExpr_parser_prod___ARangeExpr___init_arangeexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ACrangeExpr();
+  /* ./parser//parser_prod.nit:8389 */
+  INIT_ATTRIBUTES__ACrangeExpr(fra.me.REG[2]);
+  parser_prod___ARangeExpr___init_arangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ACrangeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8449;
+  fra.me.meth = LOCATE_NEW_ACrangeExpr_parser_prod___ACrangeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACrangeExpr();
+  /* ./parser//parser_prod.nit:8449 */
+  INIT_ATTRIBUTES__ACrangeExpr(fra.me.REG[0]);
+  parser_prod___ACrangeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACrangeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8451;
+  fra.me.meth = LOCATE_NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ACrangeExpr();
+  /* ./parser//parser_prod.nit:8451 */
+  INIT_ATTRIBUTES__ACrangeExpr(fra.me.REG[2]);
+  parser_prod___ACrangeExpr___init_acrangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ACrangeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AOrangeExpr[87] = {
-  {(bigint) 3691 /* 0: Identity */},
-  {(bigint) 3 /* 1: AOrangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AOrangeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AOrangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AOrangeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3399 /* 5: AOrangeExpr < ARangeExpr: superclass typecheck marker */},
-  {(bigint) 3691 /* 6: AOrangeExpr < AOrangeExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AOrangeExpr[91] = {
+  {(bigint) 6455 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AOrangeExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AOrangeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AOrangeExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AOrangeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6183 /* 7: AOrangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(bigint) 6455 /* 8: AOrangeExpr < AOrangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AOrangeExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AOrangeExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35629,7 +79002,6 @@ const classtable_elt_t VFT_AOrangeExpr[87] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35637,106 +79009,263 @@ const classtable_elt_t VFT_AOrangeExpr[87] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AOrangeExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AOrangeExpr___visit_all},
   {(bigint) parser_prod___AOrangeExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AOrangeExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AOrangeExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ARangeExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AOrangeExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ARangeExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AOrangeExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AOrangeExpr___propname},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AOrangeExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AOrangeExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ARangeExpr___empty_init},
   {(bigint) parser_prod___ARangeExpr___init_arangeexpr},
-  {(bigint) 4 /* 79: AOrangeExpr < ARangeExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: AOrangeExpr < ARangeExpr: superclass init_table position */},
   {(bigint) parser_nodes___ARangeExpr___n_expr},
   {(bigint) parser_prod___AOrangeExpr___n_expr__eq},
   {(bigint) parser_nodes___ARangeExpr___n_expr2},
   {(bigint) parser_prod___AOrangeExpr___n_expr2__eq},
   {(bigint) parser_prod___AOrangeExpr___empty_init},
   {(bigint) parser_prod___AOrangeExpr___init_aorangeexpr},
-  {(bigint) 5 /* 86: AOrangeExpr < AOrangeExpr: superclass init_table position */},
+  {(bigint) 5 /* 90: AOrangeExpr < AOrangeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AOrangeExpr::_parent */
-/* 2: Attribute AOrangeExpr::_first_token */
-/* 3: Attribute AOrangeExpr::_last_token */
-/* 4: Attribute AOrangeExpr::_stype */
-/* 5: Attribute AOrangeExpr::_if_true_variable_ctx */
-/* 6: Attribute AOrangeExpr::_n_expr */
-/* 7: Attribute AOrangeExpr::_n_expr2 */
-val_t NEW_AOrangeExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AOrangeExpr::_parent */
+/* 3: Attribute AOrangeExpr::_location */
+/* 4: Attribute AOrangeExpr::_first_location */
+/* 5: Attribute AOrangeExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AOrangeExpr::_is_typed */
+/* 8: Attribute AOrangeExpr::_stype */
+/* 9: Attribute AOrangeExpr::_if_true_variable_ctx */
+/* 10: Attribute AOrangeExpr::_if_false_variable_ctx */
+/* 11: Attribute AOrangeExpr::_n_expr */
+/* 12: Attribute AOrangeExpr::_n_expr2 */
+void INIT_ATTRIBUTES__AOrangeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AOrangeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AOrangeExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AOrangeExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AOrangeExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AOrangeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AOrangeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AOrangeExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AOrangeExpr();
-  parser_prod___AOrangeExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AOrangeExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AOrangeExpr();
+  INIT_ATTRIBUTES__AOrangeExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AOrangeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AOrangeExpr_parser_prod___ARangeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AOrangeExpr();
-  parser_prod___AOrangeExpr___init_aorangeexpr(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8387;
+  fra.me.meth = LOCATE_NEW_AOrangeExpr_parser_prod___ARangeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AOrangeExpr();
+  /* ./parser//parser_prod.nit:8387 */
+  INIT_ATTRIBUTES__AOrangeExpr(fra.me.REG[0]);
+  parser_prod___ARangeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AOrangeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AOrangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8389;
+  fra.me.meth = LOCATE_NEW_AOrangeExpr_parser_prod___ARangeExpr___init_arangeexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AOrangeExpr();
+  /* ./parser//parser_prod.nit:8389 */
+  INIT_ATTRIBUTES__AOrangeExpr(fra.me.REG[2]);
+  parser_prod___ARangeExpr___init_arangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AOrangeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8511;
+  fra.me.meth = LOCATE_NEW_AOrangeExpr_parser_prod___AOrangeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AOrangeExpr();
+  /* ./parser//parser_prod.nit:8511 */
+  INIT_ATTRIBUTES__AOrangeExpr(fra.me.REG[0]);
+  parser_prod___AOrangeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AOrangeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8513;
+  fra.me.meth = LOCATE_NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AOrangeExpr();
+  /* ./parser//parser_prod.nit:8513 */
+  INIT_ATTRIBUTES__AOrangeExpr(fra.me.REG[2]);
+  parser_prod___AOrangeExpr___init_aorangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AOrangeExpr(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_AArrayExpr[82] = {
-  {(bigint) 3603 /* 0: Identity */},
-  {(bigint) 3 /* 1: AArrayExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AArrayExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AArrayExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AArrayExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3603 /* 5: AArrayExpr < AArrayExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AArrayExpr[87] = {
+  {(bigint) 6367 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AArrayExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AArrayExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AArrayExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AArrayExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6367 /* 7: AArrayExpr < AArrayExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AArrayExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AArrayExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35744,7 +79273,6 @@ const classtable_elt_t VFT_AArrayExpr[82] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35752,100 +79280,211 @@ const classtable_elt_t VFT_AArrayExpr[82] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AArrayExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AArrayExpr___visit_all},
   {(bigint) parser_prod___AArrayExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AArrayExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AArrayExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AArrayExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AArrayExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AArrayExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AArrayExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) typing___AArrayExpr___stype__eq},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AArrayExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AArrayExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___AArrayExpr___do_typing},
   {(bigint) parser_prod___AArrayExpr___empty_init},
   {(bigint) parser_prod___AArrayExpr___init_aarrayexpr},
-  {(bigint) 4 /* 79: AArrayExpr < AArrayExpr: superclass init_table position */},
+  {(bigint) 4 /* 84: AArrayExpr < AArrayExpr: superclass init_table position */},
   {(bigint) parser_nodes___AArrayExpr___n_exprs},
   {(bigint) parser_nodes___AArrayExpr___n_exprs__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AArrayExpr::_parent */
-/* 2: Attribute AArrayExpr::_first_token */
-/* 3: Attribute AArrayExpr::_last_token */
-/* 4: Attribute AArrayExpr::_stype */
-/* 5: Attribute AArrayExpr::_if_true_variable_ctx */
-/* 6: Attribute AArrayExpr::_n_exprs */
-val_t NEW_AArrayExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AArrayExpr::_parent */
+/* 3: Attribute AArrayExpr::_location */
+/* 4: Attribute AArrayExpr::_first_location */
+/* 5: Attribute AArrayExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AArrayExpr::_is_typed */
+/* 8: Attribute AArrayExpr::_stype */
+/* 9: Attribute AArrayExpr::_if_true_variable_ctx */
+/* 10: Attribute AArrayExpr::_if_false_variable_ctx */
+/* 11: Attribute AArrayExpr::_n_exprs */
+void INIT_ATTRIBUTES__AArrayExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AArrayExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:848 */
+  ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AArrayExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AArrayExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AArrayExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AArrayExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AArrayExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AArrayExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AArrayExpr();
-  parser_prod___AArrayExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AArrayExpr___init_aarrayexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AArrayExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AArrayExpr();
+  INIT_ATTRIBUTES__AArrayExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AArrayExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AArrayExpr_parser_prod___AArrayExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AArrayExpr();
-  parser_prod___AArrayExpr___init_aarrayexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8563;
+  fra.me.meth = LOCATE_NEW_AArrayExpr_parser_prod___AArrayExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AArrayExpr();
+  /* ./parser//parser_prod.nit:8563 */
+  INIT_ATTRIBUTES__AArrayExpr(fra.me.REG[0]);
+  parser_prod___AArrayExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AArrayExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8565;
+  fra.me.meth = LOCATE_NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr;
+  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;
+  fra.me.REG[1] = NEW_AArrayExpr();
+  /* ./parser//parser_prod.nit:8565 */
+  INIT_ATTRIBUTES__AArrayExpr(fra.me.REG[1]);
+  parser_prod___AArrayExpr___init_aarrayexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AArrayExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ASelfExpr[81] = {
-  {(bigint) 3383 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASelfExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASelfExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASelfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ASelfExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3383 /* 5: ASelfExpr < ASelfExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ASelfExpr[87] = {
+  {(bigint) 6167 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASelfExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASelfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASelfExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ASelfExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6167 /* 7: ASelfExpr < ASelfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ASelfExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ASelfExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35853,7 +79492,6 @@ const classtable_elt_t VFT_ASelfExpr[81] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35861,99 +79499,201 @@ const classtable_elt_t VFT_ASelfExpr[81] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASelfExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASelfExpr___visit_all},
   {(bigint) parser_prod___ASelfExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ASelfExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: ASelfExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASelfExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ASelfExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASelfExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ASelfExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ASelfExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASelfExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
   {(bigint) typing___ASelfExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) typing___ASelfExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___ASelfExpr___variable},
   {(bigint) parser_prod___ASelfExpr___empty_init},
   {(bigint) parser_prod___ASelfExpr___init_aselfexpr},
-  {(bigint) 4 /* 78: ASelfExpr < ASelfExpr: superclass init_table position */},
+  {(bigint) 4 /* 84: ASelfExpr < ASelfExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASelfExpr___n_kwself},
   {(bigint) parser_prod___ASelfExpr___n_kwself__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASelfExpr::_parent */
-/* 2: Attribute ASelfExpr::_first_token */
-/* 3: Attribute ASelfExpr::_last_token */
-/* 4: Attribute ASelfExpr::_stype */
-/* 5: Attribute ASelfExpr::_if_true_variable_ctx */
-/* 6: Attribute ASelfExpr::_n_kwself */
-val_t NEW_ASelfExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ASelfExpr::_parent */
+/* 3: Attribute ASelfExpr::_location */
+/* 4: Attribute ASelfExpr::_first_location */
+/* 5: Attribute ASelfExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ASelfExpr::_is_typed */
+/* 8: Attribute ASelfExpr::_stype */
+/* 9: Attribute ASelfExpr::_if_true_variable_ctx */
+/* 10: Attribute ASelfExpr::_if_false_variable_ctx */
+/* 11: Attribute ASelfExpr::_variable */
+/* 12: Attribute ASelfExpr::_n_kwself */
+void INIT_ATTRIBUTES__ASelfExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASelfExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASelfExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_ASelfExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ASelfExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASelfExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASelfExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASelfExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASelfExpr();
-  parser_prod___ASelfExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ASelfExpr___init_aselfexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASelfExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASelfExpr();
+  INIT_ATTRIBUTES__ASelfExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASelfExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASelfExpr_parser_prod___ASelfExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASelfExpr();
-  parser_prod___ASelfExpr___init_aselfexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8618;
+  fra.me.meth = LOCATE_NEW_ASelfExpr_parser_prod___ASelfExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASelfExpr();
+  /* ./parser//parser_prod.nit:8618 */
+  INIT_ATTRIBUTES__ASelfExpr(fra.me.REG[0]);
+  parser_prod___ASelfExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASelfExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8620;
+  fra.me.meth = LOCATE_NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr;
+  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;
+  fra.me.REG[1] = NEW_ASelfExpr();
+  /* ./parser//parser_prod.nit:8620 */
+  INIT_ATTRIBUTES__ASelfExpr(fra.me.REG[1]);
+  parser_prod___ASelfExpr___init_aselfexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASelfExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AImplicitSelfExpr[84] = {
-  {(bigint) 3723 /* 0: Identity */},
-  {(bigint) 3 /* 1: AImplicitSelfExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AImplicitSelfExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AImplicitSelfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AImplicitSelfExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3383 /* 5: AImplicitSelfExpr < ASelfExpr: superclass typecheck marker */},
-  {(bigint) 3723 /* 6: AImplicitSelfExpr < AImplicitSelfExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AImplicitSelfExpr[90] = {
+  {(bigint) 6487 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AImplicitSelfExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AImplicitSelfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AImplicitSelfExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AImplicitSelfExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6167 /* 7: AImplicitSelfExpr < ASelfExpr: superclass typecheck marker */},
+  {(bigint) 6487 /* 8: AImplicitSelfExpr < AImplicitSelfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AImplicitSelfExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AImplicitSelfExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -35961,7 +79701,6 @@ const classtable_elt_t VFT_AImplicitSelfExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -35969,102 +79708,242 @@ const classtable_elt_t VFT_AImplicitSelfExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AImplicitSelfExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AImplicitSelfExpr___visit_all},
   {(bigint) parser_prod___AImplicitSelfExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AImplicitSelfExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AImplicitSelfExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASelfExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AImplicitSelfExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASelfExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AImplicitSelfExpr < PExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AImplicitSelfExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASelfExpr___generate_icode},
   {(bigint) typing___AImplicitSelfExpr___is_implicit_self},
   {(bigint) typing___ASelfExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) typing___ASelfExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___ASelfExpr___variable},
   {(bigint) parser_prod___ASelfExpr___empty_init},
   {(bigint) parser_prod___ASelfExpr___init_aselfexpr},
-  {(bigint) 4 /* 78: AImplicitSelfExpr < ASelfExpr: superclass init_table position */},
+  {(bigint) 4 /* 84: AImplicitSelfExpr < ASelfExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASelfExpr___n_kwself},
   {(bigint) parser_prod___ASelfExpr___n_kwself__eq},
   {(bigint) parser_prod___AImplicitSelfExpr___empty_init},
   {(bigint) parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr},
-  {(bigint) 5 /* 83: AImplicitSelfExpr < AImplicitSelfExpr: superclass init_table position */},
+  {(bigint) 5 /* 89: AImplicitSelfExpr < AImplicitSelfExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AImplicitSelfExpr::_parent */
-/* 2: Attribute AImplicitSelfExpr::_first_token */
-/* 3: Attribute AImplicitSelfExpr::_last_token */
-/* 4: Attribute AImplicitSelfExpr::_stype */
-/* 5: Attribute AImplicitSelfExpr::_if_true_variable_ctx */
-/* 6: Attribute AImplicitSelfExpr::_n_kwself */
-val_t NEW_AImplicitSelfExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AImplicitSelfExpr::_parent */
+/* 3: Attribute AImplicitSelfExpr::_location */
+/* 4: Attribute AImplicitSelfExpr::_first_location */
+/* 5: Attribute AImplicitSelfExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AImplicitSelfExpr::_is_typed */
+/* 8: Attribute AImplicitSelfExpr::_stype */
+/* 9: Attribute AImplicitSelfExpr::_if_true_variable_ctx */
+/* 10: Attribute AImplicitSelfExpr::_if_false_variable_ctx */
+/* 11: Attribute AImplicitSelfExpr::_variable */
+/* 12: Attribute AImplicitSelfExpr::_n_kwself */
+void INIT_ATTRIBUTES__AImplicitSelfExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AImplicitSelfExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AImplicitSelfExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AImplicitSelfExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AImplicitSelfExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AImplicitSelfExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AImplicitSelfExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AImplicitSelfExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AImplicitSelfExpr();
-  parser_prod___AImplicitSelfExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr() {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AImplicitSelfExpr();
+  INIT_ATTRIBUTES__AImplicitSelfExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AImplicitSelfExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AImplicitSelfExpr();
-  parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8618;
+  fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AImplicitSelfExpr();
+  /* ./parser//parser_prod.nit:8618 */
+  INIT_ATTRIBUTES__AImplicitSelfExpr(fra.me.REG[0]);
+  parser_prod___ASelfExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AImplicitSelfExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___init_aselfexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8620;
+  fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser_prod___ASelfExpr___init_aselfexpr;
+  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;
+  fra.me.REG[1] = NEW_AImplicitSelfExpr();
+  /* ./parser//parser_prod.nit:8620 */
+  INIT_ATTRIBUTES__AImplicitSelfExpr(fra.me.REG[1]);
+  parser_prod___ASelfExpr___init_aselfexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AImplicitSelfExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8655;
+  fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AImplicitSelfExpr();
+  /* ./parser//parser_prod.nit:8655 */
+  INIT_ATTRIBUTES__AImplicitSelfExpr(fra.me.REG[0]);
+  parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AImplicitSelfExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8657;
+  fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AImplicitSelfExpr();
+  /* ./parser//parser_prod.nit:8657 */
+  INIT_ATTRIBUTES__AImplicitSelfExpr(fra.me.REG[0]);
+  parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(fra.me.REG[0], init_table);
+  CHECKNEW_AImplicitSelfExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ATrueExpr[82] = {
-  {(bigint) 3671 /* 0: Identity */},
-  {(bigint) 3 /* 1: ATrueExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ATrueExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ATrueExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ATrueExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3567 /* 5: ATrueExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3671 /* 6: ATrueExpr < ATrueExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ATrueExpr[86] = {
+  {(bigint) 6439 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ATrueExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ATrueExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ATrueExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ATrueExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6335 /* 7: ATrueExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 6439 /* 8: ATrueExpr < ATrueExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ATrueExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ATrueExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36072,7 +79951,6 @@ const classtable_elt_t VFT_ATrueExpr[82] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36080,100 +79958,206 @@ const classtable_elt_t VFT_ATrueExpr[82] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ATrueExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ATrueExpr___visit_all},
   {(bigint) parser_prod___ATrueExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ATrueExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: ATrueExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ABoolExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ATrueExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ATrueExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ATrueExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: ATrueExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 70: ATrueExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ATrueExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ATrueExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ATrueExpr___empty_init},
   {(bigint) parser_prod___ATrueExpr___init_atrueexpr},
-  {(bigint) 5 /* 79: ATrueExpr < ATrueExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: ATrueExpr < ATrueExpr: superclass init_table position */},
   {(bigint) parser_nodes___ATrueExpr___n_kwtrue},
   {(bigint) parser_prod___ATrueExpr___n_kwtrue__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ATrueExpr::_parent */
-/* 2: Attribute ATrueExpr::_first_token */
-/* 3: Attribute ATrueExpr::_last_token */
-/* 4: Attribute ATrueExpr::_stype */
-/* 5: Attribute ATrueExpr::_if_true_variable_ctx */
-/* 6: Attribute ATrueExpr::_n_kwtrue */
-val_t NEW_ATrueExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ATrueExpr::_parent */
+/* 3: Attribute ATrueExpr::_location */
+/* 4: Attribute ATrueExpr::_first_location */
+/* 5: Attribute ATrueExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ATrueExpr::_is_typed */
+/* 8: Attribute ATrueExpr::_stype */
+/* 9: Attribute ATrueExpr::_if_true_variable_ctx */
+/* 10: Attribute ATrueExpr::_if_false_variable_ctx */
+/* 11: Attribute ATrueExpr::_n_kwtrue */
+void INIT_ATTRIBUTES__ATrueExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ATrueExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ATrueExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_ATrueExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ATrueExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ATrueExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ATrueExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwtrue");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ATrueExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ATrueExpr();
-  parser_prod___ATrueExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ATrueExpr___init_atrueexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ATrueExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ATrueExpr();
+  INIT_ATTRIBUTES__ATrueExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ATrueExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ATrueExpr_parser_prod___ATrueExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8681;
+  fra.me.meth = LOCATE_NEW_ATrueExpr_parser_prod___ATrueExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ATrueExpr();
+  /* ./parser//parser_prod.nit:8681 */
+  INIT_ATTRIBUTES__ATrueExpr(fra.me.REG[0]);
+  parser_prod___ATrueExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ATrueExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_ATrueExpr();
-  parser_prod___ATrueExpr___init_atrueexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8683;
+  fra.me.meth = LOCATE_NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr;
+  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;
+  fra.me.REG[1] = NEW_ATrueExpr();
+  /* ./parser//parser_prod.nit:8683 */
+  INIT_ATTRIBUTES__ATrueExpr(fra.me.REG[1]);
+  parser_prod___ATrueExpr___init_atrueexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ATrueExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AFalseExpr[82] = {
-  {(bigint) 3731 /* 0: Identity */},
-  {(bigint) 3 /* 1: AFalseExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AFalseExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AFalseExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AFalseExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3567 /* 5: AFalseExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3731 /* 6: AFalseExpr < AFalseExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AFalseExpr[86] = {
+  {(bigint) 6491 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AFalseExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AFalseExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AFalseExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AFalseExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6335 /* 7: AFalseExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 6491 /* 8: AFalseExpr < AFalseExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AFalseExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AFalseExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36181,7 +80165,6 @@ const classtable_elt_t VFT_AFalseExpr[82] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36189,100 +80172,206 @@ const classtable_elt_t VFT_AFalseExpr[82] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AFalseExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AFalseExpr___visit_all},
   {(bigint) parser_prod___AFalseExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AFalseExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AFalseExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ABoolExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AFalseExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AFalseExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AFalseExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: AFalseExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 70: AFalseExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AFalseExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AFalseExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AFalseExpr___empty_init},
   {(bigint) parser_prod___AFalseExpr___init_afalseexpr},
-  {(bigint) 5 /* 79: AFalseExpr < AFalseExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AFalseExpr < AFalseExpr: superclass init_table position */},
   {(bigint) parser_nodes___AFalseExpr___n_kwfalse},
   {(bigint) parser_prod___AFalseExpr___n_kwfalse__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AFalseExpr::_parent */
-/* 2: Attribute AFalseExpr::_first_token */
-/* 3: Attribute AFalseExpr::_last_token */
-/* 4: Attribute AFalseExpr::_stype */
-/* 5: Attribute AFalseExpr::_if_true_variable_ctx */
-/* 6: Attribute AFalseExpr::_n_kwfalse */
-val_t NEW_AFalseExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AFalseExpr::_parent */
+/* 3: Attribute AFalseExpr::_location */
+/* 4: Attribute AFalseExpr::_first_location */
+/* 5: Attribute AFalseExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AFalseExpr::_is_typed */
+/* 8: Attribute AFalseExpr::_stype */
+/* 9: Attribute AFalseExpr::_if_true_variable_ctx */
+/* 10: Attribute AFalseExpr::_if_false_variable_ctx */
+/* 11: Attribute AFalseExpr::_n_kwfalse */
+void INIT_ATTRIBUTES__AFalseExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AFalseExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AFalseExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AFalseExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AFalseExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AFalseExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AFalseExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwfalse");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AFalseExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AFalseExpr();
-  parser_prod___AFalseExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AFalseExpr___init_afalseexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AFalseExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AFalseExpr();
+  INIT_ATTRIBUTES__AFalseExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AFalseExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AFalseExpr_parser_prod___AFalseExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AFalseExpr();
-  parser_prod___AFalseExpr___init_afalseexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8723;
+  fra.me.meth = LOCATE_NEW_AFalseExpr_parser_prod___AFalseExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AFalseExpr();
+  /* ./parser//parser_prod.nit:8723 */
+  INIT_ATTRIBUTES__AFalseExpr(fra.me.REG[0]);
+  parser_prod___AFalseExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AFalseExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8725;
+  fra.me.meth = LOCATE_NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr;
+  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;
+  fra.me.REG[1] = NEW_AFalseExpr();
+  /* ./parser//parser_prod.nit:8725 */
+  INIT_ATTRIBUTES__AFalseExpr(fra.me.REG[1]);
+  parser_prod___AFalseExpr___init_afalseexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AFalseExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ANullExpr[81] = {
-  {(bigint) 3443 /* 0: Identity */},
-  {(bigint) 3 /* 1: ANullExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ANullExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ANullExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ANullExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3443 /* 5: ANullExpr < ANullExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ANullExpr[86] = {
+  {(bigint) 6215 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ANullExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ANullExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ANullExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ANullExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6215 /* 7: ANullExpr < ANullExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ANullExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ANullExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36290,7 +80379,6 @@ const classtable_elt_t VFT_ANullExpr[81] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36298,99 +80386,206 @@ const classtable_elt_t VFT_ANullExpr[81] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ANullExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ANullExpr___visit_all},
   {(bigint) parser_prod___ANullExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ANullExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: ANullExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ANullExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ANullExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ANullExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ANullExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ANullExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ANullExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ANullExpr___empty_init},
   {(bigint) parser_prod___ANullExpr___init_anullexpr},
-  {(bigint) 4 /* 78: ANullExpr < ANullExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: ANullExpr < ANullExpr: superclass init_table position */},
   {(bigint) parser_nodes___ANullExpr___n_kwnull},
   {(bigint) parser_prod___ANullExpr___n_kwnull__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ANullExpr::_parent */
-/* 2: Attribute ANullExpr::_first_token */
-/* 3: Attribute ANullExpr::_last_token */
-/* 4: Attribute ANullExpr::_stype */
-/* 5: Attribute ANullExpr::_if_true_variable_ctx */
-/* 6: Attribute ANullExpr::_n_kwnull */
-val_t NEW_ANullExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ANullExpr::_parent */
+/* 3: Attribute ANullExpr::_location */
+/* 4: Attribute ANullExpr::_first_location */
+/* 5: Attribute ANullExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ANullExpr::_is_typed */
+/* 8: Attribute ANullExpr::_stype */
+/* 9: Attribute ANullExpr::_if_true_variable_ctx */
+/* 10: Attribute ANullExpr::_if_false_variable_ctx */
+/* 11: Attribute ANullExpr::_n_kwnull */
+void INIT_ATTRIBUTES__ANullExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ANullExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANullExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_ANullExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ANullExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ANullExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ANullExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwnull");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANullExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ANullExpr();
-  parser_prod___ANullExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ANullExpr___init_anullexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ANullExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ANullExpr();
+  INIT_ATTRIBUTES__ANullExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANullExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ANullExpr_parser_prod___ANullExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ANullExpr();
-  parser_prod___ANullExpr___init_anullexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8765;
+  fra.me.meth = LOCATE_NEW_ANullExpr_parser_prod___ANullExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ANullExpr();
+  /* ./parser//parser_prod.nit:8765 */
+  INIT_ATTRIBUTES__ANullExpr(fra.me.REG[0]);
+  parser_prod___ANullExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ANullExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8767;
+  fra.me.meth = LOCATE_NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr;
+  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;
+  fra.me.REG[1] = NEW_ANullExpr();
+  /* ./parser//parser_prod.nit:8767 */
+  INIT_ATTRIBUTES__ANullExpr(fra.me.REG[1]);
+  parser_prod___ANullExpr___init_anullexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ANullExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AIntExpr[81] = {
-  {(bigint) 3491 /* 0: Identity */},
-  {(bigint) 3 /* 1: AIntExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AIntExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AIntExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AIntExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3491 /* 5: AIntExpr < AIntExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AIntExpr[86] = {
+  {(bigint) 6263 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AIntExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AIntExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AIntExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AIntExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6263 /* 7: AIntExpr < AIntExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AIntExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AIntExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36398,7 +80593,6 @@ const classtable_elt_t VFT_AIntExpr[81] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36406,99 +80600,206 @@ const classtable_elt_t VFT_AIntExpr[81] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AIntExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AIntExpr___visit_all},
   {(bigint) parser_prod___AIntExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AIntExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AIntExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AIntExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AIntExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AIntExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AIntExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AIntExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AIntExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AIntExpr___empty_init},
   {(bigint) parser_prod___AIntExpr___init_aintexpr},
-  {(bigint) 4 /* 78: AIntExpr < AIntExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: AIntExpr < AIntExpr: superclass init_table position */},
   {(bigint) parser_nodes___AIntExpr___n_number},
   {(bigint) parser_prod___AIntExpr___n_number__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AIntExpr::_parent */
-/* 2: Attribute AIntExpr::_first_token */
-/* 3: Attribute AIntExpr::_last_token */
-/* 4: Attribute AIntExpr::_stype */
-/* 5: Attribute AIntExpr::_if_true_variable_ctx */
-/* 6: Attribute AIntExpr::_n_number */
-val_t NEW_AIntExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AIntExpr::_parent */
+/* 3: Attribute AIntExpr::_location */
+/* 4: Attribute AIntExpr::_first_location */
+/* 5: Attribute AIntExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AIntExpr::_is_typed */
+/* 8: Attribute AIntExpr::_stype */
+/* 9: Attribute AIntExpr::_if_true_variable_ctx */
+/* 10: Attribute AIntExpr::_if_false_variable_ctx */
+/* 11: Attribute AIntExpr::_n_number */
+void INIT_ATTRIBUTES__AIntExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AIntExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIntExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AIntExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AIntExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AIntExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AIntExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_number");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIntExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIntExpr();
-  parser_prod___AIntExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AIntExpr___init_aintexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AIntExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AIntExpr();
+  INIT_ATTRIBUTES__AIntExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIntExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AIntExpr_parser_prod___AIntExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AIntExpr();
-  parser_prod___AIntExpr___init_aintexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8807;
+  fra.me.meth = LOCATE_NEW_AIntExpr_parser_prod___AIntExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AIntExpr();
+  /* ./parser//parser_prod.nit:8807 */
+  INIT_ATTRIBUTES__AIntExpr(fra.me.REG[0]);
+  parser_prod___AIntExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AIntExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8809;
+  fra.me.meth = LOCATE_NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr;
+  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;
+  fra.me.REG[1] = NEW_AIntExpr();
+  /* ./parser//parser_prod.nit:8809 */
+  INIT_ATTRIBUTES__AIntExpr(fra.me.REG[1]);
+  parser_prod___AIntExpr___init_aintexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIntExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AFloatExpr[81] = {
-  {(bigint) 3527 /* 0: Identity */},
-  {(bigint) 3 /* 1: AFloatExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AFloatExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AFloatExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AFloatExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AFloatExpr < AFloatExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AFloatExpr[86] = {
+  {(bigint) 6291 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AFloatExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AFloatExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AFloatExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AFloatExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6291 /* 7: AFloatExpr < AFloatExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AFloatExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AFloatExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36506,7 +80807,6 @@ const classtable_elt_t VFT_AFloatExpr[81] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36514,99 +80814,206 @@ const classtable_elt_t VFT_AFloatExpr[81] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AFloatExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AFloatExpr___visit_all},
   {(bigint) parser_prod___AFloatExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AFloatExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AFloatExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AFloatExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AFloatExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AFloatExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AFloatExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AFloatExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AFloatExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AFloatExpr___empty_init},
   {(bigint) parser_prod___AFloatExpr___init_afloatexpr},
-  {(bigint) 4 /* 78: AFloatExpr < AFloatExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: AFloatExpr < AFloatExpr: superclass init_table position */},
   {(bigint) parser_nodes___AFloatExpr___n_float},
   {(bigint) parser_prod___AFloatExpr___n_float__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AFloatExpr::_parent */
-/* 2: Attribute AFloatExpr::_first_token */
-/* 3: Attribute AFloatExpr::_last_token */
-/* 4: Attribute AFloatExpr::_stype */
-/* 5: Attribute AFloatExpr::_if_true_variable_ctx */
-/* 6: Attribute AFloatExpr::_n_float */
-val_t NEW_AFloatExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AFloatExpr::_parent */
+/* 3: Attribute AFloatExpr::_location */
+/* 4: Attribute AFloatExpr::_first_location */
+/* 5: Attribute AFloatExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AFloatExpr::_is_typed */
+/* 8: Attribute AFloatExpr::_stype */
+/* 9: Attribute AFloatExpr::_if_true_variable_ctx */
+/* 10: Attribute AFloatExpr::_if_false_variable_ctx */
+/* 11: Attribute AFloatExpr::_n_float */
+void INIT_ATTRIBUTES__AFloatExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AFloatExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AFloatExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AFloatExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AFloatExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AFloatExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AFloatExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_float");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AFloatExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AFloatExpr();
-  parser_prod___AFloatExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AFloatExpr___init_afloatexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AFloatExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AFloatExpr();
+  INIT_ATTRIBUTES__AFloatExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AFloatExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AFloatExpr_parser_prod___AFloatExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AFloatExpr();
-  parser_prod___AFloatExpr___init_afloatexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8849;
+  fra.me.meth = LOCATE_NEW_AFloatExpr_parser_prod___AFloatExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AFloatExpr();
+  /* ./parser//parser_prod.nit:8849 */
+  INIT_ATTRIBUTES__AFloatExpr(fra.me.REG[0]);
+  parser_prod___AFloatExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AFloatExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8851;
+  fra.me.meth = LOCATE_NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr;
+  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;
+  fra.me.REG[1] = NEW_AFloatExpr();
+  /* ./parser//parser_prod.nit:8851 */
+  INIT_ATTRIBUTES__AFloatExpr(fra.me.REG[1]);
+  parser_prod___AFloatExpr___init_afloatexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AFloatExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ACharExpr[81] = {
-  {(bigint) 3555 /* 0: Identity */},
-  {(bigint) 3 /* 1: ACharExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ACharExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ACharExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ACharExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3555 /* 5: ACharExpr < ACharExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ACharExpr[86] = {
+  {(bigint) 6319 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ACharExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ACharExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ACharExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ACharExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6319 /* 7: ACharExpr < ACharExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ACharExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ACharExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36614,7 +81021,6 @@ const classtable_elt_t VFT_ACharExpr[81] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36622,99 +81028,206 @@ const classtable_elt_t VFT_ACharExpr[81] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ACharExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ACharExpr___visit_all},
   {(bigint) parser_prod___ACharExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ACharExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: ACharExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ACharExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ACharExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ACharExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ACharExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ACharExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ACharExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___ACharExpr___empty_init},
   {(bigint) parser_prod___ACharExpr___init_acharexpr},
-  {(bigint) 4 /* 78: ACharExpr < ACharExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: ACharExpr < ACharExpr: superclass init_table position */},
   {(bigint) parser_nodes___ACharExpr___n_char},
   {(bigint) parser_prod___ACharExpr___n_char__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ACharExpr::_parent */
-/* 2: Attribute ACharExpr::_first_token */
-/* 3: Attribute ACharExpr::_last_token */
-/* 4: Attribute ACharExpr::_stype */
-/* 5: Attribute ACharExpr::_if_true_variable_ctx */
-/* 6: Attribute ACharExpr::_n_char */
-val_t NEW_ACharExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ACharExpr::_parent */
+/* 3: Attribute ACharExpr::_location */
+/* 4: Attribute ACharExpr::_first_location */
+/* 5: Attribute ACharExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ACharExpr::_is_typed */
+/* 8: Attribute ACharExpr::_stype */
+/* 9: Attribute ACharExpr::_if_true_variable_ctx */
+/* 10: Attribute ACharExpr::_if_false_variable_ctx */
+/* 11: Attribute ACharExpr::_n_char */
+void INIT_ATTRIBUTES__ACharExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ACharExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACharExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_ACharExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ACharExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ACharExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ACharExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_char");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ACharExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ACharExpr();
-  parser_prod___ACharExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ACharExpr___init_acharexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ACharExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ACharExpr();
+  INIT_ATTRIBUTES__ACharExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACharExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ACharExpr_parser_prod___ACharExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ACharExpr();
-  parser_prod___ACharExpr___init_acharexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8891;
+  fra.me.meth = LOCATE_NEW_ACharExpr_parser_prod___ACharExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ACharExpr();
+  /* ./parser//parser_prod.nit:8891 */
+  INIT_ATTRIBUTES__ACharExpr(fra.me.REG[0]);
+  parser_prod___ACharExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ACharExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8893;
+  fra.me.meth = LOCATE_NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr;
+  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;
+  fra.me.REG[1] = NEW_ACharExpr();
+  /* ./parser//parser_prod.nit:8893 */
+  INIT_ATTRIBUTES__ACharExpr(fra.me.REG[1]);
+  parser_prod___ACharExpr___init_acharexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ACharExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AStringFormExpr[79] = {
-  {(bigint) 3363 /* 0: Identity */},
-  {(bigint) 3 /* 1: AStringFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AStringFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AStringFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AStringFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3363 /* 5: AStringFormExpr < AStringFormExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AStringFormExpr[84] = {
+  {(bigint) 6139 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStringFormExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStringFormExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStringFormExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AStringFormExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6139 /* 7: AStringFormExpr < AStringFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AStringFormExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AStringFormExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36722,7 +81235,6 @@ const classtable_elt_t VFT_AStringFormExpr[79] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36730,87 +81242,158 @@ const classtable_elt_t VFT_AStringFormExpr[79] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AStringFormExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AStringFormExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AStringFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AStringFormExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AStringFormExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AStringFormExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AStringFormExpr___string_text},
-  {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 78: AStringFormExpr < AStringFormExpr: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AStringFormExpr::_parent */
-/* 2: Attribute AStringFormExpr::_first_token */
-/* 3: Attribute AStringFormExpr::_last_token */
-/* 4: Attribute AStringFormExpr::_stype */
-/* 5: Attribute AStringFormExpr::_if_true_variable_ctx */
-/* 6: Attribute AStringFormExpr::_cstring */
-/* 7: Attribute AStringFormExpr::_cstring_length */
-val_t NEW_AStringFormExpr(void) {
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AStringFormExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AStringFormExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) icode_generation___AStringFormExpr___string_text},
+  {(bigint) icode_generation___AStringFormExpr___compute_string_infos},
+  {(bigint) 4 /* 83: AStringFormExpr < AStringFormExpr: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AStringFormExpr::_parent */
+/* 3: Attribute AStringFormExpr::_location */
+/* 4: Attribute AStringFormExpr::_first_location */
+/* 5: Attribute AStringFormExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AStringFormExpr::_is_typed */
+/* 8: Attribute AStringFormExpr::_stype */
+/* 9: Attribute AStringFormExpr::_if_true_variable_ctx */
+/* 10: Attribute AStringFormExpr::_if_false_variable_ctx */
+/* 11: Attribute AStringFormExpr::_cstring */
+/* 12: Attribute AStringFormExpr::_cstring_length */
+void INIT_ATTRIBUTES__AStringFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStringFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStringFormExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_AStringFormExpr;
-  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStringFormExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStringFormExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStringFormExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStringFormExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStringFormExpr();
+  INIT_ATTRIBUTES__AStringFormExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStringFormExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AStringExpr[84] = {
-  {(bigint) 3679 /* 0: Identity */},
-  {(bigint) 3 /* 1: AStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AStringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AStringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3363 /* 5: AStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 3679 /* 6: AStringExpr < AStringExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AStringExpr[89] = {
+  {(bigint) 6443 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStringExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStringExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AStringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6139 /* 7: AStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 6443 /* 8: AStringExpr < AStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AStringExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AStringExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36818,7 +81401,6 @@ const classtable_elt_t VFT_AStringExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36826,105 +81408,211 @@ const classtable_elt_t VFT_AStringExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AStringExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AStringExpr___visit_all},
   {(bigint) parser_prod___AStringExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AStringExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AStringExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AStringFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AStringExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AStringFormExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AStringExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AStringExpr___string_text},
-  {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 78: AStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AStringExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AStringFormExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) icode_generation___AStringExpr___string_text},
+  {(bigint) icode_generation___AStringFormExpr___compute_string_infos},
+  {(bigint) 4 /* 83: AStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser_prod___AStringExpr___empty_init},
   {(bigint) parser_prod___AStringExpr___init_astringexpr},
-  {(bigint) 5 /* 81: AStringExpr < AStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 86: AStringExpr < AStringExpr: superclass init_table position */},
   {(bigint) parser_nodes___AStringExpr___n_string},
   {(bigint) parser_prod___AStringExpr___n_string__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AStringExpr::_parent */
-/* 2: Attribute AStringExpr::_first_token */
-/* 3: Attribute AStringExpr::_last_token */
-/* 4: Attribute AStringExpr::_stype */
-/* 5: Attribute AStringExpr::_if_true_variable_ctx */
-/* 6: Attribute AStringExpr::_cstring */
-/* 7: Attribute AStringExpr::_cstring_length */
-/* 8: Attribute AStringExpr::_n_string */
-val_t NEW_AStringExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AStringExpr::_parent */
+/* 3: Attribute AStringExpr::_location */
+/* 4: Attribute AStringExpr::_first_location */
+/* 5: Attribute AStringExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AStringExpr::_is_typed */
+/* 8: Attribute AStringExpr::_stype */
+/* 9: Attribute AStringExpr::_if_true_variable_ctx */
+/* 10: Attribute AStringExpr::_if_false_variable_ctx */
+/* 11: Attribute AStringExpr::_cstring */
+/* 12: Attribute AStringExpr::_cstring_length */
+/* 13: Attribute AStringExpr::_n_string */
+void INIT_ATTRIBUTES__AStringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStringExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_AStringExpr;
-  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AStringExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_string");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStringExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AStringExpr();
-  parser_prod___AStringExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AStringExpr___init_astringexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStringExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStringExpr();
+  INIT_ATTRIBUTES__AStringExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStringExpr_parser_prod___AStringExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AStringExpr();
-  parser_prod___AStringExpr___init_astringexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8933;
+  fra.me.meth = LOCATE_NEW_AStringExpr_parser_prod___AStringExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStringExpr();
+  /* ./parser//parser_prod.nit:8933 */
+  INIT_ATTRIBUTES__AStringExpr(fra.me.REG[0]);
+  parser_prod___AStringExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStringExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8935;
+  fra.me.meth = LOCATE_NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr;
+  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;
+  fra.me.REG[1] = NEW_AStringExpr();
+  /* ./parser//parser_prod.nit:8935 */
+  INIT_ATTRIBUTES__AStringExpr(fra.me.REG[1]);
+  parser_prod___AStringExpr___init_astringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AStartStringExpr[84] = {
-  {(bigint) 3683 /* 0: Identity */},
-  {(bigint) 3 /* 1: AStartStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AStartStringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AStartStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AStartStringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3363 /* 5: AStartStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 3683 /* 6: AStartStringExpr < AStartStringExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AStartStringExpr[89] = {
+  {(bigint) 6447 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AStartStringExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AStartStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AStartStringExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AStartStringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6139 /* 7: AStartStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 6447 /* 8: AStartStringExpr < AStartStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AStartStringExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AStartStringExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -36932,7 +81620,6 @@ const classtable_elt_t VFT_AStartStringExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -36940,105 +81627,211 @@ const classtable_elt_t VFT_AStartStringExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AStartStringExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AStartStringExpr___visit_all},
   {(bigint) parser_prod___AStartStringExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AStartStringExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AStartStringExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AStringFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AStartStringExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AStringFormExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AStartStringExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AStartStringExpr___string_text},
-  {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 78: AStartStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AStartStringExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AStringFormExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) icode_generation___AStartStringExpr___string_text},
+  {(bigint) icode_generation___AStringFormExpr___compute_string_infos},
+  {(bigint) 4 /* 83: AStartStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser_prod___AStartStringExpr___empty_init},
   {(bigint) parser_prod___AStartStringExpr___init_astartstringexpr},
-  {(bigint) 5 /* 81: AStartStringExpr < AStartStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 86: AStartStringExpr < AStartStringExpr: superclass init_table position */},
   {(bigint) parser_nodes___AStartStringExpr___n_string},
   {(bigint) parser_prod___AStartStringExpr___n_string__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AStartStringExpr::_parent */
-/* 2: Attribute AStartStringExpr::_first_token */
-/* 3: Attribute AStartStringExpr::_last_token */
-/* 4: Attribute AStartStringExpr::_stype */
-/* 5: Attribute AStartStringExpr::_if_true_variable_ctx */
-/* 6: Attribute AStartStringExpr::_cstring */
-/* 7: Attribute AStartStringExpr::_cstring_length */
-/* 8: Attribute AStartStringExpr::_n_string */
-val_t NEW_AStartStringExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AStartStringExpr::_parent */
+/* 3: Attribute AStartStringExpr::_location */
+/* 4: Attribute AStartStringExpr::_first_location */
+/* 5: Attribute AStartStringExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AStartStringExpr::_is_typed */
+/* 8: Attribute AStartStringExpr::_stype */
+/* 9: Attribute AStartStringExpr::_if_true_variable_ctx */
+/* 10: Attribute AStartStringExpr::_if_false_variable_ctx */
+/* 11: Attribute AStartStringExpr::_cstring */
+/* 12: Attribute AStartStringExpr::_cstring_length */
+/* 13: Attribute AStartStringExpr::_n_string */
+void INIT_ATTRIBUTES__AStartStringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AStartStringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStartStringExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_AStartStringExpr;
-  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AStartStringExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AStartStringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AStartStringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_string");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AStartStringExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AStartStringExpr();
-  parser_prod___AStartStringExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AStartStringExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AStartStringExpr();
+  INIT_ATTRIBUTES__AStartStringExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStartStringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AStartStringExpr_parser_prod___AStartStringExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8975;
+  fra.me.meth = LOCATE_NEW_AStartStringExpr_parser_prod___AStartStringExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AStartStringExpr();
+  /* ./parser//parser_prod.nit:8975 */
+  INIT_ATTRIBUTES__AStartStringExpr(fra.me.REG[0]);
+  parser_prod___AStartStringExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AStartStringExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AStartStringExpr();
-  parser_prod___AStartStringExpr___init_astartstringexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8977;
+  fra.me.meth = LOCATE_NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexpr;
+  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;
+  fra.me.REG[1] = NEW_AStartStringExpr();
+  /* ./parser//parser_prod.nit:8977 */
+  INIT_ATTRIBUTES__AStartStringExpr(fra.me.REG[1]);
+  parser_prod___AStartStringExpr___init_astartstringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AStartStringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AMidStringExpr[84] = {
-  {(bigint) 3711 /* 0: Identity */},
-  {(bigint) 3 /* 1: AMidStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AMidStringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AMidStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AMidStringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3363 /* 5: AMidStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 3711 /* 6: AMidStringExpr < AMidStringExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AMidStringExpr[89] = {
+  {(bigint) 6471 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AMidStringExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AMidStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AMidStringExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AMidStringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6139 /* 7: AMidStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 6471 /* 8: AMidStringExpr < AMidStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AMidStringExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AMidStringExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37046,7 +81839,6 @@ const classtable_elt_t VFT_AMidStringExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37054,105 +81846,211 @@ const classtable_elt_t VFT_AMidStringExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AMidStringExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AMidStringExpr___visit_all},
   {(bigint) parser_prod___AMidStringExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AMidStringExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AMidStringExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AStringFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AMidStringExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AStringFormExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AMidStringExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AMidStringExpr___string_text},
-  {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 78: AMidStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AMidStringExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AStringFormExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) icode_generation___AMidStringExpr___string_text},
+  {(bigint) icode_generation___AStringFormExpr___compute_string_infos},
+  {(bigint) 4 /* 83: AMidStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser_prod___AMidStringExpr___empty_init},
   {(bigint) parser_prod___AMidStringExpr___init_amidstringexpr},
-  {(bigint) 5 /* 81: AMidStringExpr < AMidStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 86: AMidStringExpr < AMidStringExpr: superclass init_table position */},
   {(bigint) parser_nodes___AMidStringExpr___n_string},
   {(bigint) parser_prod___AMidStringExpr___n_string__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AMidStringExpr::_parent */
-/* 2: Attribute AMidStringExpr::_first_token */
-/* 3: Attribute AMidStringExpr::_last_token */
-/* 4: Attribute AMidStringExpr::_stype */
-/* 5: Attribute AMidStringExpr::_if_true_variable_ctx */
-/* 6: Attribute AMidStringExpr::_cstring */
-/* 7: Attribute AMidStringExpr::_cstring_length */
-/* 8: Attribute AMidStringExpr::_n_string */
-val_t NEW_AMidStringExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AMidStringExpr::_parent */
+/* 3: Attribute AMidStringExpr::_location */
+/* 4: Attribute AMidStringExpr::_first_location */
+/* 5: Attribute AMidStringExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AMidStringExpr::_is_typed */
+/* 8: Attribute AMidStringExpr::_stype */
+/* 9: Attribute AMidStringExpr::_if_true_variable_ctx */
+/* 10: Attribute AMidStringExpr::_if_false_variable_ctx */
+/* 11: Attribute AMidStringExpr::_cstring */
+/* 12: Attribute AMidStringExpr::_cstring_length */
+/* 13: Attribute AMidStringExpr::_n_string */
+void INIT_ATTRIBUTES__AMidStringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AMidStringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMidStringExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_AMidStringExpr;
-  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AMidStringExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AMidStringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AMidStringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_string");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMidStringExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AMidStringExpr();
-  parser_prod___AMidStringExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AMidStringExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AMidStringExpr();
+  INIT_ATTRIBUTES__AMidStringExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMidStringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AMidStringExpr_parser_prod___AMidStringExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AMidStringExpr();
-  parser_prod___AMidStringExpr___init_amidstringexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9017;
+  fra.me.meth = LOCATE_NEW_AMidStringExpr_parser_prod___AMidStringExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMidStringExpr();
+  /* ./parser//parser_prod.nit:9017 */
+  INIT_ATTRIBUTES__AMidStringExpr(fra.me.REG[0]);
+  parser_prod___AMidStringExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMidStringExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9019;
+  fra.me.meth = LOCATE_NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr;
+  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;
+  fra.me.REG[1] = NEW_AMidStringExpr();
+  /* ./parser//parser_prod.nit:9019 */
+  INIT_ATTRIBUTES__AMidStringExpr(fra.me.REG[1]);
+  parser_prod___AMidStringExpr___init_amidstringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMidStringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AEndStringExpr[84] = {
-  {(bigint) 3739 /* 0: Identity */},
-  {(bigint) 3 /* 1: AEndStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AEndStringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AEndStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AEndStringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3363 /* 5: AEndStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 3739 /* 6: AEndStringExpr < AEndStringExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AEndStringExpr[89] = {
+  {(bigint) 6499 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AEndStringExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AEndStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AEndStringExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AEndStringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6139 /* 7: AEndStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 6499 /* 8: AEndStringExpr < AEndStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AEndStringExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AEndStringExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37160,7 +82058,6 @@ const classtable_elt_t VFT_AEndStringExpr[84] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37168,105 +82065,211 @@ const classtable_elt_t VFT_AEndStringExpr[84] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AEndStringExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AEndStringExpr___visit_all},
   {(bigint) parser_prod___AEndStringExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AEndStringExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: AEndStringExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AStringFormExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AEndStringExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AStringFormExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AEndStringExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AEndStringExpr___string_text},
-  {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 78: AEndStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AEndStringExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AStringFormExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) icode_generation___AEndStringExpr___string_text},
+  {(bigint) icode_generation___AStringFormExpr___compute_string_infos},
+  {(bigint) 4 /* 83: AEndStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser_prod___AEndStringExpr___empty_init},
   {(bigint) parser_prod___AEndStringExpr___init_aendstringexpr},
-  {(bigint) 5 /* 81: AEndStringExpr < AEndStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 86: AEndStringExpr < AEndStringExpr: superclass init_table position */},
   {(bigint) parser_nodes___AEndStringExpr___n_string},
   {(bigint) parser_prod___AEndStringExpr___n_string__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AEndStringExpr::_parent */
-/* 2: Attribute AEndStringExpr::_first_token */
-/* 3: Attribute AEndStringExpr::_last_token */
-/* 4: Attribute AEndStringExpr::_stype */
-/* 5: Attribute AEndStringExpr::_if_true_variable_ctx */
-/* 6: Attribute AEndStringExpr::_cstring */
-/* 7: Attribute AEndStringExpr::_cstring_length */
-/* 8: Attribute AEndStringExpr::_n_string */
-val_t NEW_AEndStringExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AEndStringExpr::_parent */
+/* 3: Attribute AEndStringExpr::_location */
+/* 4: Attribute AEndStringExpr::_first_location */
+/* 5: Attribute AEndStringExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AEndStringExpr::_is_typed */
+/* 8: Attribute AEndStringExpr::_stype */
+/* 9: Attribute AEndStringExpr::_if_true_variable_ctx */
+/* 10: Attribute AEndStringExpr::_if_false_variable_ctx */
+/* 11: Attribute AEndStringExpr::_cstring */
+/* 12: Attribute AEndStringExpr::_cstring_length */
+/* 13: Attribute AEndStringExpr::_n_string */
+void INIT_ATTRIBUTES__AEndStringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AEndStringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEndStringExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_AEndStringExpr;
-  ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AEndStringExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AEndStringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AEndStringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_string");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEndStringExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AEndStringExpr();
-  parser_prod___AEndStringExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AEndStringExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AEndStringExpr();
+  INIT_ATTRIBUTES__AEndStringExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AEndStringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AEndStringExpr_parser_prod___AEndStringExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9059;
+  fra.me.meth = LOCATE_NEW_AEndStringExpr_parser_prod___AEndStringExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AEndStringExpr();
+  /* ./parser//parser_prod.nit:9059 */
+  INIT_ATTRIBUTES__AEndStringExpr(fra.me.REG[0]);
+  parser_prod___AEndStringExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AEndStringExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AEndStringExpr();
-  parser_prod___AEndStringExpr___init_aendstringexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9061;
+  fra.me.meth = LOCATE_NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr;
+  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;
+  fra.me.REG[1] = NEW_AEndStringExpr();
+  /* ./parser//parser_prod.nit:9061 */
+  INIT_ATTRIBUTES__AEndStringExpr(fra.me.REG[1]);
+  parser_prod___AEndStringExpr___init_aendstringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AEndStringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_ASuperstringExpr[81] = {
-  {(bigint) 3355 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASuperstringExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASuperstringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASuperstringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ASuperstringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3355 /* 5: ASuperstringExpr < ASuperstringExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_ASuperstringExpr[87] = {
+  {(bigint) 6135 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASuperstringExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASuperstringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASuperstringExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: ASuperstringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6135 /* 7: ASuperstringExpr < ASuperstringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ASuperstringExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ASuperstringExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37274,7 +82277,6 @@ const classtable_elt_t VFT_ASuperstringExpr[81] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37282,99 +82284,212 @@ const classtable_elt_t VFT_ASuperstringExpr[81] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ASuperstringExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ASuperstringExpr___visit_all},
   {(bigint) parser_prod___ASuperstringExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ASuperstringExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 1 /* 59: ASuperstringExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___ASuperstringExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ASuperstringExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASuperstringExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ASuperstringExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ASuperstringExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASuperstringExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) typing___ASuperstringExpr___atype},
   {(bigint) parser_prod___ASuperstringExpr___empty_init},
   {(bigint) parser_prod___ASuperstringExpr___init_asuperstringexpr},
-  {(bigint) 4 /* 78: ASuperstringExpr < ASuperstringExpr: superclass init_table position */},
+  {(bigint) 4 /* 84: ASuperstringExpr < ASuperstringExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASuperstringExpr___n_exprs},
   {(bigint) parser_nodes___ASuperstringExpr___n_exprs__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASuperstringExpr::_parent */
-/* 2: Attribute ASuperstringExpr::_first_token */
-/* 3: Attribute ASuperstringExpr::_last_token */
-/* 4: Attribute ASuperstringExpr::_stype */
-/* 5: Attribute ASuperstringExpr::_if_true_variable_ctx */
-/* 6: Attribute ASuperstringExpr::_n_exprs */
-val_t NEW_ASuperstringExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ASuperstringExpr::_parent */
+/* 3: Attribute ASuperstringExpr::_location */
+/* 4: Attribute ASuperstringExpr::_first_location */
+/* 5: Attribute ASuperstringExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ASuperstringExpr::_is_typed */
+/* 8: Attribute ASuperstringExpr::_stype */
+/* 9: Attribute ASuperstringExpr::_if_true_variable_ctx */
+/* 10: Attribute ASuperstringExpr::_if_false_variable_ctx */
+/* 11: Attribute ASuperstringExpr::_atype */
+/* 12: Attribute ASuperstringExpr::_n_exprs */
+void INIT_ATTRIBUTES__ASuperstringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASuperstringExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:902 */
+  ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperstringExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_ASuperstringExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ASuperstringExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASuperstringExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASuperstringExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperstringExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASuperstringExpr();
-  parser_prod___ASuperstringExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASuperstringExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASuperstringExpr();
+  INIT_ATTRIBUTES__ASuperstringExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASuperstringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9096;
+  fra.me.meth = LOCATE_NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASuperstringExpr();
+  /* ./parser//parser_prod.nit:9096 */
+  INIT_ATTRIBUTES__ASuperstringExpr(fra.me.REG[0]);
+  parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASuperstringExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ASuperstringExpr();
-  parser_prod___ASuperstringExpr___init_asuperstringexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9098;
+  fra.me.meth = LOCATE_NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr;
+  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;
+  fra.me.REG[1] = NEW_ASuperstringExpr();
+  /* ./parser//parser_prod.nit:9098 */
+  INIT_ATTRIBUTES__ASuperstringExpr(fra.me.REG[1]);
+  parser_prod___ASuperstringExpr___init_asuperstringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASuperstringExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AParExpr[82] = {
-  {(bigint) 3687 /* 0: Identity */},
-  {(bigint) 3 /* 1: AParExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AParExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AParExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AParExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3411 /* 5: AParExpr < AProxyExpr: superclass typecheck marker */},
-  {(bigint) 3687 /* 6: AParExpr < AParExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AParExpr[87] = {
+  {(bigint) 6451 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AParExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AParExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AParExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AParExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6191 /* 7: AParExpr < AProxyExpr: superclass typecheck marker */},
+  {(bigint) 6451 /* 8: AParExpr < AParExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 1 /* 20: AParExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 1 /* 19: AParExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37382,7 +82497,6 @@ const classtable_elt_t VFT_AParExpr[82] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37390,100 +82504,207 @@ const classtable_elt_t VFT_AParExpr[82] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AParExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AParExpr___visit_all},
   {(bigint) parser_prod___AParExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 2 /* 57: AParExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 2 /* 59: AParExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AProxyExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 3 /* 66: AParExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AProxyExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 4 /* 71: AParExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: AParExpr < AProxyExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 4 /* 74: AParExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AProxyExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) 0 /* 81: AParExpr < AProxyExpr: superclass init_table position */},
   {(bigint) parser_nodes___AProxyExpr___n_expr},
   {(bigint) parser_prod___AParExpr___n_expr__eq},
   {(bigint) parser_prod___AParExpr___empty_init},
   {(bigint) parser_prod___AParExpr___init_aparexpr},
-  {(bigint) 5 /* 81: AParExpr < AParExpr: superclass init_table position */},
+  {(bigint) 5 /* 86: AParExpr < AParExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AParExpr::_parent */
-/* 2: Attribute AParExpr::_first_token */
-/* 3: Attribute AParExpr::_last_token */
-/* 4: Attribute AParExpr::_stype */
-/* 5: Attribute AParExpr::_if_true_variable_ctx */
-/* 6: Attribute AParExpr::_n_expr */
-val_t NEW_AParExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AParExpr::_parent */
+/* 3: Attribute AParExpr::_location */
+/* 4: Attribute AParExpr::_first_location */
+/* 5: Attribute AParExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AParExpr::_is_typed */
+/* 8: Attribute AParExpr::_stype */
+/* 9: Attribute AParExpr::_if_true_variable_ctx */
+/* 10: Attribute AParExpr::_if_false_variable_ctx */
+/* 11: Attribute AParExpr::_n_expr */
+void INIT_ATTRIBUTES__AParExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AParExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AParExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AParExpr;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AParExpr___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AParExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AParExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AParExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AParExpr();
-  parser_prod___AParExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AParExpr___init_aparexpr(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AParExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AParExpr();
+  INIT_ATTRIBUTES__AParExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AParExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AParExpr_parser_prod___AParExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9151;
+  fra.me.meth = LOCATE_NEW_AParExpr_parser_prod___AParExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AParExpr();
+  /* ./parser//parser_prod.nit:9151 */
+  INIT_ATTRIBUTES__AParExpr(fra.me.REG[0]);
+  parser_prod___AParExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AParExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AParExpr_parser_prod___AParExpr___init_aparexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_AParExpr();
-  parser_prod___AParExpr___init_aparexpr(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9153;
+  fra.me.meth = LOCATE_NEW_AParExpr_parser_prod___AParExpr___init_aparexpr;
+  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;
+  fra.me.REG[1] = NEW_AParExpr();
+  /* ./parser//parser_prod.nit:9153 */
+  INIT_ATTRIBUTES__AParExpr(fra.me.REG[1]);
+  parser_prod___AParExpr___init_aparexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AParExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AProxyExpr[79] = {
-  {(bigint) 3411 /* 0: Identity */},
-  {(bigint) 3 /* 1: AProxyExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AProxyExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AProxyExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AProxyExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3411 /* 5: AProxyExpr < AProxyExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AProxyExpr[84] = {
+  {(bigint) 6191 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AProxyExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AProxyExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AProxyExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AProxyExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6191 /* 7: AProxyExpr < AProxyExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AProxyExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AProxyExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37491,7 +82712,6 @@ const classtable_elt_t VFT_AProxyExpr[79] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37499,70 +82719,152 @@ const classtable_elt_t VFT_AProxyExpr[79] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AProxyExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AProxyExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AProxyExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AProxyExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AProxyExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AProxyExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: AProxyExpr < AProxyExpr: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AProxyExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AProxyExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) 4 /* 81: AProxyExpr < AProxyExpr: superclass init_table position */},
   {(bigint) parser_nodes___AProxyExpr___n_expr},
   {(bigint) parser_nodes___AProxyExpr___n_expr__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AProxyExpr::_parent */
-/* 2: Attribute AProxyExpr::_first_token */
-/* 3: Attribute AProxyExpr::_last_token */
-/* 4: Attribute AProxyExpr::_stype */
-/* 5: Attribute AProxyExpr::_if_true_variable_ctx */
-/* 6: Attribute AProxyExpr::_n_expr */
-val_t NEW_AProxyExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AProxyExpr::_parent */
+/* 3: Attribute AProxyExpr::_location */
+/* 4: Attribute AProxyExpr::_first_location */
+/* 5: Attribute AProxyExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AProxyExpr::_is_typed */
+/* 8: Attribute AProxyExpr::_stype */
+/* 9: Attribute AProxyExpr::_if_true_variable_ctx */
+/* 10: Attribute AProxyExpr::_if_false_variable_ctx */
+/* 11: Attribute AProxyExpr::_n_expr */
+void INIT_ATTRIBUTES__AProxyExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AProxyExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AProxyExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 12);
   obj->vft = (classtable_elt_t*)VFT_AProxyExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AProxyExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AProxyExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AProxyExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AProxyExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AProxyExpr();
+  INIT_ATTRIBUTES__AProxyExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AProxyExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AAsCastExpr[85] = {
-  {(bigint) 3599 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAsCastExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAsCastExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAsCastExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAsCastExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3599 /* 5: AAsCastExpr < AAsCastExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_AAsCastExpr[90] = {
+  {(bigint) 6543 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAsCastExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAsCastExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAsCastExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6127 /* 5: AAsCastExpr < ATypeCheckExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AAsCastExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6543 /* 7: AAsCastExpr < AAsCastExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37570,14 +82872,11 @@ const classtable_elt_t VFT_AAsCastExpr[85] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAsCastExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 1 /* 19: AAsCastExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37585,7 +82884,6 @@ const classtable_elt_t VFT_AAsCastExpr[85] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37593,49 +82891,56 @@ const classtable_elt_t VFT_AAsCastExpr[85] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___AAsCastExpr___replace_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AAsCastExpr___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AAsCastExpr___visit_all},
   {(bigint) parser_prod___AAsCastExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAsCastExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
+  {(bigint) 2 /* 59: AAsCastExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
   {(bigint) typing___AAsCastExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AAsCastExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___AAsCastExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAsCastExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 3 /* 66: AAsCastExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 0 /* 68: AAsCastExpr < ATypeCheckExpr: superclass init_table position */},
+  {(bigint) typing___ATypeCheckExpr___check_expr_cast},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 4 /* 74: AAsCastExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAsCastExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
   {(bigint) parser_prod___AAsCastExpr___empty_init},
   {(bigint) parser_prod___AAsCastExpr___init_aascastexpr},
-  {(bigint) 4 /* 78: AAsCastExpr < AAsCastExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AAsCastExpr < AAsCastExpr: superclass init_table position */},
   {(bigint) parser_nodes___AAsCastExpr___n_expr},
   {(bigint) parser_prod___AAsCastExpr___n_expr__eq},
   {(bigint) parser_nodes___AAsCastExpr___n_kwas},
@@ -37644,39 +82949,411 @@ const classtable_elt_t VFT_AAsCastExpr[85] = {
   {(bigint) parser_prod___AAsCastExpr___n_type__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AAsCastExpr::_parent */
-/* 2: Attribute AAsCastExpr::_first_token */
-/* 3: Attribute AAsCastExpr::_last_token */
-/* 4: Attribute AAsCastExpr::_stype */
-/* 5: Attribute AAsCastExpr::_if_true_variable_ctx */
-/* 6: Attribute AAsCastExpr::_n_expr */
-/* 7: Attribute AAsCastExpr::_n_kwas */
-/* 8: Attribute AAsCastExpr::_n_type */
-val_t NEW_AAsCastExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute AAsCastExpr::_parent */
+/* 3: Attribute AAsCastExpr::_location */
+/* 4: Attribute AAsCastExpr::_first_location */
+/* 5: Attribute AAsCastExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAsCastExpr::_is_typed */
+/* 8: Attribute AAsCastExpr::_stype */
+/* 9: Attribute AAsCastExpr::_if_true_variable_ctx */
+/* 10: Attribute AAsCastExpr::_if_false_variable_ctx */
+/* 11: Attribute AAsCastExpr::_n_expr */
+/* 12: Attribute AAsCastExpr::_n_kwas */
+/* 13: Attribute AAsCastExpr::_n_type */
+void INIT_ATTRIBUTES__AAsCastExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAsCastExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAsCastExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_AAsCastExpr;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAsCastExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAsCastExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwas");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_type");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAsCastExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAsCastExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAsCastExpr();
+  INIT_ATTRIBUTES__AAsCastExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAsCastExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAsCastExpr_parser_prod___AAsCastExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9203;
+  fra.me.meth = LOCATE_NEW_AAsCastExpr_parser_prod___AAsCastExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAsCastExpr();
+  /* ./parser//parser_prod.nit:9203 */
+  INIT_ATTRIBUTES__AAsCastExpr(fra.me.REG[0]);
+  parser_prod___AAsCastExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAsCastExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9205;
+  fra.me.meth = LOCATE_NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AAsCastExpr();
+  /* ./parser//parser_prod.nit:9205 */
+  INIT_ATTRIBUTES__AAsCastExpr(fra.me.REG[3]);
+  parser_prod___AAsCastExpr___init_aascastexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AAsCastExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-val_t NEW_parser_prod___AAsCastExpr___empty_init() {
+const classtable_elt_t VFT_AAsNotnullExpr[92] = {
+  {(bigint) 6363 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAsNotnullExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAsNotnullExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAsNotnullExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 5971 /* 6: AAsNotnullExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6363 /* 7: AAsNotnullExpr < AAsNotnullExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAsNotnullExpr < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AAsNotnullExpr___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___AAsNotnullExpr___visit_all},
+  {(bigint) parser_prod___AAsNotnullExpr___visit_all_reverse},
+  {(bigint) 1 /* 59: AAsNotnullExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AAsNotnullExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AAsNotnullExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAsNotnullExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AAsNotnullExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) parser_prod___AAsNotnullExpr___empty_init},
+  {(bigint) parser_prod___AAsNotnullExpr___init_aasnotnullexpr},
+  {(bigint) 4 /* 83: AAsNotnullExpr < AAsNotnullExpr: superclass init_table position */},
+  {(bigint) parser_nodes___AAsNotnullExpr___n_expr},
+  {(bigint) parser_prod___AAsNotnullExpr___n_expr__eq},
+  {(bigint) parser_nodes___AAsNotnullExpr___n_kwas},
+  {(bigint) parser_prod___AAsNotnullExpr___n_kwas__eq},
+  {(bigint) parser_nodes___AAsNotnullExpr___n_kwnot},
+  {(bigint) parser_prod___AAsNotnullExpr___n_kwnot__eq},
+  {(bigint) parser_nodes___AAsNotnullExpr___n_kwnull},
+  {(bigint) parser_prod___AAsNotnullExpr___n_kwnull__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AAsNotnullExpr::_parent */
+/* 3: Attribute AAsNotnullExpr::_location */
+/* 4: Attribute AAsNotnullExpr::_first_location */
+/* 5: Attribute AAsNotnullExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAsNotnullExpr::_is_typed */
+/* 8: Attribute AAsNotnullExpr::_stype */
+/* 9: Attribute AAsNotnullExpr::_if_true_variable_ctx */
+/* 10: Attribute AAsNotnullExpr::_if_false_variable_ctx */
+/* 11: Attribute AAsNotnullExpr::_n_expr */
+/* 12: Attribute AAsNotnullExpr::_n_kwas */
+/* 13: Attribute AAsNotnullExpr::_n_kwnot */
+/* 14: Attribute AAsNotnullExpr::_n_kwnull */
+void INIT_ATTRIBUTES__AAsNotnullExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAsNotnullExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAsNotnullExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_AAsNotnullExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAsNotnullExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAsNotnullExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwas");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwnot");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwnull");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAsNotnullExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAsCastExpr();
-  parser_prod___AAsCastExpr___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAsNotnullExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAsNotnullExpr();
+  INIT_ATTRIBUTES__AAsNotnullExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAsNotnullExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9290;
+  fra.me.meth = LOCATE_NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AAsNotnullExpr();
+  /* ./parser//parser_prod.nit:9290 */
+  INIT_ATTRIBUTES__AAsNotnullExpr(fra.me.REG[0]);
+  parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AAsNotnullExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AAsCastExpr();
-  parser_prod___AAsCastExpr___init_aascastexpr(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9292;
+  fra.me.meth = LOCATE_NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_AAsNotnullExpr();
+  /* ./parser//parser_prod.nit:9292 */
+  INIT_ATTRIBUTES__AAsNotnullExpr(fra.me.REG[4]);
+  parser_prod___AAsNotnullExpr___init_aasnotnullexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_AAsNotnullExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
 }
-const classtable_elt_t VFT_APlusAssignOp[74] = {
-  {(bigint) 3427 /* 0: Identity */},
-  {(bigint) 3 /* 1: APlusAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: APlusAssignOp < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: APlusAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 4: APlusAssignOp < PAssignOp: superclass typecheck marker */},
-  {(bigint) 3427 /* 5: APlusAssignOp < APlusAssignOp: superclass typecheck marker */},
+const classtable_elt_t VFT_AIssetAttrExpr[105] = {
+  {(bigint) 6475 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AIssetAttrExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AIssetAttrExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AIssetAttrExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6347 /* 5: AIssetAttrExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AIssetAttrExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6475 /* 7: AIssetAttrExpr < AIssetAttrExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37684,14 +83361,399 @@ const classtable_elt_t VFT_APlusAssignOp[74] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AIssetAttrExpr < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AIssetAttrExpr___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___AIssetAttrExpr___visit_all},
+  {(bigint) parser_prod___AIssetAttrExpr___visit_all_reverse},
+  {(bigint) 1 /* 59: AIssetAttrExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AIssetAttrExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AIssetAttrExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AIssetAttrExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AIssetAttrExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AAttrFormExpr___do_typing},
+  {(bigint) typing___AAttrFormExpr___prop},
+  {(bigint) typing___AAttrFormExpr___attr_type},
+  {(bigint) 4 /* 95: AIssetAttrExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___AAttrFormExpr___n_expr},
+  {(bigint) parser_prod___AIssetAttrExpr___n_expr__eq},
+  {(bigint) parser_nodes___AAttrFormExpr___n_id},
+  {(bigint) parser_prod___AIssetAttrExpr___n_id__eq},
+  {(bigint) parser_prod___AIssetAttrExpr___empty_init},
+  {(bigint) parser_prod___AIssetAttrExpr___init_aissetattrexpr},
+  {(bigint) 5 /* 102: AIssetAttrExpr < AIssetAttrExpr: superclass init_table position */},
+  {(bigint) parser_nodes___AIssetAttrExpr___n_kwisset},
+  {(bigint) parser_prod___AIssetAttrExpr___n_kwisset__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AIssetAttrExpr::_parent */
+/* 3: Attribute AIssetAttrExpr::_location */
+/* 4: Attribute AIssetAttrExpr::_first_location */
+/* 5: Attribute AIssetAttrExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AIssetAttrExpr::_is_typed */
+/* 8: Attribute AIssetAttrExpr::_stype */
+/* 9: Attribute AIssetAttrExpr::_if_true_variable_ctx */
+/* 10: Attribute AIssetAttrExpr::_if_false_variable_ctx */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 16: Attribute AIssetAttrExpr::_prop */
+/* 17: Attribute AIssetAttrExpr::_attr_type */
+/* 18: Attribute AIssetAttrExpr::_n_expr */
+/* 19: Attribute AIssetAttrExpr::_n_id */
+/* 20: Attribute AIssetAttrExpr::_n_kwisset */
+void INIT_ATTRIBUTES__AIssetAttrExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AIssetAttrExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIssetAttrExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 21);
+  obj->vft = (classtable_elt_t*)VFT_AIssetAttrExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AIssetAttrExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AIssetAttrExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwisset");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AIssetAttrExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AIssetAttrExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AIssetAttrExpr();
+  INIT_ATTRIBUTES__AIssetAttrExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AIssetAttrExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9387;
+  fra.me.meth = LOCATE_NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AIssetAttrExpr();
+  /* ./parser//parser_prod.nit:9387 */
+  INIT_ATTRIBUTES__AIssetAttrExpr(fra.me.REG[0]);
+  parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AIssetAttrExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9389;
+  fra.me.meth = LOCATE_NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_AIssetAttrExpr();
+  /* ./parser//parser_prod.nit:9389 */
+  INIT_ATTRIBUTES__AIssetAttrExpr(fra.me.REG[3]);
+  parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_AIssetAttrExpr(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_AAssignOp[70] = {
+  {(bigint) 5995 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAssignOp < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAssignOp < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAssignOp < Prod: superclass typecheck marker */},
+  {(bigint) 5995 /* 5: AAssignOp < AAssignOp: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAssignOp < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: APlusAssignOp < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AAssignOp < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AAssignOp < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) typing___AAssignOp___method_name},
+  {(bigint) 3 /* 69: AAssignOp < AAssignOp: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AAssignOp::_parent */
+/* 3: Attribute AAssignOp::_location */
+/* 4: Attribute AAssignOp::_first_location */
+/* 5: Attribute AAssignOp::_last_location */
+void INIT_ATTRIBUTES__AAssignOp(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAssignOp;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAssignOp(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AAssignOp;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAssignOp(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAssignOp;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAssignOp_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAssignOp_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAssignOp();
+  INIT_ATTRIBUTES__AAssignOp(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAssignOp(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_APlusAssignOp[75] = {
+  {(bigint) 6207 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: APlusAssignOp < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: APlusAssignOp < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: APlusAssignOp < Prod: superclass typecheck marker */},
+  {(bigint) 5995 /* 5: APlusAssignOp < AAssignOp: superclass typecheck marker */},
+  {(bigint) 6207 /* 6: APlusAssignOp < APlusAssignOp: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: APlusAssignOp < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37699,7 +83761,6 @@ const classtable_elt_t VFT_APlusAssignOp[74] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37707,75 +83768,164 @@ const classtable_elt_t VFT_APlusAssignOp[74] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___APlusAssignOp___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___APlusAssignOp___visit_all},
   {(bigint) parser_prod___APlusAssignOp___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: APlusAssignOp < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: APlusAssignOp < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: APlusAssignOp < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___APlusAssignOp___method_name},
-  {(bigint) 3 /* 68: APlusAssignOp < PAssignOp: superclass init_table position */},
+  {(bigint) 3 /* 69: APlusAssignOp < AAssignOp: superclass init_table position */},
   {(bigint) parser_prod___APlusAssignOp___empty_init},
   {(bigint) parser_prod___APlusAssignOp___init_aplusassignop},
-  {(bigint) 4 /* 71: APlusAssignOp < APlusAssignOp: superclass init_table position */},
+  {(bigint) 4 /* 72: APlusAssignOp < APlusAssignOp: superclass init_table position */},
   {(bigint) parser_nodes___APlusAssignOp___n_pluseq},
   {(bigint) parser_prod___APlusAssignOp___n_pluseq__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute APlusAssignOp::_parent */
-/* 2: Attribute APlusAssignOp::_first_token */
-/* 3: Attribute APlusAssignOp::_last_token */
-/* 4: Attribute APlusAssignOp::_n_pluseq */
-val_t NEW_APlusAssignOp(void) {
+/* 1: Object_id */
+/* 2: Attribute APlusAssignOp::_parent */
+/* 3: Attribute APlusAssignOp::_location */
+/* 4: Attribute APlusAssignOp::_first_location */
+/* 5: Attribute APlusAssignOp::_last_location */
+/* 6: Attribute APlusAssignOp::_n_pluseq */
+void INIT_ATTRIBUTES__APlusAssignOp(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__APlusAssignOp;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APlusAssignOp(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
+  obj = alloc(sizeof(val_t) * 7);
   obj->vft = (classtable_elt_t*)VFT_APlusAssignOp;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___APlusAssignOp___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_APlusAssignOp(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_APlusAssignOp;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_pluseq");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_APlusAssignOp_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APlusAssignOp();
-  parser_prod___APlusAssignOp___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___APlusAssignOp___init_aplusassignop(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_APlusAssignOp_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_APlusAssignOp();
+  INIT_ATTRIBUTES__APlusAssignOp(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APlusAssignOp(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_APlusAssignOp_parser_prod___APlusAssignOp___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_APlusAssignOp();
-  parser_prod___APlusAssignOp___init_aplusassignop(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9459;
+  fra.me.meth = LOCATE_NEW_APlusAssignOp_parser_prod___APlusAssignOp___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_APlusAssignOp();
+  /* ./parser//parser_prod.nit:9459 */
+  INIT_ATTRIBUTES__APlusAssignOp(fra.me.REG[0]);
+  parser_prod___APlusAssignOp___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_APlusAssignOp(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9461;
+  fra.me.meth = LOCATE_NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop;
+  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;
+  fra.me.REG[1] = NEW_APlusAssignOp();
+  /* ./parser//parser_prod.nit:9461 */
+  INIT_ATTRIBUTES__APlusAssignOp(fra.me.REG[1]);
+  parser_prod___APlusAssignOp___init_aplusassignop(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_APlusAssignOp(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AMinusAssignOp[74] = {
-  {(bigint) 3463 /* 0: Identity */},
-  {(bigint) 3 /* 1: AMinusAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AMinusAssignOp < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AMinusAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 4: AMinusAssignOp < PAssignOp: superclass typecheck marker */},
-  {(bigint) 3463 /* 5: AMinusAssignOp < AMinusAssignOp: superclass typecheck marker */},
+const classtable_elt_t VFT_AMinusAssignOp[75] = {
+  {(bigint) 6231 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AMinusAssignOp < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AMinusAssignOp < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AMinusAssignOp < Prod: superclass typecheck marker */},
+  {(bigint) 5995 /* 5: AMinusAssignOp < AAssignOp: superclass typecheck marker */},
+  {(bigint) 6231 /* 6: AMinusAssignOp < AMinusAssignOp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37783,14 +83933,12 @@ const classtable_elt_t VFT_AMinusAssignOp[74] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AMinusAssignOp < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AMinusAssignOp < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37798,7 +83946,6 @@ const classtable_elt_t VFT_AMinusAssignOp[74] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37806,75 +83953,165 @@ const classtable_elt_t VFT_AMinusAssignOp[74] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AMinusAssignOp___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AMinusAssignOp___visit_all},
   {(bigint) parser_prod___AMinusAssignOp___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AMinusAssignOp < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AMinusAssignOp < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AMinusAssignOp < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) typing___AMinusAssignOp___method_name},
-  {(bigint) 3 /* 68: AMinusAssignOp < PAssignOp: superclass init_table position */},
+  {(bigint) 3 /* 69: AMinusAssignOp < AAssignOp: superclass init_table position */},
   {(bigint) parser_prod___AMinusAssignOp___empty_init},
   {(bigint) parser_prod___AMinusAssignOp___init_aminusassignop},
-  {(bigint) 4 /* 71: AMinusAssignOp < AMinusAssignOp: superclass init_table position */},
+  {(bigint) 4 /* 72: AMinusAssignOp < AMinusAssignOp: superclass init_table position */},
   {(bigint) parser_nodes___AMinusAssignOp___n_minuseq},
   {(bigint) parser_prod___AMinusAssignOp___n_minuseq__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AMinusAssignOp::_parent */
-/* 2: Attribute AMinusAssignOp::_first_token */
-/* 3: Attribute AMinusAssignOp::_last_token */
-/* 4: Attribute AMinusAssignOp::_n_minuseq */
-val_t NEW_AMinusAssignOp(void) {
+/* 1: Object_id */
+/* 2: Attribute AMinusAssignOp::_parent */
+/* 3: Attribute AMinusAssignOp::_location */
+/* 4: Attribute AMinusAssignOp::_first_location */
+/* 5: Attribute AMinusAssignOp::_last_location */
+/* 6: Attribute AMinusAssignOp::_n_minuseq */
+void INIT_ATTRIBUTES__AMinusAssignOp(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AMinusAssignOp;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMinusAssignOp(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
+  obj = alloc(sizeof(val_t) * 7);
   obj->vft = (classtable_elt_t*)VFT_AMinusAssignOp;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AMinusAssignOp___empty_init() {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AMinusAssignOp(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AMinusAssignOp;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_minuseq");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AMinusAssignOp_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AMinusAssignOp();
-  parser_prod___AMinusAssignOp___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0) {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AMinusAssignOp_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AMinusAssignOp();
+  INIT_ATTRIBUTES__AMinusAssignOp(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMinusAssignOp(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AMinusAssignOp();
-  parser_prod___AMinusAssignOp___init_aminusassignop(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9501;
+  fra.me.meth = LOCATE_NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AMinusAssignOp();
+  /* ./parser//parser_prod.nit:9501 */
+  INIT_ATTRIBUTES__AMinusAssignOp(fra.me.REG[0]);
+  parser_prod___AMinusAssignOp___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AMinusAssignOp(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9503;
+  fra.me.meth = LOCATE_NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop;
+  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;
+  fra.me.REG[1] = NEW_AMinusAssignOp();
+  /* ./parser//parser_prod.nit:9503 */
+  INIT_ATTRIBUTES__AMinusAssignOp(fra.me.REG[1]);
+  parser_prod___AMinusAssignOp___init_aminusassignop(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AMinusAssignOp(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AQualified[75] = {
-  {(bigint) 3403 /* 0: Identity */},
-  {(bigint) 3 /* 1: AQualified < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AQualified < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AQualified < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 4: AQualified < PQualified: superclass typecheck marker */},
-  {(bigint) 3403 /* 5: AQualified < AQualified: superclass typecheck marker */},
+const classtable_elt_t VFT_AClosureDef[91] = {
+  {(bigint) 6315 /* 0: Identity */},
+  {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AClosureDef < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AClosureDef < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AClosureDef < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: AClosureDef < ALabelable: superclass typecheck marker */},
+  {(bigint) 6315 /* 6: AClosureDef < AClosureDef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37882,14 +84119,586 @@ const classtable_elt_t VFT_AQualified[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AClosureDef < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___AClosureDef___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___AClosureDef___visit_all},
+  {(bigint) parser_prod___AClosureDef___visit_all_reverse},
+  {(bigint) 1 /* 59: AClosureDef < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___AClosureDef___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AClosureDef < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 3 /* 68: AClosureDef < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_prod___AClosureDef___n_label__eq},
+  {(bigint) icode_generation___AClosureDef___generate_iclosuredef},
+  {(bigint) typing___AClosureDef___escapable},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AClosureDef___accept_typing2},
+  {(bigint) typing___AClosureDef___closure},
+  {(bigint) syntax_base___AClosureDef___variables},
+  {(bigint) syntax_base___AClosureDef___variables__eq},
+  {(bigint) parser_prod___AClosureDef___empty_init},
+  {(bigint) parser_prod___AClosureDef___init_aclosuredef},
+  {(bigint) 4 /* 80: AClosureDef < AClosureDef: superclass init_table position */},
+  {(bigint) parser_nodes___AClosureDef___n_bang},
+  {(bigint) parser_prod___AClosureDef___n_bang__eq},
+  {(bigint) parser_nodes___AClosureDef___n_id},
+  {(bigint) parser_prod___AClosureDef___n_id__eq},
+  {(bigint) parser_nodes___AClosureDef___n_ids},
+  {(bigint) parser_nodes___AClosureDef___n_ids__eq},
+  {(bigint) parser_nodes___AClosureDef___n_kwdo},
+  {(bigint) parser_prod___AClosureDef___n_kwdo__eq},
+  {(bigint) parser_nodes___AClosureDef___n_expr},
+  {(bigint) parser_prod___AClosureDef___n_expr__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AClosureDef::_parent */
+/* 3: Attribute AClosureDef::_location */
+/* 4: Attribute AClosureDef::_first_location */
+/* 5: Attribute AClosureDef::_last_location */
+/* 6: Attribute AClosureDef::_n_label */
+/* 7: Attribute AClosureDef::_iclosure_def */
+/* 8: Attribute AClosureDef::_closure */
+/* 9: Attribute AClosureDef::_escapable */
+/* 10: Attribute AClosureDef::_accept_typing2 */
+/* 11: Attribute AClosureDef::_variables */
+/* 12: Attribute AClosureDef::_n_bang */
+/* 13: Attribute AClosureDef::_n_id */
+/* 14: Attribute AClosureDef::_n_ids */
+/* 15: Attribute AClosureDef::_n_kwdo */
+/* 16: Attribute AClosureDef::_n_expr */
+void INIT_ATTRIBUTES__AClosureDef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AClosureDef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:941 */
+  ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:942 */
+  ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:943 */
+  ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:1649 */
+  ATTR_typing___AClosureDef____accept_typing2(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClosureDef(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 17);
+  obj->vft = (classtable_elt_t*)VFT_AClosureDef;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AClosureDef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AClosureDef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_bang");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_ids");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AClosureDef____accept_typing2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_accept_typing2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClosureDef_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AClosureDef_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AClosureDef();
+  INIT_ATTRIBUTES__AClosureDef(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AClosureDef(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AClosureDef_parser_prod___AClosureDef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9569;
+  fra.me.meth = LOCATE_NEW_AClosureDef_parser_prod___AClosureDef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AClosureDef();
+  /* ./parser//parser_prod.nit:9569 */
+  INIT_ATTRIBUTES__AClosureDef(fra.me.REG[0]);
+  parser_prod___AClosureDef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AClosureDef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9571;
+  fra.me.meth = LOCATE_NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = NEW_AClosureDef();
+  /* ./parser//parser_prod.nit:9571 */
+  INIT_ATTRIBUTES__AClosureDef(fra.me.REG[6]);
+  parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
+  CHECKNEW_AClosureDef(fra.me.REG[6]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[6];
+}
+const classtable_elt_t VFT_AClosureId[70] = {
+  {(bigint) 5979 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AClosureId < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AClosureId < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AClosureId < Prod: superclass typecheck marker */},
+  {(bigint) 5979 /* 5: AClosureId < AClosureId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AClosureId < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
   {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AClosureId < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AClosureId < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) typing___AClosureId___to_symbol},
+  {(bigint) 3 /* 69: AClosureId < AClosureId: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AClosureId::_parent */
+/* 3: Attribute AClosureId::_location */
+/* 4: Attribute AClosureId::_first_location */
+/* 5: Attribute AClosureId::_last_location */
+void INIT_ATTRIBUTES__AClosureId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AClosureId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClosureId(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_AClosureId;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AClosureId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AClosureId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AClosureId_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AClosureId_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AClosureId();
+  INIT_ATTRIBUTES__AClosureId(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AClosureId(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ASimpleClosureId[75] = {
+  {(bigint) 6163 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASimpleClosureId < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASimpleClosureId < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASimpleClosureId < Prod: superclass typecheck marker */},
+  {(bigint) 5979 /* 5: ASimpleClosureId < AClosureId: superclass typecheck marker */},
+  {(bigint) 6163 /* 6: ASimpleClosureId < ASimpleClosureId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ASimpleClosureId < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AQualified < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ASimpleClosureId___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ASimpleClosureId___visit_all},
+  {(bigint) parser_prod___ASimpleClosureId___visit_all_reverse},
+  {(bigint) 1 /* 59: ASimpleClosureId < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ASimpleClosureId < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) typing___ASimpleClosureId___to_symbol},
+  {(bigint) 3 /* 69: ASimpleClosureId < AClosureId: superclass init_table position */},
+  {(bigint) parser_prod___ASimpleClosureId___empty_init},
+  {(bigint) parser_prod___ASimpleClosureId___init_asimpleclosureid},
+  {(bigint) 4 /* 72: ASimpleClosureId < ASimpleClosureId: superclass init_table position */},
+  {(bigint) parser_nodes___ASimpleClosureId___n_id},
+  {(bigint) parser_prod___ASimpleClosureId___n_id__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ASimpleClosureId::_parent */
+/* 3: Attribute ASimpleClosureId::_location */
+/* 4: Attribute ASimpleClosureId::_first_location */
+/* 5: Attribute ASimpleClosureId::_last_location */
+/* 6: Attribute ASimpleClosureId::_n_id */
+void INIT_ATTRIBUTES__ASimpleClosureId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASimpleClosureId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASimpleClosureId(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ASimpleClosureId;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASimpleClosureId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASimpleClosureId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASimpleClosureId_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASimpleClosureId_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASimpleClosureId();
+  INIT_ATTRIBUTES__ASimpleClosureId(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASimpleClosureId(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9717;
+  fra.me.meth = LOCATE_NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASimpleClosureId();
+  /* ./parser//parser_prod.nit:9717 */
+  INIT_ATTRIBUTES__ASimpleClosureId(fra.me.REG[0]);
+  parser_prod___ASimpleClosureId___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASimpleClosureId(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9719;
+  fra.me.meth = LOCATE_NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___init_asimpleclosureid;
+  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;
+  fra.me.REG[1] = NEW_ASimpleClosureId();
+  /* ./parser//parser_prod.nit:9719 */
+  INIT_ATTRIBUTES__ASimpleClosureId(fra.me.REG[1]);
+  parser_prod___ASimpleClosureId___init_asimpleclosureid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASimpleClosureId(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ABreakClosureId[75] = {
+  {(bigint) 6323 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ABreakClosureId < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ABreakClosureId < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ABreakClosureId < Prod: superclass typecheck marker */},
+  {(bigint) 5979 /* 5: ABreakClosureId < AClosureId: superclass typecheck marker */},
+  {(bigint) 6323 /* 6: ABreakClosureId < ABreakClosureId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ABreakClosureId < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37897,7 +84706,191 @@ const classtable_elt_t VFT_AQualified[75] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ABreakClosureId___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ABreakClosureId___visit_all},
+  {(bigint) parser_prod___ABreakClosureId___visit_all_reverse},
+  {(bigint) 1 /* 59: ABreakClosureId < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ABreakClosureId < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) typing___ABreakClosureId___to_symbol},
+  {(bigint) 3 /* 69: ABreakClosureId < AClosureId: superclass init_table position */},
+  {(bigint) parser_prod___ABreakClosureId___empty_init},
+  {(bigint) parser_prod___ABreakClosureId___init_abreakclosureid},
+  {(bigint) 4 /* 72: ABreakClosureId < ABreakClosureId: superclass init_table position */},
+  {(bigint) parser_nodes___ABreakClosureId___n_kwbreak},
+  {(bigint) parser_prod___ABreakClosureId___n_kwbreak__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ABreakClosureId::_parent */
+/* 3: Attribute ABreakClosureId::_location */
+/* 4: Attribute ABreakClosureId::_first_location */
+/* 5: Attribute ABreakClosureId::_last_location */
+/* 6: Attribute ABreakClosureId::_n_kwbreak */
+void INIT_ATTRIBUTES__ABreakClosureId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ABreakClosureId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABreakClosureId(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ABreakClosureId;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ABreakClosureId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ABreakClosureId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_kwbreak");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ABreakClosureId_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ABreakClosureId_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ABreakClosureId();
+  INIT_ATTRIBUTES__ABreakClosureId(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABreakClosureId(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ABreakClosureId_parser_prod___ABreakClosureId___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9759;
+  fra.me.meth = LOCATE_NEW_ABreakClosureId_parser_prod___ABreakClosureId___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ABreakClosureId();
+  /* ./parser//parser_prod.nit:9759 */
+  INIT_ATTRIBUTES__ABreakClosureId(fra.me.REG[0]);
+  parser_prod___ABreakClosureId___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ABreakClosureId(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABreakClosureId_parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9761;
+  fra.me.meth = LOCATE_NEW_ABreakClosureId_parser_prod___ABreakClosureId___init_abreakclosureid;
+  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;
+  fra.me.REG[1] = NEW_ABreakClosureId();
+  /* ./parser//parser_prod.nit:9761 */
+  INIT_ATTRIBUTES__ABreakClosureId(fra.me.REG[1]);
+  parser_prod___ABreakClosureId___init_abreakclosureid(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ABreakClosureId(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_AQualified[75] = {
+  {(bigint) 5931 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AQualified < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AQualified < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AQualified < Prod: superclass typecheck marker */},
+  {(bigint) 5931 /* 5: AQualified < AQualified: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
   {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AQualified < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -37905,77 +84898,175 @@ const classtable_elt_t VFT_AQualified[75] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___AQualified___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___AQualified___visit_all},
   {(bigint) parser_prod___AQualified___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AQualified < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: AQualified < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: AQualified < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: AQualified < PQualified: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) parser_prod___AQualified___empty_init},
   {(bigint) parser_prod___AQualified___init_aqualified},
-  {(bigint) 4 /* 70: AQualified < AQualified: superclass init_table position */},
+  {(bigint) 3 /* 70: AQualified < AQualified: superclass init_table position */},
   {(bigint) parser_nodes___AQualified___n_id},
   {(bigint) parser_nodes___AQualified___n_id__eq},
   {(bigint) parser_nodes___AQualified___n_classid},
   {(bigint) parser_prod___AQualified___n_classid__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AQualified::_parent */
-/* 2: Attribute AQualified::_first_token */
-/* 3: Attribute AQualified::_last_token */
-/* 4: Attribute AQualified::_n_id */
-/* 5: Attribute AQualified::_n_classid */
-val_t NEW_AQualified(void) {
+/* 1: Object_id */
+/* 2: Attribute AQualified::_parent */
+/* 3: Attribute AQualified::_location */
+/* 4: Attribute AQualified::_first_location */
+/* 5: Attribute AQualified::_last_location */
+/* 6: Attribute AQualified::_n_id */
+/* 7: Attribute AQualified::_n_classid */
+void INIT_ATTRIBUTES__AQualified(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AQualified;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:958 */
+  ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:959 */
+  ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AQualified(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_AQualified;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___AQualified___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AQualified();
-  parser_prod___AQualified___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___AQualified___init_aqualified(val_t p0, val_t p1) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_AQualified();
-  parser_prod___AQualified___init_aqualified(self, p0, p1, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AQualified(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AQualified;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AQualified_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AQualified_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AQualified();
+  INIT_ATTRIBUTES__AQualified(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AQualified(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_AQualified_parser_prod___AQualified___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9803;
+  fra.me.meth = LOCATE_NEW_AQualified_parser_prod___AQualified___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AQualified();
+  /* ./parser//parser_prod.nit:9803 */
+  INIT_ATTRIBUTES__AQualified(fra.me.REG[0]);
+  parser_prod___AQualified___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_AQualified(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AQualified_parser_prod___AQualified___init_aqualified(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9805;
+  fra.me.meth = LOCATE_NEW_AQualified_parser_prod___AQualified___init_aqualified;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AQualified();
+  /* ./parser//parser_prod.nit:9805 */
+  INIT_ATTRIBUTES__AQualified(fra.me.REG[2]);
+  parser_prod___AQualified___init_aqualified(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AQualified(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
 const classtable_elt_t VFT_ADoc[73] = {
-  {(bigint) 3535 /* 0: Identity */},
-  {(bigint) 3 /* 1: ADoc < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ADoc < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ADoc < Prod: superclass typecheck marker */},
-  {(bigint) 3099 /* 4: ADoc < PDoc: superclass typecheck marker */},
-  {(bigint) 3535 /* 5: ADoc < ADoc: superclass typecheck marker */},
+  {(bigint) 5975 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ADoc < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ADoc < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ADoc < Prod: superclass typecheck marker */},
+  {(bigint) 5975 /* 5: ADoc < ADoc: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37983,14 +85074,13 @@ const classtable_elt_t VFT_ADoc[73] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ADoc < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ADoc < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -37998,7 +85088,6 @@ const classtable_elt_t VFT_ADoc[73] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -38006,73 +85095,167 @@ const classtable_elt_t VFT_ADoc[73] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___ADoc___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___ADoc___visit_all},
   {(bigint) parser_prod___ADoc___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ADoc < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: ADoc < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: ADoc < Prod: superclass init_table position */},
-  {(bigint) 3 /* 67: ADoc < PDoc: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) parser_prod___ADoc___empty_init},
   {(bigint) parser_prod___ADoc___init_adoc},
-  {(bigint) 4 /* 70: ADoc < ADoc: superclass init_table position */},
+  {(bigint) 3 /* 70: ADoc < ADoc: superclass init_table position */},
   {(bigint) parser_nodes___ADoc___n_comment},
   {(bigint) parser_nodes___ADoc___n_comment__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ADoc::_parent */
-/* 2: Attribute ADoc::_first_token */
-/* 3: Attribute ADoc::_last_token */
-/* 4: Attribute ADoc::_n_comment */
-val_t NEW_ADoc(void) {
+/* 1: Object_id */
+/* 2: Attribute ADoc::_parent */
+/* 3: Attribute ADoc::_location */
+/* 4: Attribute ADoc::_first_location */
+/* 5: Attribute ADoc::_last_location */
+/* 6: Attribute ADoc::_n_comment */
+void INIT_ATTRIBUTES__ADoc(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ADoc;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:963 */
+  ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ADoc(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
+  obj = alloc(sizeof(val_t) * 7);
   obj->vft = (classtable_elt_t*)VFT_ADoc;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___ADoc___empty_init() {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ADoc();
-  parser_prod___ADoc___empty_init(self, init_table);
-  return self;
-}
-val_t NEW_parser_prod___ADoc___init_adoc(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_ADoc();
-  parser_prod___ADoc___init_adoc(self, p0, init_table);
-  return self;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ADoc(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ADoc;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_comment");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ADoc_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ADoc_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ADoc();
+  INIT_ATTRIBUTES__ADoc(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ADoc(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ADoc_parser_prod___ADoc___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9874;
+  fra.me.meth = LOCATE_NEW_ADoc_parser_prod___ADoc___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ADoc();
+  /* ./parser//parser_prod.nit:9874 */
+  INIT_ATTRIBUTES__ADoc(fra.me.REG[0]);
+  parser_prod___ADoc___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ADoc(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ADoc_parser_prod___ADoc___init_adoc(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9876;
+  fra.me.meth = LOCATE_NEW_ADoc_parser_prod___ADoc___init_adoc;
+  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;
+  fra.me.REG[1] = NEW_ADoc();
+  /* ./parser//parser_prod.nit:9876 */
+  INIT_ATTRIBUTES__ADoc(fra.me.REG[1]);
+  parser_prod___ADoc___init_adoc(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ADoc(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_Start[73] = {
-  {(bigint) 3031 /* 0: Identity */},
-  {(bigint) 3 /* 1: Start < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: Start < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: Start < Prod: superclass typecheck marker */},
-  {(bigint) 3031 /* 4: Start < Start: superclass typecheck marker */},
+const classtable_elt_t VFT_Start[74] = {
+  {(bigint) 5695 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Start < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: Start < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: Start < Prod: superclass typecheck marker */},
+  {(bigint) 5695 /* 5: Start < Start: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38081,14 +85264,12 @@ const classtable_elt_t VFT_Start[73] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Start < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Start < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -38096,7 +85277,6 @@ const classtable_elt_t VFT_Start[73] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -38104,66 +85284,144 @@ const classtable_elt_t VFT_Start[73] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PNode___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PNode___accept_property_builder},
-  {(bigint) mmbuilder___PNode___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
   {(bigint) parser_prod___Start___replace_child},
   {(bigint) parser_prod___Prod___replace_with},
   {(bigint) parser_prod___Start___visit_all},
   {(bigint) parser_prod___Start___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: Start < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
+  {(bigint) 1 /* 59: Start < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
   {(bigint) 2 /* 66: Start < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
   {(bigint) parser_prod___Start___init},
-  {(bigint) 3 /* 68: Start < Start: superclass init_table position */},
+  {(bigint) 3 /* 69: Start < Start: superclass init_table position */},
   {(bigint) parser_nodes___Start___n_base},
   {(bigint) parser_nodes___Start___n_base__eq},
   {(bigint) parser_nodes___Start___n_eof},
   {(bigint) parser_nodes___Start___n_eof__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Start::_parent */
-/* 2: Attribute Start::_first_token */
-/* 3: Attribute Start::_last_token */
-/* 4: Attribute Start::_n_base */
-/* 5: Attribute Start::_n_eof */
-val_t NEW_Start(void) {
+/* 1: Object_id */
+/* 2: Attribute Start::_parent */
+/* 3: Attribute Start::_location */
+/* 4: Attribute Start::_first_location */
+/* 5: Attribute Start::_last_location */
+/* 6: Attribute Start::_n_base */
+/* 7: Attribute Start::_n_eof */
+void INIT_ATTRIBUTES__Start(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Start;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Start(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_Start;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser_prod___Start___init(val_t p0, val_t p1) {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Start(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Start;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___Start____n_eof(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_eof");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Start_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_Start();
-  parser_prod___Start___init(self, p0, p1, init_table);
-  return self;
-}
-const classtable_elt_t VFT_Lexer[52] = {
-  {(bigint) 127 /* 0: Identity */},
-  {(bigint) 3 /* 1: Lexer < Object: superclass typecheck marker */},
-  {(bigint) 127 /* 2: Lexer < Lexer: superclass typecheck marker */},
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_Start_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_Start();
+  INIT_ATTRIBUTES__Start(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Start(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_Start_parser_prod___Start___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9924;
+  fra.me.meth = LOCATE_NEW_Start_parser_prod___Start___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_Start();
+  /* ./parser//parser_prod.nit:9924 */
+  INIT_ATTRIBUTES__Start(fra.me.REG[2]);
+  parser_prod___Start___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_Start(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_Lexer[57] = {
+  {(bigint) 139 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Lexer < Object: superclass typecheck marker */},
+  {(bigint) 139 /* 3: Lexer < Lexer: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38174,14 +85432,12 @@ const classtable_elt_t VFT_Lexer[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Lexer < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Lexer < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -38189,7 +85445,6 @@ const classtable_elt_t VFT_Lexer[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -38197,11 +85452,18 @@ const classtable_elt_t VFT_Lexer[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Lexer < Lexer: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Lexer < Lexer: superclass init_table position */},
   {(bigint) lexer___Lexer___filename},
   {(bigint) lexer___Lexer___state_initial},
   {(bigint) lexer___Lexer___init},
@@ -38215,41 +85477,184 @@ const classtable_elt_t VFT_Lexer[52] = {
   {(bigint) lexer___Lexer___build_accept_table},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Lexer::_token */
-/* 2: Attribute Lexer::_state */
-/* 3: Attribute Lexer::_filename */
-/* 4: Attribute Lexer::_stream */
-/* 5: Attribute Lexer::_stream_buf */
-/* 6: Attribute Lexer::_stream_pos */
-/* 7: Attribute Lexer::_line */
-/* 8: Attribute Lexer::_pos */
-/* 9: Attribute Lexer::_cr */
-/* 10: Attribute Lexer::_eof */
-/* 11: Attribute Lexer::_text */
-/* 12: Attribute Lexer::_goto_table */
-/* 13: Attribute Lexer::_accept_table */
-val_t NEW_Lexer(void) {
+/* 1: Object_id */
+/* 2: Attribute Lexer::_token */
+/* 3: Attribute Lexer::_state */
+/* 4: Attribute Lexer::_filename */
+/* 5: Attribute Lexer::_stream */
+/* 6: Attribute Lexer::_stream_buf */
+/* 7: Attribute Lexer::_stream_pos */
+/* 8: Attribute Lexer::_line */
+/* 9: Attribute Lexer::_pos */
+/* 10: Attribute Lexer::_cr */
+/* 11: Attribute Lexer::_eof */
+/* 12: Attribute Lexer::_text */
+/* 13: Attribute Lexer::_goto_table */
+/* 14: Attribute Lexer::_accept_table */
+void INIT_ATTRIBUTES__Lexer(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Lexer;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./parser//lexer.nit:1179 */
+  ATTR_lexer___Lexer____state(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./parser//lexer.nit:1194 */
+  ATTR_lexer___Lexer____line(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./parser//lexer.nit:1197 */
+  ATTR_lexer___Lexer____pos(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./parser//lexer.nit:1200 */
+  ATTR_lexer___Lexer____cr(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./parser//lexer.nit:1203 */
+  ATTR_lexer___Lexer____eof(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Lexer(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 14);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_Lexer;
-  ATTR_lexer___Lexer____state(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Lexer____stream_pos(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Lexer____line(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Lexer____pos(obj) = TAG_Int((bigint)0);
-  ATTR_lexer___Lexer____cr(obj) = TAG_Bool((int)0);
-  ATTR_lexer___Lexer____eof(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_lexer___Lexer___init(val_t p0, val_t p1) {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Lexer(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Lexer;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____state(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_state");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____filename(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_filename");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____stream(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stream");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____stream_buf(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stream_buf");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____stream_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stream_pos");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____line(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_line");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_pos");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____cr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_cr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____eof(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_eof");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____goto_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_goto_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_lexer___Lexer____accept_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_accept_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Lexer_lexer___Lexer___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[2] = {0, 0};
-  val_t self = NEW_Lexer();
-  lexer___Lexer___init(self, p0, p1, init_table);
-  return self;
-}
-const classtable_elt_t VFT_Visitor[42] = {
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1212;
+  fra.me.meth = LOCATE_NEW_Lexer_lexer___Lexer___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_Lexer();
+  /* ./parser//lexer.nit:1212 */
+  INIT_ATTRIBUTES__Lexer(fra.me.REG[2]);
+  lexer___Lexer___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_Lexer(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_Visitor[50] = {
   {(bigint) 7 /* 0: Identity */},
-  {(bigint) 3 /* 1: Visitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: Visitor < Visitor: superclass typecheck marker */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Visitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: Visitor < Visitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38260,14 +85665,12 @@ const classtable_elt_t VFT_Visitor[42] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Visitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Visitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -38275,7 +85678,6 @@ const classtable_elt_t VFT_Visitor[42] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -38283,24 +85685,86 @@ const classtable_elt_t VFT_Visitor[42] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Visitor < Visitor: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Visitor < Visitor: superclass init_table position */},
   {(bigint) parser_prod___Visitor___visit},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_Visitor(void) {
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Visitor::_current_node */
+void INIT_ATTRIBUTES__Visitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Visitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Visitor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 3);
   obj->vft = (classtable_elt_t*)VFT_Visitor;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_ParserTable[1210] = {
-  {(bigint) 59 /* 0: Identity */},
-  {(bigint) 3 /* 1: ParserTable < Object: superclass typecheck marker */},
-  {(bigint) 59 /* 2: ParserTable < ParserTable: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Visitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Visitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Visitor_parser_prod___Visitor___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_Visitor_parser_prod___Visitor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_Visitor();
+  INIT_ATTRIBUTES__Visitor(fra.me.REG[0]);
+  parser_prod___Visitor___init(fra.me.REG[0], init_table);
+  CHECKNEW_Visitor(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ParserTable[2500] = {
+  {(bigint) 67 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ParserTable < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 3: ParserTable < ParserTable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38311,14 +85775,12 @@ const classtable_elt_t VFT_ParserTable[1210] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ParserTable < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ParserTable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -38326,7 +85788,6 @@ const classtable_elt_t VFT_ParserTable[1210] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -38334,11 +85795,18 @@ const classtable_elt_t VFT_ParserTable[1210] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ParserTable < ParserTable: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ParserTable < ParserTable: superclass init_table position */},
   {(bigint) parser_tables___ParserTable___build_action_table},
   {(bigint) parser_tables___ParserTable___action_table_row1},
   {(bigint) parser_tables___ParserTable___action_table_row2},
@@ -39505,25 +86973,1371 @@ const classtable_elt_t VFT_ParserTable[1210] = {
   {(bigint) parser_tables___ParserTable___action_table_row1163},
   {(bigint) parser_tables___ParserTable___action_table_row1164},
   {(bigint) parser_tables___ParserTable___action_table_row1165},
+  {(bigint) parser_tables___ParserTable___action_table_row1166},
+  {(bigint) parser_tables___ParserTable___action_table_row1167},
+  {(bigint) parser_tables___ParserTable___action_table_row1168},
+  {(bigint) parser_tables___ParserTable___action_table_row1169},
+  {(bigint) parser_tables___ParserTable___action_table_row1170},
+  {(bigint) parser_tables___ParserTable___action_table_row1171},
+  {(bigint) parser_tables___ParserTable___action_table_row1172},
+  {(bigint) parser_tables___ParserTable___action_table_row1173},
+  {(bigint) parser_tables___ParserTable___action_table_row1174},
+  {(bigint) parser_tables___ParserTable___action_table_row1175},
+  {(bigint) parser_tables___ParserTable___action_table_row1176},
+  {(bigint) parser_tables___ParserTable___action_table_row1177},
+  {(bigint) parser_tables___ParserTable___action_table_row1178},
+  {(bigint) parser_tables___ParserTable___action_table_row1179},
+  {(bigint) parser_tables___ParserTable___action_table_row1180},
+  {(bigint) parser_tables___ParserTable___action_table_row1181},
+  {(bigint) parser_tables___ParserTable___action_table_row1182},
+  {(bigint) parser_tables___ParserTable___action_table_row1183},
+  {(bigint) parser_tables___ParserTable___action_table_row1184},
+  {(bigint) parser_tables___ParserTable___action_table_row1185},
+  {(bigint) parser_tables___ParserTable___action_table_row1186},
+  {(bigint) parser_tables___ParserTable___action_table_row1187},
+  {(bigint) parser_tables___ParserTable___action_table_row1188},
+  {(bigint) parser_tables___ParserTable___action_table_row1189},
+  {(bigint) parser_tables___ParserTable___action_table_row1190},
+  {(bigint) parser_tables___ParserTable___action_table_row1191},
+  {(bigint) parser_tables___ParserTable___action_table_row1192},
+  {(bigint) parser_tables___ParserTable___action_table_row1193},
+  {(bigint) parser_tables___ParserTable___action_table_row1194},
+  {(bigint) parser_tables___ParserTable___action_table_row1195},
+  {(bigint) parser_tables___ParserTable___action_table_row1196},
+  {(bigint) parser_tables___ParserTable___action_table_row1197},
+  {(bigint) parser_tables___ParserTable___action_table_row1198},
+  {(bigint) parser_tables___ParserTable___action_table_row1199},
+  {(bigint) parser_tables___ParserTable___action_table_row1200},
+  {(bigint) parser_tables___ParserTable___action_table_row1201},
+  {(bigint) parser_tables___ParserTable___action_table_row1202},
+  {(bigint) parser_tables___ParserTable___action_table_row1203},
+  {(bigint) parser_tables___ParserTable___action_table_row1204},
+  {(bigint) parser_tables___ParserTable___action_table_row1205},
+  {(bigint) parser_tables___ParserTable___action_table_row1206},
+  {(bigint) parser_tables___ParserTable___action_table_row1207},
+  {(bigint) parser_tables___ParserTable___action_table_row1208},
+  {(bigint) parser_tables___ParserTable___action_table_row1209},
+  {(bigint) parser_tables___ParserTable___action_table_row1210},
+  {(bigint) parser_tables___ParserTable___action_table_row1211},
+  {(bigint) parser_tables___ParserTable___action_table_row1212},
+  {(bigint) parser_tables___ParserTable___action_table_row1213},
+  {(bigint) parser_tables___ParserTable___action_table_row1214},
+  {(bigint) parser_tables___ParserTable___action_table_row1215},
+  {(bigint) parser_tables___ParserTable___action_table_row1216},
+  {(bigint) parser_tables___ParserTable___action_table_row1217},
+  {(bigint) parser_tables___ParserTable___action_table_row1218},
+  {(bigint) parser_tables___ParserTable___action_table_row1219},
+  {(bigint) parser_tables___ParserTable___action_table_row1220},
+  {(bigint) parser_tables___ParserTable___action_table_row1221},
+  {(bigint) parser_tables___ParserTable___action_table_row1222},
+  {(bigint) parser_tables___ParserTable___action_table_row1223},
+  {(bigint) parser_tables___ParserTable___action_table_row1224},
+  {(bigint) parser_tables___ParserTable___action_table_row1225},
+  {(bigint) parser_tables___ParserTable___action_table_row1226},
+  {(bigint) parser_tables___ParserTable___action_table_row1227},
+  {(bigint) parser_tables___ParserTable___action_table_row1228},
+  {(bigint) parser_tables___ParserTable___action_table_row1229},
+  {(bigint) parser_tables___ParserTable___action_table_row1230},
+  {(bigint) parser_tables___ParserTable___action_table_row1231},
+  {(bigint) parser_tables___ParserTable___action_table_row1232},
+  {(bigint) parser_tables___ParserTable___action_table_row1233},
+  {(bigint) parser_tables___ParserTable___action_table_row1234},
+  {(bigint) parser_tables___ParserTable___action_table_row1235},
+  {(bigint) parser_tables___ParserTable___action_table_row1236},
+  {(bigint) parser_tables___ParserTable___action_table_row1237},
+  {(bigint) parser_tables___ParserTable___action_table_row1238},
+  {(bigint) parser_tables___ParserTable___action_table_row1239},
+  {(bigint) parser_tables___ParserTable___action_table_row1240},
+  {(bigint) parser_tables___ParserTable___action_table_row1241},
+  {(bigint) parser_tables___ParserTable___action_table_row1242},
+  {(bigint) parser_tables___ParserTable___action_table_row1243},
+  {(bigint) parser_tables___ParserTable___action_table_row1244},
+  {(bigint) parser_tables___ParserTable___action_table_row1245},
+  {(bigint) parser_tables___ParserTable___action_table_row1246},
+  {(bigint) parser_tables___ParserTable___action_table_row1247},
+  {(bigint) parser_tables___ParserTable___action_table_row1248},
+  {(bigint) parser_tables___ParserTable___action_table_row1249},
+  {(bigint) parser_tables___ParserTable___action_table_row1250},
+  {(bigint) parser_tables___ParserTable___action_table_row1251},
+  {(bigint) parser_tables___ParserTable___action_table_row1252},
+  {(bigint) parser_tables___ParserTable___action_table_row1253},
+  {(bigint) parser_tables___ParserTable___action_table_row1254},
+  {(bigint) parser_tables___ParserTable___action_table_row1255},
+  {(bigint) parser_tables___ParserTable___action_table_row1256},
+  {(bigint) parser_tables___ParserTable___action_table_row1257},
+  {(bigint) parser_tables___ParserTable___action_table_row1258},
+  {(bigint) parser_tables___ParserTable___action_table_row1259},
+  {(bigint) parser_tables___ParserTable___action_table_row1260},
+  {(bigint) parser_tables___ParserTable___action_table_row1261},
+  {(bigint) parser_tables___ParserTable___action_table_row1262},
+  {(bigint) parser_tables___ParserTable___action_table_row1263},
+  {(bigint) parser_tables___ParserTable___action_table_row1264},
+  {(bigint) parser_tables___ParserTable___action_table_row1265},
+  {(bigint) parser_tables___ParserTable___action_table_row1266},
+  {(bigint) parser_tables___ParserTable___action_table_row1267},
+  {(bigint) parser_tables___ParserTable___action_table_row1268},
+  {(bigint) parser_tables___ParserTable___action_table_row1269},
+  {(bigint) parser_tables___ParserTable___action_table_row1270},
+  {(bigint) parser_tables___ParserTable___action_table_row1271},
+  {(bigint) parser_tables___ParserTable___action_table_row1272},
+  {(bigint) parser_tables___ParserTable___action_table_row1273},
+  {(bigint) parser_tables___ParserTable___action_table_row1274},
+  {(bigint) parser_tables___ParserTable___action_table_row1275},
+  {(bigint) parser_tables___ParserTable___action_table_row1276},
+  {(bigint) parser_tables___ParserTable___action_table_row1277},
+  {(bigint) parser_tables___ParserTable___action_table_row1278},
+  {(bigint) parser_tables___ParserTable___action_table_row1279},
+  {(bigint) parser_tables___ParserTable___action_table_row1280},
+  {(bigint) parser_tables___ParserTable___action_table_row1281},
+  {(bigint) parser_tables___ParserTable___action_table_row1282},
+  {(bigint) parser_tables___ParserTable___action_table_row1283},
+  {(bigint) parser_tables___ParserTable___action_table_row1284},
+  {(bigint) parser_tables___ParserTable___action_table_row1285},
+  {(bigint) parser_tables___ParserTable___action_table_row1286},
+  {(bigint) parser_tables___ParserTable___action_table_row1287},
+  {(bigint) parser_tables___ParserTable___action_table_row1288},
+  {(bigint) parser_tables___ParserTable___action_table_row1289},
+  {(bigint) parser_tables___ParserTable___action_table_row1290},
+  {(bigint) parser_tables___ParserTable___action_table_row1291},
+  {(bigint) parser_tables___ParserTable___action_table_row1292},
+  {(bigint) parser_tables___ParserTable___action_table_row1293},
+  {(bigint) parser_tables___ParserTable___action_table_row1294},
+  {(bigint) parser_tables___ParserTable___action_table_row1295},
+  {(bigint) parser_tables___ParserTable___action_table_row1296},
+  {(bigint) parser_tables___ParserTable___action_table_row1297},
+  {(bigint) parser_tables___ParserTable___action_table_row1298},
+  {(bigint) parser_tables___ParserTable___action_table_row1299},
+  {(bigint) parser_tables___ParserTable___action_table_row1300},
+  {(bigint) parser_tables___ParserTable___action_table_row1301},
+  {(bigint) parser_tables___ParserTable___action_table_row1302},
+  {(bigint) parser_tables___ParserTable___action_table_row1303},
+  {(bigint) parser_tables___ParserTable___action_table_row1304},
+  {(bigint) parser_tables___ParserTable___action_table_row1305},
+  {(bigint) parser_tables___ParserTable___action_table_row1306},
+  {(bigint) parser_tables___ParserTable___action_table_row1307},
+  {(bigint) parser_tables___ParserTable___action_table_row1308},
+  {(bigint) parser_tables___ParserTable___action_table_row1309},
+  {(bigint) parser_tables___ParserTable___action_table_row1310},
+  {(bigint) parser_tables___ParserTable___action_table_row1311},
+  {(bigint) parser_tables___ParserTable___action_table_row1312},
+  {(bigint) parser_tables___ParserTable___action_table_row1313},
+  {(bigint) parser_tables___ParserTable___action_table_row1314},
+  {(bigint) parser_tables___ParserTable___action_table_row1315},
+  {(bigint) parser_tables___ParserTable___action_table_row1316},
+  {(bigint) parser_tables___ParserTable___action_table_row1317},
+  {(bigint) parser_tables___ParserTable___action_table_row1318},
+  {(bigint) parser_tables___ParserTable___action_table_row1319},
+  {(bigint) parser_tables___ParserTable___action_table_row1320},
+  {(bigint) parser_tables___ParserTable___action_table_row1321},
+  {(bigint) parser_tables___ParserTable___action_table_row1322},
+  {(bigint) parser_tables___ParserTable___action_table_row1323},
+  {(bigint) parser_tables___ParserTable___action_table_row1324},
+  {(bigint) parser_tables___ParserTable___action_table_row1325},
+  {(bigint) parser_tables___ParserTable___action_table_row1326},
+  {(bigint) parser_tables___ParserTable___action_table_row1327},
+  {(bigint) parser_tables___ParserTable___action_table_row1328},
+  {(bigint) parser_tables___ParserTable___action_table_row1329},
+  {(bigint) parser_tables___ParserTable___action_table_row1330},
+  {(bigint) parser_tables___ParserTable___action_table_row1331},
+  {(bigint) parser_tables___ParserTable___action_table_row1332},
+  {(bigint) parser_tables___ParserTable___action_table_row1333},
+  {(bigint) parser_tables___ParserTable___action_table_row1334},
+  {(bigint) parser_tables___ParserTable___action_table_row1335},
+  {(bigint) parser_tables___ParserTable___action_table_row1336},
+  {(bigint) parser_tables___ParserTable___action_table_row1337},
+  {(bigint) parser_tables___ParserTable___action_table_row1338},
+  {(bigint) parser_tables___ParserTable___action_table_row1339},
+  {(bigint) parser_tables___ParserTable___action_table_row1340},
+  {(bigint) parser_tables___ParserTable___action_table_row1341},
+  {(bigint) parser_tables___ParserTable___action_table_row1342},
+  {(bigint) parser_tables___ParserTable___action_table_row1343},
+  {(bigint) parser_tables___ParserTable___action_table_row1344},
+  {(bigint) parser_tables___ParserTable___action_table_row1345},
+  {(bigint) parser_tables___ParserTable___action_table_row1346},
+  {(bigint) parser_tables___ParserTable___action_table_row1347},
+  {(bigint) parser_tables___ParserTable___action_table_row1348},
+  {(bigint) parser_tables___ParserTable___action_table_row1349},
+  {(bigint) parser_tables___ParserTable___action_table_row1350},
+  {(bigint) parser_tables___ParserTable___action_table_row1351},
+  {(bigint) parser_tables___ParserTable___action_table_row1352},
+  {(bigint) parser_tables___ParserTable___action_table_row1353},
+  {(bigint) parser_tables___ParserTable___action_table_row1354},
+  {(bigint) parser_tables___ParserTable___action_table_row1355},
+  {(bigint) parser_tables___ParserTable___action_table_row1356},
+  {(bigint) parser_tables___ParserTable___action_table_row1357},
+  {(bigint) parser_tables___ParserTable___action_table_row1358},
+  {(bigint) parser_tables___ParserTable___action_table_row1359},
+  {(bigint) parser_tables___ParserTable___action_table_row1360},
+  {(bigint) parser_tables___ParserTable___action_table_row1361},
+  {(bigint) parser_tables___ParserTable___action_table_row1362},
+  {(bigint) parser_tables___ParserTable___action_table_row1363},
+  {(bigint) parser_tables___ParserTable___action_table_row1364},
+  {(bigint) parser_tables___ParserTable___action_table_row1365},
+  {(bigint) parser_tables___ParserTable___action_table_row1366},
+  {(bigint) parser_tables___ParserTable___action_table_row1367},
+  {(bigint) parser_tables___ParserTable___action_table_row1368},
+  {(bigint) parser_tables___ParserTable___action_table_row1369},
+  {(bigint) parser_tables___ParserTable___action_table_row1370},
+  {(bigint) parser_tables___ParserTable___action_table_row1371},
+  {(bigint) parser_tables___ParserTable___action_table_row1372},
+  {(bigint) parser_tables___ParserTable___action_table_row1373},
+  {(bigint) parser_tables___ParserTable___action_table_row1374},
+  {(bigint) parser_tables___ParserTable___action_table_row1375},
+  {(bigint) parser_tables___ParserTable___action_table_row1376},
+  {(bigint) parser_tables___ParserTable___action_table_row1377},
+  {(bigint) parser_tables___ParserTable___action_table_row1378},
+  {(bigint) parser_tables___ParserTable___action_table_row1379},
+  {(bigint) parser_tables___ParserTable___action_table_row1380},
+  {(bigint) parser_tables___ParserTable___action_table_row1381},
+  {(bigint) parser_tables___ParserTable___action_table_row1382},
+  {(bigint) parser_tables___ParserTable___action_table_row1383},
+  {(bigint) parser_tables___ParserTable___action_table_row1384},
+  {(bigint) parser_tables___ParserTable___action_table_row1385},
+  {(bigint) parser_tables___ParserTable___action_table_row1386},
+  {(bigint) parser_tables___ParserTable___action_table_row1387},
+  {(bigint) parser_tables___ParserTable___action_table_row1388},
+  {(bigint) parser_tables___ParserTable___action_table_row1389},
+  {(bigint) parser_tables___ParserTable___action_table_row1390},
+  {(bigint) parser_tables___ParserTable___action_table_row1391},
+  {(bigint) parser_tables___ParserTable___action_table_row1392},
+  {(bigint) parser_tables___ParserTable___action_table_row1393},
+  {(bigint) parser_tables___ParserTable___action_table_row1394},
+  {(bigint) parser_tables___ParserTable___action_table_row1395},
+  {(bigint) parser_tables___ParserTable___action_table_row1396},
+  {(bigint) parser_tables___ParserTable___action_table_row1397},
+  {(bigint) parser_tables___ParserTable___action_table_row1398},
+  {(bigint) parser_tables___ParserTable___action_table_row1399},
+  {(bigint) parser_tables___ParserTable___action_table_row1400},
+  {(bigint) parser_tables___ParserTable___action_table_row1401},
+  {(bigint) parser_tables___ParserTable___action_table_row1402},
+  {(bigint) parser_tables___ParserTable___action_table_row1403},
+  {(bigint) parser_tables___ParserTable___action_table_row1404},
+  {(bigint) parser_tables___ParserTable___action_table_row1405},
+  {(bigint) parser_tables___ParserTable___action_table_row1406},
+  {(bigint) parser_tables___ParserTable___action_table_row1407},
+  {(bigint) parser_tables___ParserTable___action_table_row1408},
+  {(bigint) parser_tables___ParserTable___action_table_row1409},
+  {(bigint) parser_tables___ParserTable___action_table_row1410},
+  {(bigint) parser_tables___ParserTable___action_table_row1411},
+  {(bigint) parser_tables___ParserTable___action_table_row1412},
+  {(bigint) parser_tables___ParserTable___action_table_row1413},
+  {(bigint) parser_tables___ParserTable___action_table_row1414},
+  {(bigint) parser_tables___ParserTable___action_table_row1415},
+  {(bigint) parser_tables___ParserTable___action_table_row1416},
+  {(bigint) parser_tables___ParserTable___action_table_row1417},
+  {(bigint) parser_tables___ParserTable___action_table_row1418},
+  {(bigint) parser_tables___ParserTable___action_table_row1419},
+  {(bigint) parser_tables___ParserTable___action_table_row1420},
+  {(bigint) parser_tables___ParserTable___action_table_row1421},
+  {(bigint) parser_tables___ParserTable___action_table_row1422},
+  {(bigint) parser_tables___ParserTable___action_table_row1423},
+  {(bigint) parser_tables___ParserTable___action_table_row1424},
+  {(bigint) parser_tables___ParserTable___action_table_row1425},
+  {(bigint) parser_tables___ParserTable___action_table_row1426},
+  {(bigint) parser_tables___ParserTable___action_table_row1427},
+  {(bigint) parser_tables___ParserTable___action_table_row1428},
+  {(bigint) parser_tables___ParserTable___action_table_row1429},
+  {(bigint) parser_tables___ParserTable___action_table_row1430},
+  {(bigint) parser_tables___ParserTable___action_table_row1431},
+  {(bigint) parser_tables___ParserTable___action_table_row1432},
+  {(bigint) parser_tables___ParserTable___action_table_row1433},
+  {(bigint) parser_tables___ParserTable___action_table_row1434},
+  {(bigint) parser_tables___ParserTable___action_table_row1435},
+  {(bigint) parser_tables___ParserTable___action_table_row1436},
+  {(bigint) parser_tables___ParserTable___action_table_row1437},
+  {(bigint) parser_tables___ParserTable___action_table_row1438},
+  {(bigint) parser_tables___ParserTable___action_table_row1439},
+  {(bigint) parser_tables___ParserTable___action_table_row1440},
+  {(bigint) parser_tables___ParserTable___action_table_row1441},
+  {(bigint) parser_tables___ParserTable___action_table_row1442},
+  {(bigint) parser_tables___ParserTable___action_table_row1443},
+  {(bigint) parser_tables___ParserTable___action_table_row1444},
+  {(bigint) parser_tables___ParserTable___action_table_row1445},
+  {(bigint) parser_tables___ParserTable___action_table_row1446},
+  {(bigint) parser_tables___ParserTable___action_table_row1447},
+  {(bigint) parser_tables___ParserTable___action_table_row1448},
+  {(bigint) parser_tables___ParserTable___action_table_row1449},
+  {(bigint) parser_tables___ParserTable___action_table_row1450},
+  {(bigint) parser_tables___ParserTable___action_table_row1451},
+  {(bigint) parser_tables___ParserTable___action_table_row1452},
+  {(bigint) parser_tables___ParserTable___action_table_row1453},
+  {(bigint) parser_tables___ParserTable___action_table_row1454},
+  {(bigint) parser_tables___ParserTable___action_table_row1455},
+  {(bigint) parser_tables___ParserTable___action_table_row1456},
+  {(bigint) parser_tables___ParserTable___action_table_row1457},
+  {(bigint) parser_tables___ParserTable___action_table_row1458},
+  {(bigint) parser_tables___ParserTable___action_table_row1459},
+  {(bigint) parser_tables___ParserTable___action_table_row1460},
+  {(bigint) parser_tables___ParserTable___action_table_row1461},
+  {(bigint) parser_tables___ParserTable___action_table_row1462},
+  {(bigint) parser_tables___ParserTable___action_table_row1463},
+  {(bigint) parser_tables___ParserTable___action_table_row1464},
+  {(bigint) parser_tables___ParserTable___action_table_row1465},
+  {(bigint) parser_tables___ParserTable___action_table_row1466},
+  {(bigint) parser_tables___ParserTable___action_table_row1467},
+  {(bigint) parser_tables___ParserTable___action_table_row1468},
+  {(bigint) parser_tables___ParserTable___action_table_row1469},
+  {(bigint) parser_tables___ParserTable___action_table_row1470},
+  {(bigint) parser_tables___ParserTable___action_table_row1471},
+  {(bigint) parser_tables___ParserTable___action_table_row1472},
+  {(bigint) parser_tables___ParserTable___action_table_row1473},
+  {(bigint) parser_tables___ParserTable___action_table_row1474},
+  {(bigint) parser_tables___ParserTable___action_table_row1475},
+  {(bigint) parser_tables___ParserTable___action_table_row1476},
+  {(bigint) parser_tables___ParserTable___action_table_row1477},
+  {(bigint) parser_tables___ParserTable___action_table_row1478},
+  {(bigint) parser_tables___ParserTable___action_table_row1479},
+  {(bigint) parser_tables___ParserTable___action_table_row1480},
+  {(bigint) parser_tables___ParserTable___action_table_row1481},
+  {(bigint) parser_tables___ParserTable___action_table_row1482},
+  {(bigint) parser_tables___ParserTable___action_table_row1483},
+  {(bigint) parser_tables___ParserTable___action_table_row1484},
+  {(bigint) parser_tables___ParserTable___action_table_row1485},
+  {(bigint) parser_tables___ParserTable___action_table_row1486},
+  {(bigint) parser_tables___ParserTable___action_table_row1487},
+  {(bigint) parser_tables___ParserTable___action_table_row1488},
+  {(bigint) parser_tables___ParserTable___action_table_row1489},
+  {(bigint) parser_tables___ParserTable___action_table_row1490},
+  {(bigint) parser_tables___ParserTable___action_table_row1491},
+  {(bigint) parser_tables___ParserTable___action_table_row1492},
+  {(bigint) parser_tables___ParserTable___action_table_row1493},
+  {(bigint) parser_tables___ParserTable___action_table_row1494},
+  {(bigint) parser_tables___ParserTable___action_table_row1495},
+  {(bigint) parser_tables___ParserTable___action_table_row1496},
+  {(bigint) parser_tables___ParserTable___action_table_row1497},
+  {(bigint) parser_tables___ParserTable___action_table_row1498},
+  {(bigint) parser_tables___ParserTable___action_table_row1499},
+  {(bigint) parser_tables___ParserTable___action_table_row1500},
+  {(bigint) parser_tables___ParserTable___action_table_row1501},
+  {(bigint) parser_tables___ParserTable___action_table_row1502},
+  {(bigint) parser_tables___ParserTable___action_table_row1503},
+  {(bigint) parser_tables___ParserTable___action_table_row1504},
+  {(bigint) parser_tables___ParserTable___action_table_row1505},
+  {(bigint) parser_tables___ParserTable___action_table_row1506},
+  {(bigint) parser_tables___ParserTable___action_table_row1507},
+  {(bigint) parser_tables___ParserTable___action_table_row1508},
+  {(bigint) parser_tables___ParserTable___action_table_row1509},
+  {(bigint) parser_tables___ParserTable___action_table_row1510},
+  {(bigint) parser_tables___ParserTable___action_table_row1511},
+  {(bigint) parser_tables___ParserTable___action_table_row1512},
+  {(bigint) parser_tables___ParserTable___action_table_row1513},
+  {(bigint) parser_tables___ParserTable___action_table_row1514},
+  {(bigint) parser_tables___ParserTable___action_table_row1515},
+  {(bigint) parser_tables___ParserTable___action_table_row1516},
+  {(bigint) parser_tables___ParserTable___action_table_row1517},
+  {(bigint) parser_tables___ParserTable___action_table_row1518},
+  {(bigint) parser_tables___ParserTable___action_table_row1519},
+  {(bigint) parser_tables___ParserTable___action_table_row1520},
+  {(bigint) parser_tables___ParserTable___action_table_row1521},
+  {(bigint) parser_tables___ParserTable___action_table_row1522},
+  {(bigint) parser_tables___ParserTable___action_table_row1523},
+  {(bigint) parser_tables___ParserTable___action_table_row1524},
+  {(bigint) parser_tables___ParserTable___action_table_row1525},
+  {(bigint) parser_tables___ParserTable___action_table_row1526},
+  {(bigint) parser_tables___ParserTable___action_table_row1527},
+  {(bigint) parser_tables___ParserTable___action_table_row1528},
+  {(bigint) parser_tables___ParserTable___action_table_row1529},
+  {(bigint) parser_tables___ParserTable___action_table_row1530},
+  {(bigint) parser_tables___ParserTable___action_table_row1531},
+  {(bigint) parser_tables___ParserTable___action_table_row1532},
+  {(bigint) parser_tables___ParserTable___action_table_row1533},
+  {(bigint) parser_tables___ParserTable___action_table_row1534},
+  {(bigint) parser_tables___ParserTable___action_table_row1535},
+  {(bigint) parser_tables___ParserTable___action_table_row1536},
+  {(bigint) parser_tables___ParserTable___action_table_row1537},
+  {(bigint) parser_tables___ParserTable___action_table_row1538},
+  {(bigint) parser_tables___ParserTable___action_table_row1539},
+  {(bigint) parser_tables___ParserTable___action_table_row1540},
+  {(bigint) parser_tables___ParserTable___action_table_row1541},
+  {(bigint) parser_tables___ParserTable___action_table_row1542},
+  {(bigint) parser_tables___ParserTable___action_table_row1543},
+  {(bigint) parser_tables___ParserTable___action_table_row1544},
+  {(bigint) parser_tables___ParserTable___action_table_row1545},
+  {(bigint) parser_tables___ParserTable___action_table_row1546},
+  {(bigint) parser_tables___ParserTable___action_table_row1547},
+  {(bigint) parser_tables___ParserTable___action_table_row1548},
+  {(bigint) parser_tables___ParserTable___action_table_row1549},
+  {(bigint) parser_tables___ParserTable___action_table_row1550},
+  {(bigint) parser_tables___ParserTable___action_table_row1551},
+  {(bigint) parser_tables___ParserTable___action_table_row1552},
+  {(bigint) parser_tables___ParserTable___action_table_row1553},
+  {(bigint) parser_tables___ParserTable___action_table_row1554},
+  {(bigint) parser_tables___ParserTable___action_table_row1555},
+  {(bigint) parser_tables___ParserTable___action_table_row1556},
+  {(bigint) parser_tables___ParserTable___action_table_row1557},
+  {(bigint) parser_tables___ParserTable___action_table_row1558},
+  {(bigint) parser_tables___ParserTable___action_table_row1559},
+  {(bigint) parser_tables___ParserTable___action_table_row1560},
+  {(bigint) parser_tables___ParserTable___action_table_row1561},
+  {(bigint) parser_tables___ParserTable___action_table_row1562},
+  {(bigint) parser_tables___ParserTable___action_table_row1563},
+  {(bigint) parser_tables___ParserTable___action_table_row1564},
+  {(bigint) parser_tables___ParserTable___action_table_row1565},
+  {(bigint) parser_tables___ParserTable___action_table_row1566},
+  {(bigint) parser_tables___ParserTable___action_table_row1567},
+  {(bigint) parser_tables___ParserTable___action_table_row1568},
+  {(bigint) parser_tables___ParserTable___action_table_row1569},
+  {(bigint) parser_tables___ParserTable___action_table_row1570},
+  {(bigint) parser_tables___ParserTable___action_table_row1571},
+  {(bigint) parser_tables___ParserTable___action_table_row1572},
+  {(bigint) parser_tables___ParserTable___action_table_row1573},
+  {(bigint) parser_tables___ParserTable___action_table_row1574},
+  {(bigint) parser_tables___ParserTable___action_table_row1575},
+  {(bigint) parser_tables___ParserTable___action_table_row1576},
+  {(bigint) parser_tables___ParserTable___action_table_row1577},
+  {(bigint) parser_tables___ParserTable___action_table_row1578},
+  {(bigint) parser_tables___ParserTable___action_table_row1579},
+  {(bigint) parser_tables___ParserTable___action_table_row1580},
+  {(bigint) parser_tables___ParserTable___action_table_row1581},
+  {(bigint) parser_tables___ParserTable___action_table_row1582},
+  {(bigint) parser_tables___ParserTable___action_table_row1583},
+  {(bigint) parser_tables___ParserTable___action_table_row1584},
+  {(bigint) parser_tables___ParserTable___action_table_row1585},
+  {(bigint) parser_tables___ParserTable___action_table_row1586},
+  {(bigint) parser_tables___ParserTable___action_table_row1587},
+  {(bigint) parser_tables___ParserTable___action_table_row1588},
+  {(bigint) parser_tables___ParserTable___action_table_row1589},
+  {(bigint) parser_tables___ParserTable___action_table_row1590},
+  {(bigint) parser_tables___ParserTable___action_table_row1591},
+  {(bigint) parser_tables___ParserTable___action_table_row1592},
+  {(bigint) parser_tables___ParserTable___action_table_row1593},
+  {(bigint) parser_tables___ParserTable___action_table_row1594},
+  {(bigint) parser_tables___ParserTable___action_table_row1595},
+  {(bigint) parser_tables___ParserTable___action_table_row1596},
+  {(bigint) parser_tables___ParserTable___action_table_row1597},
+  {(bigint) parser_tables___ParserTable___action_table_row1598},
+  {(bigint) parser_tables___ParserTable___action_table_row1599},
+  {(bigint) parser_tables___ParserTable___action_table_row1600},
+  {(bigint) parser_tables___ParserTable___action_table_row1601},
+  {(bigint) parser_tables___ParserTable___action_table_row1602},
+  {(bigint) parser_tables___ParserTable___action_table_row1603},
+  {(bigint) parser_tables___ParserTable___action_table_row1604},
+  {(bigint) parser_tables___ParserTable___action_table_row1605},
+  {(bigint) parser_tables___ParserTable___action_table_row1606},
+  {(bigint) parser_tables___ParserTable___action_table_row1607},
+  {(bigint) parser_tables___ParserTable___action_table_row1608},
+  {(bigint) parser_tables___ParserTable___action_table_row1609},
+  {(bigint) parser_tables___ParserTable___action_table_row1610},
+  {(bigint) parser_tables___ParserTable___action_table_row1611},
+  {(bigint) parser_tables___ParserTable___action_table_row1612},
+  {(bigint) parser_tables___ParserTable___action_table_row1613},
+  {(bigint) parser_tables___ParserTable___action_table_row1614},
+  {(bigint) parser_tables___ParserTable___action_table_row1615},
+  {(bigint) parser_tables___ParserTable___action_table_row1616},
+  {(bigint) parser_tables___ParserTable___action_table_row1617},
+  {(bigint) parser_tables___ParserTable___action_table_row1618},
+  {(bigint) parser_tables___ParserTable___action_table_row1619},
+  {(bigint) parser_tables___ParserTable___action_table_row1620},
+  {(bigint) parser_tables___ParserTable___action_table_row1621},
+  {(bigint) parser_tables___ParserTable___action_table_row1622},
+  {(bigint) parser_tables___ParserTable___action_table_row1623},
+  {(bigint) parser_tables___ParserTable___action_table_row1624},
+  {(bigint) parser_tables___ParserTable___action_table_row1625},
+  {(bigint) parser_tables___ParserTable___action_table_row1626},
+  {(bigint) parser_tables___ParserTable___action_table_row1627},
+  {(bigint) parser_tables___ParserTable___action_table_row1628},
+  {(bigint) parser_tables___ParserTable___action_table_row1629},
+  {(bigint) parser_tables___ParserTable___action_table_row1630},
+  {(bigint) parser_tables___ParserTable___action_table_row1631},
+  {(bigint) parser_tables___ParserTable___action_table_row1632},
+  {(bigint) parser_tables___ParserTable___action_table_row1633},
+  {(bigint) parser_tables___ParserTable___action_table_row1634},
+  {(bigint) parser_tables___ParserTable___action_table_row1635},
+  {(bigint) parser_tables___ParserTable___action_table_row1636},
+  {(bigint) parser_tables___ParserTable___action_table_row1637},
+  {(bigint) parser_tables___ParserTable___action_table_row1638},
+  {(bigint) parser_tables___ParserTable___action_table_row1639},
+  {(bigint) parser_tables___ParserTable___action_table_row1640},
+  {(bigint) parser_tables___ParserTable___action_table_row1641},
+  {(bigint) parser_tables___ParserTable___action_table_row1642},
+  {(bigint) parser_tables___ParserTable___action_table_row1643},
+  {(bigint) parser_tables___ParserTable___action_table_row1644},
+  {(bigint) parser_tables___ParserTable___action_table_row1645},
+  {(bigint) parser_tables___ParserTable___action_table_row1646},
+  {(bigint) parser_tables___ParserTable___action_table_row1647},
+  {(bigint) parser_tables___ParserTable___action_table_row1648},
+  {(bigint) parser_tables___ParserTable___action_table_row1649},
+  {(bigint) parser_tables___ParserTable___action_table_row1650},
+  {(bigint) parser_tables___ParserTable___action_table_row1651},
+  {(bigint) parser_tables___ParserTable___action_table_row1652},
+  {(bigint) parser_tables___ParserTable___action_table_row1653},
+  {(bigint) parser_tables___ParserTable___action_table_row1654},
+  {(bigint) parser_tables___ParserTable___action_table_row1655},
+  {(bigint) parser_tables___ParserTable___action_table_row1656},
+  {(bigint) parser_tables___ParserTable___action_table_row1657},
+  {(bigint) parser_tables___ParserTable___action_table_row1658},
+  {(bigint) parser_tables___ParserTable___action_table_row1659},
+  {(bigint) parser_tables___ParserTable___action_table_row1660},
+  {(bigint) parser_tables___ParserTable___action_table_row1661},
+  {(bigint) parser_tables___ParserTable___action_table_row1662},
+  {(bigint) parser_tables___ParserTable___action_table_row1663},
+  {(bigint) parser_tables___ParserTable___action_table_row1664},
+  {(bigint) parser_tables___ParserTable___action_table_row1665},
+  {(bigint) parser_tables___ParserTable___action_table_row1666},
+  {(bigint) parser_tables___ParserTable___action_table_row1667},
+  {(bigint) parser_tables___ParserTable___action_table_row1668},
+  {(bigint) parser_tables___ParserTable___action_table_row1669},
+  {(bigint) parser_tables___ParserTable___action_table_row1670},
+  {(bigint) parser_tables___ParserTable___action_table_row1671},
+  {(bigint) parser_tables___ParserTable___action_table_row1672},
+  {(bigint) parser_tables___ParserTable___action_table_row1673},
+  {(bigint) parser_tables___ParserTable___action_table_row1674},
+  {(bigint) parser_tables___ParserTable___action_table_row1675},
+  {(bigint) parser_tables___ParserTable___action_table_row1676},
+  {(bigint) parser_tables___ParserTable___action_table_row1677},
+  {(bigint) parser_tables___ParserTable___action_table_row1678},
+  {(bigint) parser_tables___ParserTable___action_table_row1679},
+  {(bigint) parser_tables___ParserTable___action_table_row1680},
+  {(bigint) parser_tables___ParserTable___action_table_row1681},
+  {(bigint) parser_tables___ParserTable___action_table_row1682},
+  {(bigint) parser_tables___ParserTable___action_table_row1683},
+  {(bigint) parser_tables___ParserTable___action_table_row1684},
+  {(bigint) parser_tables___ParserTable___action_table_row1685},
+  {(bigint) parser_tables___ParserTable___action_table_row1686},
+  {(bigint) parser_tables___ParserTable___action_table_row1687},
+  {(bigint) parser_tables___ParserTable___action_table_row1688},
+  {(bigint) parser_tables___ParserTable___action_table_row1689},
+  {(bigint) parser_tables___ParserTable___action_table_row1690},
+  {(bigint) parser_tables___ParserTable___action_table_row1691},
+  {(bigint) parser_tables___ParserTable___action_table_row1692},
+  {(bigint) parser_tables___ParserTable___action_table_row1693},
+  {(bigint) parser_tables___ParserTable___action_table_row1694},
+  {(bigint) parser_tables___ParserTable___action_table_row1695},
+  {(bigint) parser_tables___ParserTable___action_table_row1696},
+  {(bigint) parser_tables___ParserTable___action_table_row1697},
+  {(bigint) parser_tables___ParserTable___action_table_row1698},
+  {(bigint) parser_tables___ParserTable___action_table_row1699},
+  {(bigint) parser_tables___ParserTable___action_table_row1700},
+  {(bigint) parser_tables___ParserTable___action_table_row1701},
+  {(bigint) parser_tables___ParserTable___action_table_row1702},
+  {(bigint) parser_tables___ParserTable___action_table_row1703},
+  {(bigint) parser_tables___ParserTable___action_table_row1704},
+  {(bigint) parser_tables___ParserTable___action_table_row1705},
+  {(bigint) parser_tables___ParserTable___action_table_row1706},
+  {(bigint) parser_tables___ParserTable___action_table_row1707},
+  {(bigint) parser_tables___ParserTable___action_table_row1708},
+  {(bigint) parser_tables___ParserTable___action_table_row1709},
+  {(bigint) parser_tables___ParserTable___action_table_row1710},
+  {(bigint) parser_tables___ParserTable___action_table_row1711},
+  {(bigint) parser_tables___ParserTable___action_table_row1712},
+  {(bigint) parser_tables___ParserTable___action_table_row1713},
+  {(bigint) parser_tables___ParserTable___action_table_row1714},
+  {(bigint) parser_tables___ParserTable___action_table_row1715},
+  {(bigint) parser_tables___ParserTable___action_table_row1716},
+  {(bigint) parser_tables___ParserTable___action_table_row1717},
+  {(bigint) parser_tables___ParserTable___action_table_row1718},
+  {(bigint) parser_tables___ParserTable___action_table_row1719},
+  {(bigint) parser_tables___ParserTable___action_table_row1720},
+  {(bigint) parser_tables___ParserTable___action_table_row1721},
+  {(bigint) parser_tables___ParserTable___action_table_row1722},
+  {(bigint) parser_tables___ParserTable___action_table_row1723},
+  {(bigint) parser_tables___ParserTable___action_table_row1724},
+  {(bigint) parser_tables___ParserTable___action_table_row1725},
+  {(bigint) parser_tables___ParserTable___action_table_row1726},
+  {(bigint) parser_tables___ParserTable___action_table_row1727},
+  {(bigint) parser_tables___ParserTable___action_table_row1728},
+  {(bigint) parser_tables___ParserTable___action_table_row1729},
+  {(bigint) parser_tables___ParserTable___action_table_row1730},
+  {(bigint) parser_tables___ParserTable___action_table_row1731},
+  {(bigint) parser_tables___ParserTable___action_table_row1732},
+  {(bigint) parser_tables___ParserTable___action_table_row1733},
+  {(bigint) parser_tables___ParserTable___action_table_row1734},
+  {(bigint) parser_tables___ParserTable___action_table_row1735},
+  {(bigint) parser_tables___ParserTable___action_table_row1736},
+  {(bigint) parser_tables___ParserTable___action_table_row1737},
+  {(bigint) parser_tables___ParserTable___action_table_row1738},
+  {(bigint) parser_tables___ParserTable___action_table_row1739},
+  {(bigint) parser_tables___ParserTable___action_table_row1740},
+  {(bigint) parser_tables___ParserTable___action_table_row1741},
+  {(bigint) parser_tables___ParserTable___action_table_row1742},
+  {(bigint) parser_tables___ParserTable___action_table_row1743},
+  {(bigint) parser_tables___ParserTable___action_table_row1744},
+  {(bigint) parser_tables___ParserTable___action_table_row1745},
+  {(bigint) parser_tables___ParserTable___action_table_row1746},
+  {(bigint) parser_tables___ParserTable___action_table_row1747},
+  {(bigint) parser_tables___ParserTable___action_table_row1748},
+  {(bigint) parser_tables___ParserTable___action_table_row1749},
+  {(bigint) parser_tables___ParserTable___action_table_row1750},
+  {(bigint) parser_tables___ParserTable___action_table_row1751},
+  {(bigint) parser_tables___ParserTable___action_table_row1752},
+  {(bigint) parser_tables___ParserTable___action_table_row1753},
+  {(bigint) parser_tables___ParserTable___action_table_row1754},
+  {(bigint) parser_tables___ParserTable___action_table_row1755},
+  {(bigint) parser_tables___ParserTable___action_table_row1756},
+  {(bigint) parser_tables___ParserTable___action_table_row1757},
+  {(bigint) parser_tables___ParserTable___action_table_row1758},
+  {(bigint) parser_tables___ParserTable___action_table_row1759},
+  {(bigint) parser_tables___ParserTable___action_table_row1760},
+  {(bigint) parser_tables___ParserTable___action_table_row1761},
+  {(bigint) parser_tables___ParserTable___action_table_row1762},
+  {(bigint) parser_tables___ParserTable___action_table_row1763},
+  {(bigint) parser_tables___ParserTable___action_table_row1764},
+  {(bigint) parser_tables___ParserTable___action_table_row1765},
+  {(bigint) parser_tables___ParserTable___action_table_row1766},
+  {(bigint) parser_tables___ParserTable___action_table_row1767},
+  {(bigint) parser_tables___ParserTable___action_table_row1768},
+  {(bigint) parser_tables___ParserTable___action_table_row1769},
+  {(bigint) parser_tables___ParserTable___action_table_row1770},
+  {(bigint) parser_tables___ParserTable___action_table_row1771},
+  {(bigint) parser_tables___ParserTable___action_table_row1772},
+  {(bigint) parser_tables___ParserTable___action_table_row1773},
+  {(bigint) parser_tables___ParserTable___action_table_row1774},
+  {(bigint) parser_tables___ParserTable___action_table_row1775},
+  {(bigint) parser_tables___ParserTable___action_table_row1776},
+  {(bigint) parser_tables___ParserTable___action_table_row1777},
+  {(bigint) parser_tables___ParserTable___action_table_row1778},
+  {(bigint) parser_tables___ParserTable___action_table_row1779},
+  {(bigint) parser_tables___ParserTable___action_table_row1780},
+  {(bigint) parser_tables___ParserTable___action_table_row1781},
+  {(bigint) parser_tables___ParserTable___action_table_row1782},
+  {(bigint) parser_tables___ParserTable___action_table_row1783},
+  {(bigint) parser_tables___ParserTable___action_table_row1784},
+  {(bigint) parser_tables___ParserTable___action_table_row1785},
+  {(bigint) parser_tables___ParserTable___action_table_row1786},
+  {(bigint) parser_tables___ParserTable___action_table_row1787},
+  {(bigint) parser_tables___ParserTable___action_table_row1788},
+  {(bigint) parser_tables___ParserTable___action_table_row1789},
+  {(bigint) parser_tables___ParserTable___action_table_row1790},
+  {(bigint) parser_tables___ParserTable___action_table_row1791},
+  {(bigint) parser_tables___ParserTable___action_table_row1792},
+  {(bigint) parser_tables___ParserTable___action_table_row1793},
+  {(bigint) parser_tables___ParserTable___action_table_row1794},
+  {(bigint) parser_tables___ParserTable___action_table_row1795},
+  {(bigint) parser_tables___ParserTable___action_table_row1796},
+  {(bigint) parser_tables___ParserTable___action_table_row1797},
+  {(bigint) parser_tables___ParserTable___action_table_row1798},
+  {(bigint) parser_tables___ParserTable___action_table_row1799},
+  {(bigint) parser_tables___ParserTable___action_table_row1800},
+  {(bigint) parser_tables___ParserTable___action_table_row1801},
+  {(bigint) parser_tables___ParserTable___action_table_row1802},
+  {(bigint) parser_tables___ParserTable___action_table_row1803},
+  {(bigint) parser_tables___ParserTable___action_table_row1804},
+  {(bigint) parser_tables___ParserTable___action_table_row1805},
+  {(bigint) parser_tables___ParserTable___action_table_row1806},
+  {(bigint) parser_tables___ParserTable___action_table_row1807},
+  {(bigint) parser_tables___ParserTable___action_table_row1808},
+  {(bigint) parser_tables___ParserTable___action_table_row1809},
+  {(bigint) parser_tables___ParserTable___action_table_row1810},
+  {(bigint) parser_tables___ParserTable___action_table_row1811},
+  {(bigint) parser_tables___ParserTable___action_table_row1812},
+  {(bigint) parser_tables___ParserTable___action_table_row1813},
+  {(bigint) parser_tables___ParserTable___action_table_row1814},
+  {(bigint) parser_tables___ParserTable___action_table_row1815},
+  {(bigint) parser_tables___ParserTable___action_table_row1816},
+  {(bigint) parser_tables___ParserTable___action_table_row1817},
+  {(bigint) parser_tables___ParserTable___action_table_row1818},
+  {(bigint) parser_tables___ParserTable___action_table_row1819},
+  {(bigint) parser_tables___ParserTable___action_table_row1820},
+  {(bigint) parser_tables___ParserTable___action_table_row1821},
+  {(bigint) parser_tables___ParserTable___action_table_row1822},
+  {(bigint) parser_tables___ParserTable___action_table_row1823},
+  {(bigint) parser_tables___ParserTable___action_table_row1824},
+  {(bigint) parser_tables___ParserTable___action_table_row1825},
+  {(bigint) parser_tables___ParserTable___action_table_row1826},
+  {(bigint) parser_tables___ParserTable___action_table_row1827},
+  {(bigint) parser_tables___ParserTable___action_table_row1828},
+  {(bigint) parser_tables___ParserTable___action_table_row1829},
+  {(bigint) parser_tables___ParserTable___action_table_row1830},
+  {(bigint) parser_tables___ParserTable___action_table_row1831},
+  {(bigint) parser_tables___ParserTable___action_table_row1832},
+  {(bigint) parser_tables___ParserTable___action_table_row1833},
+  {(bigint) parser_tables___ParserTable___action_table_row1834},
+  {(bigint) parser_tables___ParserTable___action_table_row1835},
+  {(bigint) parser_tables___ParserTable___action_table_row1836},
+  {(bigint) parser_tables___ParserTable___action_table_row1837},
+  {(bigint) parser_tables___ParserTable___action_table_row1838},
+  {(bigint) parser_tables___ParserTable___action_table_row1839},
+  {(bigint) parser_tables___ParserTable___action_table_row1840},
+  {(bigint) parser_tables___ParserTable___action_table_row1841},
+  {(bigint) parser_tables___ParserTable___action_table_row1842},
+  {(bigint) parser_tables___ParserTable___action_table_row1843},
+  {(bigint) parser_tables___ParserTable___action_table_row1844},
+  {(bigint) parser_tables___ParserTable___action_table_row1845},
+  {(bigint) parser_tables___ParserTable___action_table_row1846},
+  {(bigint) parser_tables___ParserTable___action_table_row1847},
+  {(bigint) parser_tables___ParserTable___action_table_row1848},
+  {(bigint) parser_tables___ParserTable___action_table_row1849},
+  {(bigint) parser_tables___ParserTable___action_table_row1850},
+  {(bigint) parser_tables___ParserTable___action_table_row1851},
+  {(bigint) parser_tables___ParserTable___action_table_row1852},
+  {(bigint) parser_tables___ParserTable___action_table_row1853},
+  {(bigint) parser_tables___ParserTable___action_table_row1854},
+  {(bigint) parser_tables___ParserTable___action_table_row1855},
+  {(bigint) parser_tables___ParserTable___action_table_row1856},
+  {(bigint) parser_tables___ParserTable___action_table_row1857},
+  {(bigint) parser_tables___ParserTable___action_table_row1858},
+  {(bigint) parser_tables___ParserTable___action_table_row1859},
+  {(bigint) parser_tables___ParserTable___action_table_row1860},
+  {(bigint) parser_tables___ParserTable___action_table_row1861},
+  {(bigint) parser_tables___ParserTable___action_table_row1862},
+  {(bigint) parser_tables___ParserTable___action_table_row1863},
+  {(bigint) parser_tables___ParserTable___action_table_row1864},
+  {(bigint) parser_tables___ParserTable___action_table_row1865},
+  {(bigint) parser_tables___ParserTable___action_table_row1866},
+  {(bigint) parser_tables___ParserTable___action_table_row1867},
+  {(bigint) parser_tables___ParserTable___action_table_row1868},
+  {(bigint) parser_tables___ParserTable___action_table_row1869},
+  {(bigint) parser_tables___ParserTable___action_table_row1870},
+  {(bigint) parser_tables___ParserTable___action_table_row1871},
+  {(bigint) parser_tables___ParserTable___action_table_row1872},
+  {(bigint) parser_tables___ParserTable___action_table_row1873},
+  {(bigint) parser_tables___ParserTable___action_table_row1874},
+  {(bigint) parser_tables___ParserTable___action_table_row1875},
+  {(bigint) parser_tables___ParserTable___action_table_row1876},
+  {(bigint) parser_tables___ParserTable___action_table_row1877},
+  {(bigint) parser_tables___ParserTable___action_table_row1878},
+  {(bigint) parser_tables___ParserTable___action_table_row1879},
+  {(bigint) parser_tables___ParserTable___action_table_row1880},
+  {(bigint) parser_tables___ParserTable___action_table_row1881},
+  {(bigint) parser_tables___ParserTable___action_table_row1882},
+  {(bigint) parser_tables___ParserTable___action_table_row1883},
+  {(bigint) parser_tables___ParserTable___action_table_row1884},
+  {(bigint) parser_tables___ParserTable___action_table_row1885},
+  {(bigint) parser_tables___ParserTable___action_table_row1886},
+  {(bigint) parser_tables___ParserTable___action_table_row1887},
+  {(bigint) parser_tables___ParserTable___action_table_row1888},
+  {(bigint) parser_tables___ParserTable___action_table_row1889},
+  {(bigint) parser_tables___ParserTable___action_table_row1890},
+  {(bigint) parser_tables___ParserTable___action_table_row1891},
+  {(bigint) parser_tables___ParserTable___action_table_row1892},
+  {(bigint) parser_tables___ParserTable___action_table_row1893},
+  {(bigint) parser_tables___ParserTable___action_table_row1894},
+  {(bigint) parser_tables___ParserTable___action_table_row1895},
+  {(bigint) parser_tables___ParserTable___action_table_row1896},
+  {(bigint) parser_tables___ParserTable___action_table_row1897},
+  {(bigint) parser_tables___ParserTable___action_table_row1898},
+  {(bigint) parser_tables___ParserTable___action_table_row1899},
+  {(bigint) parser_tables___ParserTable___action_table_row1900},
+  {(bigint) parser_tables___ParserTable___action_table_row1901},
+  {(bigint) parser_tables___ParserTable___action_table_row1902},
+  {(bigint) parser_tables___ParserTable___action_table_row1903},
+  {(bigint) parser_tables___ParserTable___action_table_row1904},
+  {(bigint) parser_tables___ParserTable___action_table_row1905},
+  {(bigint) parser_tables___ParserTable___action_table_row1906},
+  {(bigint) parser_tables___ParserTable___action_table_row1907},
+  {(bigint) parser_tables___ParserTable___action_table_row1908},
+  {(bigint) parser_tables___ParserTable___action_table_row1909},
+  {(bigint) parser_tables___ParserTable___action_table_row1910},
+  {(bigint) parser_tables___ParserTable___action_table_row1911},
+  {(bigint) parser_tables___ParserTable___action_table_row1912},
+  {(bigint) parser_tables___ParserTable___action_table_row1913},
+  {(bigint) parser_tables___ParserTable___action_table_row1914},
+  {(bigint) parser_tables___ParserTable___action_table_row1915},
+  {(bigint) parser_tables___ParserTable___action_table_row1916},
+  {(bigint) parser_tables___ParserTable___action_table_row1917},
+  {(bigint) parser_tables___ParserTable___action_table_row1918},
+  {(bigint) parser_tables___ParserTable___action_table_row1919},
+  {(bigint) parser_tables___ParserTable___action_table_row1920},
+  {(bigint) parser_tables___ParserTable___action_table_row1921},
+  {(bigint) parser_tables___ParserTable___action_table_row1922},
+  {(bigint) parser_tables___ParserTable___action_table_row1923},
+  {(bigint) parser_tables___ParserTable___action_table_row1924},
+  {(bigint) parser_tables___ParserTable___action_table_row1925},
+  {(bigint) parser_tables___ParserTable___action_table_row1926},
+  {(bigint) parser_tables___ParserTable___action_table_row1927},
+  {(bigint) parser_tables___ParserTable___action_table_row1928},
+  {(bigint) parser_tables___ParserTable___action_table_row1929},
+  {(bigint) parser_tables___ParserTable___action_table_row1930},
+  {(bigint) parser_tables___ParserTable___action_table_row1931},
+  {(bigint) parser_tables___ParserTable___action_table_row1932},
+  {(bigint) parser_tables___ParserTable___action_table_row1933},
+  {(bigint) parser_tables___ParserTable___action_table_row1934},
+  {(bigint) parser_tables___ParserTable___action_table_row1935},
+  {(bigint) parser_tables___ParserTable___action_table_row1936},
+  {(bigint) parser_tables___ParserTable___action_table_row1937},
+  {(bigint) parser_tables___ParserTable___action_table_row1938},
+  {(bigint) parser_tables___ParserTable___action_table_row1939},
+  {(bigint) parser_tables___ParserTable___action_table_row1940},
+  {(bigint) parser_tables___ParserTable___action_table_row1941},
+  {(bigint) parser_tables___ParserTable___action_table_row1942},
+  {(bigint) parser_tables___ParserTable___action_table_row1943},
+  {(bigint) parser_tables___ParserTable___action_table_row1944},
+  {(bigint) parser_tables___ParserTable___action_table_row1945},
+  {(bigint) parser_tables___ParserTable___action_table_row1946},
+  {(bigint) parser_tables___ParserTable___action_table_row1947},
+  {(bigint) parser_tables___ParserTable___action_table_row1948},
+  {(bigint) parser_tables___ParserTable___action_table_row1949},
+  {(bigint) parser_tables___ParserTable___action_table_row1950},
+  {(bigint) parser_tables___ParserTable___action_table_row1951},
+  {(bigint) parser_tables___ParserTable___action_table_row1952},
+  {(bigint) parser_tables___ParserTable___action_table_row1953},
+  {(bigint) parser_tables___ParserTable___action_table_row1954},
+  {(bigint) parser_tables___ParserTable___action_table_row1955},
+  {(bigint) parser_tables___ParserTable___action_table_row1956},
+  {(bigint) parser_tables___ParserTable___action_table_row1957},
+  {(bigint) parser_tables___ParserTable___action_table_row1958},
+  {(bigint) parser_tables___ParserTable___action_table_row1959},
+  {(bigint) parser_tables___ParserTable___action_table_row1960},
+  {(bigint) parser_tables___ParserTable___action_table_row1961},
+  {(bigint) parser_tables___ParserTable___action_table_row1962},
+  {(bigint) parser_tables___ParserTable___action_table_row1963},
+  {(bigint) parser_tables___ParserTable___action_table_row1964},
+  {(bigint) parser_tables___ParserTable___action_table_row1965},
+  {(bigint) parser_tables___ParserTable___action_table_row1966},
+  {(bigint) parser_tables___ParserTable___action_table_row1967},
+  {(bigint) parser_tables___ParserTable___action_table_row1968},
+  {(bigint) parser_tables___ParserTable___action_table_row1969},
+  {(bigint) parser_tables___ParserTable___action_table_row1970},
+  {(bigint) parser_tables___ParserTable___action_table_row1971},
+  {(bigint) parser_tables___ParserTable___action_table_row1972},
+  {(bigint) parser_tables___ParserTable___action_table_row1973},
+  {(bigint) parser_tables___ParserTable___action_table_row1974},
+  {(bigint) parser_tables___ParserTable___action_table_row1975},
+  {(bigint) parser_tables___ParserTable___action_table_row1976},
+  {(bigint) parser_tables___ParserTable___action_table_row1977},
+  {(bigint) parser_tables___ParserTable___action_table_row1978},
+  {(bigint) parser_tables___ParserTable___action_table_row1979},
+  {(bigint) parser_tables___ParserTable___action_table_row1980},
+  {(bigint) parser_tables___ParserTable___action_table_row1981},
+  {(bigint) parser_tables___ParserTable___action_table_row1982},
+  {(bigint) parser_tables___ParserTable___action_table_row1983},
+  {(bigint) parser_tables___ParserTable___action_table_row1984},
+  {(bigint) parser_tables___ParserTable___action_table_row1985},
+  {(bigint) parser_tables___ParserTable___action_table_row1986},
+  {(bigint) parser_tables___ParserTable___action_table_row1987},
+  {(bigint) parser_tables___ParserTable___action_table_row1988},
+  {(bigint) parser_tables___ParserTable___action_table_row1989},
+  {(bigint) parser_tables___ParserTable___action_table_row1990},
+  {(bigint) parser_tables___ParserTable___action_table_row1991},
+  {(bigint) parser_tables___ParserTable___action_table_row1992},
+  {(bigint) parser_tables___ParserTable___action_table_row1993},
+  {(bigint) parser_tables___ParserTable___action_table_row1994},
+  {(bigint) parser_tables___ParserTable___action_table_row1995},
+  {(bigint) parser_tables___ParserTable___action_table_row1996},
+  {(bigint) parser_tables___ParserTable___action_table_row1997},
+  {(bigint) parser_tables___ParserTable___action_table_row1998},
+  {(bigint) parser_tables___ParserTable___action_table_row1999},
+  {(bigint) parser_tables___ParserTable___action_table_row2000},
+  {(bigint) parser_tables___ParserTable___action_table_row2001},
+  {(bigint) parser_tables___ParserTable___action_table_row2002},
+  {(bigint) parser_tables___ParserTable___action_table_row2003},
+  {(bigint) parser_tables___ParserTable___action_table_row2004},
+  {(bigint) parser_tables___ParserTable___action_table_row2005},
+  {(bigint) parser_tables___ParserTable___action_table_row2006},
+  {(bigint) parser_tables___ParserTable___action_table_row2007},
+  {(bigint) parser_tables___ParserTable___action_table_row2008},
+  {(bigint) parser_tables___ParserTable___action_table_row2009},
+  {(bigint) parser_tables___ParserTable___action_table_row2010},
+  {(bigint) parser_tables___ParserTable___action_table_row2011},
+  {(bigint) parser_tables___ParserTable___action_table_row2012},
+  {(bigint) parser_tables___ParserTable___action_table_row2013},
+  {(bigint) parser_tables___ParserTable___action_table_row2014},
+  {(bigint) parser_tables___ParserTable___action_table_row2015},
+  {(bigint) parser_tables___ParserTable___action_table_row2016},
+  {(bigint) parser_tables___ParserTable___action_table_row2017},
+  {(bigint) parser_tables___ParserTable___action_table_row2018},
+  {(bigint) parser_tables___ParserTable___action_table_row2019},
+  {(bigint) parser_tables___ParserTable___action_table_row2020},
+  {(bigint) parser_tables___ParserTable___action_table_row2021},
+  {(bigint) parser_tables___ParserTable___action_table_row2022},
+  {(bigint) parser_tables___ParserTable___action_table_row2023},
+  {(bigint) parser_tables___ParserTable___action_table_row2024},
+  {(bigint) parser_tables___ParserTable___action_table_row2025},
+  {(bigint) parser_tables___ParserTable___action_table_row2026},
+  {(bigint) parser_tables___ParserTable___action_table_row2027},
+  {(bigint) parser_tables___ParserTable___action_table_row2028},
+  {(bigint) parser_tables___ParserTable___action_table_row2029},
+  {(bigint) parser_tables___ParserTable___action_table_row2030},
+  {(bigint) parser_tables___ParserTable___action_table_row2031},
+  {(bigint) parser_tables___ParserTable___action_table_row2032},
+  {(bigint) parser_tables___ParserTable___action_table_row2033},
+  {(bigint) parser_tables___ParserTable___action_table_row2034},
+  {(bigint) parser_tables___ParserTable___action_table_row2035},
+  {(bigint) parser_tables___ParserTable___action_table_row2036},
+  {(bigint) parser_tables___ParserTable___action_table_row2037},
+  {(bigint) parser_tables___ParserTable___action_table_row2038},
+  {(bigint) parser_tables___ParserTable___action_table_row2039},
+  {(bigint) parser_tables___ParserTable___action_table_row2040},
+  {(bigint) parser_tables___ParserTable___action_table_row2041},
+  {(bigint) parser_tables___ParserTable___action_table_row2042},
+  {(bigint) parser_tables___ParserTable___action_table_row2043},
+  {(bigint) parser_tables___ParserTable___action_table_row2044},
+  {(bigint) parser_tables___ParserTable___action_table_row2045},
+  {(bigint) parser_tables___ParserTable___action_table_row2046},
+  {(bigint) parser_tables___ParserTable___action_table_row2047},
+  {(bigint) parser_tables___ParserTable___action_table_row2048},
+  {(bigint) parser_tables___ParserTable___action_table_row2049},
+  {(bigint) parser_tables___ParserTable___action_table_row2050},
+  {(bigint) parser_tables___ParserTable___action_table_row2051},
+  {(bigint) parser_tables___ParserTable___action_table_row2052},
+  {(bigint) parser_tables___ParserTable___action_table_row2053},
+  {(bigint) parser_tables___ParserTable___action_table_row2054},
+  {(bigint) parser_tables___ParserTable___action_table_row2055},
+  {(bigint) parser_tables___ParserTable___action_table_row2056},
+  {(bigint) parser_tables___ParserTable___action_table_row2057},
+  {(bigint) parser_tables___ParserTable___action_table_row2058},
+  {(bigint) parser_tables___ParserTable___action_table_row2059},
+  {(bigint) parser_tables___ParserTable___action_table_row2060},
+  {(bigint) parser_tables___ParserTable___action_table_row2061},
+  {(bigint) parser_tables___ParserTable___action_table_row2062},
+  {(bigint) parser_tables___ParserTable___action_table_row2063},
+  {(bigint) parser_tables___ParserTable___action_table_row2064},
+  {(bigint) parser_tables___ParserTable___action_table_row2065},
+  {(bigint) parser_tables___ParserTable___action_table_row2066},
+  {(bigint) parser_tables___ParserTable___action_table_row2067},
+  {(bigint) parser_tables___ParserTable___action_table_row2068},
+  {(bigint) parser_tables___ParserTable___action_table_row2069},
+  {(bigint) parser_tables___ParserTable___action_table_row2070},
+  {(bigint) parser_tables___ParserTable___action_table_row2071},
+  {(bigint) parser_tables___ParserTable___action_table_row2072},
+  {(bigint) parser_tables___ParserTable___action_table_row2073},
+  {(bigint) parser_tables___ParserTable___action_table_row2074},
+  {(bigint) parser_tables___ParserTable___action_table_row2075},
+  {(bigint) parser_tables___ParserTable___action_table_row2076},
+  {(bigint) parser_tables___ParserTable___action_table_row2077},
+  {(bigint) parser_tables___ParserTable___action_table_row2078},
+  {(bigint) parser_tables___ParserTable___action_table_row2079},
+  {(bigint) parser_tables___ParserTable___action_table_row2080},
+  {(bigint) parser_tables___ParserTable___action_table_row2081},
+  {(bigint) parser_tables___ParserTable___action_table_row2082},
+  {(bigint) parser_tables___ParserTable___action_table_row2083},
+  {(bigint) parser_tables___ParserTable___action_table_row2084},
+  {(bigint) parser_tables___ParserTable___action_table_row2085},
+  {(bigint) parser_tables___ParserTable___action_table_row2086},
+  {(bigint) parser_tables___ParserTable___action_table_row2087},
+  {(bigint) parser_tables___ParserTable___action_table_row2088},
+  {(bigint) parser_tables___ParserTable___action_table_row2089},
+  {(bigint) parser_tables___ParserTable___action_table_row2090},
+  {(bigint) parser_tables___ParserTable___action_table_row2091},
+  {(bigint) parser_tables___ParserTable___action_table_row2092},
+  {(bigint) parser_tables___ParserTable___action_table_row2093},
+  {(bigint) parser_tables___ParserTable___action_table_row2094},
+  {(bigint) parser_tables___ParserTable___action_table_row2095},
+  {(bigint) parser_tables___ParserTable___action_table_row2096},
+  {(bigint) parser_tables___ParserTable___action_table_row2097},
+  {(bigint) parser_tables___ParserTable___action_table_row2098},
+  {(bigint) parser_tables___ParserTable___action_table_row2099},
+  {(bigint) parser_tables___ParserTable___action_table_row2100},
+  {(bigint) parser_tables___ParserTable___action_table_row2101},
+  {(bigint) parser_tables___ParserTable___action_table_row2102},
+  {(bigint) parser_tables___ParserTable___action_table_row2103},
+  {(bigint) parser_tables___ParserTable___action_table_row2104},
+  {(bigint) parser_tables___ParserTable___action_table_row2105},
+  {(bigint) parser_tables___ParserTable___action_table_row2106},
+  {(bigint) parser_tables___ParserTable___action_table_row2107},
+  {(bigint) parser_tables___ParserTable___action_table_row2108},
+  {(bigint) parser_tables___ParserTable___action_table_row2109},
+  {(bigint) parser_tables___ParserTable___action_table_row2110},
+  {(bigint) parser_tables___ParserTable___action_table_row2111},
+  {(bigint) parser_tables___ParserTable___action_table_row2112},
+  {(bigint) parser_tables___ParserTable___action_table_row2113},
+  {(bigint) parser_tables___ParserTable___action_table_row2114},
+  {(bigint) parser_tables___ParserTable___action_table_row2115},
+  {(bigint) parser_tables___ParserTable___action_table_row2116},
+  {(bigint) parser_tables___ParserTable___action_table_row2117},
+  {(bigint) parser_tables___ParserTable___action_table_row2118},
+  {(bigint) parser_tables___ParserTable___action_table_row2119},
+  {(bigint) parser_tables___ParserTable___action_table_row2120},
+  {(bigint) parser_tables___ParserTable___action_table_row2121},
+  {(bigint) parser_tables___ParserTable___action_table_row2122},
+  {(bigint) parser_tables___ParserTable___action_table_row2123},
+  {(bigint) parser_tables___ParserTable___action_table_row2124},
+  {(bigint) parser_tables___ParserTable___action_table_row2125},
+  {(bigint) parser_tables___ParserTable___action_table_row2126},
+  {(bigint) parser_tables___ParserTable___action_table_row2127},
+  {(bigint) parser_tables___ParserTable___action_table_row2128},
+  {(bigint) parser_tables___ParserTable___action_table_row2129},
+  {(bigint) parser_tables___ParserTable___action_table_row2130},
+  {(bigint) parser_tables___ParserTable___action_table_row2131},
+  {(bigint) parser_tables___ParserTable___action_table_row2132},
+  {(bigint) parser_tables___ParserTable___action_table_row2133},
+  {(bigint) parser_tables___ParserTable___action_table_row2134},
+  {(bigint) parser_tables___ParserTable___action_table_row2135},
+  {(bigint) parser_tables___ParserTable___action_table_row2136},
+  {(bigint) parser_tables___ParserTable___action_table_row2137},
+  {(bigint) parser_tables___ParserTable___action_table_row2138},
+  {(bigint) parser_tables___ParserTable___action_table_row2139},
+  {(bigint) parser_tables___ParserTable___action_table_row2140},
+  {(bigint) parser_tables___ParserTable___action_table_row2141},
+  {(bigint) parser_tables___ParserTable___action_table_row2142},
+  {(bigint) parser_tables___ParserTable___action_table_row2143},
+  {(bigint) parser_tables___ParserTable___action_table_row2144},
+  {(bigint) parser_tables___ParserTable___action_table_row2145},
+  {(bigint) parser_tables___ParserTable___action_table_row2146},
+  {(bigint) parser_tables___ParserTable___action_table_row2147},
+  {(bigint) parser_tables___ParserTable___action_table_row2148},
+  {(bigint) parser_tables___ParserTable___action_table_row2149},
+  {(bigint) parser_tables___ParserTable___action_table_row2150},
+  {(bigint) parser_tables___ParserTable___action_table_row2151},
+  {(bigint) parser_tables___ParserTable___action_table_row2152},
+  {(bigint) parser_tables___ParserTable___action_table_row2153},
+  {(bigint) parser_tables___ParserTable___action_table_row2154},
+  {(bigint) parser_tables___ParserTable___action_table_row2155},
+  {(bigint) parser_tables___ParserTable___action_table_row2156},
+  {(bigint) parser_tables___ParserTable___action_table_row2157},
+  {(bigint) parser_tables___ParserTable___action_table_row2158},
+  {(bigint) parser_tables___ParserTable___action_table_row2159},
+  {(bigint) parser_tables___ParserTable___action_table_row2160},
+  {(bigint) parser_tables___ParserTable___action_table_row2161},
+  {(bigint) parser_tables___ParserTable___action_table_row2162},
+  {(bigint) parser_tables___ParserTable___action_table_row2163},
+  {(bigint) parser_tables___ParserTable___action_table_row2164},
+  {(bigint) parser_tables___ParserTable___action_table_row2165},
+  {(bigint) parser_tables___ParserTable___action_table_row2166},
+  {(bigint) parser_tables___ParserTable___action_table_row2167},
+  {(bigint) parser_tables___ParserTable___action_table_row2168},
+  {(bigint) parser_tables___ParserTable___action_table_row2169},
+  {(bigint) parser_tables___ParserTable___action_table_row2170},
+  {(bigint) parser_tables___ParserTable___action_table_row2171},
+  {(bigint) parser_tables___ParserTable___action_table_row2172},
+  {(bigint) parser_tables___ParserTable___action_table_row2173},
+  {(bigint) parser_tables___ParserTable___action_table_row2174},
+  {(bigint) parser_tables___ParserTable___action_table_row2175},
+  {(bigint) parser_tables___ParserTable___action_table_row2176},
+  {(bigint) parser_tables___ParserTable___action_table_row2177},
+  {(bigint) parser_tables___ParserTable___action_table_row2178},
+  {(bigint) parser_tables___ParserTable___action_table_row2179},
+  {(bigint) parser_tables___ParserTable___action_table_row2180},
+  {(bigint) parser_tables___ParserTable___action_table_row2181},
+  {(bigint) parser_tables___ParserTable___action_table_row2182},
+  {(bigint) parser_tables___ParserTable___action_table_row2183},
+  {(bigint) parser_tables___ParserTable___action_table_row2184},
+  {(bigint) parser_tables___ParserTable___action_table_row2185},
+  {(bigint) parser_tables___ParserTable___action_table_row2186},
+  {(bigint) parser_tables___ParserTable___action_table_row2187},
+  {(bigint) parser_tables___ParserTable___action_table_row2188},
+  {(bigint) parser_tables___ParserTable___action_table_row2189},
+  {(bigint) parser_tables___ParserTable___action_table_row2190},
+  {(bigint) parser_tables___ParserTable___action_table_row2191},
+  {(bigint) parser_tables___ParserTable___action_table_row2192},
+  {(bigint) parser_tables___ParserTable___action_table_row2193},
+  {(bigint) parser_tables___ParserTable___action_table_row2194},
+  {(bigint) parser_tables___ParserTable___action_table_row2195},
+  {(bigint) parser_tables___ParserTable___action_table_row2196},
+  {(bigint) parser_tables___ParserTable___action_table_row2197},
+  {(bigint) parser_tables___ParserTable___action_table_row2198},
+  {(bigint) parser_tables___ParserTable___action_table_row2199},
+  {(bigint) parser_tables___ParserTable___action_table_row2200},
+  {(bigint) parser_tables___ParserTable___action_table_row2201},
+  {(bigint) parser_tables___ParserTable___action_table_row2202},
+  {(bigint) parser_tables___ParserTable___action_table_row2203},
+  {(bigint) parser_tables___ParserTable___action_table_row2204},
+  {(bigint) parser_tables___ParserTable___action_table_row2205},
+  {(bigint) parser_tables___ParserTable___action_table_row2206},
+  {(bigint) parser_tables___ParserTable___action_table_row2207},
+  {(bigint) parser_tables___ParserTable___action_table_row2208},
+  {(bigint) parser_tables___ParserTable___action_table_row2209},
+  {(bigint) parser_tables___ParserTable___action_table_row2210},
+  {(bigint) parser_tables___ParserTable___action_table_row2211},
+  {(bigint) parser_tables___ParserTable___action_table_row2212},
+  {(bigint) parser_tables___ParserTable___action_table_row2213},
+  {(bigint) parser_tables___ParserTable___action_table_row2214},
+  {(bigint) parser_tables___ParserTable___action_table_row2215},
+  {(bigint) parser_tables___ParserTable___action_table_row2216},
+  {(bigint) parser_tables___ParserTable___action_table_row2217},
+  {(bigint) parser_tables___ParserTable___action_table_row2218},
+  {(bigint) parser_tables___ParserTable___action_table_row2219},
+  {(bigint) parser_tables___ParserTable___action_table_row2220},
+  {(bigint) parser_tables___ParserTable___action_table_row2221},
+  {(bigint) parser_tables___ParserTable___action_table_row2222},
+  {(bigint) parser_tables___ParserTable___action_table_row2223},
+  {(bigint) parser_tables___ParserTable___action_table_row2224},
+  {(bigint) parser_tables___ParserTable___action_table_row2225},
+  {(bigint) parser_tables___ParserTable___action_table_row2226},
+  {(bigint) parser_tables___ParserTable___action_table_row2227},
+  {(bigint) parser_tables___ParserTable___action_table_row2228},
+  {(bigint) parser_tables___ParserTable___action_table_row2229},
+  {(bigint) parser_tables___ParserTable___action_table_row2230},
+  {(bigint) parser_tables___ParserTable___action_table_row2231},
+  {(bigint) parser_tables___ParserTable___action_table_row2232},
+  {(bigint) parser_tables___ParserTable___action_table_row2233},
+  {(bigint) parser_tables___ParserTable___action_table_row2234},
+  {(bigint) parser_tables___ParserTable___action_table_row2235},
+  {(bigint) parser_tables___ParserTable___action_table_row2236},
+  {(bigint) parser_tables___ParserTable___action_table_row2237},
+  {(bigint) parser_tables___ParserTable___action_table_row2238},
+  {(bigint) parser_tables___ParserTable___action_table_row2239},
+  {(bigint) parser_tables___ParserTable___action_table_row2240},
+  {(bigint) parser_tables___ParserTable___action_table_row2241},
+  {(bigint) parser_tables___ParserTable___action_table_row2242},
+  {(bigint) parser_tables___ParserTable___action_table_row2243},
+  {(bigint) parser_tables___ParserTable___action_table_row2244},
+  {(bigint) parser_tables___ParserTable___action_table_row2245},
+  {(bigint) parser_tables___ParserTable___action_table_row2246},
+  {(bigint) parser_tables___ParserTable___action_table_row2247},
+  {(bigint) parser_tables___ParserTable___action_table_row2248},
+  {(bigint) parser_tables___ParserTable___action_table_row2249},
+  {(bigint) parser_tables___ParserTable___action_table_row2250},
+  {(bigint) parser_tables___ParserTable___action_table_row2251},
+  {(bigint) parser_tables___ParserTable___action_table_row2252},
+  {(bigint) parser_tables___ParserTable___action_table_row2253},
+  {(bigint) parser_tables___ParserTable___action_table_row2254},
+  {(bigint) parser_tables___ParserTable___action_table_row2255},
+  {(bigint) parser_tables___ParserTable___action_table_row2256},
+  {(bigint) parser_tables___ParserTable___action_table_row2257},
+  {(bigint) parser_tables___ParserTable___action_table_row2258},
+  {(bigint) parser_tables___ParserTable___action_table_row2259},
+  {(bigint) parser_tables___ParserTable___action_table_row2260},
+  {(bigint) parser_tables___ParserTable___action_table_row2261},
+  {(bigint) parser_tables___ParserTable___action_table_row2262},
+  {(bigint) parser_tables___ParserTable___action_table_row2263},
+  {(bigint) parser_tables___ParserTable___action_table_row2264},
+  {(bigint) parser_tables___ParserTable___action_table_row2265},
+  {(bigint) parser_tables___ParserTable___action_table_row2266},
+  {(bigint) parser_tables___ParserTable___action_table_row2267},
+  {(bigint) parser_tables___ParserTable___action_table_row2268},
+  {(bigint) parser_tables___ParserTable___action_table_row2269},
+  {(bigint) parser_tables___ParserTable___action_table_row2270},
+  {(bigint) parser_tables___ParserTable___action_table_row2271},
+  {(bigint) parser_tables___ParserTable___action_table_row2272},
+  {(bigint) parser_tables___ParserTable___action_table_row2273},
+  {(bigint) parser_tables___ParserTable___action_table_row2274},
+  {(bigint) parser_tables___ParserTable___action_table_row2275},
+  {(bigint) parser_tables___ParserTable___action_table_row2276},
+  {(bigint) parser_tables___ParserTable___action_table_row2277},
+  {(bigint) parser_tables___ParserTable___action_table_row2278},
+  {(bigint) parser_tables___ParserTable___action_table_row2279},
+  {(bigint) parser_tables___ParserTable___action_table_row2280},
+  {(bigint) parser_tables___ParserTable___action_table_row2281},
+  {(bigint) parser_tables___ParserTable___action_table_row2282},
+  {(bigint) parser_tables___ParserTable___action_table_row2283},
+  {(bigint) parser_tables___ParserTable___action_table_row2284},
+  {(bigint) parser_tables___ParserTable___action_table_row2285},
+  {(bigint) parser_tables___ParserTable___action_table_row2286},
+  {(bigint) parser_tables___ParserTable___action_table_row2287},
+  {(bigint) parser_tables___ParserTable___action_table_row2288},
+  {(bigint) parser_tables___ParserTable___action_table_row2289},
+  {(bigint) parser_tables___ParserTable___action_table_row2290},
+  {(bigint) parser_tables___ParserTable___action_table_row2291},
+  {(bigint) parser_tables___ParserTable___action_table_row2292},
+  {(bigint) parser_tables___ParserTable___action_table_row2293},
+  {(bigint) parser_tables___ParserTable___action_table_row2294},
+  {(bigint) parser_tables___ParserTable___action_table_row2295},
+  {(bigint) parser_tables___ParserTable___action_table_row2296},
+  {(bigint) parser_tables___ParserTable___action_table_row2297},
+  {(bigint) parser_tables___ParserTable___action_table_row2298},
+  {(bigint) parser_tables___ParserTable___action_table_row2299},
+  {(bigint) parser_tables___ParserTable___action_table_row2300},
+  {(bigint) parser_tables___ParserTable___action_table_row2301},
+  {(bigint) parser_tables___ParserTable___action_table_row2302},
+  {(bigint) parser_tables___ParserTable___action_table_row2303},
+  {(bigint) parser_tables___ParserTable___action_table_row2304},
+  {(bigint) parser_tables___ParserTable___action_table_row2305},
+  {(bigint) parser_tables___ParserTable___action_table_row2306},
+  {(bigint) parser_tables___ParserTable___action_table_row2307},
+  {(bigint) parser_tables___ParserTable___action_table_row2308},
+  {(bigint) parser_tables___ParserTable___action_table_row2309},
+  {(bigint) parser_tables___ParserTable___action_table_row2310},
+  {(bigint) parser_tables___ParserTable___action_table_row2311},
+  {(bigint) parser_tables___ParserTable___action_table_row2312},
+  {(bigint) parser_tables___ParserTable___action_table_row2313},
+  {(bigint) parser_tables___ParserTable___action_table_row2314},
+  {(bigint) parser_tables___ParserTable___action_table_row2315},
+  {(bigint) parser_tables___ParserTable___action_table_row2316},
+  {(bigint) parser_tables___ParserTable___action_table_row2317},
+  {(bigint) parser_tables___ParserTable___action_table_row2318},
+  {(bigint) parser_tables___ParserTable___action_table_row2319},
+  {(bigint) parser_tables___ParserTable___action_table_row2320},
+  {(bigint) parser_tables___ParserTable___action_table_row2321},
+  {(bigint) parser_tables___ParserTable___action_table_row2322},
+  {(bigint) parser_tables___ParserTable___action_table_row2323},
+  {(bigint) parser_tables___ParserTable___action_table_row2324},
+  {(bigint) parser_tables___ParserTable___action_table_row2325},
+  {(bigint) parser_tables___ParserTable___action_table_row2326},
+  {(bigint) parser_tables___ParserTable___action_table_row2327},
+  {(bigint) parser_tables___ParserTable___action_table_row2328},
+  {(bigint) parser_tables___ParserTable___action_table_row2329},
+  {(bigint) parser_tables___ParserTable___action_table_row2330},
+  {(bigint) parser_tables___ParserTable___action_table_row2331},
+  {(bigint) parser_tables___ParserTable___action_table_row2332},
+  {(bigint) parser_tables___ParserTable___action_table_row2333},
+  {(bigint) parser_tables___ParserTable___action_table_row2334},
+  {(bigint) parser_tables___ParserTable___action_table_row2335},
+  {(bigint) parser_tables___ParserTable___action_table_row2336},
+  {(bigint) parser_tables___ParserTable___action_table_row2337},
+  {(bigint) parser_tables___ParserTable___action_table_row2338},
+  {(bigint) parser_tables___ParserTable___action_table_row2339},
+  {(bigint) parser_tables___ParserTable___action_table_row2340},
+  {(bigint) parser_tables___ParserTable___action_table_row2341},
+  {(bigint) parser_tables___ParserTable___action_table_row2342},
+  {(bigint) parser_tables___ParserTable___action_table_row2343},
+  {(bigint) parser_tables___ParserTable___action_table_row2344},
+  {(bigint) parser_tables___ParserTable___action_table_row2345},
+  {(bigint) parser_tables___ParserTable___action_table_row2346},
+  {(bigint) parser_tables___ParserTable___action_table_row2347},
+  {(bigint) parser_tables___ParserTable___action_table_row2348},
+  {(bigint) parser_tables___ParserTable___action_table_row2349},
+  {(bigint) parser_tables___ParserTable___action_table_row2350},
+  {(bigint) parser_tables___ParserTable___action_table_row2351},
+  {(bigint) parser_tables___ParserTable___action_table_row2352},
+  {(bigint) parser_tables___ParserTable___action_table_row2353},
+  {(bigint) parser_tables___ParserTable___action_table_row2354},
+  {(bigint) parser_tables___ParserTable___action_table_row2355},
+  {(bigint) parser_tables___ParserTable___action_table_row2356},
+  {(bigint) parser_tables___ParserTable___action_table_row2357},
+  {(bigint) parser_tables___ParserTable___action_table_row2358},
+  {(bigint) parser_tables___ParserTable___action_table_row2359},
+  {(bigint) parser_tables___ParserTable___action_table_row2360},
+  {(bigint) parser_tables___ParserTable___action_table_row2361},
+  {(bigint) parser_tables___ParserTable___action_table_row2362},
+  {(bigint) parser_tables___ParserTable___action_table_row2363},
+  {(bigint) parser_tables___ParserTable___action_table_row2364},
+  {(bigint) parser_tables___ParserTable___action_table_row2365},
+  {(bigint) parser_tables___ParserTable___action_table_row2366},
+  {(bigint) parser_tables___ParserTable___action_table_row2367},
+  {(bigint) parser_tables___ParserTable___action_table_row2368},
+  {(bigint) parser_tables___ParserTable___action_table_row2369},
+  {(bigint) parser_tables___ParserTable___action_table_row2370},
+  {(bigint) parser_tables___ParserTable___action_table_row2371},
+  {(bigint) parser_tables___ParserTable___action_table_row2372},
+  {(bigint) parser_tables___ParserTable___action_table_row2373},
+  {(bigint) parser_tables___ParserTable___action_table_row2374},
+  {(bigint) parser_tables___ParserTable___action_table_row2375},
+  {(bigint) parser_tables___ParserTable___action_table_row2376},
+  {(bigint) parser_tables___ParserTable___action_table_row2377},
+  {(bigint) parser_tables___ParserTable___action_table_row2378},
+  {(bigint) parser_tables___ParserTable___action_table_row2379},
+  {(bigint) parser_tables___ParserTable___action_table_row2380},
+  {(bigint) parser_tables___ParserTable___action_table_row2381},
+  {(bigint) parser_tables___ParserTable___action_table_row2382},
+  {(bigint) parser_tables___ParserTable___action_table_row2383},
+  {(bigint) parser_tables___ParserTable___action_table_row2384},
+  {(bigint) parser_tables___ParserTable___action_table_row2385},
+  {(bigint) parser_tables___ParserTable___action_table_row2386},
+  {(bigint) parser_tables___ParserTable___action_table_row2387},
+  {(bigint) parser_tables___ParserTable___action_table_row2388},
+  {(bigint) parser_tables___ParserTable___action_table_row2389},
+  {(bigint) parser_tables___ParserTable___action_table_row2390},
+  {(bigint) parser_tables___ParserTable___action_table_row2391},
+  {(bigint) parser_tables___ParserTable___action_table_row2392},
+  {(bigint) parser_tables___ParserTable___action_table_row2393},
+  {(bigint) parser_tables___ParserTable___action_table_row2394},
+  {(bigint) parser_tables___ParserTable___action_table_row2395},
+  {(bigint) parser_tables___ParserTable___action_table_row2396},
+  {(bigint) parser_tables___ParserTable___action_table_row2397},
+  {(bigint) parser_tables___ParserTable___action_table_row2398},
+  {(bigint) parser_tables___ParserTable___action_table_row2399},
+  {(bigint) parser_tables___ParserTable___action_table_row2400},
+  {(bigint) parser_tables___ParserTable___action_table_row2401},
+  {(bigint) parser_tables___ParserTable___action_table_row2402},
+  {(bigint) parser_tables___ParserTable___action_table_row2403},
+  {(bigint) parser_tables___ParserTable___action_table_row2404},
+  {(bigint) parser_tables___ParserTable___action_table_row2405},
+  {(bigint) parser_tables___ParserTable___action_table_row2406},
+  {(bigint) parser_tables___ParserTable___action_table_row2407},
+  {(bigint) parser_tables___ParserTable___action_table_row2408},
+  {(bigint) parser_tables___ParserTable___action_table_row2409},
+  {(bigint) parser_tables___ParserTable___action_table_row2410},
+  {(bigint) parser_tables___ParserTable___action_table_row2411},
+  {(bigint) parser_tables___ParserTable___action_table_row2412},
+  {(bigint) parser_tables___ParserTable___action_table_row2413},
+  {(bigint) parser_tables___ParserTable___action_table_row2414},
+  {(bigint) parser_tables___ParserTable___action_table_row2415},
+  {(bigint) parser_tables___ParserTable___action_table_row2416},
+  {(bigint) parser_tables___ParserTable___action_table_row2417},
+  {(bigint) parser_tables___ParserTable___action_table_row2418},
+  {(bigint) parser_tables___ParserTable___action_table_row2419},
+  {(bigint) parser_tables___ParserTable___action_table_row2420},
+  {(bigint) parser_tables___ParserTable___action_table_row2421},
+  {(bigint) parser_tables___ParserTable___action_table_row2422},
+  {(bigint) parser_tables___ParserTable___action_table_row2423},
+  {(bigint) parser_tables___ParserTable___action_table_row2424},
+  {(bigint) parser_tables___ParserTable___action_table_row2425},
+  {(bigint) parser_tables___ParserTable___action_table_row2426},
+  {(bigint) parser_tables___ParserTable___action_table_row2427},
+  {(bigint) parser_tables___ParserTable___action_table_row2428},
+  {(bigint) parser_tables___ParserTable___action_table_row2429},
+  {(bigint) parser_tables___ParserTable___action_table_row2430},
+  {(bigint) parser_tables___ParserTable___action_table_row2431},
+  {(bigint) parser_tables___ParserTable___action_table_row2432},
+  {(bigint) parser_tables___ParserTable___action_table_row2433},
+  {(bigint) parser_tables___ParserTable___action_table_row2434},
+  {(bigint) parser_tables___ParserTable___action_table_row2435},
+  {(bigint) parser_tables___ParserTable___action_table_row2436},
+  {(bigint) parser_tables___ParserTable___action_table_row2437},
+  {(bigint) parser_tables___ParserTable___action_table_row2438},
+  {(bigint) parser_tables___ParserTable___action_table_row2439},
+  {(bigint) parser_tables___ParserTable___action_table_row2440},
+  {(bigint) parser_tables___ParserTable___action_table_row2441},
+  {(bigint) parser_tables___ParserTable___action_table_row2442},
+  {(bigint) parser_tables___ParserTable___action_table_row2443},
+  {(bigint) parser_tables___ParserTable___action_table_row2444},
+  {(bigint) parser_tables___ParserTable___action_table_row2445},
+  {(bigint) parser_tables___ParserTable___action_table_row2446},
+  {(bigint) parser_tables___ParserTable___action_table_row2447},
+  {(bigint) parser_tables___ParserTable___action_table_row2448},
+  {(bigint) parser_tables___ParserTable___action_table_row2449},
+  {(bigint) parser_tables___ParserTable___action_table_row2450},
+  {(bigint) parser_tables___ParserTable___action_table_row2451},
   {(bigint) parser_tables___ParserTable___build_goto_table},
-  {(bigint) parser_tables___ParserTable___error_messages},
-  {(bigint) parser_tables___ParserTable___errors},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ParserTable::_action_table */
-/* 2: Attribute ParserTable::_goto_table */
-val_t NEW_ParserTable(void) {
+  {(bigint) parser_tables___ParserTable___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ParserTable::_action_table */
+/* 3: Attribute ParserTable::_goto_table */
+void INIT_ATTRIBUTES__ParserTable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ParserTable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ParserTable(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
+  obj = alloc(sizeof(val_t) * 4);
   obj->vft = (classtable_elt_t*)VFT_ParserTable;
-  ATTR_parser_tables___ParserTable____action_table(obj) =  NIT_NULL /*null*/;
-  ATTR_parser_tables___ParserTable____goto_table(obj) =  NIT_NULL /*null*/;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_State[46] = {
-  {(bigint) 35 /* 0: Identity */},
-  {(bigint) 3 /* 1: State < Object: superclass typecheck marker */},
-  {(bigint) 35 /* 2: State < State: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ParserTable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ParserTable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_tables___ParserTable____action_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_action_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_tables___ParserTable____goto_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_goto_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ParserTable_parser_tables___ParserTable___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32519;
+  fra.me.meth = LOCATE_NEW_ParserTable_parser_tables___ParserTable___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ParserTable();
+  /* ./parser//parser_tables.nit:32519 */
+  INIT_ATTRIBUTES__ParserTable(fra.me.REG[0]);
+  parser_tables___ParserTable___init(fra.me.REG[0], init_table);
+  CHECKNEW_ParserTable(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_State[51] = {
+  {(bigint) 31 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: State < Object: superclass typecheck marker */},
+  {(bigint) 31 /* 3: State < State: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39534,14 +88348,12 @@ const classtable_elt_t VFT_State[46] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: State < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: State < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -39549,7 +88361,6 @@ const classtable_elt_t VFT_State[46] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -39557,11 +88368,18 @@ const classtable_elt_t VFT_State[46] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: State < State: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: State < State: superclass init_table position */},
   {(bigint) parser___State___state},
   {(bigint) parser___State___state__eq},
   {(bigint) parser___State___nodes},
@@ -39569,26 +88387,79 @@ const classtable_elt_t VFT_State[46] = {
   {(bigint) parser___State___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute State::_state */
-/* 2: Attribute State::_nodes */
-val_t NEW_State(void) {
+/* 1: Object_id */
+/* 2: Attribute State::_state */
+/* 3: Attribute State::_nodes */
+void INIT_ATTRIBUTES__State(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__State;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_State(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
+  obj = alloc(sizeof(val_t) * 4);
   obj->vft = (classtable_elt_t*)VFT_State;
-  ATTR_parser___State____state(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___State___init(val_t p0, val_t p1) {
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_State(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_State;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___State____state(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_state");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_State_parser___State___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
   int init_table[2] = {0, 0};
-  val_t self = NEW_State();
-  parser___State___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16;
+  fra.me.meth = LOCATE_NEW_State_parser___State___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = p1;
+  fra.me.REG[1] = NEW_State();
+  /* ./parser//parser.nit:16 */
+  INIT_ATTRIBUTES__State(fra.me.REG[1]);
+  parser___State___init(fra.me.REG[1], REGB0, fra.me.REG[0], init_table);
+  CHECKNEW_State(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_Parser[1218] = {
-  {(bigint) 2519 /* 0: Identity */},
-  {(bigint) 3 /* 1: Parser < Object: superclass typecheck marker */},
-  {(bigint) 59 /* 2: Parser < ParserTable: superclass typecheck marker */},
-  {(bigint) 2519 /* 3: Parser < Parser: superclass typecheck marker */},
+const classtable_elt_t VFT_Parser[2508] = {
+  {(bigint) 5067 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Parser < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 3: Parser < ParserTable: superclass typecheck marker */},
+  {(bigint) 5067 /* 4: Parser < Parser: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39598,14 +88469,12 @@ const classtable_elt_t VFT_Parser[1218] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Parser < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Parser < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -39613,7 +88482,6 @@ const classtable_elt_t VFT_Parser[1218] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -39621,11 +88489,18 @@ const classtable_elt_t VFT_Parser[1218] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Parser < ParserTable: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Parser < ParserTable: superclass init_table position */},
   {(bigint) parser_tables___ParserTable___build_action_table},
   {(bigint) parser_tables___ParserTable___action_table_row1},
   {(bigint) parser_tables___ParserTable___action_table_row2},
@@ -40792,10 +89667,1295 @@ const classtable_elt_t VFT_Parser[1218] = {
   {(bigint) parser_tables___ParserTable___action_table_row1163},
   {(bigint) parser_tables___ParserTable___action_table_row1164},
   {(bigint) parser_tables___ParserTable___action_table_row1165},
+  {(bigint) parser_tables___ParserTable___action_table_row1166},
+  {(bigint) parser_tables___ParserTable___action_table_row1167},
+  {(bigint) parser_tables___ParserTable___action_table_row1168},
+  {(bigint) parser_tables___ParserTable___action_table_row1169},
+  {(bigint) parser_tables___ParserTable___action_table_row1170},
+  {(bigint) parser_tables___ParserTable___action_table_row1171},
+  {(bigint) parser_tables___ParserTable___action_table_row1172},
+  {(bigint) parser_tables___ParserTable___action_table_row1173},
+  {(bigint) parser_tables___ParserTable___action_table_row1174},
+  {(bigint) parser_tables___ParserTable___action_table_row1175},
+  {(bigint) parser_tables___ParserTable___action_table_row1176},
+  {(bigint) parser_tables___ParserTable___action_table_row1177},
+  {(bigint) parser_tables___ParserTable___action_table_row1178},
+  {(bigint) parser_tables___ParserTable___action_table_row1179},
+  {(bigint) parser_tables___ParserTable___action_table_row1180},
+  {(bigint) parser_tables___ParserTable___action_table_row1181},
+  {(bigint) parser_tables___ParserTable___action_table_row1182},
+  {(bigint) parser_tables___ParserTable___action_table_row1183},
+  {(bigint) parser_tables___ParserTable___action_table_row1184},
+  {(bigint) parser_tables___ParserTable___action_table_row1185},
+  {(bigint) parser_tables___ParserTable___action_table_row1186},
+  {(bigint) parser_tables___ParserTable___action_table_row1187},
+  {(bigint) parser_tables___ParserTable___action_table_row1188},
+  {(bigint) parser_tables___ParserTable___action_table_row1189},
+  {(bigint) parser_tables___ParserTable___action_table_row1190},
+  {(bigint) parser_tables___ParserTable___action_table_row1191},
+  {(bigint) parser_tables___ParserTable___action_table_row1192},
+  {(bigint) parser_tables___ParserTable___action_table_row1193},
+  {(bigint) parser_tables___ParserTable___action_table_row1194},
+  {(bigint) parser_tables___ParserTable___action_table_row1195},
+  {(bigint) parser_tables___ParserTable___action_table_row1196},
+  {(bigint) parser_tables___ParserTable___action_table_row1197},
+  {(bigint) parser_tables___ParserTable___action_table_row1198},
+  {(bigint) parser_tables___ParserTable___action_table_row1199},
+  {(bigint) parser_tables___ParserTable___action_table_row1200},
+  {(bigint) parser_tables___ParserTable___action_table_row1201},
+  {(bigint) parser_tables___ParserTable___action_table_row1202},
+  {(bigint) parser_tables___ParserTable___action_table_row1203},
+  {(bigint) parser_tables___ParserTable___action_table_row1204},
+  {(bigint) parser_tables___ParserTable___action_table_row1205},
+  {(bigint) parser_tables___ParserTable___action_table_row1206},
+  {(bigint) parser_tables___ParserTable___action_table_row1207},
+  {(bigint) parser_tables___ParserTable___action_table_row1208},
+  {(bigint) parser_tables___ParserTable___action_table_row1209},
+  {(bigint) parser_tables___ParserTable___action_table_row1210},
+  {(bigint) parser_tables___ParserTable___action_table_row1211},
+  {(bigint) parser_tables___ParserTable___action_table_row1212},
+  {(bigint) parser_tables___ParserTable___action_table_row1213},
+  {(bigint) parser_tables___ParserTable___action_table_row1214},
+  {(bigint) parser_tables___ParserTable___action_table_row1215},
+  {(bigint) parser_tables___ParserTable___action_table_row1216},
+  {(bigint) parser_tables___ParserTable___action_table_row1217},
+  {(bigint) parser_tables___ParserTable___action_table_row1218},
+  {(bigint) parser_tables___ParserTable___action_table_row1219},
+  {(bigint) parser_tables___ParserTable___action_table_row1220},
+  {(bigint) parser_tables___ParserTable___action_table_row1221},
+  {(bigint) parser_tables___ParserTable___action_table_row1222},
+  {(bigint) parser_tables___ParserTable___action_table_row1223},
+  {(bigint) parser_tables___ParserTable___action_table_row1224},
+  {(bigint) parser_tables___ParserTable___action_table_row1225},
+  {(bigint) parser_tables___ParserTable___action_table_row1226},
+  {(bigint) parser_tables___ParserTable___action_table_row1227},
+  {(bigint) parser_tables___ParserTable___action_table_row1228},
+  {(bigint) parser_tables___ParserTable___action_table_row1229},
+  {(bigint) parser_tables___ParserTable___action_table_row1230},
+  {(bigint) parser_tables___ParserTable___action_table_row1231},
+  {(bigint) parser_tables___ParserTable___action_table_row1232},
+  {(bigint) parser_tables___ParserTable___action_table_row1233},
+  {(bigint) parser_tables___ParserTable___action_table_row1234},
+  {(bigint) parser_tables___ParserTable___action_table_row1235},
+  {(bigint) parser_tables___ParserTable___action_table_row1236},
+  {(bigint) parser_tables___ParserTable___action_table_row1237},
+  {(bigint) parser_tables___ParserTable___action_table_row1238},
+  {(bigint) parser_tables___ParserTable___action_table_row1239},
+  {(bigint) parser_tables___ParserTable___action_table_row1240},
+  {(bigint) parser_tables___ParserTable___action_table_row1241},
+  {(bigint) parser_tables___ParserTable___action_table_row1242},
+  {(bigint) parser_tables___ParserTable___action_table_row1243},
+  {(bigint) parser_tables___ParserTable___action_table_row1244},
+  {(bigint) parser_tables___ParserTable___action_table_row1245},
+  {(bigint) parser_tables___ParserTable___action_table_row1246},
+  {(bigint) parser_tables___ParserTable___action_table_row1247},
+  {(bigint) parser_tables___ParserTable___action_table_row1248},
+  {(bigint) parser_tables___ParserTable___action_table_row1249},
+  {(bigint) parser_tables___ParserTable___action_table_row1250},
+  {(bigint) parser_tables___ParserTable___action_table_row1251},
+  {(bigint) parser_tables___ParserTable___action_table_row1252},
+  {(bigint) parser_tables___ParserTable___action_table_row1253},
+  {(bigint) parser_tables___ParserTable___action_table_row1254},
+  {(bigint) parser_tables___ParserTable___action_table_row1255},
+  {(bigint) parser_tables___ParserTable___action_table_row1256},
+  {(bigint) parser_tables___ParserTable___action_table_row1257},
+  {(bigint) parser_tables___ParserTable___action_table_row1258},
+  {(bigint) parser_tables___ParserTable___action_table_row1259},
+  {(bigint) parser_tables___ParserTable___action_table_row1260},
+  {(bigint) parser_tables___ParserTable___action_table_row1261},
+  {(bigint) parser_tables___ParserTable___action_table_row1262},
+  {(bigint) parser_tables___ParserTable___action_table_row1263},
+  {(bigint) parser_tables___ParserTable___action_table_row1264},
+  {(bigint) parser_tables___ParserTable___action_table_row1265},
+  {(bigint) parser_tables___ParserTable___action_table_row1266},
+  {(bigint) parser_tables___ParserTable___action_table_row1267},
+  {(bigint) parser_tables___ParserTable___action_table_row1268},
+  {(bigint) parser_tables___ParserTable___action_table_row1269},
+  {(bigint) parser_tables___ParserTable___action_table_row1270},
+  {(bigint) parser_tables___ParserTable___action_table_row1271},
+  {(bigint) parser_tables___ParserTable___action_table_row1272},
+  {(bigint) parser_tables___ParserTable___action_table_row1273},
+  {(bigint) parser_tables___ParserTable___action_table_row1274},
+  {(bigint) parser_tables___ParserTable___action_table_row1275},
+  {(bigint) parser_tables___ParserTable___action_table_row1276},
+  {(bigint) parser_tables___ParserTable___action_table_row1277},
+  {(bigint) parser_tables___ParserTable___action_table_row1278},
+  {(bigint) parser_tables___ParserTable___action_table_row1279},
+  {(bigint) parser_tables___ParserTable___action_table_row1280},
+  {(bigint) parser_tables___ParserTable___action_table_row1281},
+  {(bigint) parser_tables___ParserTable___action_table_row1282},
+  {(bigint) parser_tables___ParserTable___action_table_row1283},
+  {(bigint) parser_tables___ParserTable___action_table_row1284},
+  {(bigint) parser_tables___ParserTable___action_table_row1285},
+  {(bigint) parser_tables___ParserTable___action_table_row1286},
+  {(bigint) parser_tables___ParserTable___action_table_row1287},
+  {(bigint) parser_tables___ParserTable___action_table_row1288},
+  {(bigint) parser_tables___ParserTable___action_table_row1289},
+  {(bigint) parser_tables___ParserTable___action_table_row1290},
+  {(bigint) parser_tables___ParserTable___action_table_row1291},
+  {(bigint) parser_tables___ParserTable___action_table_row1292},
+  {(bigint) parser_tables___ParserTable___action_table_row1293},
+  {(bigint) parser_tables___ParserTable___action_table_row1294},
+  {(bigint) parser_tables___ParserTable___action_table_row1295},
+  {(bigint) parser_tables___ParserTable___action_table_row1296},
+  {(bigint) parser_tables___ParserTable___action_table_row1297},
+  {(bigint) parser_tables___ParserTable___action_table_row1298},
+  {(bigint) parser_tables___ParserTable___action_table_row1299},
+  {(bigint) parser_tables___ParserTable___action_table_row1300},
+  {(bigint) parser_tables___ParserTable___action_table_row1301},
+  {(bigint) parser_tables___ParserTable___action_table_row1302},
+  {(bigint) parser_tables___ParserTable___action_table_row1303},
+  {(bigint) parser_tables___ParserTable___action_table_row1304},
+  {(bigint) parser_tables___ParserTable___action_table_row1305},
+  {(bigint) parser_tables___ParserTable___action_table_row1306},
+  {(bigint) parser_tables___ParserTable___action_table_row1307},
+  {(bigint) parser_tables___ParserTable___action_table_row1308},
+  {(bigint) parser_tables___ParserTable___action_table_row1309},
+  {(bigint) parser_tables___ParserTable___action_table_row1310},
+  {(bigint) parser_tables___ParserTable___action_table_row1311},
+  {(bigint) parser_tables___ParserTable___action_table_row1312},
+  {(bigint) parser_tables___ParserTable___action_table_row1313},
+  {(bigint) parser_tables___ParserTable___action_table_row1314},
+  {(bigint) parser_tables___ParserTable___action_table_row1315},
+  {(bigint) parser_tables___ParserTable___action_table_row1316},
+  {(bigint) parser_tables___ParserTable___action_table_row1317},
+  {(bigint) parser_tables___ParserTable___action_table_row1318},
+  {(bigint) parser_tables___ParserTable___action_table_row1319},
+  {(bigint) parser_tables___ParserTable___action_table_row1320},
+  {(bigint) parser_tables___ParserTable___action_table_row1321},
+  {(bigint) parser_tables___ParserTable___action_table_row1322},
+  {(bigint) parser_tables___ParserTable___action_table_row1323},
+  {(bigint) parser_tables___ParserTable___action_table_row1324},
+  {(bigint) parser_tables___ParserTable___action_table_row1325},
+  {(bigint) parser_tables___ParserTable___action_table_row1326},
+  {(bigint) parser_tables___ParserTable___action_table_row1327},
+  {(bigint) parser_tables___ParserTable___action_table_row1328},
+  {(bigint) parser_tables___ParserTable___action_table_row1329},
+  {(bigint) parser_tables___ParserTable___action_table_row1330},
+  {(bigint) parser_tables___ParserTable___action_table_row1331},
+  {(bigint) parser_tables___ParserTable___action_table_row1332},
+  {(bigint) parser_tables___ParserTable___action_table_row1333},
+  {(bigint) parser_tables___ParserTable___action_table_row1334},
+  {(bigint) parser_tables___ParserTable___action_table_row1335},
+  {(bigint) parser_tables___ParserTable___action_table_row1336},
+  {(bigint) parser_tables___ParserTable___action_table_row1337},
+  {(bigint) parser_tables___ParserTable___action_table_row1338},
+  {(bigint) parser_tables___ParserTable___action_table_row1339},
+  {(bigint) parser_tables___ParserTable___action_table_row1340},
+  {(bigint) parser_tables___ParserTable___action_table_row1341},
+  {(bigint) parser_tables___ParserTable___action_table_row1342},
+  {(bigint) parser_tables___ParserTable___action_table_row1343},
+  {(bigint) parser_tables___ParserTable___action_table_row1344},
+  {(bigint) parser_tables___ParserTable___action_table_row1345},
+  {(bigint) parser_tables___ParserTable___action_table_row1346},
+  {(bigint) parser_tables___ParserTable___action_table_row1347},
+  {(bigint) parser_tables___ParserTable___action_table_row1348},
+  {(bigint) parser_tables___ParserTable___action_table_row1349},
+  {(bigint) parser_tables___ParserTable___action_table_row1350},
+  {(bigint) parser_tables___ParserTable___action_table_row1351},
+  {(bigint) parser_tables___ParserTable___action_table_row1352},
+  {(bigint) parser_tables___ParserTable___action_table_row1353},
+  {(bigint) parser_tables___ParserTable___action_table_row1354},
+  {(bigint) parser_tables___ParserTable___action_table_row1355},
+  {(bigint) parser_tables___ParserTable___action_table_row1356},
+  {(bigint) parser_tables___ParserTable___action_table_row1357},
+  {(bigint) parser_tables___ParserTable___action_table_row1358},
+  {(bigint) parser_tables___ParserTable___action_table_row1359},
+  {(bigint) parser_tables___ParserTable___action_table_row1360},
+  {(bigint) parser_tables___ParserTable___action_table_row1361},
+  {(bigint) parser_tables___ParserTable___action_table_row1362},
+  {(bigint) parser_tables___ParserTable___action_table_row1363},
+  {(bigint) parser_tables___ParserTable___action_table_row1364},
+  {(bigint) parser_tables___ParserTable___action_table_row1365},
+  {(bigint) parser_tables___ParserTable___action_table_row1366},
+  {(bigint) parser_tables___ParserTable___action_table_row1367},
+  {(bigint) parser_tables___ParserTable___action_table_row1368},
+  {(bigint) parser_tables___ParserTable___action_table_row1369},
+  {(bigint) parser_tables___ParserTable___action_table_row1370},
+  {(bigint) parser_tables___ParserTable___action_table_row1371},
+  {(bigint) parser_tables___ParserTable___action_table_row1372},
+  {(bigint) parser_tables___ParserTable___action_table_row1373},
+  {(bigint) parser_tables___ParserTable___action_table_row1374},
+  {(bigint) parser_tables___ParserTable___action_table_row1375},
+  {(bigint) parser_tables___ParserTable___action_table_row1376},
+  {(bigint) parser_tables___ParserTable___action_table_row1377},
+  {(bigint) parser_tables___ParserTable___action_table_row1378},
+  {(bigint) parser_tables___ParserTable___action_table_row1379},
+  {(bigint) parser_tables___ParserTable___action_table_row1380},
+  {(bigint) parser_tables___ParserTable___action_table_row1381},
+  {(bigint) parser_tables___ParserTable___action_table_row1382},
+  {(bigint) parser_tables___ParserTable___action_table_row1383},
+  {(bigint) parser_tables___ParserTable___action_table_row1384},
+  {(bigint) parser_tables___ParserTable___action_table_row1385},
+  {(bigint) parser_tables___ParserTable___action_table_row1386},
+  {(bigint) parser_tables___ParserTable___action_table_row1387},
+  {(bigint) parser_tables___ParserTable___action_table_row1388},
+  {(bigint) parser_tables___ParserTable___action_table_row1389},
+  {(bigint) parser_tables___ParserTable___action_table_row1390},
+  {(bigint) parser_tables___ParserTable___action_table_row1391},
+  {(bigint) parser_tables___ParserTable___action_table_row1392},
+  {(bigint) parser_tables___ParserTable___action_table_row1393},
+  {(bigint) parser_tables___ParserTable___action_table_row1394},
+  {(bigint) parser_tables___ParserTable___action_table_row1395},
+  {(bigint) parser_tables___ParserTable___action_table_row1396},
+  {(bigint) parser_tables___ParserTable___action_table_row1397},
+  {(bigint) parser_tables___ParserTable___action_table_row1398},
+  {(bigint) parser_tables___ParserTable___action_table_row1399},
+  {(bigint) parser_tables___ParserTable___action_table_row1400},
+  {(bigint) parser_tables___ParserTable___action_table_row1401},
+  {(bigint) parser_tables___ParserTable___action_table_row1402},
+  {(bigint) parser_tables___ParserTable___action_table_row1403},
+  {(bigint) parser_tables___ParserTable___action_table_row1404},
+  {(bigint) parser_tables___ParserTable___action_table_row1405},
+  {(bigint) parser_tables___ParserTable___action_table_row1406},
+  {(bigint) parser_tables___ParserTable___action_table_row1407},
+  {(bigint) parser_tables___ParserTable___action_table_row1408},
+  {(bigint) parser_tables___ParserTable___action_table_row1409},
+  {(bigint) parser_tables___ParserTable___action_table_row1410},
+  {(bigint) parser_tables___ParserTable___action_table_row1411},
+  {(bigint) parser_tables___ParserTable___action_table_row1412},
+  {(bigint) parser_tables___ParserTable___action_table_row1413},
+  {(bigint) parser_tables___ParserTable___action_table_row1414},
+  {(bigint) parser_tables___ParserTable___action_table_row1415},
+  {(bigint) parser_tables___ParserTable___action_table_row1416},
+  {(bigint) parser_tables___ParserTable___action_table_row1417},
+  {(bigint) parser_tables___ParserTable___action_table_row1418},
+  {(bigint) parser_tables___ParserTable___action_table_row1419},
+  {(bigint) parser_tables___ParserTable___action_table_row1420},
+  {(bigint) parser_tables___ParserTable___action_table_row1421},
+  {(bigint) parser_tables___ParserTable___action_table_row1422},
+  {(bigint) parser_tables___ParserTable___action_table_row1423},
+  {(bigint) parser_tables___ParserTable___action_table_row1424},
+  {(bigint) parser_tables___ParserTable___action_table_row1425},
+  {(bigint) parser_tables___ParserTable___action_table_row1426},
+  {(bigint) parser_tables___ParserTable___action_table_row1427},
+  {(bigint) parser_tables___ParserTable___action_table_row1428},
+  {(bigint) parser_tables___ParserTable___action_table_row1429},
+  {(bigint) parser_tables___ParserTable___action_table_row1430},
+  {(bigint) parser_tables___ParserTable___action_table_row1431},
+  {(bigint) parser_tables___ParserTable___action_table_row1432},
+  {(bigint) parser_tables___ParserTable___action_table_row1433},
+  {(bigint) parser_tables___ParserTable___action_table_row1434},
+  {(bigint) parser_tables___ParserTable___action_table_row1435},
+  {(bigint) parser_tables___ParserTable___action_table_row1436},
+  {(bigint) parser_tables___ParserTable___action_table_row1437},
+  {(bigint) parser_tables___ParserTable___action_table_row1438},
+  {(bigint) parser_tables___ParserTable___action_table_row1439},
+  {(bigint) parser_tables___ParserTable___action_table_row1440},
+  {(bigint) parser_tables___ParserTable___action_table_row1441},
+  {(bigint) parser_tables___ParserTable___action_table_row1442},
+  {(bigint) parser_tables___ParserTable___action_table_row1443},
+  {(bigint) parser_tables___ParserTable___action_table_row1444},
+  {(bigint) parser_tables___ParserTable___action_table_row1445},
+  {(bigint) parser_tables___ParserTable___action_table_row1446},
+  {(bigint) parser_tables___ParserTable___action_table_row1447},
+  {(bigint) parser_tables___ParserTable___action_table_row1448},
+  {(bigint) parser_tables___ParserTable___action_table_row1449},
+  {(bigint) parser_tables___ParserTable___action_table_row1450},
+  {(bigint) parser_tables___ParserTable___action_table_row1451},
+  {(bigint) parser_tables___ParserTable___action_table_row1452},
+  {(bigint) parser_tables___ParserTable___action_table_row1453},
+  {(bigint) parser_tables___ParserTable___action_table_row1454},
+  {(bigint) parser_tables___ParserTable___action_table_row1455},
+  {(bigint) parser_tables___ParserTable___action_table_row1456},
+  {(bigint) parser_tables___ParserTable___action_table_row1457},
+  {(bigint) parser_tables___ParserTable___action_table_row1458},
+  {(bigint) parser_tables___ParserTable___action_table_row1459},
+  {(bigint) parser_tables___ParserTable___action_table_row1460},
+  {(bigint) parser_tables___ParserTable___action_table_row1461},
+  {(bigint) parser_tables___ParserTable___action_table_row1462},
+  {(bigint) parser_tables___ParserTable___action_table_row1463},
+  {(bigint) parser_tables___ParserTable___action_table_row1464},
+  {(bigint) parser_tables___ParserTable___action_table_row1465},
+  {(bigint) parser_tables___ParserTable___action_table_row1466},
+  {(bigint) parser_tables___ParserTable___action_table_row1467},
+  {(bigint) parser_tables___ParserTable___action_table_row1468},
+  {(bigint) parser_tables___ParserTable___action_table_row1469},
+  {(bigint) parser_tables___ParserTable___action_table_row1470},
+  {(bigint) parser_tables___ParserTable___action_table_row1471},
+  {(bigint) parser_tables___ParserTable___action_table_row1472},
+  {(bigint) parser_tables___ParserTable___action_table_row1473},
+  {(bigint) parser_tables___ParserTable___action_table_row1474},
+  {(bigint) parser_tables___ParserTable___action_table_row1475},
+  {(bigint) parser_tables___ParserTable___action_table_row1476},
+  {(bigint) parser_tables___ParserTable___action_table_row1477},
+  {(bigint) parser_tables___ParserTable___action_table_row1478},
+  {(bigint) parser_tables___ParserTable___action_table_row1479},
+  {(bigint) parser_tables___ParserTable___action_table_row1480},
+  {(bigint) parser_tables___ParserTable___action_table_row1481},
+  {(bigint) parser_tables___ParserTable___action_table_row1482},
+  {(bigint) parser_tables___ParserTable___action_table_row1483},
+  {(bigint) parser_tables___ParserTable___action_table_row1484},
+  {(bigint) parser_tables___ParserTable___action_table_row1485},
+  {(bigint) parser_tables___ParserTable___action_table_row1486},
+  {(bigint) parser_tables___ParserTable___action_table_row1487},
+  {(bigint) parser_tables___ParserTable___action_table_row1488},
+  {(bigint) parser_tables___ParserTable___action_table_row1489},
+  {(bigint) parser_tables___ParserTable___action_table_row1490},
+  {(bigint) parser_tables___ParserTable___action_table_row1491},
+  {(bigint) parser_tables___ParserTable___action_table_row1492},
+  {(bigint) parser_tables___ParserTable___action_table_row1493},
+  {(bigint) parser_tables___ParserTable___action_table_row1494},
+  {(bigint) parser_tables___ParserTable___action_table_row1495},
+  {(bigint) parser_tables___ParserTable___action_table_row1496},
+  {(bigint) parser_tables___ParserTable___action_table_row1497},
+  {(bigint) parser_tables___ParserTable___action_table_row1498},
+  {(bigint) parser_tables___ParserTable___action_table_row1499},
+  {(bigint) parser_tables___ParserTable___action_table_row1500},
+  {(bigint) parser_tables___ParserTable___action_table_row1501},
+  {(bigint) parser_tables___ParserTable___action_table_row1502},
+  {(bigint) parser_tables___ParserTable___action_table_row1503},
+  {(bigint) parser_tables___ParserTable___action_table_row1504},
+  {(bigint) parser_tables___ParserTable___action_table_row1505},
+  {(bigint) parser_tables___ParserTable___action_table_row1506},
+  {(bigint) parser_tables___ParserTable___action_table_row1507},
+  {(bigint) parser_tables___ParserTable___action_table_row1508},
+  {(bigint) parser_tables___ParserTable___action_table_row1509},
+  {(bigint) parser_tables___ParserTable___action_table_row1510},
+  {(bigint) parser_tables___ParserTable___action_table_row1511},
+  {(bigint) parser_tables___ParserTable___action_table_row1512},
+  {(bigint) parser_tables___ParserTable___action_table_row1513},
+  {(bigint) parser_tables___ParserTable___action_table_row1514},
+  {(bigint) parser_tables___ParserTable___action_table_row1515},
+  {(bigint) parser_tables___ParserTable___action_table_row1516},
+  {(bigint) parser_tables___ParserTable___action_table_row1517},
+  {(bigint) parser_tables___ParserTable___action_table_row1518},
+  {(bigint) parser_tables___ParserTable___action_table_row1519},
+  {(bigint) parser_tables___ParserTable___action_table_row1520},
+  {(bigint) parser_tables___ParserTable___action_table_row1521},
+  {(bigint) parser_tables___ParserTable___action_table_row1522},
+  {(bigint) parser_tables___ParserTable___action_table_row1523},
+  {(bigint) parser_tables___ParserTable___action_table_row1524},
+  {(bigint) parser_tables___ParserTable___action_table_row1525},
+  {(bigint) parser_tables___ParserTable___action_table_row1526},
+  {(bigint) parser_tables___ParserTable___action_table_row1527},
+  {(bigint) parser_tables___ParserTable___action_table_row1528},
+  {(bigint) parser_tables___ParserTable___action_table_row1529},
+  {(bigint) parser_tables___ParserTable___action_table_row1530},
+  {(bigint) parser_tables___ParserTable___action_table_row1531},
+  {(bigint) parser_tables___ParserTable___action_table_row1532},
+  {(bigint) parser_tables___ParserTable___action_table_row1533},
+  {(bigint) parser_tables___ParserTable___action_table_row1534},
+  {(bigint) parser_tables___ParserTable___action_table_row1535},
+  {(bigint) parser_tables___ParserTable___action_table_row1536},
+  {(bigint) parser_tables___ParserTable___action_table_row1537},
+  {(bigint) parser_tables___ParserTable___action_table_row1538},
+  {(bigint) parser_tables___ParserTable___action_table_row1539},
+  {(bigint) parser_tables___ParserTable___action_table_row1540},
+  {(bigint) parser_tables___ParserTable___action_table_row1541},
+  {(bigint) parser_tables___ParserTable___action_table_row1542},
+  {(bigint) parser_tables___ParserTable___action_table_row1543},
+  {(bigint) parser_tables___ParserTable___action_table_row1544},
+  {(bigint) parser_tables___ParserTable___action_table_row1545},
+  {(bigint) parser_tables___ParserTable___action_table_row1546},
+  {(bigint) parser_tables___ParserTable___action_table_row1547},
+  {(bigint) parser_tables___ParserTable___action_table_row1548},
+  {(bigint) parser_tables___ParserTable___action_table_row1549},
+  {(bigint) parser_tables___ParserTable___action_table_row1550},
+  {(bigint) parser_tables___ParserTable___action_table_row1551},
+  {(bigint) parser_tables___ParserTable___action_table_row1552},
+  {(bigint) parser_tables___ParserTable___action_table_row1553},
+  {(bigint) parser_tables___ParserTable___action_table_row1554},
+  {(bigint) parser_tables___ParserTable___action_table_row1555},
+  {(bigint) parser_tables___ParserTable___action_table_row1556},
+  {(bigint) parser_tables___ParserTable___action_table_row1557},
+  {(bigint) parser_tables___ParserTable___action_table_row1558},
+  {(bigint) parser_tables___ParserTable___action_table_row1559},
+  {(bigint) parser_tables___ParserTable___action_table_row1560},
+  {(bigint) parser_tables___ParserTable___action_table_row1561},
+  {(bigint) parser_tables___ParserTable___action_table_row1562},
+  {(bigint) parser_tables___ParserTable___action_table_row1563},
+  {(bigint) parser_tables___ParserTable___action_table_row1564},
+  {(bigint) parser_tables___ParserTable___action_table_row1565},
+  {(bigint) parser_tables___ParserTable___action_table_row1566},
+  {(bigint) parser_tables___ParserTable___action_table_row1567},
+  {(bigint) parser_tables___ParserTable___action_table_row1568},
+  {(bigint) parser_tables___ParserTable___action_table_row1569},
+  {(bigint) parser_tables___ParserTable___action_table_row1570},
+  {(bigint) parser_tables___ParserTable___action_table_row1571},
+  {(bigint) parser_tables___ParserTable___action_table_row1572},
+  {(bigint) parser_tables___ParserTable___action_table_row1573},
+  {(bigint) parser_tables___ParserTable___action_table_row1574},
+  {(bigint) parser_tables___ParserTable___action_table_row1575},
+  {(bigint) parser_tables___ParserTable___action_table_row1576},
+  {(bigint) parser_tables___ParserTable___action_table_row1577},
+  {(bigint) parser_tables___ParserTable___action_table_row1578},
+  {(bigint) parser_tables___ParserTable___action_table_row1579},
+  {(bigint) parser_tables___ParserTable___action_table_row1580},
+  {(bigint) parser_tables___ParserTable___action_table_row1581},
+  {(bigint) parser_tables___ParserTable___action_table_row1582},
+  {(bigint) parser_tables___ParserTable___action_table_row1583},
+  {(bigint) parser_tables___ParserTable___action_table_row1584},
+  {(bigint) parser_tables___ParserTable___action_table_row1585},
+  {(bigint) parser_tables___ParserTable___action_table_row1586},
+  {(bigint) parser_tables___ParserTable___action_table_row1587},
+  {(bigint) parser_tables___ParserTable___action_table_row1588},
+  {(bigint) parser_tables___ParserTable___action_table_row1589},
+  {(bigint) parser_tables___ParserTable___action_table_row1590},
+  {(bigint) parser_tables___ParserTable___action_table_row1591},
+  {(bigint) parser_tables___ParserTable___action_table_row1592},
+  {(bigint) parser_tables___ParserTable___action_table_row1593},
+  {(bigint) parser_tables___ParserTable___action_table_row1594},
+  {(bigint) parser_tables___ParserTable___action_table_row1595},
+  {(bigint) parser_tables___ParserTable___action_table_row1596},
+  {(bigint) parser_tables___ParserTable___action_table_row1597},
+  {(bigint) parser_tables___ParserTable___action_table_row1598},
+  {(bigint) parser_tables___ParserTable___action_table_row1599},
+  {(bigint) parser_tables___ParserTable___action_table_row1600},
+  {(bigint) parser_tables___ParserTable___action_table_row1601},
+  {(bigint) parser_tables___ParserTable___action_table_row1602},
+  {(bigint) parser_tables___ParserTable___action_table_row1603},
+  {(bigint) parser_tables___ParserTable___action_table_row1604},
+  {(bigint) parser_tables___ParserTable___action_table_row1605},
+  {(bigint) parser_tables___ParserTable___action_table_row1606},
+  {(bigint) parser_tables___ParserTable___action_table_row1607},
+  {(bigint) parser_tables___ParserTable___action_table_row1608},
+  {(bigint) parser_tables___ParserTable___action_table_row1609},
+  {(bigint) parser_tables___ParserTable___action_table_row1610},
+  {(bigint) parser_tables___ParserTable___action_table_row1611},
+  {(bigint) parser_tables___ParserTable___action_table_row1612},
+  {(bigint) parser_tables___ParserTable___action_table_row1613},
+  {(bigint) parser_tables___ParserTable___action_table_row1614},
+  {(bigint) parser_tables___ParserTable___action_table_row1615},
+  {(bigint) parser_tables___ParserTable___action_table_row1616},
+  {(bigint) parser_tables___ParserTable___action_table_row1617},
+  {(bigint) parser_tables___ParserTable___action_table_row1618},
+  {(bigint) parser_tables___ParserTable___action_table_row1619},
+  {(bigint) parser_tables___ParserTable___action_table_row1620},
+  {(bigint) parser_tables___ParserTable___action_table_row1621},
+  {(bigint) parser_tables___ParserTable___action_table_row1622},
+  {(bigint) parser_tables___ParserTable___action_table_row1623},
+  {(bigint) parser_tables___ParserTable___action_table_row1624},
+  {(bigint) parser_tables___ParserTable___action_table_row1625},
+  {(bigint) parser_tables___ParserTable___action_table_row1626},
+  {(bigint) parser_tables___ParserTable___action_table_row1627},
+  {(bigint) parser_tables___ParserTable___action_table_row1628},
+  {(bigint) parser_tables___ParserTable___action_table_row1629},
+  {(bigint) parser_tables___ParserTable___action_table_row1630},
+  {(bigint) parser_tables___ParserTable___action_table_row1631},
+  {(bigint) parser_tables___ParserTable___action_table_row1632},
+  {(bigint) parser_tables___ParserTable___action_table_row1633},
+  {(bigint) parser_tables___ParserTable___action_table_row1634},
+  {(bigint) parser_tables___ParserTable___action_table_row1635},
+  {(bigint) parser_tables___ParserTable___action_table_row1636},
+  {(bigint) parser_tables___ParserTable___action_table_row1637},
+  {(bigint) parser_tables___ParserTable___action_table_row1638},
+  {(bigint) parser_tables___ParserTable___action_table_row1639},
+  {(bigint) parser_tables___ParserTable___action_table_row1640},
+  {(bigint) parser_tables___ParserTable___action_table_row1641},
+  {(bigint) parser_tables___ParserTable___action_table_row1642},
+  {(bigint) parser_tables___ParserTable___action_table_row1643},
+  {(bigint) parser_tables___ParserTable___action_table_row1644},
+  {(bigint) parser_tables___ParserTable___action_table_row1645},
+  {(bigint) parser_tables___ParserTable___action_table_row1646},
+  {(bigint) parser_tables___ParserTable___action_table_row1647},
+  {(bigint) parser_tables___ParserTable___action_table_row1648},
+  {(bigint) parser_tables___ParserTable___action_table_row1649},
+  {(bigint) parser_tables___ParserTable___action_table_row1650},
+  {(bigint) parser_tables___ParserTable___action_table_row1651},
+  {(bigint) parser_tables___ParserTable___action_table_row1652},
+  {(bigint) parser_tables___ParserTable___action_table_row1653},
+  {(bigint) parser_tables___ParserTable___action_table_row1654},
+  {(bigint) parser_tables___ParserTable___action_table_row1655},
+  {(bigint) parser_tables___ParserTable___action_table_row1656},
+  {(bigint) parser_tables___ParserTable___action_table_row1657},
+  {(bigint) parser_tables___ParserTable___action_table_row1658},
+  {(bigint) parser_tables___ParserTable___action_table_row1659},
+  {(bigint) parser_tables___ParserTable___action_table_row1660},
+  {(bigint) parser_tables___ParserTable___action_table_row1661},
+  {(bigint) parser_tables___ParserTable___action_table_row1662},
+  {(bigint) parser_tables___ParserTable___action_table_row1663},
+  {(bigint) parser_tables___ParserTable___action_table_row1664},
+  {(bigint) parser_tables___ParserTable___action_table_row1665},
+  {(bigint) parser_tables___ParserTable___action_table_row1666},
+  {(bigint) parser_tables___ParserTable___action_table_row1667},
+  {(bigint) parser_tables___ParserTable___action_table_row1668},
+  {(bigint) parser_tables___ParserTable___action_table_row1669},
+  {(bigint) parser_tables___ParserTable___action_table_row1670},
+  {(bigint) parser_tables___ParserTable___action_table_row1671},
+  {(bigint) parser_tables___ParserTable___action_table_row1672},
+  {(bigint) parser_tables___ParserTable___action_table_row1673},
+  {(bigint) parser_tables___ParserTable___action_table_row1674},
+  {(bigint) parser_tables___ParserTable___action_table_row1675},
+  {(bigint) parser_tables___ParserTable___action_table_row1676},
+  {(bigint) parser_tables___ParserTable___action_table_row1677},
+  {(bigint) parser_tables___ParserTable___action_table_row1678},
+  {(bigint) parser_tables___ParserTable___action_table_row1679},
+  {(bigint) parser_tables___ParserTable___action_table_row1680},
+  {(bigint) parser_tables___ParserTable___action_table_row1681},
+  {(bigint) parser_tables___ParserTable___action_table_row1682},
+  {(bigint) parser_tables___ParserTable___action_table_row1683},
+  {(bigint) parser_tables___ParserTable___action_table_row1684},
+  {(bigint) parser_tables___ParserTable___action_table_row1685},
+  {(bigint) parser_tables___ParserTable___action_table_row1686},
+  {(bigint) parser_tables___ParserTable___action_table_row1687},
+  {(bigint) parser_tables___ParserTable___action_table_row1688},
+  {(bigint) parser_tables___ParserTable___action_table_row1689},
+  {(bigint) parser_tables___ParserTable___action_table_row1690},
+  {(bigint) parser_tables___ParserTable___action_table_row1691},
+  {(bigint) parser_tables___ParserTable___action_table_row1692},
+  {(bigint) parser_tables___ParserTable___action_table_row1693},
+  {(bigint) parser_tables___ParserTable___action_table_row1694},
+  {(bigint) parser_tables___ParserTable___action_table_row1695},
+  {(bigint) parser_tables___ParserTable___action_table_row1696},
+  {(bigint) parser_tables___ParserTable___action_table_row1697},
+  {(bigint) parser_tables___ParserTable___action_table_row1698},
+  {(bigint) parser_tables___ParserTable___action_table_row1699},
+  {(bigint) parser_tables___ParserTable___action_table_row1700},
+  {(bigint) parser_tables___ParserTable___action_table_row1701},
+  {(bigint) parser_tables___ParserTable___action_table_row1702},
+  {(bigint) parser_tables___ParserTable___action_table_row1703},
+  {(bigint) parser_tables___ParserTable___action_table_row1704},
+  {(bigint) parser_tables___ParserTable___action_table_row1705},
+  {(bigint) parser_tables___ParserTable___action_table_row1706},
+  {(bigint) parser_tables___ParserTable___action_table_row1707},
+  {(bigint) parser_tables___ParserTable___action_table_row1708},
+  {(bigint) parser_tables___ParserTable___action_table_row1709},
+  {(bigint) parser_tables___ParserTable___action_table_row1710},
+  {(bigint) parser_tables___ParserTable___action_table_row1711},
+  {(bigint) parser_tables___ParserTable___action_table_row1712},
+  {(bigint) parser_tables___ParserTable___action_table_row1713},
+  {(bigint) parser_tables___ParserTable___action_table_row1714},
+  {(bigint) parser_tables___ParserTable___action_table_row1715},
+  {(bigint) parser_tables___ParserTable___action_table_row1716},
+  {(bigint) parser_tables___ParserTable___action_table_row1717},
+  {(bigint) parser_tables___ParserTable___action_table_row1718},
+  {(bigint) parser_tables___ParserTable___action_table_row1719},
+  {(bigint) parser_tables___ParserTable___action_table_row1720},
+  {(bigint) parser_tables___ParserTable___action_table_row1721},
+  {(bigint) parser_tables___ParserTable___action_table_row1722},
+  {(bigint) parser_tables___ParserTable___action_table_row1723},
+  {(bigint) parser_tables___ParserTable___action_table_row1724},
+  {(bigint) parser_tables___ParserTable___action_table_row1725},
+  {(bigint) parser_tables___ParserTable___action_table_row1726},
+  {(bigint) parser_tables___ParserTable___action_table_row1727},
+  {(bigint) parser_tables___ParserTable___action_table_row1728},
+  {(bigint) parser_tables___ParserTable___action_table_row1729},
+  {(bigint) parser_tables___ParserTable___action_table_row1730},
+  {(bigint) parser_tables___ParserTable___action_table_row1731},
+  {(bigint) parser_tables___ParserTable___action_table_row1732},
+  {(bigint) parser_tables___ParserTable___action_table_row1733},
+  {(bigint) parser_tables___ParserTable___action_table_row1734},
+  {(bigint) parser_tables___ParserTable___action_table_row1735},
+  {(bigint) parser_tables___ParserTable___action_table_row1736},
+  {(bigint) parser_tables___ParserTable___action_table_row1737},
+  {(bigint) parser_tables___ParserTable___action_table_row1738},
+  {(bigint) parser_tables___ParserTable___action_table_row1739},
+  {(bigint) parser_tables___ParserTable___action_table_row1740},
+  {(bigint) parser_tables___ParserTable___action_table_row1741},
+  {(bigint) parser_tables___ParserTable___action_table_row1742},
+  {(bigint) parser_tables___ParserTable___action_table_row1743},
+  {(bigint) parser_tables___ParserTable___action_table_row1744},
+  {(bigint) parser_tables___ParserTable___action_table_row1745},
+  {(bigint) parser_tables___ParserTable___action_table_row1746},
+  {(bigint) parser_tables___ParserTable___action_table_row1747},
+  {(bigint) parser_tables___ParserTable___action_table_row1748},
+  {(bigint) parser_tables___ParserTable___action_table_row1749},
+  {(bigint) parser_tables___ParserTable___action_table_row1750},
+  {(bigint) parser_tables___ParserTable___action_table_row1751},
+  {(bigint) parser_tables___ParserTable___action_table_row1752},
+  {(bigint) parser_tables___ParserTable___action_table_row1753},
+  {(bigint) parser_tables___ParserTable___action_table_row1754},
+  {(bigint) parser_tables___ParserTable___action_table_row1755},
+  {(bigint) parser_tables___ParserTable___action_table_row1756},
+  {(bigint) parser_tables___ParserTable___action_table_row1757},
+  {(bigint) parser_tables___ParserTable___action_table_row1758},
+  {(bigint) parser_tables___ParserTable___action_table_row1759},
+  {(bigint) parser_tables___ParserTable___action_table_row1760},
+  {(bigint) parser_tables___ParserTable___action_table_row1761},
+  {(bigint) parser_tables___ParserTable___action_table_row1762},
+  {(bigint) parser_tables___ParserTable___action_table_row1763},
+  {(bigint) parser_tables___ParserTable___action_table_row1764},
+  {(bigint) parser_tables___ParserTable___action_table_row1765},
+  {(bigint) parser_tables___ParserTable___action_table_row1766},
+  {(bigint) parser_tables___ParserTable___action_table_row1767},
+  {(bigint) parser_tables___ParserTable___action_table_row1768},
+  {(bigint) parser_tables___ParserTable___action_table_row1769},
+  {(bigint) parser_tables___ParserTable___action_table_row1770},
+  {(bigint) parser_tables___ParserTable___action_table_row1771},
+  {(bigint) parser_tables___ParserTable___action_table_row1772},
+  {(bigint) parser_tables___ParserTable___action_table_row1773},
+  {(bigint) parser_tables___ParserTable___action_table_row1774},
+  {(bigint) parser_tables___ParserTable___action_table_row1775},
+  {(bigint) parser_tables___ParserTable___action_table_row1776},
+  {(bigint) parser_tables___ParserTable___action_table_row1777},
+  {(bigint) parser_tables___ParserTable___action_table_row1778},
+  {(bigint) parser_tables___ParserTable___action_table_row1779},
+  {(bigint) parser_tables___ParserTable___action_table_row1780},
+  {(bigint) parser_tables___ParserTable___action_table_row1781},
+  {(bigint) parser_tables___ParserTable___action_table_row1782},
+  {(bigint) parser_tables___ParserTable___action_table_row1783},
+  {(bigint) parser_tables___ParserTable___action_table_row1784},
+  {(bigint) parser_tables___ParserTable___action_table_row1785},
+  {(bigint) parser_tables___ParserTable___action_table_row1786},
+  {(bigint) parser_tables___ParserTable___action_table_row1787},
+  {(bigint) parser_tables___ParserTable___action_table_row1788},
+  {(bigint) parser_tables___ParserTable___action_table_row1789},
+  {(bigint) parser_tables___ParserTable___action_table_row1790},
+  {(bigint) parser_tables___ParserTable___action_table_row1791},
+  {(bigint) parser_tables___ParserTable___action_table_row1792},
+  {(bigint) parser_tables___ParserTable___action_table_row1793},
+  {(bigint) parser_tables___ParserTable___action_table_row1794},
+  {(bigint) parser_tables___ParserTable___action_table_row1795},
+  {(bigint) parser_tables___ParserTable___action_table_row1796},
+  {(bigint) parser_tables___ParserTable___action_table_row1797},
+  {(bigint) parser_tables___ParserTable___action_table_row1798},
+  {(bigint) parser_tables___ParserTable___action_table_row1799},
+  {(bigint) parser_tables___ParserTable___action_table_row1800},
+  {(bigint) parser_tables___ParserTable___action_table_row1801},
+  {(bigint) parser_tables___ParserTable___action_table_row1802},
+  {(bigint) parser_tables___ParserTable___action_table_row1803},
+  {(bigint) parser_tables___ParserTable___action_table_row1804},
+  {(bigint) parser_tables___ParserTable___action_table_row1805},
+  {(bigint) parser_tables___ParserTable___action_table_row1806},
+  {(bigint) parser_tables___ParserTable___action_table_row1807},
+  {(bigint) parser_tables___ParserTable___action_table_row1808},
+  {(bigint) parser_tables___ParserTable___action_table_row1809},
+  {(bigint) parser_tables___ParserTable___action_table_row1810},
+  {(bigint) parser_tables___ParserTable___action_table_row1811},
+  {(bigint) parser_tables___ParserTable___action_table_row1812},
+  {(bigint) parser_tables___ParserTable___action_table_row1813},
+  {(bigint) parser_tables___ParserTable___action_table_row1814},
+  {(bigint) parser_tables___ParserTable___action_table_row1815},
+  {(bigint) parser_tables___ParserTable___action_table_row1816},
+  {(bigint) parser_tables___ParserTable___action_table_row1817},
+  {(bigint) parser_tables___ParserTable___action_table_row1818},
+  {(bigint) parser_tables___ParserTable___action_table_row1819},
+  {(bigint) parser_tables___ParserTable___action_table_row1820},
+  {(bigint) parser_tables___ParserTable___action_table_row1821},
+  {(bigint) parser_tables___ParserTable___action_table_row1822},
+  {(bigint) parser_tables___ParserTable___action_table_row1823},
+  {(bigint) parser_tables___ParserTable___action_table_row1824},
+  {(bigint) parser_tables___ParserTable___action_table_row1825},
+  {(bigint) parser_tables___ParserTable___action_table_row1826},
+  {(bigint) parser_tables___ParserTable___action_table_row1827},
+  {(bigint) parser_tables___ParserTable___action_table_row1828},
+  {(bigint) parser_tables___ParserTable___action_table_row1829},
+  {(bigint) parser_tables___ParserTable___action_table_row1830},
+  {(bigint) parser_tables___ParserTable___action_table_row1831},
+  {(bigint) parser_tables___ParserTable___action_table_row1832},
+  {(bigint) parser_tables___ParserTable___action_table_row1833},
+  {(bigint) parser_tables___ParserTable___action_table_row1834},
+  {(bigint) parser_tables___ParserTable___action_table_row1835},
+  {(bigint) parser_tables___ParserTable___action_table_row1836},
+  {(bigint) parser_tables___ParserTable___action_table_row1837},
+  {(bigint) parser_tables___ParserTable___action_table_row1838},
+  {(bigint) parser_tables___ParserTable___action_table_row1839},
+  {(bigint) parser_tables___ParserTable___action_table_row1840},
+  {(bigint) parser_tables___ParserTable___action_table_row1841},
+  {(bigint) parser_tables___ParserTable___action_table_row1842},
+  {(bigint) parser_tables___ParserTable___action_table_row1843},
+  {(bigint) parser_tables___ParserTable___action_table_row1844},
+  {(bigint) parser_tables___ParserTable___action_table_row1845},
+  {(bigint) parser_tables___ParserTable___action_table_row1846},
+  {(bigint) parser_tables___ParserTable___action_table_row1847},
+  {(bigint) parser_tables___ParserTable___action_table_row1848},
+  {(bigint) parser_tables___ParserTable___action_table_row1849},
+  {(bigint) parser_tables___ParserTable___action_table_row1850},
+  {(bigint) parser_tables___ParserTable___action_table_row1851},
+  {(bigint) parser_tables___ParserTable___action_table_row1852},
+  {(bigint) parser_tables___ParserTable___action_table_row1853},
+  {(bigint) parser_tables___ParserTable___action_table_row1854},
+  {(bigint) parser_tables___ParserTable___action_table_row1855},
+  {(bigint) parser_tables___ParserTable___action_table_row1856},
+  {(bigint) parser_tables___ParserTable___action_table_row1857},
+  {(bigint) parser_tables___ParserTable___action_table_row1858},
+  {(bigint) parser_tables___ParserTable___action_table_row1859},
+  {(bigint) parser_tables___ParserTable___action_table_row1860},
+  {(bigint) parser_tables___ParserTable___action_table_row1861},
+  {(bigint) parser_tables___ParserTable___action_table_row1862},
+  {(bigint) parser_tables___ParserTable___action_table_row1863},
+  {(bigint) parser_tables___ParserTable___action_table_row1864},
+  {(bigint) parser_tables___ParserTable___action_table_row1865},
+  {(bigint) parser_tables___ParserTable___action_table_row1866},
+  {(bigint) parser_tables___ParserTable___action_table_row1867},
+  {(bigint) parser_tables___ParserTable___action_table_row1868},
+  {(bigint) parser_tables___ParserTable___action_table_row1869},
+  {(bigint) parser_tables___ParserTable___action_table_row1870},
+  {(bigint) parser_tables___ParserTable___action_table_row1871},
+  {(bigint) parser_tables___ParserTable___action_table_row1872},
+  {(bigint) parser_tables___ParserTable___action_table_row1873},
+  {(bigint) parser_tables___ParserTable___action_table_row1874},
+  {(bigint) parser_tables___ParserTable___action_table_row1875},
+  {(bigint) parser_tables___ParserTable___action_table_row1876},
+  {(bigint) parser_tables___ParserTable___action_table_row1877},
+  {(bigint) parser_tables___ParserTable___action_table_row1878},
+  {(bigint) parser_tables___ParserTable___action_table_row1879},
+  {(bigint) parser_tables___ParserTable___action_table_row1880},
+  {(bigint) parser_tables___ParserTable___action_table_row1881},
+  {(bigint) parser_tables___ParserTable___action_table_row1882},
+  {(bigint) parser_tables___ParserTable___action_table_row1883},
+  {(bigint) parser_tables___ParserTable___action_table_row1884},
+  {(bigint) parser_tables___ParserTable___action_table_row1885},
+  {(bigint) parser_tables___ParserTable___action_table_row1886},
+  {(bigint) parser_tables___ParserTable___action_table_row1887},
+  {(bigint) parser_tables___ParserTable___action_table_row1888},
+  {(bigint) parser_tables___ParserTable___action_table_row1889},
+  {(bigint) parser_tables___ParserTable___action_table_row1890},
+  {(bigint) parser_tables___ParserTable___action_table_row1891},
+  {(bigint) parser_tables___ParserTable___action_table_row1892},
+  {(bigint) parser_tables___ParserTable___action_table_row1893},
+  {(bigint) parser_tables___ParserTable___action_table_row1894},
+  {(bigint) parser_tables___ParserTable___action_table_row1895},
+  {(bigint) parser_tables___ParserTable___action_table_row1896},
+  {(bigint) parser_tables___ParserTable___action_table_row1897},
+  {(bigint) parser_tables___ParserTable___action_table_row1898},
+  {(bigint) parser_tables___ParserTable___action_table_row1899},
+  {(bigint) parser_tables___ParserTable___action_table_row1900},
+  {(bigint) parser_tables___ParserTable___action_table_row1901},
+  {(bigint) parser_tables___ParserTable___action_table_row1902},
+  {(bigint) parser_tables___ParserTable___action_table_row1903},
+  {(bigint) parser_tables___ParserTable___action_table_row1904},
+  {(bigint) parser_tables___ParserTable___action_table_row1905},
+  {(bigint) parser_tables___ParserTable___action_table_row1906},
+  {(bigint) parser_tables___ParserTable___action_table_row1907},
+  {(bigint) parser_tables___ParserTable___action_table_row1908},
+  {(bigint) parser_tables___ParserTable___action_table_row1909},
+  {(bigint) parser_tables___ParserTable___action_table_row1910},
+  {(bigint) parser_tables___ParserTable___action_table_row1911},
+  {(bigint) parser_tables___ParserTable___action_table_row1912},
+  {(bigint) parser_tables___ParserTable___action_table_row1913},
+  {(bigint) parser_tables___ParserTable___action_table_row1914},
+  {(bigint) parser_tables___ParserTable___action_table_row1915},
+  {(bigint) parser_tables___ParserTable___action_table_row1916},
+  {(bigint) parser_tables___ParserTable___action_table_row1917},
+  {(bigint) parser_tables___ParserTable___action_table_row1918},
+  {(bigint) parser_tables___ParserTable___action_table_row1919},
+  {(bigint) parser_tables___ParserTable___action_table_row1920},
+  {(bigint) parser_tables___ParserTable___action_table_row1921},
+  {(bigint) parser_tables___ParserTable___action_table_row1922},
+  {(bigint) parser_tables___ParserTable___action_table_row1923},
+  {(bigint) parser_tables___ParserTable___action_table_row1924},
+  {(bigint) parser_tables___ParserTable___action_table_row1925},
+  {(bigint) parser_tables___ParserTable___action_table_row1926},
+  {(bigint) parser_tables___ParserTable___action_table_row1927},
+  {(bigint) parser_tables___ParserTable___action_table_row1928},
+  {(bigint) parser_tables___ParserTable___action_table_row1929},
+  {(bigint) parser_tables___ParserTable___action_table_row1930},
+  {(bigint) parser_tables___ParserTable___action_table_row1931},
+  {(bigint) parser_tables___ParserTable___action_table_row1932},
+  {(bigint) parser_tables___ParserTable___action_table_row1933},
+  {(bigint) parser_tables___ParserTable___action_table_row1934},
+  {(bigint) parser_tables___ParserTable___action_table_row1935},
+  {(bigint) parser_tables___ParserTable___action_table_row1936},
+  {(bigint) parser_tables___ParserTable___action_table_row1937},
+  {(bigint) parser_tables___ParserTable___action_table_row1938},
+  {(bigint) parser_tables___ParserTable___action_table_row1939},
+  {(bigint) parser_tables___ParserTable___action_table_row1940},
+  {(bigint) parser_tables___ParserTable___action_table_row1941},
+  {(bigint) parser_tables___ParserTable___action_table_row1942},
+  {(bigint) parser_tables___ParserTable___action_table_row1943},
+  {(bigint) parser_tables___ParserTable___action_table_row1944},
+  {(bigint) parser_tables___ParserTable___action_table_row1945},
+  {(bigint) parser_tables___ParserTable___action_table_row1946},
+  {(bigint) parser_tables___ParserTable___action_table_row1947},
+  {(bigint) parser_tables___ParserTable___action_table_row1948},
+  {(bigint) parser_tables___ParserTable___action_table_row1949},
+  {(bigint) parser_tables___ParserTable___action_table_row1950},
+  {(bigint) parser_tables___ParserTable___action_table_row1951},
+  {(bigint) parser_tables___ParserTable___action_table_row1952},
+  {(bigint) parser_tables___ParserTable___action_table_row1953},
+  {(bigint) parser_tables___ParserTable___action_table_row1954},
+  {(bigint) parser_tables___ParserTable___action_table_row1955},
+  {(bigint) parser_tables___ParserTable___action_table_row1956},
+  {(bigint) parser_tables___ParserTable___action_table_row1957},
+  {(bigint) parser_tables___ParserTable___action_table_row1958},
+  {(bigint) parser_tables___ParserTable___action_table_row1959},
+  {(bigint) parser_tables___ParserTable___action_table_row1960},
+  {(bigint) parser_tables___ParserTable___action_table_row1961},
+  {(bigint) parser_tables___ParserTable___action_table_row1962},
+  {(bigint) parser_tables___ParserTable___action_table_row1963},
+  {(bigint) parser_tables___ParserTable___action_table_row1964},
+  {(bigint) parser_tables___ParserTable___action_table_row1965},
+  {(bigint) parser_tables___ParserTable___action_table_row1966},
+  {(bigint) parser_tables___ParserTable___action_table_row1967},
+  {(bigint) parser_tables___ParserTable___action_table_row1968},
+  {(bigint) parser_tables___ParserTable___action_table_row1969},
+  {(bigint) parser_tables___ParserTable___action_table_row1970},
+  {(bigint) parser_tables___ParserTable___action_table_row1971},
+  {(bigint) parser_tables___ParserTable___action_table_row1972},
+  {(bigint) parser_tables___ParserTable___action_table_row1973},
+  {(bigint) parser_tables___ParserTable___action_table_row1974},
+  {(bigint) parser_tables___ParserTable___action_table_row1975},
+  {(bigint) parser_tables___ParserTable___action_table_row1976},
+  {(bigint) parser_tables___ParserTable___action_table_row1977},
+  {(bigint) parser_tables___ParserTable___action_table_row1978},
+  {(bigint) parser_tables___ParserTable___action_table_row1979},
+  {(bigint) parser_tables___ParserTable___action_table_row1980},
+  {(bigint) parser_tables___ParserTable___action_table_row1981},
+  {(bigint) parser_tables___ParserTable___action_table_row1982},
+  {(bigint) parser_tables___ParserTable___action_table_row1983},
+  {(bigint) parser_tables___ParserTable___action_table_row1984},
+  {(bigint) parser_tables___ParserTable___action_table_row1985},
+  {(bigint) parser_tables___ParserTable___action_table_row1986},
+  {(bigint) parser_tables___ParserTable___action_table_row1987},
+  {(bigint) parser_tables___ParserTable___action_table_row1988},
+  {(bigint) parser_tables___ParserTable___action_table_row1989},
+  {(bigint) parser_tables___ParserTable___action_table_row1990},
+  {(bigint) parser_tables___ParserTable___action_table_row1991},
+  {(bigint) parser_tables___ParserTable___action_table_row1992},
+  {(bigint) parser_tables___ParserTable___action_table_row1993},
+  {(bigint) parser_tables___ParserTable___action_table_row1994},
+  {(bigint) parser_tables___ParserTable___action_table_row1995},
+  {(bigint) parser_tables___ParserTable___action_table_row1996},
+  {(bigint) parser_tables___ParserTable___action_table_row1997},
+  {(bigint) parser_tables___ParserTable___action_table_row1998},
+  {(bigint) parser_tables___ParserTable___action_table_row1999},
+  {(bigint) parser_tables___ParserTable___action_table_row2000},
+  {(bigint) parser_tables___ParserTable___action_table_row2001},
+  {(bigint) parser_tables___ParserTable___action_table_row2002},
+  {(bigint) parser_tables___ParserTable___action_table_row2003},
+  {(bigint) parser_tables___ParserTable___action_table_row2004},
+  {(bigint) parser_tables___ParserTable___action_table_row2005},
+  {(bigint) parser_tables___ParserTable___action_table_row2006},
+  {(bigint) parser_tables___ParserTable___action_table_row2007},
+  {(bigint) parser_tables___ParserTable___action_table_row2008},
+  {(bigint) parser_tables___ParserTable___action_table_row2009},
+  {(bigint) parser_tables___ParserTable___action_table_row2010},
+  {(bigint) parser_tables___ParserTable___action_table_row2011},
+  {(bigint) parser_tables___ParserTable___action_table_row2012},
+  {(bigint) parser_tables___ParserTable___action_table_row2013},
+  {(bigint) parser_tables___ParserTable___action_table_row2014},
+  {(bigint) parser_tables___ParserTable___action_table_row2015},
+  {(bigint) parser_tables___ParserTable___action_table_row2016},
+  {(bigint) parser_tables___ParserTable___action_table_row2017},
+  {(bigint) parser_tables___ParserTable___action_table_row2018},
+  {(bigint) parser_tables___ParserTable___action_table_row2019},
+  {(bigint) parser_tables___ParserTable___action_table_row2020},
+  {(bigint) parser_tables___ParserTable___action_table_row2021},
+  {(bigint) parser_tables___ParserTable___action_table_row2022},
+  {(bigint) parser_tables___ParserTable___action_table_row2023},
+  {(bigint) parser_tables___ParserTable___action_table_row2024},
+  {(bigint) parser_tables___ParserTable___action_table_row2025},
+  {(bigint) parser_tables___ParserTable___action_table_row2026},
+  {(bigint) parser_tables___ParserTable___action_table_row2027},
+  {(bigint) parser_tables___ParserTable___action_table_row2028},
+  {(bigint) parser_tables___ParserTable___action_table_row2029},
+  {(bigint) parser_tables___ParserTable___action_table_row2030},
+  {(bigint) parser_tables___ParserTable___action_table_row2031},
+  {(bigint) parser_tables___ParserTable___action_table_row2032},
+  {(bigint) parser_tables___ParserTable___action_table_row2033},
+  {(bigint) parser_tables___ParserTable___action_table_row2034},
+  {(bigint) parser_tables___ParserTable___action_table_row2035},
+  {(bigint) parser_tables___ParserTable___action_table_row2036},
+  {(bigint) parser_tables___ParserTable___action_table_row2037},
+  {(bigint) parser_tables___ParserTable___action_table_row2038},
+  {(bigint) parser_tables___ParserTable___action_table_row2039},
+  {(bigint) parser_tables___ParserTable___action_table_row2040},
+  {(bigint) parser_tables___ParserTable___action_table_row2041},
+  {(bigint) parser_tables___ParserTable___action_table_row2042},
+  {(bigint) parser_tables___ParserTable___action_table_row2043},
+  {(bigint) parser_tables___ParserTable___action_table_row2044},
+  {(bigint) parser_tables___ParserTable___action_table_row2045},
+  {(bigint) parser_tables___ParserTable___action_table_row2046},
+  {(bigint) parser_tables___ParserTable___action_table_row2047},
+  {(bigint) parser_tables___ParserTable___action_table_row2048},
+  {(bigint) parser_tables___ParserTable___action_table_row2049},
+  {(bigint) parser_tables___ParserTable___action_table_row2050},
+  {(bigint) parser_tables___ParserTable___action_table_row2051},
+  {(bigint) parser_tables___ParserTable___action_table_row2052},
+  {(bigint) parser_tables___ParserTable___action_table_row2053},
+  {(bigint) parser_tables___ParserTable___action_table_row2054},
+  {(bigint) parser_tables___ParserTable___action_table_row2055},
+  {(bigint) parser_tables___ParserTable___action_table_row2056},
+  {(bigint) parser_tables___ParserTable___action_table_row2057},
+  {(bigint) parser_tables___ParserTable___action_table_row2058},
+  {(bigint) parser_tables___ParserTable___action_table_row2059},
+  {(bigint) parser_tables___ParserTable___action_table_row2060},
+  {(bigint) parser_tables___ParserTable___action_table_row2061},
+  {(bigint) parser_tables___ParserTable___action_table_row2062},
+  {(bigint) parser_tables___ParserTable___action_table_row2063},
+  {(bigint) parser_tables___ParserTable___action_table_row2064},
+  {(bigint) parser_tables___ParserTable___action_table_row2065},
+  {(bigint) parser_tables___ParserTable___action_table_row2066},
+  {(bigint) parser_tables___ParserTable___action_table_row2067},
+  {(bigint) parser_tables___ParserTable___action_table_row2068},
+  {(bigint) parser_tables___ParserTable___action_table_row2069},
+  {(bigint) parser_tables___ParserTable___action_table_row2070},
+  {(bigint) parser_tables___ParserTable___action_table_row2071},
+  {(bigint) parser_tables___ParserTable___action_table_row2072},
+  {(bigint) parser_tables___ParserTable___action_table_row2073},
+  {(bigint) parser_tables___ParserTable___action_table_row2074},
+  {(bigint) parser_tables___ParserTable___action_table_row2075},
+  {(bigint) parser_tables___ParserTable___action_table_row2076},
+  {(bigint) parser_tables___ParserTable___action_table_row2077},
+  {(bigint) parser_tables___ParserTable___action_table_row2078},
+  {(bigint) parser_tables___ParserTable___action_table_row2079},
+  {(bigint) parser_tables___ParserTable___action_table_row2080},
+  {(bigint) parser_tables___ParserTable___action_table_row2081},
+  {(bigint) parser_tables___ParserTable___action_table_row2082},
+  {(bigint) parser_tables___ParserTable___action_table_row2083},
+  {(bigint) parser_tables___ParserTable___action_table_row2084},
+  {(bigint) parser_tables___ParserTable___action_table_row2085},
+  {(bigint) parser_tables___ParserTable___action_table_row2086},
+  {(bigint) parser_tables___ParserTable___action_table_row2087},
+  {(bigint) parser_tables___ParserTable___action_table_row2088},
+  {(bigint) parser_tables___ParserTable___action_table_row2089},
+  {(bigint) parser_tables___ParserTable___action_table_row2090},
+  {(bigint) parser_tables___ParserTable___action_table_row2091},
+  {(bigint) parser_tables___ParserTable___action_table_row2092},
+  {(bigint) parser_tables___ParserTable___action_table_row2093},
+  {(bigint) parser_tables___ParserTable___action_table_row2094},
+  {(bigint) parser_tables___ParserTable___action_table_row2095},
+  {(bigint) parser_tables___ParserTable___action_table_row2096},
+  {(bigint) parser_tables___ParserTable___action_table_row2097},
+  {(bigint) parser_tables___ParserTable___action_table_row2098},
+  {(bigint) parser_tables___ParserTable___action_table_row2099},
+  {(bigint) parser_tables___ParserTable___action_table_row2100},
+  {(bigint) parser_tables___ParserTable___action_table_row2101},
+  {(bigint) parser_tables___ParserTable___action_table_row2102},
+  {(bigint) parser_tables___ParserTable___action_table_row2103},
+  {(bigint) parser_tables___ParserTable___action_table_row2104},
+  {(bigint) parser_tables___ParserTable___action_table_row2105},
+  {(bigint) parser_tables___ParserTable___action_table_row2106},
+  {(bigint) parser_tables___ParserTable___action_table_row2107},
+  {(bigint) parser_tables___ParserTable___action_table_row2108},
+  {(bigint) parser_tables___ParserTable___action_table_row2109},
+  {(bigint) parser_tables___ParserTable___action_table_row2110},
+  {(bigint) parser_tables___ParserTable___action_table_row2111},
+  {(bigint) parser_tables___ParserTable___action_table_row2112},
+  {(bigint) parser_tables___ParserTable___action_table_row2113},
+  {(bigint) parser_tables___ParserTable___action_table_row2114},
+  {(bigint) parser_tables___ParserTable___action_table_row2115},
+  {(bigint) parser_tables___ParserTable___action_table_row2116},
+  {(bigint) parser_tables___ParserTable___action_table_row2117},
+  {(bigint) parser_tables___ParserTable___action_table_row2118},
+  {(bigint) parser_tables___ParserTable___action_table_row2119},
+  {(bigint) parser_tables___ParserTable___action_table_row2120},
+  {(bigint) parser_tables___ParserTable___action_table_row2121},
+  {(bigint) parser_tables___ParserTable___action_table_row2122},
+  {(bigint) parser_tables___ParserTable___action_table_row2123},
+  {(bigint) parser_tables___ParserTable___action_table_row2124},
+  {(bigint) parser_tables___ParserTable___action_table_row2125},
+  {(bigint) parser_tables___ParserTable___action_table_row2126},
+  {(bigint) parser_tables___ParserTable___action_table_row2127},
+  {(bigint) parser_tables___ParserTable___action_table_row2128},
+  {(bigint) parser_tables___ParserTable___action_table_row2129},
+  {(bigint) parser_tables___ParserTable___action_table_row2130},
+  {(bigint) parser_tables___ParserTable___action_table_row2131},
+  {(bigint) parser_tables___ParserTable___action_table_row2132},
+  {(bigint) parser_tables___ParserTable___action_table_row2133},
+  {(bigint) parser_tables___ParserTable___action_table_row2134},
+  {(bigint) parser_tables___ParserTable___action_table_row2135},
+  {(bigint) parser_tables___ParserTable___action_table_row2136},
+  {(bigint) parser_tables___ParserTable___action_table_row2137},
+  {(bigint) parser_tables___ParserTable___action_table_row2138},
+  {(bigint) parser_tables___ParserTable___action_table_row2139},
+  {(bigint) parser_tables___ParserTable___action_table_row2140},
+  {(bigint) parser_tables___ParserTable___action_table_row2141},
+  {(bigint) parser_tables___ParserTable___action_table_row2142},
+  {(bigint) parser_tables___ParserTable___action_table_row2143},
+  {(bigint) parser_tables___ParserTable___action_table_row2144},
+  {(bigint) parser_tables___ParserTable___action_table_row2145},
+  {(bigint) parser_tables___ParserTable___action_table_row2146},
+  {(bigint) parser_tables___ParserTable___action_table_row2147},
+  {(bigint) parser_tables___ParserTable___action_table_row2148},
+  {(bigint) parser_tables___ParserTable___action_table_row2149},
+  {(bigint) parser_tables___ParserTable___action_table_row2150},
+  {(bigint) parser_tables___ParserTable___action_table_row2151},
+  {(bigint) parser_tables___ParserTable___action_table_row2152},
+  {(bigint) parser_tables___ParserTable___action_table_row2153},
+  {(bigint) parser_tables___ParserTable___action_table_row2154},
+  {(bigint) parser_tables___ParserTable___action_table_row2155},
+  {(bigint) parser_tables___ParserTable___action_table_row2156},
+  {(bigint) parser_tables___ParserTable___action_table_row2157},
+  {(bigint) parser_tables___ParserTable___action_table_row2158},
+  {(bigint) parser_tables___ParserTable___action_table_row2159},
+  {(bigint) parser_tables___ParserTable___action_table_row2160},
+  {(bigint) parser_tables___ParserTable___action_table_row2161},
+  {(bigint) parser_tables___ParserTable___action_table_row2162},
+  {(bigint) parser_tables___ParserTable___action_table_row2163},
+  {(bigint) parser_tables___ParserTable___action_table_row2164},
+  {(bigint) parser_tables___ParserTable___action_table_row2165},
+  {(bigint) parser_tables___ParserTable___action_table_row2166},
+  {(bigint) parser_tables___ParserTable___action_table_row2167},
+  {(bigint) parser_tables___ParserTable___action_table_row2168},
+  {(bigint) parser_tables___ParserTable___action_table_row2169},
+  {(bigint) parser_tables___ParserTable___action_table_row2170},
+  {(bigint) parser_tables___ParserTable___action_table_row2171},
+  {(bigint) parser_tables___ParserTable___action_table_row2172},
+  {(bigint) parser_tables___ParserTable___action_table_row2173},
+  {(bigint) parser_tables___ParserTable___action_table_row2174},
+  {(bigint) parser_tables___ParserTable___action_table_row2175},
+  {(bigint) parser_tables___ParserTable___action_table_row2176},
+  {(bigint) parser_tables___ParserTable___action_table_row2177},
+  {(bigint) parser_tables___ParserTable___action_table_row2178},
+  {(bigint) parser_tables___ParserTable___action_table_row2179},
+  {(bigint) parser_tables___ParserTable___action_table_row2180},
+  {(bigint) parser_tables___ParserTable___action_table_row2181},
+  {(bigint) parser_tables___ParserTable___action_table_row2182},
+  {(bigint) parser_tables___ParserTable___action_table_row2183},
+  {(bigint) parser_tables___ParserTable___action_table_row2184},
+  {(bigint) parser_tables___ParserTable___action_table_row2185},
+  {(bigint) parser_tables___ParserTable___action_table_row2186},
+  {(bigint) parser_tables___ParserTable___action_table_row2187},
+  {(bigint) parser_tables___ParserTable___action_table_row2188},
+  {(bigint) parser_tables___ParserTable___action_table_row2189},
+  {(bigint) parser_tables___ParserTable___action_table_row2190},
+  {(bigint) parser_tables___ParserTable___action_table_row2191},
+  {(bigint) parser_tables___ParserTable___action_table_row2192},
+  {(bigint) parser_tables___ParserTable___action_table_row2193},
+  {(bigint) parser_tables___ParserTable___action_table_row2194},
+  {(bigint) parser_tables___ParserTable___action_table_row2195},
+  {(bigint) parser_tables___ParserTable___action_table_row2196},
+  {(bigint) parser_tables___ParserTable___action_table_row2197},
+  {(bigint) parser_tables___ParserTable___action_table_row2198},
+  {(bigint) parser_tables___ParserTable___action_table_row2199},
+  {(bigint) parser_tables___ParserTable___action_table_row2200},
+  {(bigint) parser_tables___ParserTable___action_table_row2201},
+  {(bigint) parser_tables___ParserTable___action_table_row2202},
+  {(bigint) parser_tables___ParserTable___action_table_row2203},
+  {(bigint) parser_tables___ParserTable___action_table_row2204},
+  {(bigint) parser_tables___ParserTable___action_table_row2205},
+  {(bigint) parser_tables___ParserTable___action_table_row2206},
+  {(bigint) parser_tables___ParserTable___action_table_row2207},
+  {(bigint) parser_tables___ParserTable___action_table_row2208},
+  {(bigint) parser_tables___ParserTable___action_table_row2209},
+  {(bigint) parser_tables___ParserTable___action_table_row2210},
+  {(bigint) parser_tables___ParserTable___action_table_row2211},
+  {(bigint) parser_tables___ParserTable___action_table_row2212},
+  {(bigint) parser_tables___ParserTable___action_table_row2213},
+  {(bigint) parser_tables___ParserTable___action_table_row2214},
+  {(bigint) parser_tables___ParserTable___action_table_row2215},
+  {(bigint) parser_tables___ParserTable___action_table_row2216},
+  {(bigint) parser_tables___ParserTable___action_table_row2217},
+  {(bigint) parser_tables___ParserTable___action_table_row2218},
+  {(bigint) parser_tables___ParserTable___action_table_row2219},
+  {(bigint) parser_tables___ParserTable___action_table_row2220},
+  {(bigint) parser_tables___ParserTable___action_table_row2221},
+  {(bigint) parser_tables___ParserTable___action_table_row2222},
+  {(bigint) parser_tables___ParserTable___action_table_row2223},
+  {(bigint) parser_tables___ParserTable___action_table_row2224},
+  {(bigint) parser_tables___ParserTable___action_table_row2225},
+  {(bigint) parser_tables___ParserTable___action_table_row2226},
+  {(bigint) parser_tables___ParserTable___action_table_row2227},
+  {(bigint) parser_tables___ParserTable___action_table_row2228},
+  {(bigint) parser_tables___ParserTable___action_table_row2229},
+  {(bigint) parser_tables___ParserTable___action_table_row2230},
+  {(bigint) parser_tables___ParserTable___action_table_row2231},
+  {(bigint) parser_tables___ParserTable___action_table_row2232},
+  {(bigint) parser_tables___ParserTable___action_table_row2233},
+  {(bigint) parser_tables___ParserTable___action_table_row2234},
+  {(bigint) parser_tables___ParserTable___action_table_row2235},
+  {(bigint) parser_tables___ParserTable___action_table_row2236},
+  {(bigint) parser_tables___ParserTable___action_table_row2237},
+  {(bigint) parser_tables___ParserTable___action_table_row2238},
+  {(bigint) parser_tables___ParserTable___action_table_row2239},
+  {(bigint) parser_tables___ParserTable___action_table_row2240},
+  {(bigint) parser_tables___ParserTable___action_table_row2241},
+  {(bigint) parser_tables___ParserTable___action_table_row2242},
+  {(bigint) parser_tables___ParserTable___action_table_row2243},
+  {(bigint) parser_tables___ParserTable___action_table_row2244},
+  {(bigint) parser_tables___ParserTable___action_table_row2245},
+  {(bigint) parser_tables___ParserTable___action_table_row2246},
+  {(bigint) parser_tables___ParserTable___action_table_row2247},
+  {(bigint) parser_tables___ParserTable___action_table_row2248},
+  {(bigint) parser_tables___ParserTable___action_table_row2249},
+  {(bigint) parser_tables___ParserTable___action_table_row2250},
+  {(bigint) parser_tables___ParserTable___action_table_row2251},
+  {(bigint) parser_tables___ParserTable___action_table_row2252},
+  {(bigint) parser_tables___ParserTable___action_table_row2253},
+  {(bigint) parser_tables___ParserTable___action_table_row2254},
+  {(bigint) parser_tables___ParserTable___action_table_row2255},
+  {(bigint) parser_tables___ParserTable___action_table_row2256},
+  {(bigint) parser_tables___ParserTable___action_table_row2257},
+  {(bigint) parser_tables___ParserTable___action_table_row2258},
+  {(bigint) parser_tables___ParserTable___action_table_row2259},
+  {(bigint) parser_tables___ParserTable___action_table_row2260},
+  {(bigint) parser_tables___ParserTable___action_table_row2261},
+  {(bigint) parser_tables___ParserTable___action_table_row2262},
+  {(bigint) parser_tables___ParserTable___action_table_row2263},
+  {(bigint) parser_tables___ParserTable___action_table_row2264},
+  {(bigint) parser_tables___ParserTable___action_table_row2265},
+  {(bigint) parser_tables___ParserTable___action_table_row2266},
+  {(bigint) parser_tables___ParserTable___action_table_row2267},
+  {(bigint) parser_tables___ParserTable___action_table_row2268},
+  {(bigint) parser_tables___ParserTable___action_table_row2269},
+  {(bigint) parser_tables___ParserTable___action_table_row2270},
+  {(bigint) parser_tables___ParserTable___action_table_row2271},
+  {(bigint) parser_tables___ParserTable___action_table_row2272},
+  {(bigint) parser_tables___ParserTable___action_table_row2273},
+  {(bigint) parser_tables___ParserTable___action_table_row2274},
+  {(bigint) parser_tables___ParserTable___action_table_row2275},
+  {(bigint) parser_tables___ParserTable___action_table_row2276},
+  {(bigint) parser_tables___ParserTable___action_table_row2277},
+  {(bigint) parser_tables___ParserTable___action_table_row2278},
+  {(bigint) parser_tables___ParserTable___action_table_row2279},
+  {(bigint) parser_tables___ParserTable___action_table_row2280},
+  {(bigint) parser_tables___ParserTable___action_table_row2281},
+  {(bigint) parser_tables___ParserTable___action_table_row2282},
+  {(bigint) parser_tables___ParserTable___action_table_row2283},
+  {(bigint) parser_tables___ParserTable___action_table_row2284},
+  {(bigint) parser_tables___ParserTable___action_table_row2285},
+  {(bigint) parser_tables___ParserTable___action_table_row2286},
+  {(bigint) parser_tables___ParserTable___action_table_row2287},
+  {(bigint) parser_tables___ParserTable___action_table_row2288},
+  {(bigint) parser_tables___ParserTable___action_table_row2289},
+  {(bigint) parser_tables___ParserTable___action_table_row2290},
+  {(bigint) parser_tables___ParserTable___action_table_row2291},
+  {(bigint) parser_tables___ParserTable___action_table_row2292},
+  {(bigint) parser_tables___ParserTable___action_table_row2293},
+  {(bigint) parser_tables___ParserTable___action_table_row2294},
+  {(bigint) parser_tables___ParserTable___action_table_row2295},
+  {(bigint) parser_tables___ParserTable___action_table_row2296},
+  {(bigint) parser_tables___ParserTable___action_table_row2297},
+  {(bigint) parser_tables___ParserTable___action_table_row2298},
+  {(bigint) parser_tables___ParserTable___action_table_row2299},
+  {(bigint) parser_tables___ParserTable___action_table_row2300},
+  {(bigint) parser_tables___ParserTable___action_table_row2301},
+  {(bigint) parser_tables___ParserTable___action_table_row2302},
+  {(bigint) parser_tables___ParserTable___action_table_row2303},
+  {(bigint) parser_tables___ParserTable___action_table_row2304},
+  {(bigint) parser_tables___ParserTable___action_table_row2305},
+  {(bigint) parser_tables___ParserTable___action_table_row2306},
+  {(bigint) parser_tables___ParserTable___action_table_row2307},
+  {(bigint) parser_tables___ParserTable___action_table_row2308},
+  {(bigint) parser_tables___ParserTable___action_table_row2309},
+  {(bigint) parser_tables___ParserTable___action_table_row2310},
+  {(bigint) parser_tables___ParserTable___action_table_row2311},
+  {(bigint) parser_tables___ParserTable___action_table_row2312},
+  {(bigint) parser_tables___ParserTable___action_table_row2313},
+  {(bigint) parser_tables___ParserTable___action_table_row2314},
+  {(bigint) parser_tables___ParserTable___action_table_row2315},
+  {(bigint) parser_tables___ParserTable___action_table_row2316},
+  {(bigint) parser_tables___ParserTable___action_table_row2317},
+  {(bigint) parser_tables___ParserTable___action_table_row2318},
+  {(bigint) parser_tables___ParserTable___action_table_row2319},
+  {(bigint) parser_tables___ParserTable___action_table_row2320},
+  {(bigint) parser_tables___ParserTable___action_table_row2321},
+  {(bigint) parser_tables___ParserTable___action_table_row2322},
+  {(bigint) parser_tables___ParserTable___action_table_row2323},
+  {(bigint) parser_tables___ParserTable___action_table_row2324},
+  {(bigint) parser_tables___ParserTable___action_table_row2325},
+  {(bigint) parser_tables___ParserTable___action_table_row2326},
+  {(bigint) parser_tables___ParserTable___action_table_row2327},
+  {(bigint) parser_tables___ParserTable___action_table_row2328},
+  {(bigint) parser_tables___ParserTable___action_table_row2329},
+  {(bigint) parser_tables___ParserTable___action_table_row2330},
+  {(bigint) parser_tables___ParserTable___action_table_row2331},
+  {(bigint) parser_tables___ParserTable___action_table_row2332},
+  {(bigint) parser_tables___ParserTable___action_table_row2333},
+  {(bigint) parser_tables___ParserTable___action_table_row2334},
+  {(bigint) parser_tables___ParserTable___action_table_row2335},
+  {(bigint) parser_tables___ParserTable___action_table_row2336},
+  {(bigint) parser_tables___ParserTable___action_table_row2337},
+  {(bigint) parser_tables___ParserTable___action_table_row2338},
+  {(bigint) parser_tables___ParserTable___action_table_row2339},
+  {(bigint) parser_tables___ParserTable___action_table_row2340},
+  {(bigint) parser_tables___ParserTable___action_table_row2341},
+  {(bigint) parser_tables___ParserTable___action_table_row2342},
+  {(bigint) parser_tables___ParserTable___action_table_row2343},
+  {(bigint) parser_tables___ParserTable___action_table_row2344},
+  {(bigint) parser_tables___ParserTable___action_table_row2345},
+  {(bigint) parser_tables___ParserTable___action_table_row2346},
+  {(bigint) parser_tables___ParserTable___action_table_row2347},
+  {(bigint) parser_tables___ParserTable___action_table_row2348},
+  {(bigint) parser_tables___ParserTable___action_table_row2349},
+  {(bigint) parser_tables___ParserTable___action_table_row2350},
+  {(bigint) parser_tables___ParserTable___action_table_row2351},
+  {(bigint) parser_tables___ParserTable___action_table_row2352},
+  {(bigint) parser_tables___ParserTable___action_table_row2353},
+  {(bigint) parser_tables___ParserTable___action_table_row2354},
+  {(bigint) parser_tables___ParserTable___action_table_row2355},
+  {(bigint) parser_tables___ParserTable___action_table_row2356},
+  {(bigint) parser_tables___ParserTable___action_table_row2357},
+  {(bigint) parser_tables___ParserTable___action_table_row2358},
+  {(bigint) parser_tables___ParserTable___action_table_row2359},
+  {(bigint) parser_tables___ParserTable___action_table_row2360},
+  {(bigint) parser_tables___ParserTable___action_table_row2361},
+  {(bigint) parser_tables___ParserTable___action_table_row2362},
+  {(bigint) parser_tables___ParserTable___action_table_row2363},
+  {(bigint) parser_tables___ParserTable___action_table_row2364},
+  {(bigint) parser_tables___ParserTable___action_table_row2365},
+  {(bigint) parser_tables___ParserTable___action_table_row2366},
+  {(bigint) parser_tables___ParserTable___action_table_row2367},
+  {(bigint) parser_tables___ParserTable___action_table_row2368},
+  {(bigint) parser_tables___ParserTable___action_table_row2369},
+  {(bigint) parser_tables___ParserTable___action_table_row2370},
+  {(bigint) parser_tables___ParserTable___action_table_row2371},
+  {(bigint) parser_tables___ParserTable___action_table_row2372},
+  {(bigint) parser_tables___ParserTable___action_table_row2373},
+  {(bigint) parser_tables___ParserTable___action_table_row2374},
+  {(bigint) parser_tables___ParserTable___action_table_row2375},
+  {(bigint) parser_tables___ParserTable___action_table_row2376},
+  {(bigint) parser_tables___ParserTable___action_table_row2377},
+  {(bigint) parser_tables___ParserTable___action_table_row2378},
+  {(bigint) parser_tables___ParserTable___action_table_row2379},
+  {(bigint) parser_tables___ParserTable___action_table_row2380},
+  {(bigint) parser_tables___ParserTable___action_table_row2381},
+  {(bigint) parser_tables___ParserTable___action_table_row2382},
+  {(bigint) parser_tables___ParserTable___action_table_row2383},
+  {(bigint) parser_tables___ParserTable___action_table_row2384},
+  {(bigint) parser_tables___ParserTable___action_table_row2385},
+  {(bigint) parser_tables___ParserTable___action_table_row2386},
+  {(bigint) parser_tables___ParserTable___action_table_row2387},
+  {(bigint) parser_tables___ParserTable___action_table_row2388},
+  {(bigint) parser_tables___ParserTable___action_table_row2389},
+  {(bigint) parser_tables___ParserTable___action_table_row2390},
+  {(bigint) parser_tables___ParserTable___action_table_row2391},
+  {(bigint) parser_tables___ParserTable___action_table_row2392},
+  {(bigint) parser_tables___ParserTable___action_table_row2393},
+  {(bigint) parser_tables___ParserTable___action_table_row2394},
+  {(bigint) parser_tables___ParserTable___action_table_row2395},
+  {(bigint) parser_tables___ParserTable___action_table_row2396},
+  {(bigint) parser_tables___ParserTable___action_table_row2397},
+  {(bigint) parser_tables___ParserTable___action_table_row2398},
+  {(bigint) parser_tables___ParserTable___action_table_row2399},
+  {(bigint) parser_tables___ParserTable___action_table_row2400},
+  {(bigint) parser_tables___ParserTable___action_table_row2401},
+  {(bigint) parser_tables___ParserTable___action_table_row2402},
+  {(bigint) parser_tables___ParserTable___action_table_row2403},
+  {(bigint) parser_tables___ParserTable___action_table_row2404},
+  {(bigint) parser_tables___ParserTable___action_table_row2405},
+  {(bigint) parser_tables___ParserTable___action_table_row2406},
+  {(bigint) parser_tables___ParserTable___action_table_row2407},
+  {(bigint) parser_tables___ParserTable___action_table_row2408},
+  {(bigint) parser_tables___ParserTable___action_table_row2409},
+  {(bigint) parser_tables___ParserTable___action_table_row2410},
+  {(bigint) parser_tables___ParserTable___action_table_row2411},
+  {(bigint) parser_tables___ParserTable___action_table_row2412},
+  {(bigint) parser_tables___ParserTable___action_table_row2413},
+  {(bigint) parser_tables___ParserTable___action_table_row2414},
+  {(bigint) parser_tables___ParserTable___action_table_row2415},
+  {(bigint) parser_tables___ParserTable___action_table_row2416},
+  {(bigint) parser_tables___ParserTable___action_table_row2417},
+  {(bigint) parser_tables___ParserTable___action_table_row2418},
+  {(bigint) parser_tables___ParserTable___action_table_row2419},
+  {(bigint) parser_tables___ParserTable___action_table_row2420},
+  {(bigint) parser_tables___ParserTable___action_table_row2421},
+  {(bigint) parser_tables___ParserTable___action_table_row2422},
+  {(bigint) parser_tables___ParserTable___action_table_row2423},
+  {(bigint) parser_tables___ParserTable___action_table_row2424},
+  {(bigint) parser_tables___ParserTable___action_table_row2425},
+  {(bigint) parser_tables___ParserTable___action_table_row2426},
+  {(bigint) parser_tables___ParserTable___action_table_row2427},
+  {(bigint) parser_tables___ParserTable___action_table_row2428},
+  {(bigint) parser_tables___ParserTable___action_table_row2429},
+  {(bigint) parser_tables___ParserTable___action_table_row2430},
+  {(bigint) parser_tables___ParserTable___action_table_row2431},
+  {(bigint) parser_tables___ParserTable___action_table_row2432},
+  {(bigint) parser_tables___ParserTable___action_table_row2433},
+  {(bigint) parser_tables___ParserTable___action_table_row2434},
+  {(bigint) parser_tables___ParserTable___action_table_row2435},
+  {(bigint) parser_tables___ParserTable___action_table_row2436},
+  {(bigint) parser_tables___ParserTable___action_table_row2437},
+  {(bigint) parser_tables___ParserTable___action_table_row2438},
+  {(bigint) parser_tables___ParserTable___action_table_row2439},
+  {(bigint) parser_tables___ParserTable___action_table_row2440},
+  {(bigint) parser_tables___ParserTable___action_table_row2441},
+  {(bigint) parser_tables___ParserTable___action_table_row2442},
+  {(bigint) parser_tables___ParserTable___action_table_row2443},
+  {(bigint) parser_tables___ParserTable___action_table_row2444},
+  {(bigint) parser_tables___ParserTable___action_table_row2445},
+  {(bigint) parser_tables___ParserTable___action_table_row2446},
+  {(bigint) parser_tables___ParserTable___action_table_row2447},
+  {(bigint) parser_tables___ParserTable___action_table_row2448},
+  {(bigint) parser_tables___ParserTable___action_table_row2449},
+  {(bigint) parser_tables___ParserTable___action_table_row2450},
+  {(bigint) parser_tables___ParserTable___action_table_row2451},
   {(bigint) parser_tables___ParserTable___build_goto_table},
-  {(bigint) parser_tables___ParserTable___error_messages},
-  {(bigint) parser_tables___ParserTable___errors},
-  {(bigint) 2 /* 1210: Parser < Parser: superclass init_table position */},
+  {(bigint) parser_tables___ParserTable___init},
+  {(bigint) 2 /* 2500: Parser < Parser: superclass init_table position */},
   {(bigint) parser___Parser___init},
   {(bigint) parser___Parser___go_to},
   {(bigint) parser___Parser___push},
@@ -40805,32 +90965,116 @@ const classtable_elt_t VFT_Parser[1218] = {
   {(bigint) parser___Parser___build_reduce_table},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Parser::_action_table */
-/* 2: Attribute Parser::_goto_table */
-/* 3: Attribute Parser::_lexer */
-/* 4: Attribute Parser::_stack */
-/* 5: Attribute Parser::_stack_pos */
-/* 6: Attribute Parser::_reduce_table */
-val_t NEW_Parser(void) {
+/* 1: Object_id */
+/* 2: Attribute Parser::_action_table */
+/* 3: Attribute Parser::_goto_table */
+/* 4: Attribute Parser::_lexer */
+/* 5: Attribute Parser::_stack */
+/* 6: Attribute Parser::_stack_pos */
+/* 7: Attribute Parser::_reduce_table */
+void INIT_ATTRIBUTES__Parser(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Parser;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Parser(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 8);
   obj->vft = (classtable_elt_t*)VFT_Parser;
-  ATTR_parser_tables___ParserTable____action_table(obj) =  NIT_NULL /*null*/;
-  ATTR_parser_tables___ParserTable____goto_table(obj) =  NIT_NULL /*null*/;
-  ATTR_parser___Parser____stack_pos(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Parser(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Parser;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_tables___ParserTable____action_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_action_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_tables___ParserTable____goto_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_goto_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___Parser____lexer(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_lexer");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stack");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stack_pos");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___Parser____reduce_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_reduce_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___Parser___init(val_t p0) {
+val_t NEW_Parser_parser___Parser___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_Parser();
-  parser___Parser___init(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34;
+  fra.me.meth = LOCATE_NEW_Parser_parser___Parser___init;
+  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;
+  fra.me.REG[1] = NEW_Parser();
+  /* ./parser//parser.nit:34 */
+  INIT_ATTRIBUTES__Parser(fra.me.REG[1]);
+  parser___Parser___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Parser(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_SearchTokensVisitor[44] = {
-  {(bigint) 207 /* 0: Identity */},
-  {(bigint) 3 /* 1: SearchTokensVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: SearchTokensVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 207 /* 3: SearchTokensVisitor < SearchTokensVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_ComputeProdLocationVisitor[52] = {
+  {(bigint) 5259 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ComputeProdLocationVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: ComputeProdLocationVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5259 /* 4: ComputeProdLocationVisitor < ComputeProdLocationVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40840,14 +91084,12 @@ const classtable_elt_t VFT_SearchTokensVisitor[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: SearchTokensVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ComputeProdLocationVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -40855,7 +91097,6 @@ const classtable_elt_t VFT_SearchTokensVisitor[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -40863,34 +91104,129 @@ const classtable_elt_t VFT_SearchTokensVisitor[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: SearchTokensVisitor < Visitor: superclass init_table position */},
-  {(bigint) parser___SearchTokensVisitor___visit},
-  {(bigint) 2 /* 42: SearchTokensVisitor < SearchTokensVisitor: superclass init_table position */},
-  {(bigint) parser___SearchTokensVisitor___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ComputeProdLocationVisitor < Visitor: superclass init_table position */},
+  {(bigint) parser___ComputeProdLocationVisitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: ComputeProdLocationVisitor < ComputeProdLocationVisitor: superclass init_table position */},
+  {(bigint) parser___ComputeProdLocationVisitor___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute SearchTokensVisitor::_untokenned_nodes */
-/* 2: Attribute SearchTokensVisitor::_last_token */
-val_t NEW_SearchTokensVisitor(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_SearchTokensVisitor;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___SearchTokensVisitor___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_SearchTokensVisitor();
-  parser___SearchTokensVisitor___init(self, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute ComputeProdLocationVisitor::_current_node */
+/* 3: Attribute ComputeProdLocationVisitor::_need_first_prods */
+/* 4: Attribute ComputeProdLocationVisitor::_need_after_epsilons */
+/* 5: Attribute ComputeProdLocationVisitor::_need_before_epsilons */
+/* 6: Attribute ComputeProdLocationVisitor::_last_location */
+void INIT_ATTRIBUTES__ComputeProdLocationVisitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ComputeProdLocationVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./parser//parser.nit:1369 */
+  ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./parser//parser.nit:1372 */
+  ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./parser//parser.nit:1375 */
+  ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser.nit:1378 */
+  ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_ReduceAction[42] = {
-  {(bigint) 39 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction < ReduceAction: superclass typecheck marker */},
+val_t NEW_ComputeProdLocationVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ComputeProdLocationVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ComputeProdLocationVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ComputeProdLocationVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_first_prods");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_after_epsilons");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_before_epsilons");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1449;
+  fra.me.meth = LOCATE_NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ComputeProdLocationVisitor();
+  /* ./parser//parser.nit:1449 */
+  INIT_ATTRIBUTES__ComputeProdLocationVisitor(fra.me.REG[0]);
+  parser___ComputeProdLocationVisitor___init(fra.me.REG[0], init_table);
+  CHECKNEW_ComputeProdLocationVisitor(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction[48] = {
+  {(bigint) 43 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction < ReduceAction: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40901,14 +91237,12 @@ const classtable_elt_t VFT_ReduceAction[42] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -40916,7 +91250,6 @@ const classtable_elt_t VFT_ReduceAction[42] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -40924,25 +91257,78 @@ const classtable_elt_t VFT_ReduceAction[42] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction___action},
+  {(bigint) parser___ReduceAction___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction;
-  return OBJ2VAL(obj);
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction_parser___ReduceAction___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ReduceAction_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction();
+  INIT_ATTRIBUTES__ReduceAction(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction0[44] = {
-  {(bigint) 2503 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction0 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction0 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2503 /* 3: ReduceAction0 < ReduceAction0: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction0[50] = {
+  {(bigint) 5051 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction0 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction0 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5051 /* 4: ReduceAction0 < ReduceAction0: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40952,14 +91338,12 @@ const classtable_elt_t VFT_ReduceAction0[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction0 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction0 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -40967,7 +91351,6 @@ const classtable_elt_t VFT_ReduceAction0[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -40975,33 +91358,81 @@ const classtable_elt_t VFT_ReduceAction0[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction0 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction0 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction0___action},
-  {(bigint) 2 /* 42: ReduceAction0 < ReduceAction0: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction0 < ReduceAction0: superclass init_table position */},
   {(bigint) parser___ReduceAction0___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction0(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction0(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction0;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction0(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction0;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction0___init() {
+void CHECKNEW_ReduceAction0(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction0;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction0_parser___ReduceAction0___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction0();
-  parser___ReduceAction0___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1472;
+  fra.me.meth = LOCATE_NEW_ReduceAction0_parser___ReduceAction0___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction0();
+  /* ./parser//parser.nit:1472 */
+  INIT_ATTRIBUTES__ReduceAction0(fra.me.REG[0]);
+  parser___ReduceAction0___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction0(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction1[44] = {
-  {(bigint) 2499 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction1 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction1 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2499 /* 3: ReduceAction1 < ReduceAction1: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction1[50] = {
+  {(bigint) 5047 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5047 /* 4: ReduceAction1 < ReduceAction1: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41011,14 +91442,12 @@ const classtable_elt_t VFT_ReduceAction1[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction1 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41026,7 +91455,6 @@ const classtable_elt_t VFT_ReduceAction1[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41034,33 +91462,81 @@ const classtable_elt_t VFT_ReduceAction1[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction1 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction1___action},
-  {(bigint) 2 /* 42: ReduceAction1 < ReduceAction1: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1 < ReduceAction1: superclass init_table position */},
   {(bigint) parser___ReduceAction1___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction1(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction1;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction1___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction1();
-  parser___ReduceAction1___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction2[44] = {
-  {(bigint) 2055 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction2 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction2 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2055 /* 3: ReduceAction2 < ReduceAction2: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1_parser___ReduceAction1___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1492;
+  fra.me.meth = LOCATE_NEW_ReduceAction1_parser___ReduceAction1___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1();
+  /* ./parser//parser.nit:1492 */
+  INIT_ATTRIBUTES__ReduceAction1(fra.me.REG[0]);
+  parser___ReduceAction1___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction2[50] = {
+  {(bigint) 3827 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction2 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction2 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3827 /* 4: ReduceAction2 < ReduceAction2: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41070,14 +91546,12 @@ const classtable_elt_t VFT_ReduceAction2[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction2 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction2 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41085,7 +91559,6 @@ const classtable_elt_t VFT_ReduceAction2[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41093,33 +91566,81 @@ const classtable_elt_t VFT_ReduceAction2[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction2 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction2 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction2___action},
-  {(bigint) 2 /* 42: ReduceAction2 < ReduceAction2: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction2 < ReduceAction2: superclass init_table position */},
   {(bigint) parser___ReduceAction2___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction2(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction2(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction2;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction2(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction2;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction2___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction2();
-  parser___ReduceAction2___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction3[44] = {
-  {(bigint) 1611 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction3 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction3 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1611 /* 3: ReduceAction3 < ReduceAction3: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction2(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction2;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction2_parser___ReduceAction2___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1519;
+  fra.me.meth = LOCATE_NEW_ReduceAction2_parser___ReduceAction2___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction2();
+  /* ./parser//parser.nit:1519 */
+  INIT_ATTRIBUTES__ReduceAction2(fra.me.REG[0]);
+  parser___ReduceAction2___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction2(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction3[50] = {
+  {(bigint) 3383 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction3 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction3 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3383 /* 4: ReduceAction3 < ReduceAction3: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41129,14 +91650,12 @@ const classtable_elt_t VFT_ReduceAction3[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction3 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction3 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41144,7 +91663,6 @@ const classtable_elt_t VFT_ReduceAction3[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41152,33 +91670,81 @@ const classtable_elt_t VFT_ReduceAction3[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction3 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction3 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction3___action},
-  {(bigint) 2 /* 42: ReduceAction3 < ReduceAction3: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction3 < ReduceAction3: superclass init_table position */},
   {(bigint) parser___ReduceAction3___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction3(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction3(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction3;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction3(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction3;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction3___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction3();
-  parser___ReduceAction3___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction4[44] = {
-  {(bigint) 1167 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction4 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction4 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1167 /* 3: ReduceAction4 < ReduceAction4: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction3(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction3;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction3_parser___ReduceAction3___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1549;
+  fra.me.meth = LOCATE_NEW_ReduceAction3_parser___ReduceAction3___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction3();
+  /* ./parser//parser.nit:1549 */
+  INIT_ATTRIBUTES__ReduceAction3(fra.me.REG[0]);
+  parser___ReduceAction3___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction3(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction4[50] = {
+  {(bigint) 2939 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction4 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction4 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2939 /* 4: ReduceAction4 < ReduceAction4: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41188,14 +91754,12 @@ const classtable_elt_t VFT_ReduceAction4[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction4 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction4 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41203,7 +91767,6 @@ const classtable_elt_t VFT_ReduceAction4[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41211,33 +91774,81 @@ const classtable_elt_t VFT_ReduceAction4[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction4 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction4 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction4___action},
-  {(bigint) 2 /* 42: ReduceAction4 < ReduceAction4: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction4 < ReduceAction4: superclass init_table position */},
   {(bigint) parser___ReduceAction4___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction4(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction4(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction4;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction4(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction4;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction4___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction4();
-  parser___ReduceAction4___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction5[44] = {
-  {(bigint) 723 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction5 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction5 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 723 /* 3: ReduceAction5 < ReduceAction5: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction4(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction4;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction4_parser___ReduceAction4___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1576;
+  fra.me.meth = LOCATE_NEW_ReduceAction4_parser___ReduceAction4___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction4();
+  /* ./parser//parser.nit:1576 */
+  INIT_ATTRIBUTES__ReduceAction4(fra.me.REG[0]);
+  parser___ReduceAction4___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction4(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction5[50] = {
+  {(bigint) 2495 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction5 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction5 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2495 /* 4: ReduceAction5 < ReduceAction5: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41247,14 +91858,12 @@ const classtable_elt_t VFT_ReduceAction5[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction5 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction5 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41262,7 +91871,6 @@ const classtable_elt_t VFT_ReduceAction5[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41270,33 +91878,81 @@ const classtable_elt_t VFT_ReduceAction5[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction5 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction5 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction5___action},
-  {(bigint) 2 /* 42: ReduceAction5 < ReduceAction5: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction5 < ReduceAction5: superclass init_table position */},
   {(bigint) parser___ReduceAction5___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction5(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction5(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction5;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction5(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction5;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction5___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction5();
-  parser___ReduceAction5___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction6[44] = {
-  {(bigint) 387 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction6 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction6 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 387 /* 3: ReduceAction6 < ReduceAction6: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction5(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction5;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction5_parser___ReduceAction5___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1606;
+  fra.me.meth = LOCATE_NEW_ReduceAction5_parser___ReduceAction5___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction5();
+  /* ./parser//parser.nit:1606 */
+  INIT_ATTRIBUTES__ReduceAction5(fra.me.REG[0]);
+  parser___ReduceAction5___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction5(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction6[50] = {
+  {(bigint) 2051 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction6 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction6 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2051 /* 4: ReduceAction6 < ReduceAction6: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41306,14 +91962,12 @@ const classtable_elt_t VFT_ReduceAction6[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction6 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction6 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41321,7 +91975,6 @@ const classtable_elt_t VFT_ReduceAction6[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41329,33 +91982,81 @@ const classtable_elt_t VFT_ReduceAction6[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction6 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction6 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction6___action},
-  {(bigint) 2 /* 42: ReduceAction6 < ReduceAction6: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction6 < ReduceAction6: superclass init_table position */},
   {(bigint) parser___ReduceAction6___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction6(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction6(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction6;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction6(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction6;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction6___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction6();
-  parser___ReduceAction6___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction7[44] = {
-  {(bigint) 343 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction7 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction7 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 343 /* 3: ReduceAction7 < ReduceAction7: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction6(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction6;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction6_parser___ReduceAction6___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1643;
+  fra.me.meth = LOCATE_NEW_ReduceAction6_parser___ReduceAction6___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction6();
+  /* ./parser//parser.nit:1643 */
+  INIT_ATTRIBUTES__ReduceAction6(fra.me.REG[0]);
+  parser___ReduceAction6___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction6(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction7[50] = {
+  {(bigint) 1607 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction7 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction7 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1607 /* 4: ReduceAction7 < ReduceAction7: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41365,14 +92066,12 @@ const classtable_elt_t VFT_ReduceAction7[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction7 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction7 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41380,7 +92079,6 @@ const classtable_elt_t VFT_ReduceAction7[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41388,33 +92086,81 @@ const classtable_elt_t VFT_ReduceAction7[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction7 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction7 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction7___action},
-  {(bigint) 2 /* 42: ReduceAction7 < ReduceAction7: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction7 < ReduceAction7: superclass init_table position */},
   {(bigint) parser___ReduceAction7___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction7(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction7(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction7;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction7(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction7;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction7___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction7();
-  parser___ReduceAction7___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction8[44] = {
-  {(bigint) 299 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction8 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction8 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 299 /* 3: ReduceAction8 < ReduceAction8: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction7(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction7;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction7_parser___ReduceAction7___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1683;
+  fra.me.meth = LOCATE_NEW_ReduceAction7_parser___ReduceAction7___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction7();
+  /* ./parser//parser.nit:1683 */
+  INIT_ATTRIBUTES__ReduceAction7(fra.me.REG[0]);
+  parser___ReduceAction7___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction7(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction8[50] = {
+  {(bigint) 1163 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction8 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction8 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1163 /* 4: ReduceAction8 < ReduceAction8: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41424,14 +92170,12 @@ const classtable_elt_t VFT_ReduceAction8[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction8 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction8 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41439,7 +92183,6 @@ const classtable_elt_t VFT_ReduceAction8[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41447,33 +92190,81 @@ const classtable_elt_t VFT_ReduceAction8[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction8 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction8 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction8___action},
-  {(bigint) 2 /* 42: ReduceAction8 < ReduceAction8: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction8 < ReduceAction8: superclass init_table position */},
   {(bigint) parser___ReduceAction8___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction8(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction8(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction8;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction8(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction8;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction8___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction8();
-  parser___ReduceAction8___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction9[44] = {
-  {(bigint) 255 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction9 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction9 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 255 /* 3: ReduceAction9 < ReduceAction9: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction8(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction8;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction8_parser___ReduceAction8___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1714;
+  fra.me.meth = LOCATE_NEW_ReduceAction8_parser___ReduceAction8___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction8();
+  /* ./parser//parser.nit:1714 */
+  INIT_ATTRIBUTES__ReduceAction8(fra.me.REG[0]);
+  parser___ReduceAction8___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction8(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction9[50] = {
+  {(bigint) 719 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction9 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction9 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 719 /* 4: ReduceAction9 < ReduceAction9: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41483,14 +92274,12 @@ const classtable_elt_t VFT_ReduceAction9[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction9 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction9 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41498,7 +92287,6 @@ const classtable_elt_t VFT_ReduceAction9[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41506,33 +92294,81 @@ const classtable_elt_t VFT_ReduceAction9[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction9 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction9 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction9___action},
-  {(bigint) 2 /* 42: ReduceAction9 < ReduceAction9: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction9 < ReduceAction9: superclass init_table position */},
   {(bigint) parser___ReduceAction9___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction9(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction9(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction9;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction9(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction9;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction9___init() {
+void CHECKNEW_ReduceAction9(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction9;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction9_parser___ReduceAction9___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction9();
-  parser___ReduceAction9___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1755;
+  fra.me.meth = LOCATE_NEW_ReduceAction9_parser___ReduceAction9___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction9();
+  /* ./parser//parser.nit:1755 */
+  INIT_ATTRIBUTES__ReduceAction9(fra.me.REG[0]);
+  parser___ReduceAction9___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction9(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction10[44] = {
-  {(bigint) 2495 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction10 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction10 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2495 /* 3: ReduceAction10 < ReduceAction10: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction10[50] = {
+  {(bigint) 5043 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction10 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction10 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5043 /* 4: ReduceAction10 < ReduceAction10: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41542,14 +92378,12 @@ const classtable_elt_t VFT_ReduceAction10[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction10 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction10 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41557,7 +92391,6 @@ const classtable_elt_t VFT_ReduceAction10[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41565,33 +92398,81 @@ const classtable_elt_t VFT_ReduceAction10[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction10 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction10 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction10___action},
-  {(bigint) 2 /* 42: ReduceAction10 < ReduceAction10: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction10 < ReduceAction10: superclass init_table position */},
   {(bigint) parser___ReduceAction10___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction10(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction10(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction10;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction10(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction10;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction10___init() {
+void CHECKNEW_ReduceAction10(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction10;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction10_parser___ReduceAction10___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction10();
-  parser___ReduceAction10___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1789;
+  fra.me.meth = LOCATE_NEW_ReduceAction10_parser___ReduceAction10___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction10();
+  /* ./parser//parser.nit:1789 */
+  INIT_ATTRIBUTES__ReduceAction10(fra.me.REG[0]);
+  parser___ReduceAction10___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction10(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction11[44] = {
-  {(bigint) 2451 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction11 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction11 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2451 /* 3: ReduceAction11 < ReduceAction11: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction11[50] = {
+  {(bigint) 4599 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction11 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction11 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4599 /* 4: ReduceAction11 < ReduceAction11: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41601,14 +92482,12 @@ const classtable_elt_t VFT_ReduceAction11[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction11 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction11 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41616,7 +92495,6 @@ const classtable_elt_t VFT_ReduceAction11[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41624,33 +92502,81 @@ const classtable_elt_t VFT_ReduceAction11[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction11 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction11 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction11___action},
-  {(bigint) 2 /* 42: ReduceAction11 < ReduceAction11: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction11 < ReduceAction11: superclass init_table position */},
   {(bigint) parser___ReduceAction11___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction11(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction11(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction11;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction11(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction11;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction11___init() {
+void CHECKNEW_ReduceAction11(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction11;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction11_parser___ReduceAction11___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction11();
-  parser___ReduceAction11___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1833;
+  fra.me.meth = LOCATE_NEW_ReduceAction11_parser___ReduceAction11___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction11();
+  /* ./parser//parser.nit:1833 */
+  INIT_ATTRIBUTES__ReduceAction11(fra.me.REG[0]);
+  parser___ReduceAction11___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction11(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction12[44] = {
-  {(bigint) 2407 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction12 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction12 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2407 /* 3: ReduceAction12 < ReduceAction12: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction12[50] = {
+  {(bigint) 4179 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction12 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction12 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4179 /* 4: ReduceAction12 < ReduceAction12: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41660,14 +92586,12 @@ const classtable_elt_t VFT_ReduceAction12[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction12 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction12 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41675,7 +92599,6 @@ const classtable_elt_t VFT_ReduceAction12[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41683,33 +92606,81 @@ const classtable_elt_t VFT_ReduceAction12[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction12 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction12 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction12___action},
-  {(bigint) 2 /* 42: ReduceAction12 < ReduceAction12: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction12 < ReduceAction12: superclass init_table position */},
   {(bigint) parser___ReduceAction12___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction12(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction12(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction12;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction12(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction12;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction12___init() {
+void CHECKNEW_ReduceAction12(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction12;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction12_parser___ReduceAction12___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction12();
-  parser___ReduceAction12___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1874;
+  fra.me.meth = LOCATE_NEW_ReduceAction12_parser___ReduceAction12___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction12();
+  /* ./parser//parser.nit:1874 */
+  INIT_ATTRIBUTES__ReduceAction12(fra.me.REG[0]);
+  parser___ReduceAction12___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction12(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction13[44] = {
-  {(bigint) 2363 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction13 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction13 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2363 /* 3: ReduceAction13 < ReduceAction13: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction13[50] = {
+  {(bigint) 4135 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction13 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction13 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4135 /* 4: ReduceAction13 < ReduceAction13: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41719,14 +92690,12 @@ const classtable_elt_t VFT_ReduceAction13[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction13 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction13 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41734,7 +92703,6 @@ const classtable_elt_t VFT_ReduceAction13[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41742,33 +92710,81 @@ const classtable_elt_t VFT_ReduceAction13[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction13 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction13 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction13___action},
-  {(bigint) 2 /* 42: ReduceAction13 < ReduceAction13: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction13 < ReduceAction13: superclass init_table position */},
   {(bigint) parser___ReduceAction13___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction13(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction13(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction13;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction13(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction13;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction13___init() {
+void CHECKNEW_ReduceAction13(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction13;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction13_parser___ReduceAction13___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction13();
-  parser___ReduceAction13___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1925;
+  fra.me.meth = LOCATE_NEW_ReduceAction13_parser___ReduceAction13___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction13();
+  /* ./parser//parser.nit:1925 */
+  INIT_ATTRIBUTES__ReduceAction13(fra.me.REG[0]);
+  parser___ReduceAction13___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction13(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction14[44] = {
-  {(bigint) 2319 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction14 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction14 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2319 /* 3: ReduceAction14 < ReduceAction14: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction14[50] = {
+  {(bigint) 4091 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction14 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction14 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4091 /* 4: ReduceAction14 < ReduceAction14: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41778,14 +92794,12 @@ const classtable_elt_t VFT_ReduceAction14[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction14 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction14 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41793,7 +92807,6 @@ const classtable_elt_t VFT_ReduceAction14[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41801,33 +92814,81 @@ const classtable_elt_t VFT_ReduceAction14[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction14 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction14 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction14___action},
-  {(bigint) 2 /* 42: ReduceAction14 < ReduceAction14: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction14 < ReduceAction14: superclass init_table position */},
   {(bigint) parser___ReduceAction14___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction14(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction14(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction14;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction14(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction14;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction14___init() {
+void CHECKNEW_ReduceAction14(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction14;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction14_parser___ReduceAction14___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction14();
-  parser___ReduceAction14___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1969;
+  fra.me.meth = LOCATE_NEW_ReduceAction14_parser___ReduceAction14___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction14();
+  /* ./parser//parser.nit:1969 */
+  INIT_ATTRIBUTES__ReduceAction14(fra.me.REG[0]);
+  parser___ReduceAction14___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction14(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction15[44] = {
-  {(bigint) 2275 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction15 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction15 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2275 /* 3: ReduceAction15 < ReduceAction15: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction15[50] = {
+  {(bigint) 4047 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction15 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction15 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4047 /* 4: ReduceAction15 < ReduceAction15: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41837,14 +92898,12 @@ const classtable_elt_t VFT_ReduceAction15[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction15 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction15 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41852,7 +92911,6 @@ const classtable_elt_t VFT_ReduceAction15[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41860,33 +92918,81 @@ const classtable_elt_t VFT_ReduceAction15[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction15 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction15___action},
-  {(bigint) 2 /* 42: ReduceAction15 < ReduceAction15: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction15 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction15___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction15 < ReduceAction15: superclass init_table position */},
   {(bigint) parser___ReduceAction15___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction15(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction15(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction15;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction15(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction15;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction15___init() {
+void CHECKNEW_ReduceAction15(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction15;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction15_parser___ReduceAction15___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction15();
-  parser___ReduceAction15___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2023;
+  fra.me.meth = LOCATE_NEW_ReduceAction15_parser___ReduceAction15___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction15();
+  /* ./parser//parser.nit:2023 */
+  INIT_ATTRIBUTES__ReduceAction15(fra.me.REG[0]);
+  parser___ReduceAction15___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction15(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction16[44] = {
-  {(bigint) 2231 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction16 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction16 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2231 /* 3: ReduceAction16 < ReduceAction16: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction16[50] = {
+  {(bigint) 4003 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction16 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction16 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4003 /* 4: ReduceAction16 < ReduceAction16: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41896,14 +93002,12 @@ const classtable_elt_t VFT_ReduceAction16[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction16 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction16 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41911,7 +93015,6 @@ const classtable_elt_t VFT_ReduceAction16[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41919,33 +93022,81 @@ const classtable_elt_t VFT_ReduceAction16[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction16 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction16 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction16___action},
-  {(bigint) 2 /* 42: ReduceAction16 < ReduceAction16: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction16 < ReduceAction16: superclass init_table position */},
   {(bigint) parser___ReduceAction16___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction16(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction16(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction16;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction16(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction16;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction16___init() {
+void CHECKNEW_ReduceAction16(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction16;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction16_parser___ReduceAction16___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction16();
-  parser___ReduceAction16___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2064;
+  fra.me.meth = LOCATE_NEW_ReduceAction16_parser___ReduceAction16___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction16();
+  /* ./parser//parser.nit:2064 */
+  INIT_ATTRIBUTES__ReduceAction16(fra.me.REG[0]);
+  parser___ReduceAction16___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction16(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction17[44] = {
-  {(bigint) 2187 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction17 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction17 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2187 /* 3: ReduceAction17 < ReduceAction17: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction17[50] = {
+  {(bigint) 3959 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction17 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction17 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3959 /* 4: ReduceAction17 < ReduceAction17: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41955,14 +93106,12 @@ const classtable_elt_t VFT_ReduceAction17[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction17 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction17 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -41970,7 +93119,6 @@ const classtable_elt_t VFT_ReduceAction17[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -41978,33 +93126,81 @@ const classtable_elt_t VFT_ReduceAction17[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction17 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction17 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction17___action},
-  {(bigint) 2 /* 42: ReduceAction17 < ReduceAction17: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction17 < ReduceAction17: superclass init_table position */},
   {(bigint) parser___ReduceAction17___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction17(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction17(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction17;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction17(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction17;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction17___init() {
+void CHECKNEW_ReduceAction17(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction17;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction17_parser___ReduceAction17___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction17();
-  parser___ReduceAction17___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2115;
+  fra.me.meth = LOCATE_NEW_ReduceAction17_parser___ReduceAction17___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction17();
+  /* ./parser//parser.nit:2115 */
+  INIT_ATTRIBUTES__ReduceAction17(fra.me.REG[0]);
+  parser___ReduceAction17___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction17(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction18[44] = {
-  {(bigint) 2143 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction18 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction18 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2143 /* 3: ReduceAction18 < ReduceAction18: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction18[50] = {
+  {(bigint) 3915 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction18 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction18 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3915 /* 4: ReduceAction18 < ReduceAction18: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42014,14 +93210,12 @@ const classtable_elt_t VFT_ReduceAction18[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction18 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction18 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42029,7 +93223,6 @@ const classtable_elt_t VFT_ReduceAction18[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42037,33 +93230,81 @@ const classtable_elt_t VFT_ReduceAction18[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction18 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction18 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction18___action},
-  {(bigint) 2 /* 42: ReduceAction18 < ReduceAction18: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction18 < ReduceAction18: superclass init_table position */},
   {(bigint) parser___ReduceAction18___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction18(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction18(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction18;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction18(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction18;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction18___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction18();
-  parser___ReduceAction18___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction19[44] = {
-  {(bigint) 2099 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction19 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction19 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2099 /* 3: ReduceAction19 < ReduceAction19: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction18(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction18;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction18_parser___ReduceAction18___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2159;
+  fra.me.meth = LOCATE_NEW_ReduceAction18_parser___ReduceAction18___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction18();
+  /* ./parser//parser.nit:2159 */
+  INIT_ATTRIBUTES__ReduceAction18(fra.me.REG[0]);
+  parser___ReduceAction18___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction18(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction19[50] = {
+  {(bigint) 3871 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction19 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction19 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3871 /* 4: ReduceAction19 < ReduceAction19: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42073,14 +93314,12 @@ const classtable_elt_t VFT_ReduceAction19[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction19 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction19 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42088,7 +93327,6 @@ const classtable_elt_t VFT_ReduceAction19[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42096,33 +93334,81 @@ const classtable_elt_t VFT_ReduceAction19[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction19 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction19 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction19___action},
-  {(bigint) 2 /* 42: ReduceAction19 < ReduceAction19: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction19 < ReduceAction19: superclass init_table position */},
   {(bigint) parser___ReduceAction19___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction19(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction19(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction19;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction19(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction19;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction19___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction19();
-  parser___ReduceAction19___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction20[44] = {
-  {(bigint) 2051 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction20 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction20 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2051 /* 3: ReduceAction20 < ReduceAction20: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction19(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction19;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction19_parser___ReduceAction19___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2213;
+  fra.me.meth = LOCATE_NEW_ReduceAction19_parser___ReduceAction19___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction19();
+  /* ./parser//parser.nit:2213 */
+  INIT_ATTRIBUTES__ReduceAction19(fra.me.REG[0]);
+  parser___ReduceAction19___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction19(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction20[50] = {
+  {(bigint) 3823 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction20 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction20 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3823 /* 4: ReduceAction20 < ReduceAction20: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42132,14 +93418,12 @@ const classtable_elt_t VFT_ReduceAction20[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction20 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction20 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42147,7 +93431,6 @@ const classtable_elt_t VFT_ReduceAction20[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42155,33 +93438,81 @@ const classtable_elt_t VFT_ReduceAction20[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction20 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction20 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction20___action},
-  {(bigint) 2 /* 42: ReduceAction20 < ReduceAction20: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction20 < ReduceAction20: superclass init_table position */},
   {(bigint) parser___ReduceAction20___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction20(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction20(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction20;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction20(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction20;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction20___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction20();
-  parser___ReduceAction20___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction21[44] = {
-  {(bigint) 2007 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction21 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction21 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2007 /* 3: ReduceAction21 < ReduceAction21: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction20(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction20;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction20_parser___ReduceAction20___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2264;
+  fra.me.meth = LOCATE_NEW_ReduceAction20_parser___ReduceAction20___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction20();
+  /* ./parser//parser.nit:2264 */
+  INIT_ATTRIBUTES__ReduceAction20(fra.me.REG[0]);
+  parser___ReduceAction20___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction20(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction21[50] = {
+  {(bigint) 3779 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction21 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction21 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3779 /* 4: ReduceAction21 < ReduceAction21: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42191,14 +93522,12 @@ const classtable_elt_t VFT_ReduceAction21[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction21 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction21 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42206,7 +93535,6 @@ const classtable_elt_t VFT_ReduceAction21[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42214,33 +93542,81 @@ const classtable_elt_t VFT_ReduceAction21[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction21 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction21 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction21___action},
-  {(bigint) 2 /* 42: ReduceAction21 < ReduceAction21: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction21 < ReduceAction21: superclass init_table position */},
   {(bigint) parser___ReduceAction21___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction21(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction21(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction21;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction21(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction21;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction21___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction21();
-  parser___ReduceAction21___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction22[44] = {
-  {(bigint) 1963 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction22 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction22 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1963 /* 3: ReduceAction22 < ReduceAction22: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction21(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction21;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction21_parser___ReduceAction21___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2325;
+  fra.me.meth = LOCATE_NEW_ReduceAction21_parser___ReduceAction21___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction21();
+  /* ./parser//parser.nit:2325 */
+  INIT_ATTRIBUTES__ReduceAction21(fra.me.REG[0]);
+  parser___ReduceAction21___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction21(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction22[50] = {
+  {(bigint) 3735 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction22 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction22 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3735 /* 4: ReduceAction22 < ReduceAction22: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42250,14 +93626,12 @@ const classtable_elt_t VFT_ReduceAction22[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction22 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction22 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42265,7 +93639,6 @@ const classtable_elt_t VFT_ReduceAction22[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42273,33 +93646,81 @@ const classtable_elt_t VFT_ReduceAction22[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction22 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction22 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction22___action},
-  {(bigint) 2 /* 42: ReduceAction22 < ReduceAction22: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction22 < ReduceAction22: superclass init_table position */},
   {(bigint) parser___ReduceAction22___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction22(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction22(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction22;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction22(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction22;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction22___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction22();
-  parser___ReduceAction22___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction23[44] = {
-  {(bigint) 1919 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction23 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction23 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1919 /* 3: ReduceAction23 < ReduceAction23: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction22(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction22;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction22_parser___ReduceAction22___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2379;
+  fra.me.meth = LOCATE_NEW_ReduceAction22_parser___ReduceAction22___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction22();
+  /* ./parser//parser.nit:2379 */
+  INIT_ATTRIBUTES__ReduceAction22(fra.me.REG[0]);
+  parser___ReduceAction22___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction22(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction23[50] = {
+  {(bigint) 3691 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction23 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction23 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3691 /* 4: ReduceAction23 < ReduceAction23: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42309,14 +93730,12 @@ const classtable_elt_t VFT_ReduceAction23[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction23 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction23 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42324,7 +93743,6 @@ const classtable_elt_t VFT_ReduceAction23[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42332,33 +93750,81 @@ const classtable_elt_t VFT_ReduceAction23[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction23 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction23 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction23___action},
-  {(bigint) 2 /* 42: ReduceAction23 < ReduceAction23: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction23 < ReduceAction23: superclass init_table position */},
   {(bigint) parser___ReduceAction23___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction23(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction23(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction23;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction23(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction23;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction23___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction23();
-  parser___ReduceAction23___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction24[44] = {
-  {(bigint) 1875 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction24 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction24 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1875 /* 3: ReduceAction24 < ReduceAction24: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction23(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction23;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction23_parser___ReduceAction23___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2443;
+  fra.me.meth = LOCATE_NEW_ReduceAction23_parser___ReduceAction23___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction23();
+  /* ./parser//parser.nit:2443 */
+  INIT_ATTRIBUTES__ReduceAction23(fra.me.REG[0]);
+  parser___ReduceAction23___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction23(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction24[50] = {
+  {(bigint) 3647 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction24 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction24 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3647 /* 4: ReduceAction24 < ReduceAction24: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42368,14 +93834,12 @@ const classtable_elt_t VFT_ReduceAction24[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction24 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction24 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42383,7 +93847,6 @@ const classtable_elt_t VFT_ReduceAction24[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42391,33 +93854,81 @@ const classtable_elt_t VFT_ReduceAction24[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction24 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction24 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction24___action},
-  {(bigint) 2 /* 42: ReduceAction24 < ReduceAction24: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction24 < ReduceAction24: superclass init_table position */},
   {(bigint) parser___ReduceAction24___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction24(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction24(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction24;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction24(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction24;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction24___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction24();
-  parser___ReduceAction24___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction25[44] = {
-  {(bigint) 1831 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction25 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction25 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1831 /* 3: ReduceAction25 < ReduceAction25: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction24(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction24;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction24_parser___ReduceAction24___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2466;
+  fra.me.meth = LOCATE_NEW_ReduceAction24_parser___ReduceAction24___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction24();
+  /* ./parser//parser.nit:2466 */
+  INIT_ATTRIBUTES__ReduceAction24(fra.me.REG[0]);
+  parser___ReduceAction24___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction24(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction25[50] = {
+  {(bigint) 3603 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction25 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction25 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3603 /* 4: ReduceAction25 < ReduceAction25: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42427,14 +93938,12 @@ const classtable_elt_t VFT_ReduceAction25[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction25 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction25 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42442,7 +93951,6 @@ const classtable_elt_t VFT_ReduceAction25[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42450,33 +93958,81 @@ const classtable_elt_t VFT_ReduceAction25[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction25 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction25 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction25___action},
-  {(bigint) 2 /* 42: ReduceAction25 < ReduceAction25: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction25 < ReduceAction25: superclass init_table position */},
   {(bigint) parser___ReduceAction25___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction25(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction25(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction25;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction25(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction25;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction25___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction25();
-  parser___ReduceAction25___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction26[44] = {
-  {(bigint) 1787 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction26 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction26 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1787 /* 3: ReduceAction26 < ReduceAction26: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction25(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction25;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction25_parser___ReduceAction25___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2492;
+  fra.me.meth = LOCATE_NEW_ReduceAction25_parser___ReduceAction25___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction25();
+  /* ./parser//parser.nit:2492 */
+  INIT_ATTRIBUTES__ReduceAction25(fra.me.REG[0]);
+  parser___ReduceAction25___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction25(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction26[50] = {
+  {(bigint) 3559 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction26 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction26 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3559 /* 4: ReduceAction26 < ReduceAction26: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42486,14 +94042,12 @@ const classtable_elt_t VFT_ReduceAction26[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction26 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction26 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42501,7 +94055,6 @@ const classtable_elt_t VFT_ReduceAction26[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42509,33 +94062,81 @@ const classtable_elt_t VFT_ReduceAction26[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction26 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction26 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction26___action},
-  {(bigint) 2 /* 42: ReduceAction26 < ReduceAction26: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction26 < ReduceAction26: superclass init_table position */},
   {(bigint) parser___ReduceAction26___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction26(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction26(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction26;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction26(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction26;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction26___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction26();
-  parser___ReduceAction26___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction27[44] = {
-  {(bigint) 1743 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction27 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction27 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1743 /* 3: ReduceAction27 < ReduceAction27: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction26(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction26;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction26_parser___ReduceAction26___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2525;
+  fra.me.meth = LOCATE_NEW_ReduceAction26_parser___ReduceAction26___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction26();
+  /* ./parser//parser.nit:2525 */
+  INIT_ATTRIBUTES__ReduceAction26(fra.me.REG[0]);
+  parser___ReduceAction26___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction26(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction27[50] = {
+  {(bigint) 3515 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction27 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction27 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3515 /* 4: ReduceAction27 < ReduceAction27: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42545,14 +94146,12 @@ const classtable_elt_t VFT_ReduceAction27[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction27 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction27 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42560,7 +94159,6 @@ const classtable_elt_t VFT_ReduceAction27[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42568,33 +94166,81 @@ const classtable_elt_t VFT_ReduceAction27[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction27 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction27 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction27___action},
-  {(bigint) 2 /* 42: ReduceAction27 < ReduceAction27: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction27 < ReduceAction27: superclass init_table position */},
   {(bigint) parser___ReduceAction27___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction27(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction27(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction27;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction27(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction27;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction27___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction27();
-  parser___ReduceAction27___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction28[44] = {
-  {(bigint) 1699 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction28 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction28 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1699 /* 3: ReduceAction28 < ReduceAction28: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction27(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction27;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction27_parser___ReduceAction27___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2561;
+  fra.me.meth = LOCATE_NEW_ReduceAction27_parser___ReduceAction27___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction27();
+  /* ./parser//parser.nit:2561 */
+  INIT_ATTRIBUTES__ReduceAction27(fra.me.REG[0]);
+  parser___ReduceAction27___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction27(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction28[50] = {
+  {(bigint) 3471 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction28 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction28 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3471 /* 4: ReduceAction28 < ReduceAction28: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42604,14 +94250,12 @@ const classtable_elt_t VFT_ReduceAction28[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction28 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction28 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42619,7 +94263,6 @@ const classtable_elt_t VFT_ReduceAction28[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42627,33 +94270,81 @@ const classtable_elt_t VFT_ReduceAction28[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction28 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction28 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction28___action},
-  {(bigint) 2 /* 42: ReduceAction28 < ReduceAction28: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction28 < ReduceAction28: superclass init_table position */},
   {(bigint) parser___ReduceAction28___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction28(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction28(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction28;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction28(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction28;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction28___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction28();
-  parser___ReduceAction28___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction29[44] = {
-  {(bigint) 1655 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction29 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction29 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1655 /* 3: ReduceAction29 < ReduceAction29: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction28(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction28;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction28_parser___ReduceAction28___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2594;
+  fra.me.meth = LOCATE_NEW_ReduceAction28_parser___ReduceAction28___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction28();
+  /* ./parser//parser.nit:2594 */
+  INIT_ATTRIBUTES__ReduceAction28(fra.me.REG[0]);
+  parser___ReduceAction28___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction28(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction29[50] = {
+  {(bigint) 3427 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction29 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction29 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3427 /* 4: ReduceAction29 < ReduceAction29: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42663,14 +94354,12 @@ const classtable_elt_t VFT_ReduceAction29[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction29 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction29 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42678,7 +94367,6 @@ const classtable_elt_t VFT_ReduceAction29[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42686,33 +94374,81 @@ const classtable_elt_t VFT_ReduceAction29[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction29 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction29 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction29___action},
-  {(bigint) 2 /* 42: ReduceAction29 < ReduceAction29: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction29 < ReduceAction29: superclass init_table position */},
   {(bigint) parser___ReduceAction29___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction29(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction29(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction29;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction29(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction29;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction29___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction29();
-  parser___ReduceAction29___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction30[44] = {
-  {(bigint) 1607 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction30 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction30 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1607 /* 3: ReduceAction30 < ReduceAction30: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction29(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction29;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction29_parser___ReduceAction29___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2630;
+  fra.me.meth = LOCATE_NEW_ReduceAction29_parser___ReduceAction29___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction29();
+  /* ./parser//parser.nit:2630 */
+  INIT_ATTRIBUTES__ReduceAction29(fra.me.REG[0]);
+  parser___ReduceAction29___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction29(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction30[50] = {
+  {(bigint) 3379 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction30 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction30 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3379 /* 4: ReduceAction30 < ReduceAction30: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42722,14 +94458,12 @@ const classtable_elt_t VFT_ReduceAction30[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction30 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction30 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42737,7 +94471,6 @@ const classtable_elt_t VFT_ReduceAction30[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42745,33 +94478,81 @@ const classtable_elt_t VFT_ReduceAction30[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction30 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction30 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction30___action},
-  {(bigint) 2 /* 42: ReduceAction30 < ReduceAction30: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction30 < ReduceAction30: superclass init_table position */},
   {(bigint) parser___ReduceAction30___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction30(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction30(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction30;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction30(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction30;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction30___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction30();
-  parser___ReduceAction30___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction31[44] = {
-  {(bigint) 1563 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction31 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction31 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1563 /* 3: ReduceAction31 < ReduceAction31: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction30(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction30;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction30_parser___ReduceAction30___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2673;
+  fra.me.meth = LOCATE_NEW_ReduceAction30_parser___ReduceAction30___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction30();
+  /* ./parser//parser.nit:2673 */
+  INIT_ATTRIBUTES__ReduceAction30(fra.me.REG[0]);
+  parser___ReduceAction30___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction30(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction31[50] = {
+  {(bigint) 3335 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction31 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction31 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3335 /* 4: ReduceAction31 < ReduceAction31: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42781,14 +94562,12 @@ const classtable_elt_t VFT_ReduceAction31[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction31 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction31 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42796,7 +94575,6 @@ const classtable_elt_t VFT_ReduceAction31[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42804,33 +94582,81 @@ const classtable_elt_t VFT_ReduceAction31[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction31 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction31 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction31___action},
-  {(bigint) 2 /* 42: ReduceAction31 < ReduceAction31: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction31 < ReduceAction31: superclass init_table position */},
   {(bigint) parser___ReduceAction31___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction31(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction31(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction31;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction31(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction31;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction31___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction31();
-  parser___ReduceAction31___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction32[44] = {
-  {(bigint) 1519 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction32 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction32 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1519 /* 3: ReduceAction32 < ReduceAction32: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction31(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction31;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction31_parser___ReduceAction31___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2719;
+  fra.me.meth = LOCATE_NEW_ReduceAction31_parser___ReduceAction31___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction31();
+  /* ./parser//parser.nit:2719 */
+  INIT_ATTRIBUTES__ReduceAction31(fra.me.REG[0]);
+  parser___ReduceAction31___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction31(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction32[50] = {
+  {(bigint) 3291 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction32 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction32 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3291 /* 4: ReduceAction32 < ReduceAction32: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42840,14 +94666,12 @@ const classtable_elt_t VFT_ReduceAction32[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction32 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction32 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42855,7 +94679,6 @@ const classtable_elt_t VFT_ReduceAction32[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42863,33 +94686,81 @@ const classtable_elt_t VFT_ReduceAction32[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction32 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction32 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction32___action},
-  {(bigint) 2 /* 42: ReduceAction32 < ReduceAction32: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction32 < ReduceAction32: superclass init_table position */},
   {(bigint) parser___ReduceAction32___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction32(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction32(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction32;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction32(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction32;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction32___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction32();
-  parser___ReduceAction32___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction33[44] = {
-  {(bigint) 1475 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction33 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction33 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1475 /* 3: ReduceAction33 < ReduceAction33: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction32(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction32;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction32_parser___ReduceAction32___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2756;
+  fra.me.meth = LOCATE_NEW_ReduceAction32_parser___ReduceAction32___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction32();
+  /* ./parser//parser.nit:2756 */
+  INIT_ATTRIBUTES__ReduceAction32(fra.me.REG[0]);
+  parser___ReduceAction32___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction32(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction33[50] = {
+  {(bigint) 3247 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction33 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction33 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3247 /* 4: ReduceAction33 < ReduceAction33: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42899,14 +94770,12 @@ const classtable_elt_t VFT_ReduceAction33[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction33 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction33 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42914,7 +94783,6 @@ const classtable_elt_t VFT_ReduceAction33[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42922,33 +94790,81 @@ const classtable_elt_t VFT_ReduceAction33[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction33 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction33 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction33___action},
-  {(bigint) 2 /* 42: ReduceAction33 < ReduceAction33: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction33 < ReduceAction33: superclass init_table position */},
   {(bigint) parser___ReduceAction33___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction33(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction33(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction33;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction33(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction33;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction33___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction33();
-  parser___ReduceAction33___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction34[44] = {
-  {(bigint) 1431 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction34 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction34 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1431 /* 3: ReduceAction34 < ReduceAction34: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction33(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction33;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction33_parser___ReduceAction33___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2803;
+  fra.me.meth = LOCATE_NEW_ReduceAction33_parser___ReduceAction33___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction33();
+  /* ./parser//parser.nit:2803 */
+  INIT_ATTRIBUTES__ReduceAction33(fra.me.REG[0]);
+  parser___ReduceAction33___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction33(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction34[50] = {
+  {(bigint) 3203 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction34 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction34 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3203 /* 4: ReduceAction34 < ReduceAction34: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42958,14 +94874,12 @@ const classtable_elt_t VFT_ReduceAction34[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction34 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction34 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -42973,7 +94887,6 @@ const classtable_elt_t VFT_ReduceAction34[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -42981,33 +94894,81 @@ const classtable_elt_t VFT_ReduceAction34[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction34 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction34 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction34___action},
-  {(bigint) 2 /* 42: ReduceAction34 < ReduceAction34: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction34 < ReduceAction34: superclass init_table position */},
   {(bigint) parser___ReduceAction34___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction34(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction34(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction34;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction34(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction34;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction34___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction34();
-  parser___ReduceAction34___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction35[44] = {
-  {(bigint) 1387 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction35 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction35 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1387 /* 3: ReduceAction35 < ReduceAction35: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction34(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction34;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction34_parser___ReduceAction34___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2843;
+  fra.me.meth = LOCATE_NEW_ReduceAction34_parser___ReduceAction34___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction34();
+  /* ./parser//parser.nit:2843 */
+  INIT_ATTRIBUTES__ReduceAction34(fra.me.REG[0]);
+  parser___ReduceAction34___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction34(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction35[50] = {
+  {(bigint) 3159 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction35 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction35 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3159 /* 4: ReduceAction35 < ReduceAction35: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43017,14 +94978,12 @@ const classtable_elt_t VFT_ReduceAction35[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction35 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction35 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43032,7 +94991,6 @@ const classtable_elt_t VFT_ReduceAction35[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43040,33 +94998,81 @@ const classtable_elt_t VFT_ReduceAction35[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction35 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction35 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction35___action},
-  {(bigint) 2 /* 42: ReduceAction35 < ReduceAction35: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction35 < ReduceAction35: superclass init_table position */},
   {(bigint) parser___ReduceAction35___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction35(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction35(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction35;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction35(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction35;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction35___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction35();
-  parser___ReduceAction35___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction36[44] = {
-  {(bigint) 1343 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction36 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction36 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1343 /* 3: ReduceAction36 < ReduceAction36: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction35(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction35;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction35_parser___ReduceAction35___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2893;
+  fra.me.meth = LOCATE_NEW_ReduceAction35_parser___ReduceAction35___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction35();
+  /* ./parser//parser.nit:2893 */
+  INIT_ATTRIBUTES__ReduceAction35(fra.me.REG[0]);
+  parser___ReduceAction35___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction35(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction36[50] = {
+  {(bigint) 3115 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction36 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction36 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3115 /* 4: ReduceAction36 < ReduceAction36: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43076,14 +95082,12 @@ const classtable_elt_t VFT_ReduceAction36[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction36 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction36 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43091,7 +95095,6 @@ const classtable_elt_t VFT_ReduceAction36[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43099,33 +95102,81 @@ const classtable_elt_t VFT_ReduceAction36[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction36 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction36 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction36___action},
-  {(bigint) 2 /* 42: ReduceAction36 < ReduceAction36: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction36 < ReduceAction36: superclass init_table position */},
   {(bigint) parser___ReduceAction36___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction36(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction36(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction36;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction36(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction36;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction36___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction36();
-  parser___ReduceAction36___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction37[44] = {
-  {(bigint) 1299 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction37 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction37 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1299 /* 3: ReduceAction37 < ReduceAction37: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction36(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction36;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction36_parser___ReduceAction36___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2940;
+  fra.me.meth = LOCATE_NEW_ReduceAction36_parser___ReduceAction36___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction36();
+  /* ./parser//parser.nit:2940 */
+  INIT_ATTRIBUTES__ReduceAction36(fra.me.REG[0]);
+  parser___ReduceAction36___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction36(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction37[50] = {
+  {(bigint) 3071 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction37 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction37 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3071 /* 4: ReduceAction37 < ReduceAction37: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43135,14 +95186,12 @@ const classtable_elt_t VFT_ReduceAction37[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction37 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction37 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43150,7 +95199,6 @@ const classtable_elt_t VFT_ReduceAction37[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43158,33 +95206,81 @@ const classtable_elt_t VFT_ReduceAction37[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction37 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction37 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction37___action},
-  {(bigint) 2 /* 42: ReduceAction37 < ReduceAction37: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction37 < ReduceAction37: superclass init_table position */},
   {(bigint) parser___ReduceAction37___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction37(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction37(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction37;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction37(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction37;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction37___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction37();
-  parser___ReduceAction37___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction38[44] = {
-  {(bigint) 1255 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction38 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction38 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1255 /* 3: ReduceAction38 < ReduceAction38: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction37(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction37;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction37_parser___ReduceAction37___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 2997;
+  fra.me.meth = LOCATE_NEW_ReduceAction37_parser___ReduceAction37___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction37();
+  /* ./parser//parser.nit:2997 */
+  INIT_ATTRIBUTES__ReduceAction37(fra.me.REG[0]);
+  parser___ReduceAction37___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction37(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction38[50] = {
+  {(bigint) 3027 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction38 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction38 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3027 /* 4: ReduceAction38 < ReduceAction38: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43194,14 +95290,12 @@ const classtable_elt_t VFT_ReduceAction38[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction38 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction38 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43209,7 +95303,6 @@ const classtable_elt_t VFT_ReduceAction38[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43217,33 +95310,81 @@ const classtable_elt_t VFT_ReduceAction38[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction38 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction38 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction38___action},
-  {(bigint) 2 /* 42: ReduceAction38 < ReduceAction38: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction38 < ReduceAction38: superclass init_table position */},
   {(bigint) parser___ReduceAction38___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction38(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction38(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction38;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction38(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction38;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction38___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction38();
-  parser___ReduceAction38___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction39[44] = {
-  {(bigint) 1211 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction39 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction39 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1211 /* 3: ReduceAction39 < ReduceAction39: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction38(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction38;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction38_parser___ReduceAction38___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3047;
+  fra.me.meth = LOCATE_NEW_ReduceAction38_parser___ReduceAction38___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction38();
+  /* ./parser//parser.nit:3047 */
+  INIT_ATTRIBUTES__ReduceAction38(fra.me.REG[0]);
+  parser___ReduceAction38___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction38(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction39[50] = {
+  {(bigint) 2983 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction39 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction39 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2983 /* 4: ReduceAction39 < ReduceAction39: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43253,14 +95394,12 @@ const classtable_elt_t VFT_ReduceAction39[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction39 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction39 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43268,7 +95407,6 @@ const classtable_elt_t VFT_ReduceAction39[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43276,33 +95414,81 @@ const classtable_elt_t VFT_ReduceAction39[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction39 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction39 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction39___action},
-  {(bigint) 2 /* 42: ReduceAction39 < ReduceAction39: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction39 < ReduceAction39: superclass init_table position */},
   {(bigint) parser___ReduceAction39___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction39(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction39(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction39;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction39(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction39;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction39___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction39();
-  parser___ReduceAction39___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction40[44] = {
-  {(bigint) 1163 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction40 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction40 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1163 /* 3: ReduceAction40 < ReduceAction40: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction39(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction39;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction39_parser___ReduceAction39___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3107;
+  fra.me.meth = LOCATE_NEW_ReduceAction39_parser___ReduceAction39___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction39();
+  /* ./parser//parser.nit:3107 */
+  INIT_ATTRIBUTES__ReduceAction39(fra.me.REG[0]);
+  parser___ReduceAction39___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction39(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction40[50] = {
+  {(bigint) 2935 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction40 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction40 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2935 /* 4: ReduceAction40 < ReduceAction40: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43312,14 +95498,12 @@ const classtable_elt_t VFT_ReduceAction40[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction40 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction40 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43327,7 +95511,6 @@ const classtable_elt_t VFT_ReduceAction40[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43335,33 +95518,81 @@ const classtable_elt_t VFT_ReduceAction40[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction40 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction40 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction40___action},
-  {(bigint) 2 /* 42: ReduceAction40 < ReduceAction40: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction40 < ReduceAction40: superclass init_table position */},
   {(bigint) parser___ReduceAction40___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction40(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction40(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction40;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction40(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction40;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction40___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction40();
-  parser___ReduceAction40___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction41[44] = {
-  {(bigint) 1119 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction41 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction41 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1119 /* 3: ReduceAction41 < ReduceAction41: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction40(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction40;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction40_parser___ReduceAction40___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3154;
+  fra.me.meth = LOCATE_NEW_ReduceAction40_parser___ReduceAction40___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction40();
+  /* ./parser//parser.nit:3154 */
+  INIT_ATTRIBUTES__ReduceAction40(fra.me.REG[0]);
+  parser___ReduceAction40___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction40(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction41[50] = {
+  {(bigint) 2891 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction41 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction41 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2891 /* 4: ReduceAction41 < ReduceAction41: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43371,14 +95602,12 @@ const classtable_elt_t VFT_ReduceAction41[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction41 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction41 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43386,7 +95615,6 @@ const classtable_elt_t VFT_ReduceAction41[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43394,33 +95622,81 @@ const classtable_elt_t VFT_ReduceAction41[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction41 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction41 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction41___action},
-  {(bigint) 2 /* 42: ReduceAction41 < ReduceAction41: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction41 < ReduceAction41: superclass init_table position */},
   {(bigint) parser___ReduceAction41___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction41(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction41(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction41;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction41(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction41;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction41___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction41();
-  parser___ReduceAction41___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction42[44] = {
-  {(bigint) 1075 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction42 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction42 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1075 /* 3: ReduceAction42 < ReduceAction42: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction41(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction41;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction41_parser___ReduceAction41___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3211;
+  fra.me.meth = LOCATE_NEW_ReduceAction41_parser___ReduceAction41___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction41();
+  /* ./parser//parser.nit:3211 */
+  INIT_ATTRIBUTES__ReduceAction41(fra.me.REG[0]);
+  parser___ReduceAction41___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction41(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction42[50] = {
+  {(bigint) 2847 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction42 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction42 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2847 /* 4: ReduceAction42 < ReduceAction42: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43430,14 +95706,12 @@ const classtable_elt_t VFT_ReduceAction42[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction42 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction42 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43445,7 +95719,6 @@ const classtable_elt_t VFT_ReduceAction42[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43453,33 +95726,81 @@ const classtable_elt_t VFT_ReduceAction42[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction42 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction42 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction42___action},
-  {(bigint) 2 /* 42: ReduceAction42 < ReduceAction42: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction42 < ReduceAction42: superclass init_table position */},
   {(bigint) parser___ReduceAction42___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction42(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction42(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction42;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction42(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction42;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction42___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction42();
-  parser___ReduceAction42___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction43[44] = {
-  {(bigint) 1031 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction43 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction43 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1031 /* 3: ReduceAction43 < ReduceAction43: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction42(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction42;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction42_parser___ReduceAction42___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3261;
+  fra.me.meth = LOCATE_NEW_ReduceAction42_parser___ReduceAction42___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction42();
+  /* ./parser//parser.nit:3261 */
+  INIT_ATTRIBUTES__ReduceAction42(fra.me.REG[0]);
+  parser___ReduceAction42___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction42(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction43[50] = {
+  {(bigint) 2803 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction43 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction43 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2803 /* 4: ReduceAction43 < ReduceAction43: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43489,14 +95810,12 @@ const classtable_elt_t VFT_ReduceAction43[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction43 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction43 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43504,7 +95823,6 @@ const classtable_elt_t VFT_ReduceAction43[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43512,33 +95830,81 @@ const classtable_elt_t VFT_ReduceAction43[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction43 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction43 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction43___action},
-  {(bigint) 2 /* 42: ReduceAction43 < ReduceAction43: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction43 < ReduceAction43: superclass init_table position */},
   {(bigint) parser___ReduceAction43___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction43(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction43(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction43;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction43(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction43;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction43___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction43();
-  parser___ReduceAction43___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction44[44] = {
-  {(bigint) 987 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction44 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction44 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 987 /* 3: ReduceAction44 < ReduceAction44: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction43(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction43;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction43_parser___ReduceAction43___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3321;
+  fra.me.meth = LOCATE_NEW_ReduceAction43_parser___ReduceAction43___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction43();
+  /* ./parser//parser.nit:3321 */
+  INIT_ATTRIBUTES__ReduceAction43(fra.me.REG[0]);
+  parser___ReduceAction43___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction43(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction44[50] = {
+  {(bigint) 2759 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction44 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction44 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2759 /* 4: ReduceAction44 < ReduceAction44: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43548,14 +95914,12 @@ const classtable_elt_t VFT_ReduceAction44[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction44 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction44 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43563,7 +95927,6 @@ const classtable_elt_t VFT_ReduceAction44[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43571,33 +95934,81 @@ const classtable_elt_t VFT_ReduceAction44[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction44 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction44 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction44___action},
-  {(bigint) 2 /* 42: ReduceAction44 < ReduceAction44: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction44 < ReduceAction44: superclass init_table position */},
   {(bigint) parser___ReduceAction44___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction44(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction44(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction44;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction44(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction44;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction44___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction44();
-  parser___ReduceAction44___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction45[44] = {
-  {(bigint) 943 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction45 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction45 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 943 /* 3: ReduceAction45 < ReduceAction45: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction44(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction44;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction44_parser___ReduceAction44___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3378;
+  fra.me.meth = LOCATE_NEW_ReduceAction44_parser___ReduceAction44___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction44();
+  /* ./parser//parser.nit:3378 */
+  INIT_ATTRIBUTES__ReduceAction44(fra.me.REG[0]);
+  parser___ReduceAction44___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction44(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction45[50] = {
+  {(bigint) 2715 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction45 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction45 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2715 /* 4: ReduceAction45 < ReduceAction45: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43607,14 +96018,12 @@ const classtable_elt_t VFT_ReduceAction45[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction45 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction45 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43622,7 +96031,6 @@ const classtable_elt_t VFT_ReduceAction45[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43630,33 +96038,81 @@ const classtable_elt_t VFT_ReduceAction45[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction45 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction45 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction45___action},
-  {(bigint) 2 /* 42: ReduceAction45 < ReduceAction45: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction45 < ReduceAction45: superclass init_table position */},
   {(bigint) parser___ReduceAction45___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction45(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction45(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction45;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction45(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction45;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction45___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction45();
-  parser___ReduceAction45___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction46[44] = {
-  {(bigint) 899 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction46 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction46 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 899 /* 3: ReduceAction46 < ReduceAction46: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction45(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction45;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction45_parser___ReduceAction45___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3445;
+  fra.me.meth = LOCATE_NEW_ReduceAction45_parser___ReduceAction45___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction45();
+  /* ./parser//parser.nit:3445 */
+  INIT_ATTRIBUTES__ReduceAction45(fra.me.REG[0]);
+  parser___ReduceAction45___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction45(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction46[50] = {
+  {(bigint) 2671 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction46 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction46 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2671 /* 4: ReduceAction46 < ReduceAction46: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43666,14 +96122,12 @@ const classtable_elt_t VFT_ReduceAction46[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction46 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction46 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43681,7 +96135,6 @@ const classtable_elt_t VFT_ReduceAction46[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43689,33 +96142,81 @@ const classtable_elt_t VFT_ReduceAction46[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction46 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction46 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction46___action},
-  {(bigint) 2 /* 42: ReduceAction46 < ReduceAction46: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction46 < ReduceAction46: superclass init_table position */},
   {(bigint) parser___ReduceAction46___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction46(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction46(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction46;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction46(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction46;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction46___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction46();
-  parser___ReduceAction46___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction47[44] = {
-  {(bigint) 855 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction47 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction47 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 855 /* 3: ReduceAction47 < ReduceAction47: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction46(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction46;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction46_parser___ReduceAction46___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3505;
+  fra.me.meth = LOCATE_NEW_ReduceAction46_parser___ReduceAction46___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction46();
+  /* ./parser//parser.nit:3505 */
+  INIT_ATTRIBUTES__ReduceAction46(fra.me.REG[0]);
+  parser___ReduceAction46___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction46(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction47[50] = {
+  {(bigint) 2627 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction47 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction47 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2627 /* 4: ReduceAction47 < ReduceAction47: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43725,14 +96226,12 @@ const classtable_elt_t VFT_ReduceAction47[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction47 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction47 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43740,7 +96239,6 @@ const classtable_elt_t VFT_ReduceAction47[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43748,33 +96246,81 @@ const classtable_elt_t VFT_ReduceAction47[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction47 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction47 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction47___action},
-  {(bigint) 2 /* 42: ReduceAction47 < ReduceAction47: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction47 < ReduceAction47: superclass init_table position */},
   {(bigint) parser___ReduceAction47___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction47(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction47(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction47;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction47(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction47;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction47___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction47();
-  parser___ReduceAction47___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction48[44] = {
-  {(bigint) 811 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction48 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction48 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 811 /* 3: ReduceAction48 < ReduceAction48: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction47(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction47;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction47_parser___ReduceAction47___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3575;
+  fra.me.meth = LOCATE_NEW_ReduceAction47_parser___ReduceAction47___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction47();
+  /* ./parser//parser.nit:3575 */
+  INIT_ATTRIBUTES__ReduceAction47(fra.me.REG[0]);
+  parser___ReduceAction47___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction47(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction48[50] = {
+  {(bigint) 2583 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction48 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction48 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2583 /* 4: ReduceAction48 < ReduceAction48: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43784,14 +96330,12 @@ const classtable_elt_t VFT_ReduceAction48[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction48 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction48 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43799,7 +96343,6 @@ const classtable_elt_t VFT_ReduceAction48[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43807,33 +96350,81 @@ const classtable_elt_t VFT_ReduceAction48[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction48 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction48 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction48___action},
-  {(bigint) 2 /* 42: ReduceAction48 < ReduceAction48: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction48 < ReduceAction48: superclass init_table position */},
   {(bigint) parser___ReduceAction48___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction48(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction48(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction48;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction48(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction48;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction48___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction48();
-  parser___ReduceAction48___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction49[44] = {
-  {(bigint) 767 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction49 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction49 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 767 /* 3: ReduceAction49 < ReduceAction49: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction48(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction48;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction48_parser___ReduceAction48___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3601;
+  fra.me.meth = LOCATE_NEW_ReduceAction48_parser___ReduceAction48___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction48();
+  /* ./parser//parser.nit:3601 */
+  INIT_ATTRIBUTES__ReduceAction48(fra.me.REG[0]);
+  parser___ReduceAction48___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction48(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction49[50] = {
+  {(bigint) 2539 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction49 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction49 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2539 /* 4: ReduceAction49 < ReduceAction49: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43843,14 +96434,12 @@ const classtable_elt_t VFT_ReduceAction49[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction49 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction49 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43858,7 +96447,6 @@ const classtable_elt_t VFT_ReduceAction49[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43866,33 +96454,81 @@ const classtable_elt_t VFT_ReduceAction49[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction49 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction49 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction49___action},
-  {(bigint) 2 /* 42: ReduceAction49 < ReduceAction49: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction49 < ReduceAction49: superclass init_table position */},
   {(bigint) parser___ReduceAction49___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction49(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction49(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction49;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction49(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction49;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction49___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction49();
-  parser___ReduceAction49___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction50[44] = {
-  {(bigint) 719 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction50 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction50 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 719 /* 3: ReduceAction50 < ReduceAction50: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction49(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction49;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction49_parser___ReduceAction49___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3628;
+  fra.me.meth = LOCATE_NEW_ReduceAction49_parser___ReduceAction49___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction49();
+  /* ./parser//parser.nit:3628 */
+  INIT_ATTRIBUTES__ReduceAction49(fra.me.REG[0]);
+  parser___ReduceAction49___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction49(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction50[50] = {
+  {(bigint) 2491 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction50 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction50 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2491 /* 4: ReduceAction50 < ReduceAction50: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43902,14 +96538,12 @@ const classtable_elt_t VFT_ReduceAction50[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction50 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction50 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43917,7 +96551,6 @@ const classtable_elt_t VFT_ReduceAction50[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43925,33 +96558,81 @@ const classtable_elt_t VFT_ReduceAction50[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction50 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction50 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction50___action},
-  {(bigint) 2 /* 42: ReduceAction50 < ReduceAction50: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction50 < ReduceAction50: superclass init_table position */},
   {(bigint) parser___ReduceAction50___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction50(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction50(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction50;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction50(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction50;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction50___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction50();
-  parser___ReduceAction50___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction51[44] = {
-  {(bigint) 675 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction51 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction51 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 675 /* 3: ReduceAction51 < ReduceAction51: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction50(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction50;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction50_parser___ReduceAction50___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3655;
+  fra.me.meth = LOCATE_NEW_ReduceAction50_parser___ReduceAction50___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction50();
+  /* ./parser//parser.nit:3655 */
+  INIT_ATTRIBUTES__ReduceAction50(fra.me.REG[0]);
+  parser___ReduceAction50___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction50(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction51[50] = {
+  {(bigint) 2447 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction51 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction51 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2447 /* 4: ReduceAction51 < ReduceAction51: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43961,14 +96642,12 @@ const classtable_elt_t VFT_ReduceAction51[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction51 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction51 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -43976,7 +96655,6 @@ const classtable_elt_t VFT_ReduceAction51[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -43984,33 +96662,81 @@ const classtable_elt_t VFT_ReduceAction51[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction51 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction51 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction51___action},
-  {(bigint) 2 /* 42: ReduceAction51 < ReduceAction51: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction51 < ReduceAction51: superclass init_table position */},
   {(bigint) parser___ReduceAction51___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction51(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction51(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction51;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction51(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction51;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction51___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction51();
-  parser___ReduceAction51___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction52[44] = {
-  {(bigint) 631 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction52 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction52 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 631 /* 3: ReduceAction52 < ReduceAction52: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction51(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction51;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction51_parser___ReduceAction51___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3675;
+  fra.me.meth = LOCATE_NEW_ReduceAction51_parser___ReduceAction51___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction51();
+  /* ./parser//parser.nit:3675 */
+  INIT_ATTRIBUTES__ReduceAction51(fra.me.REG[0]);
+  parser___ReduceAction51___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction51(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction52[50] = {
+  {(bigint) 2403 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction52 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction52 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2403 /* 4: ReduceAction52 < ReduceAction52: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44020,14 +96746,12 @@ const classtable_elt_t VFT_ReduceAction52[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction52 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction52 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44035,7 +96759,6 @@ const classtable_elt_t VFT_ReduceAction52[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44043,33 +96766,81 @@ const classtable_elt_t VFT_ReduceAction52[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction52 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction52 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction52___action},
-  {(bigint) 2 /* 42: ReduceAction52 < ReduceAction52: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction52 < ReduceAction52: superclass init_table position */},
   {(bigint) parser___ReduceAction52___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction52(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction52(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction52;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction52(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction52;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction52___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction52();
-  parser___ReduceAction52___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction53[44] = {
-  {(bigint) 587 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction53 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction53 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 587 /* 3: ReduceAction53 < ReduceAction53: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction52(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction52;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction52_parser___ReduceAction52___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3686;
+  fra.me.meth = LOCATE_NEW_ReduceAction52_parser___ReduceAction52___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction52();
+  /* ./parser//parser.nit:3686 */
+  INIT_ATTRIBUTES__ReduceAction52(fra.me.REG[0]);
+  parser___ReduceAction52___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction52(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction53[50] = {
+  {(bigint) 2359 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction53 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction53 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2359 /* 4: ReduceAction53 < ReduceAction53: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44079,14 +96850,12 @@ const classtable_elt_t VFT_ReduceAction53[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction53 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction53 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44094,7 +96863,6 @@ const classtable_elt_t VFT_ReduceAction53[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44102,33 +96870,81 @@ const classtable_elt_t VFT_ReduceAction53[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction53 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction53 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction53___action},
-  {(bigint) 2 /* 42: ReduceAction53 < ReduceAction53: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction53 < ReduceAction53: superclass init_table position */},
   {(bigint) parser___ReduceAction53___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction53(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction53(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction53;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction53(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction53;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction53___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction53();
-  parser___ReduceAction53___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction54[44] = {
-  {(bigint) 543 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction54 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction54 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 543 /* 3: ReduceAction54 < ReduceAction54: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction53(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction53;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction53_parser___ReduceAction53___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3712;
+  fra.me.meth = LOCATE_NEW_ReduceAction53_parser___ReduceAction53___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction53();
+  /* ./parser//parser.nit:3712 */
+  INIT_ATTRIBUTES__ReduceAction53(fra.me.REG[0]);
+  parser___ReduceAction53___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction53(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction54[50] = {
+  {(bigint) 2315 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction54 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction54 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2315 /* 4: ReduceAction54 < ReduceAction54: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44138,14 +96954,12 @@ const classtable_elt_t VFT_ReduceAction54[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction54 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction54 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44153,7 +96967,6 @@ const classtable_elt_t VFT_ReduceAction54[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44161,33 +96974,81 @@ const classtable_elt_t VFT_ReduceAction54[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction54 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction54 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction54___action},
-  {(bigint) 2 /* 42: ReduceAction54 < ReduceAction54: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction54 < ReduceAction54: superclass init_table position */},
   {(bigint) parser___ReduceAction54___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction54(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction54(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction54;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction54(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction54;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction54___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction54();
-  parser___ReduceAction54___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction55[44] = {
-  {(bigint) 499 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction55 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction55 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 499 /* 3: ReduceAction55 < ReduceAction55: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction54(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction54;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction54_parser___ReduceAction54___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3748;
+  fra.me.meth = LOCATE_NEW_ReduceAction54_parser___ReduceAction54___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction54();
+  /* ./parser//parser.nit:3748 */
+  INIT_ATTRIBUTES__ReduceAction54(fra.me.REG[0]);
+  parser___ReduceAction54___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction54(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction55[50] = {
+  {(bigint) 2271 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction55 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction55 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2271 /* 4: ReduceAction55 < ReduceAction55: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44197,14 +97058,12 @@ const classtable_elt_t VFT_ReduceAction55[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction55 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction55 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44212,7 +97071,6 @@ const classtable_elt_t VFT_ReduceAction55[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44220,33 +97078,81 @@ const classtable_elt_t VFT_ReduceAction55[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction55 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction55 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction55___action},
-  {(bigint) 2 /* 42: ReduceAction55 < ReduceAction55: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction55 < ReduceAction55: superclass init_table position */},
   {(bigint) parser___ReduceAction55___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction55(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction55(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction55;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction55(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction55;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction55___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction55();
-  parser___ReduceAction55___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction56[44] = {
-  {(bigint) 455 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction56 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction56 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 455 /* 3: ReduceAction56 < ReduceAction56: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction55(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction55;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction55_parser___ReduceAction55___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3786;
+  fra.me.meth = LOCATE_NEW_ReduceAction55_parser___ReduceAction55___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction55();
+  /* ./parser//parser.nit:3786 */
+  INIT_ATTRIBUTES__ReduceAction55(fra.me.REG[0]);
+  parser___ReduceAction55___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction55(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction56[50] = {
+  {(bigint) 2227 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction56 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction56 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2227 /* 4: ReduceAction56 < ReduceAction56: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44256,14 +97162,12 @@ const classtable_elt_t VFT_ReduceAction56[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction56 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction56 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44271,7 +97175,6 @@ const classtable_elt_t VFT_ReduceAction56[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44279,33 +97182,81 @@ const classtable_elt_t VFT_ReduceAction56[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction56 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction56 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction56___action},
-  {(bigint) 2 /* 42: ReduceAction56 < ReduceAction56: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction56 < ReduceAction56: superclass init_table position */},
   {(bigint) parser___ReduceAction56___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction56(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction56(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction56;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction56(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction56;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction56___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction56();
-  parser___ReduceAction56___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction57[44] = {
-  {(bigint) 411 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction57 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction57 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 411 /* 3: ReduceAction57 < ReduceAction57: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction56(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction56;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction56_parser___ReduceAction56___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3827;
+  fra.me.meth = LOCATE_NEW_ReduceAction56_parser___ReduceAction56___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction56();
+  /* ./parser//parser.nit:3827 */
+  INIT_ATTRIBUTES__ReduceAction56(fra.me.REG[0]);
+  parser___ReduceAction56___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction56(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction57[50] = {
+  {(bigint) 2183 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction57 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction57 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2183 /* 4: ReduceAction57 < ReduceAction57: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44315,14 +97266,12 @@ const classtable_elt_t VFT_ReduceAction57[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction57 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction57 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44330,7 +97279,6 @@ const classtable_elt_t VFT_ReduceAction57[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44338,33 +97286,81 @@ const classtable_elt_t VFT_ReduceAction57[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction57 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction57 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction57___action},
-  {(bigint) 2 /* 42: ReduceAction57 < ReduceAction57: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction57 < ReduceAction57: superclass init_table position */},
   {(bigint) parser___ReduceAction57___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction57(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction57(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction57;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction57(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction57;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction57___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction57();
-  parser___ReduceAction57___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction58[44] = {
-  {(bigint) 395 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction58 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction58 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 395 /* 3: ReduceAction58 < ReduceAction58: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction57(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction57;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction57_parser___ReduceAction57___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3875;
+  fra.me.meth = LOCATE_NEW_ReduceAction57_parser___ReduceAction57___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction57();
+  /* ./parser//parser.nit:3875 */
+  INIT_ATTRIBUTES__ReduceAction57(fra.me.REG[0]);
+  parser___ReduceAction57___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction57(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction58[50] = {
+  {(bigint) 2139 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction58 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction58 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2139 /* 4: ReduceAction58 < ReduceAction58: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44374,14 +97370,12 @@ const classtable_elt_t VFT_ReduceAction58[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction58 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction58 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44389,7 +97383,6 @@ const classtable_elt_t VFT_ReduceAction58[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44397,33 +97390,81 @@ const classtable_elt_t VFT_ReduceAction58[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction58 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction58 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction58___action},
-  {(bigint) 2 /* 42: ReduceAction58 < ReduceAction58: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction58 < ReduceAction58: superclass init_table position */},
   {(bigint) parser___ReduceAction58___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction58(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction58(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction58;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction58(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction58;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction58___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction58();
-  parser___ReduceAction58___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction59[44] = {
-  {(bigint) 391 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction59 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction59 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 391 /* 3: ReduceAction59 < ReduceAction59: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction58(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction58;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction58_parser___ReduceAction58___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3926;
+  fra.me.meth = LOCATE_NEW_ReduceAction58_parser___ReduceAction58___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction58();
+  /* ./parser//parser.nit:3926 */
+  INIT_ATTRIBUTES__ReduceAction58(fra.me.REG[0]);
+  parser___ReduceAction58___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction58(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction59[50] = {
+  {(bigint) 2095 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction59 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction59 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2095 /* 4: ReduceAction59 < ReduceAction59: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44433,14 +97474,12 @@ const classtable_elt_t VFT_ReduceAction59[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction59 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction59 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44448,7 +97487,6 @@ const classtable_elt_t VFT_ReduceAction59[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44456,33 +97494,81 @@ const classtable_elt_t VFT_ReduceAction59[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction59 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction59 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction59___action},
-  {(bigint) 2 /* 42: ReduceAction59 < ReduceAction59: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction59 < ReduceAction59: superclass init_table position */},
   {(bigint) parser___ReduceAction59___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction59(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction59(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction59;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction59(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction59;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction59___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction59();
-  parser___ReduceAction59___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction60[44] = {
-  {(bigint) 383 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction60 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction60 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 383 /* 3: ReduceAction60 < ReduceAction60: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction59(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction59;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction59_parser___ReduceAction59___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3974;
+  fra.me.meth = LOCATE_NEW_ReduceAction59_parser___ReduceAction59___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction59();
+  /* ./parser//parser.nit:3974 */
+  INIT_ATTRIBUTES__ReduceAction59(fra.me.REG[0]);
+  parser___ReduceAction59___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction59(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction60[50] = {
+  {(bigint) 2047 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction60 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction60 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2047 /* 4: ReduceAction60 < ReduceAction60: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44492,14 +97578,12 @@ const classtable_elt_t VFT_ReduceAction60[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction60 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction60 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44507,7 +97591,6 @@ const classtable_elt_t VFT_ReduceAction60[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44515,33 +97598,81 @@ const classtable_elt_t VFT_ReduceAction60[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction60 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction60 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction60___action},
-  {(bigint) 2 /* 42: ReduceAction60 < ReduceAction60: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction60 < ReduceAction60: superclass init_table position */},
   {(bigint) parser___ReduceAction60___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction60(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction60(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction60;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction60(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction60;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction60___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction60();
-  parser___ReduceAction60___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction61[44] = {
-  {(bigint) 379 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction61 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction61 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 379 /* 3: ReduceAction61 < ReduceAction61: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction60(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction60;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction60_parser___ReduceAction60___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4025;
+  fra.me.meth = LOCATE_NEW_ReduceAction60_parser___ReduceAction60___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction60();
+  /* ./parser//parser.nit:4025 */
+  INIT_ATTRIBUTES__ReduceAction60(fra.me.REG[0]);
+  parser___ReduceAction60___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction60(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction61[50] = {
+  {(bigint) 2003 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction61 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction61 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2003 /* 4: ReduceAction61 < ReduceAction61: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44551,14 +97682,12 @@ const classtable_elt_t VFT_ReduceAction61[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction61 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction61 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44566,7 +97695,6 @@ const classtable_elt_t VFT_ReduceAction61[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44574,33 +97702,81 @@ const classtable_elt_t VFT_ReduceAction61[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction61 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction61 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction61___action},
-  {(bigint) 2 /* 42: ReduceAction61 < ReduceAction61: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction61 < ReduceAction61: superclass init_table position */},
   {(bigint) parser___ReduceAction61___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction61(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction61(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction61;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction61(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction61;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction61___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction61();
-  parser___ReduceAction61___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction62[44] = {
-  {(bigint) 375 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction62 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction62 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 375 /* 3: ReduceAction62 < ReduceAction62: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction61(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction61;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction61_parser___ReduceAction61___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4083;
+  fra.me.meth = LOCATE_NEW_ReduceAction61_parser___ReduceAction61___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction61();
+  /* ./parser//parser.nit:4083 */
+  INIT_ATTRIBUTES__ReduceAction61(fra.me.REG[0]);
+  parser___ReduceAction61___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction61(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction62[50] = {
+  {(bigint) 1959 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction62 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction62 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1959 /* 4: ReduceAction62 < ReduceAction62: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44610,14 +97786,12 @@ const classtable_elt_t VFT_ReduceAction62[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction62 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction62 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44625,7 +97799,6 @@ const classtable_elt_t VFT_ReduceAction62[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44633,33 +97806,81 @@ const classtable_elt_t VFT_ReduceAction62[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction62 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction62 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction62___action},
-  {(bigint) 2 /* 42: ReduceAction62 < ReduceAction62: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction62 < ReduceAction62: superclass init_table position */},
   {(bigint) parser___ReduceAction62___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction62(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction62(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction62;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction62(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction62;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction62___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction62();
-  parser___ReduceAction62___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction63[44] = {
-  {(bigint) 371 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction63 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction63 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 371 /* 3: ReduceAction63 < ReduceAction63: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction62(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction62;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction62_parser___ReduceAction62___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4144;
+  fra.me.meth = LOCATE_NEW_ReduceAction62_parser___ReduceAction62___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction62();
+  /* ./parser//parser.nit:4144 */
+  INIT_ATTRIBUTES__ReduceAction62(fra.me.REG[0]);
+  parser___ReduceAction62___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction62(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction63[50] = {
+  {(bigint) 1915 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction63 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction63 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1915 /* 4: ReduceAction63 < ReduceAction63: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44669,14 +97890,12 @@ const classtable_elt_t VFT_ReduceAction63[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction63 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction63 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44684,7 +97903,6 @@ const classtable_elt_t VFT_ReduceAction63[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44692,33 +97910,81 @@ const classtable_elt_t VFT_ReduceAction63[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction63 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction63 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction63___action},
-  {(bigint) 2 /* 42: ReduceAction63 < ReduceAction63: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction63 < ReduceAction63: superclass init_table position */},
   {(bigint) parser___ReduceAction63___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction63(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction63(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction63;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction63(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction63;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction63___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction63();
-  parser___ReduceAction63___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction64[44] = {
-  {(bigint) 367 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction64 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction64 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 367 /* 3: ReduceAction64 < ReduceAction64: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction63(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction63;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction63_parser___ReduceAction63___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4189;
+  fra.me.meth = LOCATE_NEW_ReduceAction63_parser___ReduceAction63___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction63();
+  /* ./parser//parser.nit:4189 */
+  INIT_ATTRIBUTES__ReduceAction63(fra.me.REG[0]);
+  parser___ReduceAction63___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction63(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction64[50] = {
+  {(bigint) 1871 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction64 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction64 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1871 /* 4: ReduceAction64 < ReduceAction64: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44728,14 +97994,12 @@ const classtable_elt_t VFT_ReduceAction64[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction64 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction64 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44743,7 +98007,6 @@ const classtable_elt_t VFT_ReduceAction64[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44751,33 +98014,81 @@ const classtable_elt_t VFT_ReduceAction64[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction64 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction64 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction64___action},
-  {(bigint) 2 /* 42: ReduceAction64 < ReduceAction64: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction64 < ReduceAction64: superclass init_table position */},
   {(bigint) parser___ReduceAction64___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction64(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction64(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction64;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction64(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction64;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction64___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction64();
-  parser___ReduceAction64___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction65[44] = {
-  {(bigint) 363 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction65 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction65 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 363 /* 3: ReduceAction65 < ReduceAction65: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction64(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction64;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction64_parser___ReduceAction64___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4244;
+  fra.me.meth = LOCATE_NEW_ReduceAction64_parser___ReduceAction64___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction64();
+  /* ./parser//parser.nit:4244 */
+  INIT_ATTRIBUTES__ReduceAction64(fra.me.REG[0]);
+  parser___ReduceAction64___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction64(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction65[50] = {
+  {(bigint) 1827 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction65 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction65 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1827 /* 4: ReduceAction65 < ReduceAction65: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44787,14 +98098,12 @@ const classtable_elt_t VFT_ReduceAction65[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction65 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction65 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44802,7 +98111,6 @@ const classtable_elt_t VFT_ReduceAction65[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44810,33 +98118,81 @@ const classtable_elt_t VFT_ReduceAction65[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction65 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction65 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction65___action},
-  {(bigint) 2 /* 42: ReduceAction65 < ReduceAction65: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction65 < ReduceAction65: superclass init_table position */},
   {(bigint) parser___ReduceAction65___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction65(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction65(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction65;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction65(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction65;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction65___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction65();
-  parser___ReduceAction65___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction66[44] = {
-  {(bigint) 359 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction66 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction66 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 359 /* 3: ReduceAction66 < ReduceAction66: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction65(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction65;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction65_parser___ReduceAction65___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4292;
+  fra.me.meth = LOCATE_NEW_ReduceAction65_parser___ReduceAction65___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction65();
+  /* ./parser//parser.nit:4292 */
+  INIT_ATTRIBUTES__ReduceAction65(fra.me.REG[0]);
+  parser___ReduceAction65___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction65(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction66[50] = {
+  {(bigint) 1783 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction66 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction66 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1783 /* 4: ReduceAction66 < ReduceAction66: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44846,14 +98202,12 @@ const classtable_elt_t VFT_ReduceAction66[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction66 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction66 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44861,7 +98215,6 @@ const classtable_elt_t VFT_ReduceAction66[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44869,33 +98222,81 @@ const classtable_elt_t VFT_ReduceAction66[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction66 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction66 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction66___action},
-  {(bigint) 2 /* 42: ReduceAction66 < ReduceAction66: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction66 < ReduceAction66: superclass init_table position */},
   {(bigint) parser___ReduceAction66___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction66(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction66(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction66;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction66(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction66;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction66___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction66();
-  parser___ReduceAction66___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction67[44] = {
-  {(bigint) 355 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction67 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction67 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 355 /* 3: ReduceAction67 < ReduceAction67: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction66(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction66;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction66_parser___ReduceAction66___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4350;
+  fra.me.meth = LOCATE_NEW_ReduceAction66_parser___ReduceAction66___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction66();
+  /* ./parser//parser.nit:4350 */
+  INIT_ATTRIBUTES__ReduceAction66(fra.me.REG[0]);
+  parser___ReduceAction66___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction66(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction67[50] = {
+  {(bigint) 1739 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction67 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction67 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1739 /* 4: ReduceAction67 < ReduceAction67: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44905,14 +98306,12 @@ const classtable_elt_t VFT_ReduceAction67[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction67 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction67 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44920,7 +98319,6 @@ const classtable_elt_t VFT_ReduceAction67[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44928,33 +98326,81 @@ const classtable_elt_t VFT_ReduceAction67[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction67 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction67 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction67___action},
-  {(bigint) 2 /* 42: ReduceAction67 < ReduceAction67: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction67 < ReduceAction67: superclass init_table position */},
   {(bigint) parser___ReduceAction67___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction67(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction67(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction67;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction67(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction67;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction67___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction67();
-  parser___ReduceAction67___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction68[44] = {
-  {(bigint) 351 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction68 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction68 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 351 /* 3: ReduceAction68 < ReduceAction68: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction67(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction67;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction67_parser___ReduceAction67___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4405;
+  fra.me.meth = LOCATE_NEW_ReduceAction67_parser___ReduceAction67___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction67();
+  /* ./parser//parser.nit:4405 */
+  INIT_ATTRIBUTES__ReduceAction67(fra.me.REG[0]);
+  parser___ReduceAction67___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction67(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction68[50] = {
+  {(bigint) 1695 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction68 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction68 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1695 /* 4: ReduceAction68 < ReduceAction68: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44964,14 +98410,12 @@ const classtable_elt_t VFT_ReduceAction68[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction68 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction68 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -44979,7 +98423,6 @@ const classtable_elt_t VFT_ReduceAction68[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -44987,33 +98430,81 @@ const classtable_elt_t VFT_ReduceAction68[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction68 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction68 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction68___action},
-  {(bigint) 2 /* 42: ReduceAction68 < ReduceAction68: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction68 < ReduceAction68: superclass init_table position */},
   {(bigint) parser___ReduceAction68___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction68(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction68(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction68;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction68(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction68;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction68___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction68();
-  parser___ReduceAction68___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction69[44] = {
-  {(bigint) 347 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction69 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction69 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 347 /* 3: ReduceAction69 < ReduceAction69: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction68(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction68;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction68_parser___ReduceAction68___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4470;
+  fra.me.meth = LOCATE_NEW_ReduceAction68_parser___ReduceAction68___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction68();
+  /* ./parser//parser.nit:4470 */
+  INIT_ATTRIBUTES__ReduceAction68(fra.me.REG[0]);
+  parser___ReduceAction68___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction68(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction69[50] = {
+  {(bigint) 1651 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction69 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction69 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1651 /* 4: ReduceAction69 < ReduceAction69: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45023,14 +98514,12 @@ const classtable_elt_t VFT_ReduceAction69[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction69 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction69 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45038,7 +98527,6 @@ const classtable_elt_t VFT_ReduceAction69[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45046,33 +98534,81 @@ const classtable_elt_t VFT_ReduceAction69[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction69 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction69 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction69___action},
-  {(bigint) 2 /* 42: ReduceAction69 < ReduceAction69: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction69 < ReduceAction69: superclass init_table position */},
   {(bigint) parser___ReduceAction69___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction69(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction69(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction69;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction69(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction69;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction69___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction69();
-  parser___ReduceAction69___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction70[44] = {
-  {(bigint) 339 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction70 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction70 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 339 /* 3: ReduceAction70 < ReduceAction70: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction69(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction69;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction69_parser___ReduceAction69___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4528;
+  fra.me.meth = LOCATE_NEW_ReduceAction69_parser___ReduceAction69___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction69();
+  /* ./parser//parser.nit:4528 */
+  INIT_ATTRIBUTES__ReduceAction69(fra.me.REG[0]);
+  parser___ReduceAction69___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction69(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction70[50] = {
+  {(bigint) 1603 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction70 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction70 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1603 /* 4: ReduceAction70 < ReduceAction70: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45082,14 +98618,12 @@ const classtable_elt_t VFT_ReduceAction70[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction70 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction70 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45097,7 +98631,6 @@ const classtable_elt_t VFT_ReduceAction70[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45105,33 +98638,81 @@ const classtable_elt_t VFT_ReduceAction70[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction70 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction70 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction70___action},
-  {(bigint) 2 /* 42: ReduceAction70 < ReduceAction70: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction70 < ReduceAction70: superclass init_table position */},
   {(bigint) parser___ReduceAction70___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction70(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction70(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction70;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction70(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction70;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction70___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction70();
-  parser___ReduceAction70___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction71[44] = {
-  {(bigint) 335 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction71 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction71 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 335 /* 3: ReduceAction71 < ReduceAction71: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction70(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction70;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction70_parser___ReduceAction70___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4596;
+  fra.me.meth = LOCATE_NEW_ReduceAction70_parser___ReduceAction70___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction70();
+  /* ./parser//parser.nit:4596 */
+  INIT_ATTRIBUTES__ReduceAction70(fra.me.REG[0]);
+  parser___ReduceAction70___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction70(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction71[50] = {
+  {(bigint) 1559 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction71 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction71 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1559 /* 4: ReduceAction71 < ReduceAction71: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45141,14 +98722,12 @@ const classtable_elt_t VFT_ReduceAction71[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction71 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction71 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45156,7 +98735,6 @@ const classtable_elt_t VFT_ReduceAction71[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45164,33 +98742,81 @@ const classtable_elt_t VFT_ReduceAction71[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction71 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction71 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction71___action},
-  {(bigint) 2 /* 42: ReduceAction71 < ReduceAction71: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction71 < ReduceAction71: superclass init_table position */},
   {(bigint) parser___ReduceAction71___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction71(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction71(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction71;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction71(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction71;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction71___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction71();
-  parser___ReduceAction71___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction72[44] = {
-  {(bigint) 331 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction72 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction72 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 331 /* 3: ReduceAction72 < ReduceAction72: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction71(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction71;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction71_parser___ReduceAction71___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4651;
+  fra.me.meth = LOCATE_NEW_ReduceAction71_parser___ReduceAction71___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction71();
+  /* ./parser//parser.nit:4651 */
+  INIT_ATTRIBUTES__ReduceAction71(fra.me.REG[0]);
+  parser___ReduceAction71___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction71(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction72[50] = {
+  {(bigint) 1515 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction72 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction72 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1515 /* 4: ReduceAction72 < ReduceAction72: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45200,14 +98826,12 @@ const classtable_elt_t VFT_ReduceAction72[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction72 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction72 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45215,7 +98839,6 @@ const classtable_elt_t VFT_ReduceAction72[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45223,33 +98846,81 @@ const classtable_elt_t VFT_ReduceAction72[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction72 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction72 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction72___action},
-  {(bigint) 2 /* 42: ReduceAction72 < ReduceAction72: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction72 < ReduceAction72: superclass init_table position */},
   {(bigint) parser___ReduceAction72___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction72(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction72(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction72;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction72(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction72;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction72___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction72();
-  parser___ReduceAction72___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction73[44] = {
-  {(bigint) 327 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction73 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction73 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 327 /* 3: ReduceAction73 < ReduceAction73: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction72(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction72;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction72_parser___ReduceAction72___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4716;
+  fra.me.meth = LOCATE_NEW_ReduceAction72_parser___ReduceAction72___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction72();
+  /* ./parser//parser.nit:4716 */
+  INIT_ATTRIBUTES__ReduceAction72(fra.me.REG[0]);
+  parser___ReduceAction72___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction72(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction73[50] = {
+  {(bigint) 1471 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction73 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction73 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1471 /* 4: ReduceAction73 < ReduceAction73: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45259,14 +98930,12 @@ const classtable_elt_t VFT_ReduceAction73[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction73 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction73 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45274,7 +98943,6 @@ const classtable_elt_t VFT_ReduceAction73[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45282,33 +98950,81 @@ const classtable_elt_t VFT_ReduceAction73[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction73 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction73 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction73___action},
-  {(bigint) 2 /* 42: ReduceAction73 < ReduceAction73: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction73 < ReduceAction73: superclass init_table position */},
   {(bigint) parser___ReduceAction73___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction73(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction73(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction73;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction73(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction73;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction73___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction73();
-  parser___ReduceAction73___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction74[44] = {
-  {(bigint) 323 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction74 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction74 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 323 /* 3: ReduceAction74 < ReduceAction74: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction73(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction73;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction73_parser___ReduceAction73___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4774;
+  fra.me.meth = LOCATE_NEW_ReduceAction73_parser___ReduceAction73___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction73();
+  /* ./parser//parser.nit:4774 */
+  INIT_ATTRIBUTES__ReduceAction73(fra.me.REG[0]);
+  parser___ReduceAction73___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction73(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction74[50] = {
+  {(bigint) 1427 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction74 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction74 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1427 /* 4: ReduceAction74 < ReduceAction74: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45318,14 +99034,12 @@ const classtable_elt_t VFT_ReduceAction74[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction74 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction74 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45333,7 +99047,6 @@ const classtable_elt_t VFT_ReduceAction74[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45341,33 +99054,81 @@ const classtable_elt_t VFT_ReduceAction74[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction74 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction74 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction74___action},
-  {(bigint) 2 /* 42: ReduceAction74 < ReduceAction74: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction74 < ReduceAction74: superclass init_table position */},
   {(bigint) parser___ReduceAction74___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction74(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction74(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction74;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction74(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction74;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction74___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction74();
-  parser___ReduceAction74___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction75[44] = {
-  {(bigint) 319 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction75 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction75 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 319 /* 3: ReduceAction75 < ReduceAction75: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction74(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction74;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction74_parser___ReduceAction74___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4842;
+  fra.me.meth = LOCATE_NEW_ReduceAction74_parser___ReduceAction74___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction74();
+  /* ./parser//parser.nit:4842 */
+  INIT_ATTRIBUTES__ReduceAction74(fra.me.REG[0]);
+  parser___ReduceAction74___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction74(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction75[50] = {
+  {(bigint) 1383 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction75 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction75 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1383 /* 4: ReduceAction75 < ReduceAction75: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45377,14 +99138,12 @@ const classtable_elt_t VFT_ReduceAction75[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction75 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction75 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45392,7 +99151,6 @@ const classtable_elt_t VFT_ReduceAction75[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45400,33 +99158,81 @@ const classtable_elt_t VFT_ReduceAction75[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction75 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction75 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction75___action},
-  {(bigint) 2 /* 42: ReduceAction75 < ReduceAction75: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction75 < ReduceAction75: superclass init_table position */},
   {(bigint) parser___ReduceAction75___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction75(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction75(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction75;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction75(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction75;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction75___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction75();
-  parser___ReduceAction75___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction76[44] = {
-  {(bigint) 315 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction76 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction76 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 315 /* 3: ReduceAction76 < ReduceAction76: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction75(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction75;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction75_parser___ReduceAction75___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4907;
+  fra.me.meth = LOCATE_NEW_ReduceAction75_parser___ReduceAction75___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction75();
+  /* ./parser//parser.nit:4907 */
+  INIT_ATTRIBUTES__ReduceAction75(fra.me.REG[0]);
+  parser___ReduceAction75___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction75(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction76[50] = {
+  {(bigint) 1339 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction76 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction76 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1339 /* 4: ReduceAction76 < ReduceAction76: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45436,14 +99242,12 @@ const classtable_elt_t VFT_ReduceAction76[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction76 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction76 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45451,7 +99255,6 @@ const classtable_elt_t VFT_ReduceAction76[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45459,33 +99262,81 @@ const classtable_elt_t VFT_ReduceAction76[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction76 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction76 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction76___action},
-  {(bigint) 2 /* 42: ReduceAction76 < ReduceAction76: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction76 < ReduceAction76: superclass init_table position */},
   {(bigint) parser___ReduceAction76___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction76(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction76(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction76;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction76(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction76;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction76___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction76();
-  parser___ReduceAction76___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction77[44] = {
-  {(bigint) 311 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction77 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction77 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 311 /* 3: ReduceAction77 < ReduceAction77: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction76(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction76;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction76_parser___ReduceAction76___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4982;
+  fra.me.meth = LOCATE_NEW_ReduceAction76_parser___ReduceAction76___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction76();
+  /* ./parser//parser.nit:4982 */
+  INIT_ATTRIBUTES__ReduceAction76(fra.me.REG[0]);
+  parser___ReduceAction76___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction76(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction77[50] = {
+  {(bigint) 1295 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction77 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction77 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1295 /* 4: ReduceAction77 < ReduceAction77: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45495,14 +99346,12 @@ const classtable_elt_t VFT_ReduceAction77[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction77 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction77 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45510,7 +99359,6 @@ const classtable_elt_t VFT_ReduceAction77[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45518,33 +99366,81 @@ const classtable_elt_t VFT_ReduceAction77[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction77 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction77 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction77___action},
-  {(bigint) 2 /* 42: ReduceAction77 < ReduceAction77: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction77 < ReduceAction77: superclass init_table position */},
   {(bigint) parser___ReduceAction77___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction77(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction77(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction77;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction77(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction77;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction77___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction77();
-  parser___ReduceAction77___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction78[44] = {
-  {(bigint) 307 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction78 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction78 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 307 /* 3: ReduceAction78 < ReduceAction78: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction77(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction77;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction77_parser___ReduceAction77___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5050;
+  fra.me.meth = LOCATE_NEW_ReduceAction77_parser___ReduceAction77___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction77();
+  /* ./parser//parser.nit:5050 */
+  INIT_ATTRIBUTES__ReduceAction77(fra.me.REG[0]);
+  parser___ReduceAction77___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction77(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction78[50] = {
+  {(bigint) 1251 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction78 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction78 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1251 /* 4: ReduceAction78 < ReduceAction78: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45554,14 +99450,12 @@ const classtable_elt_t VFT_ReduceAction78[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction78 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction78 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45569,7 +99463,6 @@ const classtable_elt_t VFT_ReduceAction78[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45577,33 +99470,81 @@ const classtable_elt_t VFT_ReduceAction78[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction78 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction78 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction78___action},
-  {(bigint) 2 /* 42: ReduceAction78 < ReduceAction78: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction78 < ReduceAction78: superclass init_table position */},
   {(bigint) parser___ReduceAction78___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction78(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction78(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction78;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction78(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction78;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction78___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction78();
-  parser___ReduceAction78___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction79[44] = {
-  {(bigint) 303 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction79 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction79 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 303 /* 3: ReduceAction79 < ReduceAction79: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction78(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction78;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction78_parser___ReduceAction78___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5128;
+  fra.me.meth = LOCATE_NEW_ReduceAction78_parser___ReduceAction78___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction78();
+  /* ./parser//parser.nit:5128 */
+  INIT_ATTRIBUTES__ReduceAction78(fra.me.REG[0]);
+  parser___ReduceAction78___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction78(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction79[50] = {
+  {(bigint) 1207 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction79 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction79 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1207 /* 4: ReduceAction79 < ReduceAction79: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45613,14 +99554,12 @@ const classtable_elt_t VFT_ReduceAction79[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction79 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction79 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45628,7 +99567,6 @@ const classtable_elt_t VFT_ReduceAction79[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45636,33 +99574,81 @@ const classtable_elt_t VFT_ReduceAction79[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction79 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction79 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction79___action},
-  {(bigint) 2 /* 42: ReduceAction79 < ReduceAction79: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction79 < ReduceAction79: superclass init_table position */},
   {(bigint) parser___ReduceAction79___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction79(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction79(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction79;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction79(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction79;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction79___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction79();
-  parser___ReduceAction79___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction80[44] = {
-  {(bigint) 295 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction80 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction80 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 295 /* 3: ReduceAction80 < ReduceAction80: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction79(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction79;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction79_parser___ReduceAction79___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5144;
+  fra.me.meth = LOCATE_NEW_ReduceAction79_parser___ReduceAction79___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction79();
+  /* ./parser//parser.nit:5144 */
+  INIT_ATTRIBUTES__ReduceAction79(fra.me.REG[0]);
+  parser___ReduceAction79___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction79(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction80[50] = {
+  {(bigint) 1159 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction80 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction80 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1159 /* 4: ReduceAction80 < ReduceAction80: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45672,14 +99658,12 @@ const classtable_elt_t VFT_ReduceAction80[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction80 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction80 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45687,7 +99671,6 @@ const classtable_elt_t VFT_ReduceAction80[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45695,33 +99678,81 @@ const classtable_elt_t VFT_ReduceAction80[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction80 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction80 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction80___action},
-  {(bigint) 2 /* 42: ReduceAction80 < ReduceAction80: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction80 < ReduceAction80: superclass init_table position */},
   {(bigint) parser___ReduceAction80___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction80(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction80(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction80;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction80(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction80;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction80___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction80();
-  parser___ReduceAction80___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction81[44] = {
-  {(bigint) 291 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction81 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction81 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 291 /* 3: ReduceAction81 < ReduceAction81: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction80(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction80;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction80_parser___ReduceAction80___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5164;
+  fra.me.meth = LOCATE_NEW_ReduceAction80_parser___ReduceAction80___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction80();
+  /* ./parser//parser.nit:5164 */
+  INIT_ATTRIBUTES__ReduceAction80(fra.me.REG[0]);
+  parser___ReduceAction80___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction80(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction81[50] = {
+  {(bigint) 1115 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction81 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction81 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1115 /* 4: ReduceAction81 < ReduceAction81: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45731,14 +99762,12 @@ const classtable_elt_t VFT_ReduceAction81[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction81 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction81 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45746,7 +99775,6 @@ const classtable_elt_t VFT_ReduceAction81[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45754,33 +99782,81 @@ const classtable_elt_t VFT_ReduceAction81[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction81 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction81 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction81___action},
-  {(bigint) 2 /* 42: ReduceAction81 < ReduceAction81: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction81 < ReduceAction81: superclass init_table position */},
   {(bigint) parser___ReduceAction81___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction81(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction81(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction81;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction81(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction81;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction81___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction81();
-  parser___ReduceAction81___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction82[44] = {
-  {(bigint) 287 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction82 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction82 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 287 /* 3: ReduceAction82 < ReduceAction82: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction81(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction81;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction81_parser___ReduceAction81___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5180;
+  fra.me.meth = LOCATE_NEW_ReduceAction81_parser___ReduceAction81___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction81();
+  /* ./parser//parser.nit:5180 */
+  INIT_ATTRIBUTES__ReduceAction81(fra.me.REG[0]);
+  parser___ReduceAction81___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction81(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction82[50] = {
+  {(bigint) 1071 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction82 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction82 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1071 /* 4: ReduceAction82 < ReduceAction82: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45790,14 +99866,12 @@ const classtable_elt_t VFT_ReduceAction82[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction82 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction82 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45805,7 +99879,6 @@ const classtable_elt_t VFT_ReduceAction82[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45813,33 +99886,81 @@ const classtable_elt_t VFT_ReduceAction82[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction82 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction82 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction82___action},
-  {(bigint) 2 /* 42: ReduceAction82 < ReduceAction82: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction82 < ReduceAction82: superclass init_table position */},
   {(bigint) parser___ReduceAction82___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction82(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction82(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction82;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction82(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction82;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction82___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction82();
-  parser___ReduceAction82___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction83[44] = {
-  {(bigint) 283 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction83 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction83 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 283 /* 3: ReduceAction83 < ReduceAction83: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction82(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction82;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction82_parser___ReduceAction82___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5196;
+  fra.me.meth = LOCATE_NEW_ReduceAction82_parser___ReduceAction82___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction82();
+  /* ./parser//parser.nit:5196 */
+  INIT_ATTRIBUTES__ReduceAction82(fra.me.REG[0]);
+  parser___ReduceAction82___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction82(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction83[50] = {
+  {(bigint) 1027 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction83 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction83 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1027 /* 4: ReduceAction83 < ReduceAction83: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45849,14 +99970,12 @@ const classtable_elt_t VFT_ReduceAction83[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction83 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction83 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45864,7 +99983,6 @@ const classtable_elt_t VFT_ReduceAction83[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45872,33 +99990,81 @@ const classtable_elt_t VFT_ReduceAction83[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction83 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction83 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction83___action},
-  {(bigint) 2 /* 42: ReduceAction83 < ReduceAction83: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction83 < ReduceAction83: superclass init_table position */},
   {(bigint) parser___ReduceAction83___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction83(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction83(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction83;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction83(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction83;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction83___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction83();
-  parser___ReduceAction83___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction84[44] = {
-  {(bigint) 279 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction84 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction84 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 279 /* 3: ReduceAction84 < ReduceAction84: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction83(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction83;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction83_parser___ReduceAction83___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5217;
+  fra.me.meth = LOCATE_NEW_ReduceAction83_parser___ReduceAction83___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction83();
+  /* ./parser//parser.nit:5217 */
+  INIT_ATTRIBUTES__ReduceAction83(fra.me.REG[0]);
+  parser___ReduceAction83___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction83(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction84[50] = {
+  {(bigint) 983 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction84 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction84 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 983 /* 4: ReduceAction84 < ReduceAction84: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45908,14 +100074,12 @@ const classtable_elt_t VFT_ReduceAction84[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction84 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction84 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45923,7 +100087,6 @@ const classtable_elt_t VFT_ReduceAction84[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45931,33 +100094,81 @@ const classtable_elt_t VFT_ReduceAction84[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction84 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction84 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction84___action},
-  {(bigint) 2 /* 42: ReduceAction84 < ReduceAction84: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction84 < ReduceAction84: superclass init_table position */},
   {(bigint) parser___ReduceAction84___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction84(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction84(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction84;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction84(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction84;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction84___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction84();
-  parser___ReduceAction84___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction85[44] = {
-  {(bigint) 275 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction85 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction85 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 275 /* 3: ReduceAction85 < ReduceAction85: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction84(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction84;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction84_parser___ReduceAction84___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5248;
+  fra.me.meth = LOCATE_NEW_ReduceAction84_parser___ReduceAction84___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction84();
+  /* ./parser//parser.nit:5248 */
+  INIT_ATTRIBUTES__ReduceAction84(fra.me.REG[0]);
+  parser___ReduceAction84___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction84(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction85[50] = {
+  {(bigint) 939 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction85 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction85 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 939 /* 4: ReduceAction85 < ReduceAction85: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45967,14 +100178,12 @@ const classtable_elt_t VFT_ReduceAction85[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction85 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction85 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -45982,7 +100191,6 @@ const classtable_elt_t VFT_ReduceAction85[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -45990,33 +100198,81 @@ const classtable_elt_t VFT_ReduceAction85[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction85 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction85 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction85___action},
-  {(bigint) 2 /* 42: ReduceAction85 < ReduceAction85: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction85 < ReduceAction85: superclass init_table position */},
   {(bigint) parser___ReduceAction85___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction85(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction85(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction85;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction85(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction85;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction85___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction85();
-  parser___ReduceAction85___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction86[44] = {
-  {(bigint) 271 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction86 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction86 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 271 /* 3: ReduceAction86 < ReduceAction86: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction85(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction85;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction85_parser___ReduceAction85___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5263;
+  fra.me.meth = LOCATE_NEW_ReduceAction85_parser___ReduceAction85___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction85();
+  /* ./parser//parser.nit:5263 */
+  INIT_ATTRIBUTES__ReduceAction85(fra.me.REG[0]);
+  parser___ReduceAction85___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction85(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction86[50] = {
+  {(bigint) 895 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction86 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction86 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 895 /* 4: ReduceAction86 < ReduceAction86: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46026,14 +100282,12 @@ const classtable_elt_t VFT_ReduceAction86[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction86 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction86 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46041,7 +100295,6 @@ const classtable_elt_t VFT_ReduceAction86[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46049,33 +100302,81 @@ const classtable_elt_t VFT_ReduceAction86[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction86 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction86 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction86___action},
-  {(bigint) 2 /* 42: ReduceAction86 < ReduceAction86: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction86 < ReduceAction86: superclass init_table position */},
   {(bigint) parser___ReduceAction86___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction86(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction86(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction86;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction86(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction86;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction86___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction86();
-  parser___ReduceAction86___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction87[44] = {
-  {(bigint) 267 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction87 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction87 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 267 /* 3: ReduceAction87 < ReduceAction87: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction86(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction86;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction86_parser___ReduceAction86___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5280;
+  fra.me.meth = LOCATE_NEW_ReduceAction86_parser___ReduceAction86___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction86();
+  /* ./parser//parser.nit:5280 */
+  INIT_ATTRIBUTES__ReduceAction86(fra.me.REG[0]);
+  parser___ReduceAction86___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction86(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction87[50] = {
+  {(bigint) 851 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction87 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction87 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 851 /* 4: ReduceAction87 < ReduceAction87: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46085,14 +100386,12 @@ const classtable_elt_t VFT_ReduceAction87[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction87 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction87 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46100,7 +100399,6 @@ const classtable_elt_t VFT_ReduceAction87[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46108,33 +100406,81 @@ const classtable_elt_t VFT_ReduceAction87[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction87 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction87 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction87___action},
-  {(bigint) 2 /* 42: ReduceAction87 < ReduceAction87: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction87 < ReduceAction87: superclass init_table position */},
   {(bigint) parser___ReduceAction87___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction87(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction87(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction87;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction87(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction87;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction87___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction87();
-  parser___ReduceAction87___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction88[44] = {
-  {(bigint) 263 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction88 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction88 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 263 /* 3: ReduceAction88 < ReduceAction88: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction87(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction87;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction87_parser___ReduceAction87___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5300;
+  fra.me.meth = LOCATE_NEW_ReduceAction87_parser___ReduceAction87___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction87();
+  /* ./parser//parser.nit:5300 */
+  INIT_ATTRIBUTES__ReduceAction87(fra.me.REG[0]);
+  parser___ReduceAction87___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction87(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction88[50] = {
+  {(bigint) 807 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction88 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction88 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 807 /* 4: ReduceAction88 < ReduceAction88: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46144,14 +100490,12 @@ const classtable_elt_t VFT_ReduceAction88[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction88 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction88 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46159,7 +100503,6 @@ const classtable_elt_t VFT_ReduceAction88[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46167,33 +100510,81 @@ const classtable_elt_t VFT_ReduceAction88[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction88 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction88 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction88___action},
-  {(bigint) 2 /* 42: ReduceAction88 < ReduceAction88: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction88 < ReduceAction88: superclass init_table position */},
   {(bigint) parser___ReduceAction88___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction88(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction88(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction88;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction88(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction88;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction88___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction88();
-  parser___ReduceAction88___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction89[44] = {
-  {(bigint) 259 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction89 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction89 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 259 /* 3: ReduceAction89 < ReduceAction89: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction88(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction88;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction88_parser___ReduceAction88___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5322;
+  fra.me.meth = LOCATE_NEW_ReduceAction88_parser___ReduceAction88___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction88();
+  /* ./parser//parser.nit:5322 */
+  INIT_ATTRIBUTES__ReduceAction88(fra.me.REG[0]);
+  parser___ReduceAction88___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction88(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction89[50] = {
+  {(bigint) 763 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction89 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction89 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 763 /* 4: ReduceAction89 < ReduceAction89: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46203,14 +100594,12 @@ const classtable_elt_t VFT_ReduceAction89[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction89 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction89 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46218,7 +100607,6 @@ const classtable_elt_t VFT_ReduceAction89[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46226,33 +100614,81 @@ const classtable_elt_t VFT_ReduceAction89[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction89 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction89 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction89___action},
-  {(bigint) 2 /* 42: ReduceAction89 < ReduceAction89: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction89 < ReduceAction89: superclass init_table position */},
   {(bigint) parser___ReduceAction89___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction89(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction89(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction89;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction89(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction89;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction89___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction89();
-  parser___ReduceAction89___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction90[44] = {
-  {(bigint) 251 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction90 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction90 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 251 /* 3: ReduceAction90 < ReduceAction90: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction89(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction89;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction89_parser___ReduceAction89___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5336;
+  fra.me.meth = LOCATE_NEW_ReduceAction89_parser___ReduceAction89___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction89();
+  /* ./parser//parser.nit:5336 */
+  INIT_ATTRIBUTES__ReduceAction89(fra.me.REG[0]);
+  parser___ReduceAction89___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction89(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction90[50] = {
+  {(bigint) 715 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction90 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction90 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 715 /* 4: ReduceAction90 < ReduceAction90: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46262,14 +100698,12 @@ const classtable_elt_t VFT_ReduceAction90[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction90 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction90 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46277,7 +100711,6 @@ const classtable_elt_t VFT_ReduceAction90[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46285,33 +100718,81 @@ const classtable_elt_t VFT_ReduceAction90[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction90 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction90 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction90___action},
-  {(bigint) 2 /* 42: ReduceAction90 < ReduceAction90: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction90 < ReduceAction90: superclass init_table position */},
   {(bigint) parser___ReduceAction90___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction90(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction90(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction90;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction90(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction90;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction90___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction90();
-  parser___ReduceAction90___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction91[44] = {
-  {(bigint) 247 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction91 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction91 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 247 /* 3: ReduceAction91 < ReduceAction91: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction90(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction90;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction90_parser___ReduceAction90___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5377;
+  fra.me.meth = LOCATE_NEW_ReduceAction90_parser___ReduceAction90___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction90();
+  /* ./parser//parser.nit:5377 */
+  INIT_ATTRIBUTES__ReduceAction90(fra.me.REG[0]);
+  parser___ReduceAction90___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction90(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction91[50] = {
+  {(bigint) 671 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction91 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction91 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 671 /* 4: ReduceAction91 < ReduceAction91: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46321,14 +100802,12 @@ const classtable_elt_t VFT_ReduceAction91[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction91 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction91 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46336,7 +100815,6 @@ const classtable_elt_t VFT_ReduceAction91[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46344,33 +100822,81 @@ const classtable_elt_t VFT_ReduceAction91[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction91 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction91 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction91___action},
-  {(bigint) 2 /* 42: ReduceAction91 < ReduceAction91: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction91 < ReduceAction91: superclass init_table position */},
   {(bigint) parser___ReduceAction91___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction91(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction91(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction91;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction91(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction91;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction91___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction91();
-  parser___ReduceAction91___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction92[44] = {
-  {(bigint) 243 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction92 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction92 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 243 /* 3: ReduceAction92 < ReduceAction92: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction91(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction91;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction91_parser___ReduceAction91___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5418;
+  fra.me.meth = LOCATE_NEW_ReduceAction91_parser___ReduceAction91___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction91();
+  /* ./parser//parser.nit:5418 */
+  INIT_ATTRIBUTES__ReduceAction91(fra.me.REG[0]);
+  parser___ReduceAction91___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction91(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction92[50] = {
+  {(bigint) 627 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction92 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction92 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 627 /* 4: ReduceAction92 < ReduceAction92: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46380,14 +100906,12 @@ const classtable_elt_t VFT_ReduceAction92[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction92 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction92 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46395,7 +100919,6 @@ const classtable_elt_t VFT_ReduceAction92[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46403,33 +100926,81 @@ const classtable_elt_t VFT_ReduceAction92[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction92 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction92 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction92___action},
-  {(bigint) 2 /* 42: ReduceAction92 < ReduceAction92: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction92 < ReduceAction92: superclass init_table position */},
   {(bigint) parser___ReduceAction92___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction92(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction92(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction92;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction92(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction92;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction92___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction92();
-  parser___ReduceAction92___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction93[44] = {
-  {(bigint) 239 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction93 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction93 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 239 /* 3: ReduceAction93 < ReduceAction93: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction92(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction92;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction92_parser___ReduceAction92___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5459;
+  fra.me.meth = LOCATE_NEW_ReduceAction92_parser___ReduceAction92___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction92();
+  /* ./parser//parser.nit:5459 */
+  INIT_ATTRIBUTES__ReduceAction92(fra.me.REG[0]);
+  parser___ReduceAction92___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction92(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction93[50] = {
+  {(bigint) 583 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction93 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction93 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 583 /* 4: ReduceAction93 < ReduceAction93: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46439,14 +101010,12 @@ const classtable_elt_t VFT_ReduceAction93[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction93 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction93 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46454,7 +101023,6 @@ const classtable_elt_t VFT_ReduceAction93[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46462,33 +101030,81 @@ const classtable_elt_t VFT_ReduceAction93[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction93 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction93 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction93___action},
-  {(bigint) 2 /* 42: ReduceAction93 < ReduceAction93: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction93 < ReduceAction93: superclass init_table position */},
   {(bigint) parser___ReduceAction93___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction93(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction93(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction93;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction93(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction93;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction93___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction93();
-  parser___ReduceAction93___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction94[44] = {
-  {(bigint) 235 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction94 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction94 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 235 /* 3: ReduceAction94 < ReduceAction94: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction93(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction93;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction93_parser___ReduceAction93___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5500;
+  fra.me.meth = LOCATE_NEW_ReduceAction93_parser___ReduceAction93___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction93();
+  /* ./parser//parser.nit:5500 */
+  INIT_ATTRIBUTES__ReduceAction93(fra.me.REG[0]);
+  parser___ReduceAction93___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction93(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction94[50] = {
+  {(bigint) 539 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction94 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction94 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 539 /* 4: ReduceAction94 < ReduceAction94: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46498,14 +101114,12 @@ const classtable_elt_t VFT_ReduceAction94[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction94 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction94 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46513,7 +101127,6 @@ const classtable_elt_t VFT_ReduceAction94[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46521,33 +101134,81 @@ const classtable_elt_t VFT_ReduceAction94[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction94 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction94 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction94___action},
-  {(bigint) 2 /* 42: ReduceAction94 < ReduceAction94: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction94 < ReduceAction94: superclass init_table position */},
   {(bigint) parser___ReduceAction94___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction94(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction94(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction94;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction94(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction94;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction94___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction94();
-  parser___ReduceAction94___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction95[44] = {
-  {(bigint) 231 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction95 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction95 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 231 /* 3: ReduceAction95 < ReduceAction95: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction94(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction94;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction94_parser___ReduceAction94___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5541;
+  fra.me.meth = LOCATE_NEW_ReduceAction94_parser___ReduceAction94___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction94();
+  /* ./parser//parser.nit:5541 */
+  INIT_ATTRIBUTES__ReduceAction94(fra.me.REG[0]);
+  parser___ReduceAction94___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction94(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction95[50] = {
+  {(bigint) 495 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction95 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction95 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 495 /* 4: ReduceAction95 < ReduceAction95: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46557,14 +101218,12 @@ const classtable_elt_t VFT_ReduceAction95[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction95 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction95 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46572,7 +101231,6 @@ const classtable_elt_t VFT_ReduceAction95[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46580,33 +101238,81 @@ const classtable_elt_t VFT_ReduceAction95[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction95 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction95 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction95___action},
-  {(bigint) 2 /* 42: ReduceAction95 < ReduceAction95: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction95 < ReduceAction95: superclass init_table position */},
   {(bigint) parser___ReduceAction95___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction95(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction95(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction95;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction95(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction95;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction95___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction95();
-  parser___ReduceAction95___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction96[44] = {
-  {(bigint) 227 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction96 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction96 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 227 /* 3: ReduceAction96 < ReduceAction96: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction95(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction95;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction95_parser___ReduceAction95___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5582;
+  fra.me.meth = LOCATE_NEW_ReduceAction95_parser___ReduceAction95___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction95();
+  /* ./parser//parser.nit:5582 */
+  INIT_ATTRIBUTES__ReduceAction95(fra.me.REG[0]);
+  parser___ReduceAction95___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction95(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction96[50] = {
+  {(bigint) 451 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction96 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction96 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 451 /* 4: ReduceAction96 < ReduceAction96: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46616,14 +101322,12 @@ const classtable_elt_t VFT_ReduceAction96[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction96 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction96 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46631,7 +101335,6 @@ const classtable_elt_t VFT_ReduceAction96[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46639,33 +101342,81 @@ const classtable_elt_t VFT_ReduceAction96[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction96 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction96 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction96___action},
-  {(bigint) 2 /* 42: ReduceAction96 < ReduceAction96: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction96 < ReduceAction96: superclass init_table position */},
   {(bigint) parser___ReduceAction96___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction96(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction96(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction96;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction96(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction96;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction96___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction96();
-  parser___ReduceAction96___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction97[44] = {
-  {(bigint) 223 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction97 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction97 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 223 /* 3: ReduceAction97 < ReduceAction97: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction96(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction96;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction96_parser___ReduceAction96___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5623;
+  fra.me.meth = LOCATE_NEW_ReduceAction96_parser___ReduceAction96___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction96();
+  /* ./parser//parser.nit:5623 */
+  INIT_ATTRIBUTES__ReduceAction96(fra.me.REG[0]);
+  parser___ReduceAction96___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction96(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction97[50] = {
+  {(bigint) 407 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction97 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction97 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 407 /* 4: ReduceAction97 < ReduceAction97: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46675,14 +101426,12 @@ const classtable_elt_t VFT_ReduceAction97[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction97 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction97 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46690,7 +101439,6 @@ const classtable_elt_t VFT_ReduceAction97[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46698,33 +101446,81 @@ const classtable_elt_t VFT_ReduceAction97[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction97 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction97 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction97___action},
-  {(bigint) 2 /* 42: ReduceAction97 < ReduceAction97: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction97 < ReduceAction97: superclass init_table position */},
   {(bigint) parser___ReduceAction97___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction97(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction97(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction97;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction97(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction97;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction97___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction97();
-  parser___ReduceAction97___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction98[44] = {
-  {(bigint) 219 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction98 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction98 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 219 /* 3: ReduceAction98 < ReduceAction98: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction97(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction97;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction97_parser___ReduceAction97___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5664;
+  fra.me.meth = LOCATE_NEW_ReduceAction97_parser___ReduceAction97___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction97();
+  /* ./parser//parser.nit:5664 */
+  INIT_ATTRIBUTES__ReduceAction97(fra.me.REG[0]);
+  parser___ReduceAction97___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction97(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction98[50] = {
+  {(bigint) 363 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction98 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction98 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 363 /* 4: ReduceAction98 < ReduceAction98: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46734,14 +101530,12 @@ const classtable_elt_t VFT_ReduceAction98[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction98 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction98 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46749,7 +101543,6 @@ const classtable_elt_t VFT_ReduceAction98[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46757,33 +101550,81 @@ const classtable_elt_t VFT_ReduceAction98[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction98 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction98 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction98___action},
-  {(bigint) 2 /* 42: ReduceAction98 < ReduceAction98: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction98 < ReduceAction98: superclass init_table position */},
   {(bigint) parser___ReduceAction98___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction98(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction98(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction98;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction98(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction98;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction98___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction98();
-  parser___ReduceAction98___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction99[44] = {
-  {(bigint) 215 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction99 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction99 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 215 /* 3: ReduceAction99 < ReduceAction99: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction98(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction98;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction98_parser___ReduceAction98___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5705;
+  fra.me.meth = LOCATE_NEW_ReduceAction98_parser___ReduceAction98___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction98();
+  /* ./parser//parser.nit:5705 */
+  INIT_ATTRIBUTES__ReduceAction98(fra.me.REG[0]);
+  parser___ReduceAction98___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction98(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction99[50] = {
+  {(bigint) 319 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction99 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction99 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 319 /* 4: ReduceAction99 < ReduceAction99: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46793,14 +101634,12 @@ const classtable_elt_t VFT_ReduceAction99[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction99 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction99 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46808,7 +101647,6 @@ const classtable_elt_t VFT_ReduceAction99[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46816,33 +101654,81 @@ const classtable_elt_t VFT_ReduceAction99[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction99 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction99 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction99___action},
-  {(bigint) 2 /* 42: ReduceAction99 < ReduceAction99: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction99 < ReduceAction99: superclass init_table position */},
   {(bigint) parser___ReduceAction99___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction99(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction99(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction99;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction99(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction99;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction99___init() {
+void CHECKNEW_ReduceAction99(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction99;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction99_parser___ReduceAction99___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction99();
-  parser___ReduceAction99___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5746;
+  fra.me.meth = LOCATE_NEW_ReduceAction99_parser___ReduceAction99___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction99();
+  /* ./parser//parser.nit:5746 */
+  INIT_ATTRIBUTES__ReduceAction99(fra.me.REG[0]);
+  parser___ReduceAction99___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction99(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction100[44] = {
-  {(bigint) 2491 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction100 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction100 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2491 /* 3: ReduceAction100 < ReduceAction100: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction100[50] = {
+  {(bigint) 5039 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction100 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction100 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5039 /* 4: ReduceAction100 < ReduceAction100: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46852,14 +101738,12 @@ const classtable_elt_t VFT_ReduceAction100[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction100 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction100 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46867,7 +101751,6 @@ const classtable_elt_t VFT_ReduceAction100[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46875,33 +101758,81 @@ const classtable_elt_t VFT_ReduceAction100[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction100 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction100 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction100___action},
-  {(bigint) 2 /* 42: ReduceAction100 < ReduceAction100: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction100 < ReduceAction100: superclass init_table position */},
   {(bigint) parser___ReduceAction100___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction100(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction100(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction100;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction100(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction100;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction100___init() {
+void CHECKNEW_ReduceAction100(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction100;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction100_parser___ReduceAction100___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction100();
-  parser___ReduceAction100___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5787;
+  fra.me.meth = LOCATE_NEW_ReduceAction100_parser___ReduceAction100___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction100();
+  /* ./parser//parser.nit:5787 */
+  INIT_ATTRIBUTES__ReduceAction100(fra.me.REG[0]);
+  parser___ReduceAction100___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction100(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction101[44] = {
-  {(bigint) 2487 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction101 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction101 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2487 /* 3: ReduceAction101 < ReduceAction101: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction101[50] = {
+  {(bigint) 4995 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction101 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction101 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4995 /* 4: ReduceAction101 < ReduceAction101: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46911,14 +101842,12 @@ const classtable_elt_t VFT_ReduceAction101[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction101 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction101 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46926,7 +101855,6 @@ const classtable_elt_t VFT_ReduceAction101[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46934,33 +101862,81 @@ const classtable_elt_t VFT_ReduceAction101[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction101 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction101 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction101___action},
-  {(bigint) 2 /* 42: ReduceAction101 < ReduceAction101: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction101 < ReduceAction101: superclass init_table position */},
   {(bigint) parser___ReduceAction101___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction101(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction101(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction101;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction101(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction101;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction101___init() {
+void CHECKNEW_ReduceAction101(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction101;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction101_parser___ReduceAction101___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction101();
-  parser___ReduceAction101___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5828;
+  fra.me.meth = LOCATE_NEW_ReduceAction101_parser___ReduceAction101___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction101();
+  /* ./parser//parser.nit:5828 */
+  INIT_ATTRIBUTES__ReduceAction101(fra.me.REG[0]);
+  parser___ReduceAction101___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction101(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction102[44] = {
-  {(bigint) 2483 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction102 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction102 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2483 /* 3: ReduceAction102 < ReduceAction102: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction102[50] = {
+  {(bigint) 4951 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction102 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction102 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4951 /* 4: ReduceAction102 < ReduceAction102: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46970,14 +101946,12 @@ const classtable_elt_t VFT_ReduceAction102[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction102 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction102 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -46985,7 +101959,6 @@ const classtable_elt_t VFT_ReduceAction102[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -46993,33 +101966,81 @@ const classtable_elt_t VFT_ReduceAction102[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction102 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction102 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction102___action},
-  {(bigint) 2 /* 42: ReduceAction102 < ReduceAction102: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction102 < ReduceAction102: superclass init_table position */},
   {(bigint) parser___ReduceAction102___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction102(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction102(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction102;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction102(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction102;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction102___init() {
+void CHECKNEW_ReduceAction102(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction102;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction102_parser___ReduceAction102___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction102();
-  parser___ReduceAction102___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5873;
+  fra.me.meth = LOCATE_NEW_ReduceAction102_parser___ReduceAction102___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction102();
+  /* ./parser//parser.nit:5873 */
+  INIT_ATTRIBUTES__ReduceAction102(fra.me.REG[0]);
+  parser___ReduceAction102___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction102(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction103[44] = {
-  {(bigint) 2479 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction103 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction103 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2479 /* 3: ReduceAction103 < ReduceAction103: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction103[50] = {
+  {(bigint) 4907 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction103 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction103 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4907 /* 4: ReduceAction103 < ReduceAction103: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47029,14 +102050,12 @@ const classtable_elt_t VFT_ReduceAction103[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction103 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction103 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47044,7 +102063,6 @@ const classtable_elt_t VFT_ReduceAction103[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47052,33 +102070,81 @@ const classtable_elt_t VFT_ReduceAction103[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction103 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction103 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction103___action},
-  {(bigint) 2 /* 42: ReduceAction103 < ReduceAction103: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction103 < ReduceAction103: superclass init_table position */},
   {(bigint) parser___ReduceAction103___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction103(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction103(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction103;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction103(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction103;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction103___init() {
+void CHECKNEW_ReduceAction103(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction103;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction103_parser___ReduceAction103___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction103();
-  parser___ReduceAction103___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5914;
+  fra.me.meth = LOCATE_NEW_ReduceAction103_parser___ReduceAction103___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction103();
+  /* ./parser//parser.nit:5914 */
+  INIT_ATTRIBUTES__ReduceAction103(fra.me.REG[0]);
+  parser___ReduceAction103___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction103(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction104[44] = {
-  {(bigint) 2475 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction104 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction104 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2475 /* 3: ReduceAction104 < ReduceAction104: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction104[50] = {
+  {(bigint) 4863 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction104 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction104 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4863 /* 4: ReduceAction104 < ReduceAction104: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47088,14 +102154,12 @@ const classtable_elt_t VFT_ReduceAction104[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction104 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction104 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47103,7 +102167,6 @@ const classtable_elt_t VFT_ReduceAction104[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47111,33 +102174,81 @@ const classtable_elt_t VFT_ReduceAction104[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction104 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction104 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction104___action},
-  {(bigint) 2 /* 42: ReduceAction104 < ReduceAction104: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction104 < ReduceAction104: superclass init_table position */},
   {(bigint) parser___ReduceAction104___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction104(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction104(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction104;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction104(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction104;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction104___init() {
+void CHECKNEW_ReduceAction104(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction104;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction104_parser___ReduceAction104___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction104();
-  parser___ReduceAction104___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5959;
+  fra.me.meth = LOCATE_NEW_ReduceAction104_parser___ReduceAction104___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction104();
+  /* ./parser//parser.nit:5959 */
+  INIT_ATTRIBUTES__ReduceAction104(fra.me.REG[0]);
+  parser___ReduceAction104___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction104(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction105[44] = {
-  {(bigint) 2471 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction105 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction105 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2471 /* 3: ReduceAction105 < ReduceAction105: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction105[50] = {
+  {(bigint) 4819 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction105 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction105 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4819 /* 4: ReduceAction105 < ReduceAction105: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47147,14 +102258,12 @@ const classtable_elt_t VFT_ReduceAction105[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction105 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction105 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47162,7 +102271,6 @@ const classtable_elt_t VFT_ReduceAction105[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47170,33 +102278,81 @@ const classtable_elt_t VFT_ReduceAction105[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction105 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction105 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction105___action},
-  {(bigint) 2 /* 42: ReduceAction105 < ReduceAction105: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction105 < ReduceAction105: superclass init_table position */},
   {(bigint) parser___ReduceAction105___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction105(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction105(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction105;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction105(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction105;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction105___init() {
+void CHECKNEW_ReduceAction105(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction105;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction105_parser___ReduceAction105___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction105();
-  parser___ReduceAction105___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6008;
+  fra.me.meth = LOCATE_NEW_ReduceAction105_parser___ReduceAction105___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction105();
+  /* ./parser//parser.nit:6008 */
+  INIT_ATTRIBUTES__ReduceAction105(fra.me.REG[0]);
+  parser___ReduceAction105___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction105(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction106[44] = {
-  {(bigint) 2467 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction106 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction106 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2467 /* 3: ReduceAction106 < ReduceAction106: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction106[50] = {
+  {(bigint) 4775 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction106 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction106 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4775 /* 4: ReduceAction106 < ReduceAction106: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47206,14 +102362,12 @@ const classtable_elt_t VFT_ReduceAction106[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction106 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction106 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47221,7 +102375,6 @@ const classtable_elt_t VFT_ReduceAction106[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47229,33 +102382,81 @@ const classtable_elt_t VFT_ReduceAction106[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction106 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction106 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction106___action},
-  {(bigint) 2 /* 42: ReduceAction106 < ReduceAction106: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction106 < ReduceAction106: superclass init_table position */},
   {(bigint) parser___ReduceAction106___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction106(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction106(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction106;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction106(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction106;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction106___init() {
+void CHECKNEW_ReduceAction106(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction106;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction106_parser___ReduceAction106___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction106();
-  parser___ReduceAction106___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6052;
+  fra.me.meth = LOCATE_NEW_ReduceAction106_parser___ReduceAction106___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction106();
+  /* ./parser//parser.nit:6052 */
+  INIT_ATTRIBUTES__ReduceAction106(fra.me.REG[0]);
+  parser___ReduceAction106___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction106(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction107[44] = {
-  {(bigint) 2463 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction107 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction107 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2463 /* 3: ReduceAction107 < ReduceAction107: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction107[50] = {
+  {(bigint) 4731 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction107 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction107 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4731 /* 4: ReduceAction107 < ReduceAction107: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47265,14 +102466,12 @@ const classtable_elt_t VFT_ReduceAction107[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction107 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction107 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47280,7 +102479,6 @@ const classtable_elt_t VFT_ReduceAction107[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47288,33 +102486,81 @@ const classtable_elt_t VFT_ReduceAction107[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction107 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction107 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction107___action},
-  {(bigint) 2 /* 42: ReduceAction107 < ReduceAction107: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction107 < ReduceAction107: superclass init_table position */},
   {(bigint) parser___ReduceAction107___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction107(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction107(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction107;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction107(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction107;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction107___init() {
+void CHECKNEW_ReduceAction107(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction107;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction107_parser___ReduceAction107___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction107();
-  parser___ReduceAction107___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6096;
+  fra.me.meth = LOCATE_NEW_ReduceAction107_parser___ReduceAction107___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction107();
+  /* ./parser//parser.nit:6096 */
+  INIT_ATTRIBUTES__ReduceAction107(fra.me.REG[0]);
+  parser___ReduceAction107___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction107(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction108[44] = {
-  {(bigint) 2459 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction108 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction108 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2459 /* 3: ReduceAction108 < ReduceAction108: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction108[50] = {
+  {(bigint) 4687 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction108 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction108 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4687 /* 4: ReduceAction108 < ReduceAction108: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47324,14 +102570,12 @@ const classtable_elt_t VFT_ReduceAction108[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction108 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction108 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47339,7 +102583,6 @@ const classtable_elt_t VFT_ReduceAction108[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47347,33 +102590,81 @@ const classtable_elt_t VFT_ReduceAction108[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction108 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction108 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction108___action},
-  {(bigint) 2 /* 42: ReduceAction108 < ReduceAction108: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction108 < ReduceAction108: superclass init_table position */},
   {(bigint) parser___ReduceAction108___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction108(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction108(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction108;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction108(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction108;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction108___init() {
+void CHECKNEW_ReduceAction108(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction108;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction108_parser___ReduceAction108___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction108();
-  parser___ReduceAction108___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6140;
+  fra.me.meth = LOCATE_NEW_ReduceAction108_parser___ReduceAction108___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction108();
+  /* ./parser//parser.nit:6140 */
+  INIT_ATTRIBUTES__ReduceAction108(fra.me.REG[0]);
+  parser___ReduceAction108___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction108(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction109[44] = {
-  {(bigint) 2455 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction109 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction109 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2455 /* 3: ReduceAction109 < ReduceAction109: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction109[50] = {
+  {(bigint) 4643 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction109 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction109 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4643 /* 4: ReduceAction109 < ReduceAction109: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47383,14 +102674,12 @@ const classtable_elt_t VFT_ReduceAction109[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction109 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction109 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47398,7 +102687,6 @@ const classtable_elt_t VFT_ReduceAction109[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47406,33 +102694,81 @@ const classtable_elt_t VFT_ReduceAction109[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction109 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction109 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction109___action},
-  {(bigint) 2 /* 42: ReduceAction109 < ReduceAction109: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction109 < ReduceAction109: superclass init_table position */},
   {(bigint) parser___ReduceAction109___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction109(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction109(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction109;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction109(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction109;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction109___init() {
+void CHECKNEW_ReduceAction109(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction109;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction109_parser___ReduceAction109___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction109();
-  parser___ReduceAction109___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6184;
+  fra.me.meth = LOCATE_NEW_ReduceAction109_parser___ReduceAction109___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction109();
+  /* ./parser//parser.nit:6184 */
+  INIT_ATTRIBUTES__ReduceAction109(fra.me.REG[0]);
+  parser___ReduceAction109___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction109(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction110[44] = {
-  {(bigint) 2447 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction110 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction110 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2447 /* 3: ReduceAction110 < ReduceAction110: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction110[50] = {
+  {(bigint) 4595 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction110 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction110 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4595 /* 4: ReduceAction110 < ReduceAction110: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47442,14 +102778,12 @@ const classtable_elt_t VFT_ReduceAction110[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction110 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction110 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47457,7 +102791,6 @@ const classtable_elt_t VFT_ReduceAction110[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47465,33 +102798,81 @@ const classtable_elt_t VFT_ReduceAction110[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction110 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction110 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction110___action},
-  {(bigint) 2 /* 42: ReduceAction110 < ReduceAction110: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction110 < ReduceAction110: superclass init_table position */},
   {(bigint) parser___ReduceAction110___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction110(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction110(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction110;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction110(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction110;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction110___init() {
+void CHECKNEW_ReduceAction110(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction110;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction110_parser___ReduceAction110___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction110();
-  parser___ReduceAction110___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6228;
+  fra.me.meth = LOCATE_NEW_ReduceAction110_parser___ReduceAction110___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction110();
+  /* ./parser//parser.nit:6228 */
+  INIT_ATTRIBUTES__ReduceAction110(fra.me.REG[0]);
+  parser___ReduceAction110___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction110(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction111[44] = {
-  {(bigint) 2443 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction111 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction111 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2443 /* 3: ReduceAction111 < ReduceAction111: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction111[50] = {
+  {(bigint) 4551 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction111 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction111 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4551 /* 4: ReduceAction111 < ReduceAction111: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47501,14 +102882,12 @@ const classtable_elt_t VFT_ReduceAction111[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction111 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction111 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47516,7 +102895,6 @@ const classtable_elt_t VFT_ReduceAction111[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47524,33 +102902,81 @@ const classtable_elt_t VFT_ReduceAction111[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction111 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction111 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction111___action},
-  {(bigint) 2 /* 42: ReduceAction111 < ReduceAction111: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction111 < ReduceAction111: superclass init_table position */},
   {(bigint) parser___ReduceAction111___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction111(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction111(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction111;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction111(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction111;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction111___init() {
+void CHECKNEW_ReduceAction111(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction111;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction111_parser___ReduceAction111___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction111();
-  parser___ReduceAction111___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6272;
+  fra.me.meth = LOCATE_NEW_ReduceAction111_parser___ReduceAction111___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction111();
+  /* ./parser//parser.nit:6272 */
+  INIT_ATTRIBUTES__ReduceAction111(fra.me.REG[0]);
+  parser___ReduceAction111___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction111(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction112[44] = {
-  {(bigint) 2439 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction112 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction112 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2439 /* 3: ReduceAction112 < ReduceAction112: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction112[50] = {
+  {(bigint) 4507 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction112 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction112 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4507 /* 4: ReduceAction112 < ReduceAction112: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47560,14 +102986,12 @@ const classtable_elt_t VFT_ReduceAction112[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction112 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction112 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47575,7 +102999,6 @@ const classtable_elt_t VFT_ReduceAction112[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47583,33 +103006,81 @@ const classtable_elt_t VFT_ReduceAction112[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction112 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction112 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction112___action},
-  {(bigint) 2 /* 42: ReduceAction112 < ReduceAction112: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction112 < ReduceAction112: superclass init_table position */},
   {(bigint) parser___ReduceAction112___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction112(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction112(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction112;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction112(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction112;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction112___init() {
+void CHECKNEW_ReduceAction112(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction112;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction112_parser___ReduceAction112___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction112();
-  parser___ReduceAction112___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6316;
+  fra.me.meth = LOCATE_NEW_ReduceAction112_parser___ReduceAction112___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction112();
+  /* ./parser//parser.nit:6316 */
+  INIT_ATTRIBUTES__ReduceAction112(fra.me.REG[0]);
+  parser___ReduceAction112___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction112(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction113[44] = {
-  {(bigint) 2435 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction113 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction113 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2435 /* 3: ReduceAction113 < ReduceAction113: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction113[50] = {
+  {(bigint) 4463 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction113 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction113 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4463 /* 4: ReduceAction113 < ReduceAction113: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47619,14 +103090,12 @@ const classtable_elt_t VFT_ReduceAction113[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction113 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction113 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47634,7 +103103,6 @@ const classtable_elt_t VFT_ReduceAction113[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47642,33 +103110,81 @@ const classtable_elt_t VFT_ReduceAction113[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction113 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction113 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction113___action},
-  {(bigint) 2 /* 42: ReduceAction113 < ReduceAction113: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction113 < ReduceAction113: superclass init_table position */},
   {(bigint) parser___ReduceAction113___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction113(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction113(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction113;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction113(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction113;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction113___init() {
+void CHECKNEW_ReduceAction113(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction113;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction113_parser___ReduceAction113___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction113();
-  parser___ReduceAction113___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6360;
+  fra.me.meth = LOCATE_NEW_ReduceAction113_parser___ReduceAction113___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction113();
+  /* ./parser//parser.nit:6360 */
+  INIT_ATTRIBUTES__ReduceAction113(fra.me.REG[0]);
+  parser___ReduceAction113___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction113(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction114[44] = {
-  {(bigint) 2431 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction114 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction114 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2431 /* 3: ReduceAction114 < ReduceAction114: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction114[50] = {
+  {(bigint) 4419 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction114 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction114 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4419 /* 4: ReduceAction114 < ReduceAction114: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47678,14 +103194,12 @@ const classtable_elt_t VFT_ReduceAction114[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction114 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction114 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47693,7 +103207,6 @@ const classtable_elt_t VFT_ReduceAction114[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47701,33 +103214,81 @@ const classtable_elt_t VFT_ReduceAction114[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction114 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction114 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction114___action},
-  {(bigint) 2 /* 42: ReduceAction114 < ReduceAction114: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction114 < ReduceAction114: superclass init_table position */},
   {(bigint) parser___ReduceAction114___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction114(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction114(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction114;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction114(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction114;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction114___init() {
+void CHECKNEW_ReduceAction114(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction114;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction114_parser___ReduceAction114___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction114();
-  parser___ReduceAction114___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6404;
+  fra.me.meth = LOCATE_NEW_ReduceAction114_parser___ReduceAction114___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction114();
+  /* ./parser//parser.nit:6404 */
+  INIT_ATTRIBUTES__ReduceAction114(fra.me.REG[0]);
+  parser___ReduceAction114___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction114(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction115[44] = {
-  {(bigint) 2427 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction115 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction115 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2427 /* 3: ReduceAction115 < ReduceAction115: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction115[50] = {
+  {(bigint) 4375 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction115 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction115 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4375 /* 4: ReduceAction115 < ReduceAction115: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47737,14 +103298,12 @@ const classtable_elt_t VFT_ReduceAction115[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction115 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction115 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47752,7 +103311,6 @@ const classtable_elt_t VFT_ReduceAction115[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47760,33 +103318,81 @@ const classtable_elt_t VFT_ReduceAction115[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction115 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction115 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction115___action},
-  {(bigint) 2 /* 42: ReduceAction115 < ReduceAction115: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction115 < ReduceAction115: superclass init_table position */},
   {(bigint) parser___ReduceAction115___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction115(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction115(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction115;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction115(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction115;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction115___init() {
+void CHECKNEW_ReduceAction115(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction115;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction115_parser___ReduceAction115___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction115();
-  parser___ReduceAction115___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6448;
+  fra.me.meth = LOCATE_NEW_ReduceAction115_parser___ReduceAction115___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction115();
+  /* ./parser//parser.nit:6448 */
+  INIT_ATTRIBUTES__ReduceAction115(fra.me.REG[0]);
+  parser___ReduceAction115___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction115(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction116[44] = {
-  {(bigint) 2423 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction116 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction116 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2423 /* 3: ReduceAction116 < ReduceAction116: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction116[50] = {
+  {(bigint) 4331 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction116 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction116 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4331 /* 4: ReduceAction116 < ReduceAction116: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47796,14 +103402,12 @@ const classtable_elt_t VFT_ReduceAction116[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction116 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction116 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47811,7 +103415,6 @@ const classtable_elt_t VFT_ReduceAction116[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47819,33 +103422,81 @@ const classtable_elt_t VFT_ReduceAction116[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction116 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction116 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction116___action},
-  {(bigint) 2 /* 42: ReduceAction116 < ReduceAction116: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction116 < ReduceAction116: superclass init_table position */},
   {(bigint) parser___ReduceAction116___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction116(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction116(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction116;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction116(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction116;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction116___init() {
+void CHECKNEW_ReduceAction116(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction116;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction116_parser___ReduceAction116___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction116();
-  parser___ReduceAction116___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6492;
+  fra.me.meth = LOCATE_NEW_ReduceAction116_parser___ReduceAction116___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction116();
+  /* ./parser//parser.nit:6492 */
+  INIT_ATTRIBUTES__ReduceAction116(fra.me.REG[0]);
+  parser___ReduceAction116___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction116(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction117[44] = {
-  {(bigint) 2419 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction117 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction117 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2419 /* 3: ReduceAction117 < ReduceAction117: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction117[50] = {
+  {(bigint) 4287 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction117 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction117 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4287 /* 4: ReduceAction117 < ReduceAction117: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47855,14 +103506,12 @@ const classtable_elt_t VFT_ReduceAction117[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction117 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction117 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47870,7 +103519,6 @@ const classtable_elt_t VFT_ReduceAction117[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47878,33 +103526,81 @@ const classtable_elt_t VFT_ReduceAction117[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction117 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction117 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction117___action},
-  {(bigint) 2 /* 42: ReduceAction117 < ReduceAction117: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction117 < ReduceAction117: superclass init_table position */},
   {(bigint) parser___ReduceAction117___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction117(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction117(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction117;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction117(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction117;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction117___init() {
+void CHECKNEW_ReduceAction117(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction117;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction117_parser___ReduceAction117___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction117();
-  parser___ReduceAction117___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6536;
+  fra.me.meth = LOCATE_NEW_ReduceAction117_parser___ReduceAction117___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction117();
+  /* ./parser//parser.nit:6536 */
+  INIT_ATTRIBUTES__ReduceAction117(fra.me.REG[0]);
+  parser___ReduceAction117___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction117(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction118[44] = {
-  {(bigint) 2415 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction118 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction118 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2415 /* 3: ReduceAction118 < ReduceAction118: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction118[50] = {
+  {(bigint) 4243 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction118 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction118 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4243 /* 4: ReduceAction118 < ReduceAction118: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47914,14 +103610,12 @@ const classtable_elt_t VFT_ReduceAction118[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction118 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction118 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47929,7 +103623,6 @@ const classtable_elt_t VFT_ReduceAction118[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47937,33 +103630,81 @@ const classtable_elt_t VFT_ReduceAction118[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction118 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction118 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction118___action},
-  {(bigint) 2 /* 42: ReduceAction118 < ReduceAction118: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction118 < ReduceAction118: superclass init_table position */},
   {(bigint) parser___ReduceAction118___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction118(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction118(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction118;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction118(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction118;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction118___init() {
+void CHECKNEW_ReduceAction118(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction118;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction118_parser___ReduceAction118___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction118();
-  parser___ReduceAction118___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6584;
+  fra.me.meth = LOCATE_NEW_ReduceAction118_parser___ReduceAction118___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction118();
+  /* ./parser//parser.nit:6584 */
+  INIT_ATTRIBUTES__ReduceAction118(fra.me.REG[0]);
+  parser___ReduceAction118___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction118(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction119[44] = {
-  {(bigint) 2411 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction119 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction119 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2411 /* 3: ReduceAction119 < ReduceAction119: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction119[50] = {
+  {(bigint) 4199 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction119 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction119 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4199 /* 4: ReduceAction119 < ReduceAction119: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47973,14 +103714,12 @@ const classtable_elt_t VFT_ReduceAction119[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction119 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction119 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -47988,7 +103727,6 @@ const classtable_elt_t VFT_ReduceAction119[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -47996,33 +103734,81 @@ const classtable_elt_t VFT_ReduceAction119[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction119 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction119 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction119___action},
-  {(bigint) 2 /* 42: ReduceAction119 < ReduceAction119: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction119 < ReduceAction119: superclass init_table position */},
   {(bigint) parser___ReduceAction119___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction119(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction119(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction119;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction119(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction119;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction119___init() {
+void CHECKNEW_ReduceAction119(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction119;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction119_parser___ReduceAction119___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction119();
-  parser___ReduceAction119___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6628;
+  fra.me.meth = LOCATE_NEW_ReduceAction119_parser___ReduceAction119___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction119();
+  /* ./parser//parser.nit:6628 */
+  INIT_ATTRIBUTES__ReduceAction119(fra.me.REG[0]);
+  parser___ReduceAction119___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction119(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction120[44] = {
-  {(bigint) 2403 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction120 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction120 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2403 /* 3: ReduceAction120 < ReduceAction120: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction120[50] = {
+  {(bigint) 4175 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction120 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction120 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4175 /* 4: ReduceAction120 < ReduceAction120: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48032,14 +103818,12 @@ const classtable_elt_t VFT_ReduceAction120[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction120 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction120 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48047,7 +103831,6 @@ const classtable_elt_t VFT_ReduceAction120[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48055,33 +103838,81 @@ const classtable_elt_t VFT_ReduceAction120[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction120 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction120 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction120___action},
-  {(bigint) 2 /* 42: ReduceAction120 < ReduceAction120: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction120 < ReduceAction120: superclass init_table position */},
   {(bigint) parser___ReduceAction120___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction120(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction120(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction120;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction120(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction120;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction120___init() {
+void CHECKNEW_ReduceAction120(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction120;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction120_parser___ReduceAction120___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction120();
-  parser___ReduceAction120___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6676;
+  fra.me.meth = LOCATE_NEW_ReduceAction120_parser___ReduceAction120___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction120();
+  /* ./parser//parser.nit:6676 */
+  INIT_ATTRIBUTES__ReduceAction120(fra.me.REG[0]);
+  parser___ReduceAction120___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction120(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction121[44] = {
-  {(bigint) 2399 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction121 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction121 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2399 /* 3: ReduceAction121 < ReduceAction121: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction121[50] = {
+  {(bigint) 4171 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction121 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction121 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4171 /* 4: ReduceAction121 < ReduceAction121: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48091,14 +103922,12 @@ const classtable_elt_t VFT_ReduceAction121[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction121 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction121 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48106,7 +103935,6 @@ const classtable_elt_t VFT_ReduceAction121[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48114,33 +103942,81 @@ const classtable_elt_t VFT_ReduceAction121[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction121 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction121 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction121___action},
-  {(bigint) 2 /* 42: ReduceAction121 < ReduceAction121: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction121 < ReduceAction121: superclass init_table position */},
   {(bigint) parser___ReduceAction121___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction121(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction121(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction121;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction121(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction121;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction121___init() {
+void CHECKNEW_ReduceAction121(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction121;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction121_parser___ReduceAction121___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction121();
-  parser___ReduceAction121___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6728;
+  fra.me.meth = LOCATE_NEW_ReduceAction121_parser___ReduceAction121___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction121();
+  /* ./parser//parser.nit:6728 */
+  INIT_ATTRIBUTES__ReduceAction121(fra.me.REG[0]);
+  parser___ReduceAction121___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction121(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction122[44] = {
-  {(bigint) 2395 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction122 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction122 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2395 /* 3: ReduceAction122 < ReduceAction122: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction122[50] = {
+  {(bigint) 4167 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction122 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction122 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4167 /* 4: ReduceAction122 < ReduceAction122: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48150,14 +104026,12 @@ const classtable_elt_t VFT_ReduceAction122[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction122 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction122 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48165,7 +104039,6 @@ const classtable_elt_t VFT_ReduceAction122[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48173,33 +104046,81 @@ const classtable_elt_t VFT_ReduceAction122[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction122 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction122 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction122___action},
-  {(bigint) 2 /* 42: ReduceAction122 < ReduceAction122: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction122 < ReduceAction122: superclass init_table position */},
   {(bigint) parser___ReduceAction122___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction122(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction122(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction122;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction122(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction122;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction122___init() {
+void CHECKNEW_ReduceAction122(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction122;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction122_parser___ReduceAction122___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction122();
-  parser___ReduceAction122___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6770;
+  fra.me.meth = LOCATE_NEW_ReduceAction122_parser___ReduceAction122___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction122();
+  /* ./parser//parser.nit:6770 */
+  INIT_ATTRIBUTES__ReduceAction122(fra.me.REG[0]);
+  parser___ReduceAction122___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction122(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction123[44] = {
-  {(bigint) 2391 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction123 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction123 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2391 /* 3: ReduceAction123 < ReduceAction123: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction123[50] = {
+  {(bigint) 4163 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction123 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction123 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4163 /* 4: ReduceAction123 < ReduceAction123: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48209,14 +104130,12 @@ const classtable_elt_t VFT_ReduceAction123[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction123 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction123 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48224,7 +104143,6 @@ const classtable_elt_t VFT_ReduceAction123[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48232,33 +104150,81 @@ const classtable_elt_t VFT_ReduceAction123[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction123 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction123 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction123___action},
-  {(bigint) 2 /* 42: ReduceAction123 < ReduceAction123: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction123 < ReduceAction123: superclass init_table position */},
   {(bigint) parser___ReduceAction123___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction123(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction123(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction123;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction123(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction123;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction123___init() {
+void CHECKNEW_ReduceAction123(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction123;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction123_parser___ReduceAction123___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction123();
-  parser___ReduceAction123___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6812;
+  fra.me.meth = LOCATE_NEW_ReduceAction123_parser___ReduceAction123___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction123();
+  /* ./parser//parser.nit:6812 */
+  INIT_ATTRIBUTES__ReduceAction123(fra.me.REG[0]);
+  parser___ReduceAction123___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction123(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction124[44] = {
-  {(bigint) 2387 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction124 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction124 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2387 /* 3: ReduceAction124 < ReduceAction124: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction124[50] = {
+  {(bigint) 4159 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction124 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction124 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4159 /* 4: ReduceAction124 < ReduceAction124: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48268,14 +104234,12 @@ const classtable_elt_t VFT_ReduceAction124[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction124 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction124 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48283,7 +104247,6 @@ const classtable_elt_t VFT_ReduceAction124[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48291,33 +104254,81 @@ const classtable_elt_t VFT_ReduceAction124[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction124 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction124 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction124___action},
-  {(bigint) 2 /* 42: ReduceAction124 < ReduceAction124: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction124 < ReduceAction124: superclass init_table position */},
   {(bigint) parser___ReduceAction124___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction124(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction124(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction124;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction124(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction124;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction124___init() {
+void CHECKNEW_ReduceAction124(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction124;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction124_parser___ReduceAction124___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction124();
-  parser___ReduceAction124___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6854;
+  fra.me.meth = LOCATE_NEW_ReduceAction124_parser___ReduceAction124___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction124();
+  /* ./parser//parser.nit:6854 */
+  INIT_ATTRIBUTES__ReduceAction124(fra.me.REG[0]);
+  parser___ReduceAction124___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction124(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction125[44] = {
-  {(bigint) 2383 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction125 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction125 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2383 /* 3: ReduceAction125 < ReduceAction125: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction125[50] = {
+  {(bigint) 4155 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction125 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction125 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4155 /* 4: ReduceAction125 < ReduceAction125: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48327,14 +104338,12 @@ const classtable_elt_t VFT_ReduceAction125[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction125 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction125 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48342,7 +104351,6 @@ const classtable_elt_t VFT_ReduceAction125[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48350,33 +104358,81 @@ const classtable_elt_t VFT_ReduceAction125[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction125 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction125 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction125___action},
-  {(bigint) 2 /* 42: ReduceAction125 < ReduceAction125: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction125 < ReduceAction125: superclass init_table position */},
   {(bigint) parser___ReduceAction125___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction125(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction125(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction125;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction125(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction125;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction125___init() {
+void CHECKNEW_ReduceAction125(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction125;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction125_parser___ReduceAction125___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction125();
-  parser___ReduceAction125___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6896;
+  fra.me.meth = LOCATE_NEW_ReduceAction125_parser___ReduceAction125___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction125();
+  /* ./parser//parser.nit:6896 */
+  INIT_ATTRIBUTES__ReduceAction125(fra.me.REG[0]);
+  parser___ReduceAction125___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction125(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction126[44] = {
-  {(bigint) 2379 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction126 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction126 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2379 /* 3: ReduceAction126 < ReduceAction126: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction126[50] = {
+  {(bigint) 4151 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction126 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction126 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4151 /* 4: ReduceAction126 < ReduceAction126: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48386,14 +104442,12 @@ const classtable_elt_t VFT_ReduceAction126[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction126 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction126 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48401,7 +104455,6 @@ const classtable_elt_t VFT_ReduceAction126[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48409,33 +104462,81 @@ const classtable_elt_t VFT_ReduceAction126[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction126 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction126 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction126___action},
-  {(bigint) 2 /* 42: ReduceAction126 < ReduceAction126: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction126 < ReduceAction126: superclass init_table position */},
   {(bigint) parser___ReduceAction126___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction126(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction126(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction126;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction126(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction126;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction126___init() {
+void CHECKNEW_ReduceAction126(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction126;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction126_parser___ReduceAction126___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction126();
-  parser___ReduceAction126___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6938;
+  fra.me.meth = LOCATE_NEW_ReduceAction126_parser___ReduceAction126___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction126();
+  /* ./parser//parser.nit:6938 */
+  INIT_ATTRIBUTES__ReduceAction126(fra.me.REG[0]);
+  parser___ReduceAction126___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction126(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction127[44] = {
-  {(bigint) 2375 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction127 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction127 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2375 /* 3: ReduceAction127 < ReduceAction127: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction127[50] = {
+  {(bigint) 4147 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction127 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction127 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4147 /* 4: ReduceAction127 < ReduceAction127: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48445,14 +104546,12 @@ const classtable_elt_t VFT_ReduceAction127[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction127 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction127 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48460,7 +104559,6 @@ const classtable_elt_t VFT_ReduceAction127[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48468,33 +104566,81 @@ const classtable_elt_t VFT_ReduceAction127[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction127 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction127 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction127___action},
-  {(bigint) 2 /* 42: ReduceAction127 < ReduceAction127: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction127 < ReduceAction127: superclass init_table position */},
   {(bigint) parser___ReduceAction127___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction127(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction127(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction127;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction127(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction127;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction127___init() {
+void CHECKNEW_ReduceAction127(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction127;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction127_parser___ReduceAction127___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction127();
-  parser___ReduceAction127___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 6980;
+  fra.me.meth = LOCATE_NEW_ReduceAction127_parser___ReduceAction127___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction127();
+  /* ./parser//parser.nit:6980 */
+  INIT_ATTRIBUTES__ReduceAction127(fra.me.REG[0]);
+  parser___ReduceAction127___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction127(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction128[44] = {
-  {(bigint) 2371 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction128 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction128 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2371 /* 3: ReduceAction128 < ReduceAction128: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction128[50] = {
+  {(bigint) 4143 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction128 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction128 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4143 /* 4: ReduceAction128 < ReduceAction128: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48504,14 +104650,12 @@ const classtable_elt_t VFT_ReduceAction128[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction128 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction128 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48519,7 +104663,6 @@ const classtable_elt_t VFT_ReduceAction128[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48527,33 +104670,81 @@ const classtable_elt_t VFT_ReduceAction128[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction128 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction128 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction128___action},
-  {(bigint) 2 /* 42: ReduceAction128 < ReduceAction128: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction128 < ReduceAction128: superclass init_table position */},
   {(bigint) parser___ReduceAction128___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction128(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction128(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction128;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction128(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction128;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction128___init() {
+void CHECKNEW_ReduceAction128(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction128;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction128_parser___ReduceAction128___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction128();
-  parser___ReduceAction128___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7022;
+  fra.me.meth = LOCATE_NEW_ReduceAction128_parser___ReduceAction128___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction128();
+  /* ./parser//parser.nit:7022 */
+  INIT_ATTRIBUTES__ReduceAction128(fra.me.REG[0]);
+  parser___ReduceAction128___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction128(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction129[44] = {
-  {(bigint) 2367 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction129 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction129 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2367 /* 3: ReduceAction129 < ReduceAction129: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction129[50] = {
+  {(bigint) 4139 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction129 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction129 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4139 /* 4: ReduceAction129 < ReduceAction129: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48563,14 +104754,12 @@ const classtable_elt_t VFT_ReduceAction129[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction129 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction129 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48578,7 +104767,6 @@ const classtable_elt_t VFT_ReduceAction129[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48586,33 +104774,81 @@ const classtable_elt_t VFT_ReduceAction129[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction129 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction129 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction129___action},
-  {(bigint) 2 /* 42: ReduceAction129 < ReduceAction129: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction129 < ReduceAction129: superclass init_table position */},
   {(bigint) parser___ReduceAction129___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction129(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction129(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction129;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction129(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction129;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction129___init() {
+void CHECKNEW_ReduceAction129(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction129;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction129_parser___ReduceAction129___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction129();
-  parser___ReduceAction129___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7064;
+  fra.me.meth = LOCATE_NEW_ReduceAction129_parser___ReduceAction129___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction129();
+  /* ./parser//parser.nit:7064 */
+  INIT_ATTRIBUTES__ReduceAction129(fra.me.REG[0]);
+  parser___ReduceAction129___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction129(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction130[44] = {
-  {(bigint) 2359 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction130 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction130 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2359 /* 3: ReduceAction130 < ReduceAction130: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction130[50] = {
+  {(bigint) 4131 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction130 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction130 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4131 /* 4: ReduceAction130 < ReduceAction130: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48622,14 +104858,12 @@ const classtable_elt_t VFT_ReduceAction130[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction130 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction130 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48637,7 +104871,6 @@ const classtable_elt_t VFT_ReduceAction130[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48645,33 +104878,81 @@ const classtable_elt_t VFT_ReduceAction130[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction130 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction130 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction130___action},
-  {(bigint) 2 /* 42: ReduceAction130 < ReduceAction130: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction130 < ReduceAction130: superclass init_table position */},
   {(bigint) parser___ReduceAction130___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction130(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction130(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction130;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction130(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction130;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction130___init() {
+void CHECKNEW_ReduceAction130(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction130;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction130_parser___ReduceAction130___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction130();
-  parser___ReduceAction130___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7106;
+  fra.me.meth = LOCATE_NEW_ReduceAction130_parser___ReduceAction130___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction130();
+  /* ./parser//parser.nit:7106 */
+  INIT_ATTRIBUTES__ReduceAction130(fra.me.REG[0]);
+  parser___ReduceAction130___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction130(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction131[44] = {
-  {(bigint) 2355 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction131 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction131 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2355 /* 3: ReduceAction131 < ReduceAction131: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction131[50] = {
+  {(bigint) 4127 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction131 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction131 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4127 /* 4: ReduceAction131 < ReduceAction131: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48681,14 +104962,12 @@ const classtable_elt_t VFT_ReduceAction131[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction131 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction131 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48696,7 +104975,6 @@ const classtable_elt_t VFT_ReduceAction131[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48704,33 +104982,81 @@ const classtable_elt_t VFT_ReduceAction131[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction131 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction131 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction131___action},
-  {(bigint) 2 /* 42: ReduceAction131 < ReduceAction131: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction131 < ReduceAction131: superclass init_table position */},
   {(bigint) parser___ReduceAction131___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction131(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction131(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction131;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction131(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction131;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction131___init() {
+void CHECKNEW_ReduceAction131(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction131;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction131_parser___ReduceAction131___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction131();
-  parser___ReduceAction131___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7148;
+  fra.me.meth = LOCATE_NEW_ReduceAction131_parser___ReduceAction131___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction131();
+  /* ./parser//parser.nit:7148 */
+  INIT_ATTRIBUTES__ReduceAction131(fra.me.REG[0]);
+  parser___ReduceAction131___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction131(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction132[44] = {
-  {(bigint) 2351 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction132 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction132 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2351 /* 3: ReduceAction132 < ReduceAction132: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction132[50] = {
+  {(bigint) 4123 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction132 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction132 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4123 /* 4: ReduceAction132 < ReduceAction132: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48740,14 +105066,12 @@ const classtable_elt_t VFT_ReduceAction132[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction132 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction132 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48755,7 +105079,6 @@ const classtable_elt_t VFT_ReduceAction132[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48763,33 +105086,81 @@ const classtable_elt_t VFT_ReduceAction132[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction132 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction132 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction132___action},
-  {(bigint) 2 /* 42: ReduceAction132 < ReduceAction132: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction132 < ReduceAction132: superclass init_table position */},
   {(bigint) parser___ReduceAction132___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction132(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction132(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction132;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction132(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction132;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction132___init() {
+void CHECKNEW_ReduceAction132(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction132;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction132_parser___ReduceAction132___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction132();
-  parser___ReduceAction132___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7190;
+  fra.me.meth = LOCATE_NEW_ReduceAction132_parser___ReduceAction132___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction132();
+  /* ./parser//parser.nit:7190 */
+  INIT_ATTRIBUTES__ReduceAction132(fra.me.REG[0]);
+  parser___ReduceAction132___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction132(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction133[44] = {
-  {(bigint) 2347 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction133 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction133 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2347 /* 3: ReduceAction133 < ReduceAction133: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction133[50] = {
+  {(bigint) 4119 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction133 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction133 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4119 /* 4: ReduceAction133 < ReduceAction133: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48799,14 +105170,12 @@ const classtable_elt_t VFT_ReduceAction133[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction133 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction133 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48814,7 +105183,6 @@ const classtable_elt_t VFT_ReduceAction133[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48822,33 +105190,81 @@ const classtable_elt_t VFT_ReduceAction133[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction133 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction133 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction133___action},
-  {(bigint) 2 /* 42: ReduceAction133 < ReduceAction133: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction133 < ReduceAction133: superclass init_table position */},
   {(bigint) parser___ReduceAction133___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction133(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction133(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction133;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction133(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction133;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction133___init() {
+void CHECKNEW_ReduceAction133(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction133;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction133_parser___ReduceAction133___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction133();
-  parser___ReduceAction133___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7232;
+  fra.me.meth = LOCATE_NEW_ReduceAction133_parser___ReduceAction133___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction133();
+  /* ./parser//parser.nit:7232 */
+  INIT_ATTRIBUTES__ReduceAction133(fra.me.REG[0]);
+  parser___ReduceAction133___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction133(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction134[44] = {
-  {(bigint) 2343 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction134 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction134 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2343 /* 3: ReduceAction134 < ReduceAction134: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction134[50] = {
+  {(bigint) 4115 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction134 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction134 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4115 /* 4: ReduceAction134 < ReduceAction134: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48858,14 +105274,12 @@ const classtable_elt_t VFT_ReduceAction134[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction134 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction134 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48873,7 +105287,6 @@ const classtable_elt_t VFT_ReduceAction134[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48881,33 +105294,81 @@ const classtable_elt_t VFT_ReduceAction134[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction134 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction134 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction134___action},
-  {(bigint) 2 /* 42: ReduceAction134 < ReduceAction134: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction134 < ReduceAction134: superclass init_table position */},
   {(bigint) parser___ReduceAction134___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction134(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction134(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction134;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction134(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction134;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction134___init() {
+void CHECKNEW_ReduceAction134(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction134;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction134_parser___ReduceAction134___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction134();
-  parser___ReduceAction134___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7278;
+  fra.me.meth = LOCATE_NEW_ReduceAction134_parser___ReduceAction134___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction134();
+  /* ./parser//parser.nit:7278 */
+  INIT_ATTRIBUTES__ReduceAction134(fra.me.REG[0]);
+  parser___ReduceAction134___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction134(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction135[44] = {
-  {(bigint) 2339 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction135 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction135 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2339 /* 3: ReduceAction135 < ReduceAction135: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction135[50] = {
+  {(bigint) 4111 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction135 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction135 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4111 /* 4: ReduceAction135 < ReduceAction135: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48917,14 +105378,12 @@ const classtable_elt_t VFT_ReduceAction135[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction135 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction135 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48932,7 +105391,6 @@ const classtable_elt_t VFT_ReduceAction135[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48940,33 +105398,81 @@ const classtable_elt_t VFT_ReduceAction135[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction135 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction135 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction135___action},
-  {(bigint) 2 /* 42: ReduceAction135 < ReduceAction135: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction135 < ReduceAction135: superclass init_table position */},
   {(bigint) parser___ReduceAction135___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction135(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction135(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction135;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction135(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction135;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction135___init() {
+void CHECKNEW_ReduceAction135(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction135;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction135_parser___ReduceAction135___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction135();
-  parser___ReduceAction135___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7320;
+  fra.me.meth = LOCATE_NEW_ReduceAction135_parser___ReduceAction135___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction135();
+  /* ./parser//parser.nit:7320 */
+  INIT_ATTRIBUTES__ReduceAction135(fra.me.REG[0]);
+  parser___ReduceAction135___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction135(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction136[44] = {
-  {(bigint) 2335 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction136 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction136 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2335 /* 3: ReduceAction136 < ReduceAction136: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction136[50] = {
+  {(bigint) 4107 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction136 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction136 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4107 /* 4: ReduceAction136 < ReduceAction136: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48976,14 +105482,12 @@ const classtable_elt_t VFT_ReduceAction136[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction136 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction136 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -48991,7 +105495,6 @@ const classtable_elt_t VFT_ReduceAction136[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -48999,33 +105502,81 @@ const classtable_elt_t VFT_ReduceAction136[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction136 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction136 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction136___action},
-  {(bigint) 2 /* 42: ReduceAction136 < ReduceAction136: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction136 < ReduceAction136: superclass init_table position */},
   {(bigint) parser___ReduceAction136___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction136(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction136(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction136;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction136(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction136;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction136___init() {
+void CHECKNEW_ReduceAction136(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction136;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction136_parser___ReduceAction136___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction136();
-  parser___ReduceAction136___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7366;
+  fra.me.meth = LOCATE_NEW_ReduceAction136_parser___ReduceAction136___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction136();
+  /* ./parser//parser.nit:7366 */
+  INIT_ATTRIBUTES__ReduceAction136(fra.me.REG[0]);
+  parser___ReduceAction136___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction136(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction137[44] = {
-  {(bigint) 2331 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction137 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction137 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2331 /* 3: ReduceAction137 < ReduceAction137: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction137[50] = {
+  {(bigint) 4103 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction137 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction137 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4103 /* 4: ReduceAction137 < ReduceAction137: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49035,14 +105586,12 @@ const classtable_elt_t VFT_ReduceAction137[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction137 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction137 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49050,7 +105599,6 @@ const classtable_elt_t VFT_ReduceAction137[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49058,33 +105606,81 @@ const classtable_elt_t VFT_ReduceAction137[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction137 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction137 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction137___action},
-  {(bigint) 2 /* 42: ReduceAction137 < ReduceAction137: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction137 < ReduceAction137: superclass init_table position */},
   {(bigint) parser___ReduceAction137___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction137(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction137(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction137;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction137(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction137;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction137___init() {
+void CHECKNEW_ReduceAction137(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction137;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction137_parser___ReduceAction137___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction137();
-  parser___ReduceAction137___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7416;
+  fra.me.meth = LOCATE_NEW_ReduceAction137_parser___ReduceAction137___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction137();
+  /* ./parser//parser.nit:7416 */
+  INIT_ATTRIBUTES__ReduceAction137(fra.me.REG[0]);
+  parser___ReduceAction137___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction137(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction138[44] = {
-  {(bigint) 2327 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction138 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction138 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2327 /* 3: ReduceAction138 < ReduceAction138: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction138[50] = {
+  {(bigint) 4099 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction138 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction138 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4099 /* 4: ReduceAction138 < ReduceAction138: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49094,14 +105690,12 @@ const classtable_elt_t VFT_ReduceAction138[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction138 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction138 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49109,7 +105703,6 @@ const classtable_elt_t VFT_ReduceAction138[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49117,33 +105710,81 @@ const classtable_elt_t VFT_ReduceAction138[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction138 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction138 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction138___action},
-  {(bigint) 2 /* 42: ReduceAction138 < ReduceAction138: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction138 < ReduceAction138: superclass init_table position */},
   {(bigint) parser___ReduceAction138___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction138(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction138(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction138;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction138(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction138;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction138___init() {
+void CHECKNEW_ReduceAction138(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction138;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction138_parser___ReduceAction138___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction138();
-  parser___ReduceAction138___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7461;
+  fra.me.meth = LOCATE_NEW_ReduceAction138_parser___ReduceAction138___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction138();
+  /* ./parser//parser.nit:7461 */
+  INIT_ATTRIBUTES__ReduceAction138(fra.me.REG[0]);
+  parser___ReduceAction138___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction138(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction139[44] = {
-  {(bigint) 2323 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction139 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction139 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2323 /* 3: ReduceAction139 < ReduceAction139: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction139[50] = {
+  {(bigint) 4095 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction139 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction139 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4095 /* 4: ReduceAction139 < ReduceAction139: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49153,14 +105794,12 @@ const classtable_elt_t VFT_ReduceAction139[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction139 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction139 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49168,7 +105807,6 @@ const classtable_elt_t VFT_ReduceAction139[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49176,33 +105814,81 @@ const classtable_elt_t VFT_ReduceAction139[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction139 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction139 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction139___action},
-  {(bigint) 2 /* 42: ReduceAction139 < ReduceAction139: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction139 < ReduceAction139: superclass init_table position */},
   {(bigint) parser___ReduceAction139___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction139(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction139(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction139;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction139(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction139;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction139___init() {
+void CHECKNEW_ReduceAction139(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction139;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction139_parser___ReduceAction139___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction139();
-  parser___ReduceAction139___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7506;
+  fra.me.meth = LOCATE_NEW_ReduceAction139_parser___ReduceAction139___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction139();
+  /* ./parser//parser.nit:7506 */
+  INIT_ATTRIBUTES__ReduceAction139(fra.me.REG[0]);
+  parser___ReduceAction139___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction139(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction140[44] = {
-  {(bigint) 2315 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction140 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction140 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2315 /* 3: ReduceAction140 < ReduceAction140: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction140[50] = {
+  {(bigint) 4087 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction140 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction140 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4087 /* 4: ReduceAction140 < ReduceAction140: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49212,14 +105898,12 @@ const classtable_elt_t VFT_ReduceAction140[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction140 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction140 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49227,7 +105911,6 @@ const classtable_elt_t VFT_ReduceAction140[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49235,33 +105918,81 @@ const classtable_elt_t VFT_ReduceAction140[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction140 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction140 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction140___action},
-  {(bigint) 2 /* 42: ReduceAction140 < ReduceAction140: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction140 < ReduceAction140: superclass init_table position */},
   {(bigint) parser___ReduceAction140___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction140(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction140(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction140;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction140(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction140;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction140___init() {
+void CHECKNEW_ReduceAction140(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction140;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction140_parser___ReduceAction140___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction140();
-  parser___ReduceAction140___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7551;
+  fra.me.meth = LOCATE_NEW_ReduceAction140_parser___ReduceAction140___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction140();
+  /* ./parser//parser.nit:7551 */
+  INIT_ATTRIBUTES__ReduceAction140(fra.me.REG[0]);
+  parser___ReduceAction140___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction140(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction141[44] = {
-  {(bigint) 2311 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction141 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction141 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2311 /* 3: ReduceAction141 < ReduceAction141: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction141[50] = {
+  {(bigint) 4083 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction141 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction141 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4083 /* 4: ReduceAction141 < ReduceAction141: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49271,14 +106002,12 @@ const classtable_elt_t VFT_ReduceAction141[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction141 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction141 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49286,7 +106015,6 @@ const classtable_elt_t VFT_ReduceAction141[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49294,33 +106022,81 @@ const classtable_elt_t VFT_ReduceAction141[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction141 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction141 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction141___action},
-  {(bigint) 2 /* 42: ReduceAction141 < ReduceAction141: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction141 < ReduceAction141: superclass init_table position */},
   {(bigint) parser___ReduceAction141___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction141(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction141(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction141;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction141(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction141;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction141___init() {
+void CHECKNEW_ReduceAction141(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction141;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction141_parser___ReduceAction141___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction141();
-  parser___ReduceAction141___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7596;
+  fra.me.meth = LOCATE_NEW_ReduceAction141_parser___ReduceAction141___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction141();
+  /* ./parser//parser.nit:7596 */
+  INIT_ATTRIBUTES__ReduceAction141(fra.me.REG[0]);
+  parser___ReduceAction141___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction141(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction142[44] = {
-  {(bigint) 2307 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction142 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction142 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2307 /* 3: ReduceAction142 < ReduceAction142: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction142[50] = {
+  {(bigint) 4079 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction142 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction142 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4079 /* 4: ReduceAction142 < ReduceAction142: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49330,14 +106106,12 @@ const classtable_elt_t VFT_ReduceAction142[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction142 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction142 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49345,7 +106119,6 @@ const classtable_elt_t VFT_ReduceAction142[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49353,33 +106126,81 @@ const classtable_elt_t VFT_ReduceAction142[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction142 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction142 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction142___action},
-  {(bigint) 2 /* 42: ReduceAction142 < ReduceAction142: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction142 < ReduceAction142: superclass init_table position */},
   {(bigint) parser___ReduceAction142___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction142(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction142(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction142;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction142(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction142;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction142___init() {
+void CHECKNEW_ReduceAction142(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction142;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction142_parser___ReduceAction142___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction142();
-  parser___ReduceAction142___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7641;
+  fra.me.meth = LOCATE_NEW_ReduceAction142_parser___ReduceAction142___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction142();
+  /* ./parser//parser.nit:7641 */
+  INIT_ATTRIBUTES__ReduceAction142(fra.me.REG[0]);
+  parser___ReduceAction142___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction142(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction143[44] = {
-  {(bigint) 2303 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction143 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction143 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2303 /* 3: ReduceAction143 < ReduceAction143: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction143[50] = {
+  {(bigint) 4075 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction143 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction143 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4075 /* 4: ReduceAction143 < ReduceAction143: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49389,14 +106210,12 @@ const classtable_elt_t VFT_ReduceAction143[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction143 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction143 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49404,7 +106223,6 @@ const classtable_elt_t VFT_ReduceAction143[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49412,33 +106230,81 @@ const classtable_elt_t VFT_ReduceAction143[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction143 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction143 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction143___action},
-  {(bigint) 2 /* 42: ReduceAction143 < ReduceAction143: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction143 < ReduceAction143: superclass init_table position */},
   {(bigint) parser___ReduceAction143___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction143(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction143(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction143;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction143(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction143;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction143___init() {
+void CHECKNEW_ReduceAction143(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction143;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction143_parser___ReduceAction143___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction143();
-  parser___ReduceAction143___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7686;
+  fra.me.meth = LOCATE_NEW_ReduceAction143_parser___ReduceAction143___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction143();
+  /* ./parser//parser.nit:7686 */
+  INIT_ATTRIBUTES__ReduceAction143(fra.me.REG[0]);
+  parser___ReduceAction143___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction143(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction144[44] = {
-  {(bigint) 2299 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction144 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction144 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2299 /* 3: ReduceAction144 < ReduceAction144: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction144[50] = {
+  {(bigint) 4071 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction144 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction144 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4071 /* 4: ReduceAction144 < ReduceAction144: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49448,14 +106314,12 @@ const classtable_elt_t VFT_ReduceAction144[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction144 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction144 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49463,7 +106327,6 @@ const classtable_elt_t VFT_ReduceAction144[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49471,33 +106334,81 @@ const classtable_elt_t VFT_ReduceAction144[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction144 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction144 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction144___action},
-  {(bigint) 2 /* 42: ReduceAction144 < ReduceAction144: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction144 < ReduceAction144: superclass init_table position */},
   {(bigint) parser___ReduceAction144___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction144(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction144(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction144;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction144(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction144;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction144___init() {
+void CHECKNEW_ReduceAction144(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction144;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction144_parser___ReduceAction144___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction144();
-  parser___ReduceAction144___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7731;
+  fra.me.meth = LOCATE_NEW_ReduceAction144_parser___ReduceAction144___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction144();
+  /* ./parser//parser.nit:7731 */
+  INIT_ATTRIBUTES__ReduceAction144(fra.me.REG[0]);
+  parser___ReduceAction144___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction144(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction145[44] = {
-  {(bigint) 2295 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction145 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction145 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2295 /* 3: ReduceAction145 < ReduceAction145: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction145[50] = {
+  {(bigint) 4067 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction145 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction145 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4067 /* 4: ReduceAction145 < ReduceAction145: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49507,14 +106418,12 @@ const classtable_elt_t VFT_ReduceAction145[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction145 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction145 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49522,7 +106431,6 @@ const classtable_elt_t VFT_ReduceAction145[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49530,33 +106438,81 @@ const classtable_elt_t VFT_ReduceAction145[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction145 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction145 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction145___action},
-  {(bigint) 2 /* 42: ReduceAction145 < ReduceAction145: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction145 < ReduceAction145: superclass init_table position */},
   {(bigint) parser___ReduceAction145___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction145(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction145(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction145;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction145(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction145;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction145___init() {
+void CHECKNEW_ReduceAction145(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction145;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction145_parser___ReduceAction145___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction145();
-  parser___ReduceAction145___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7776;
+  fra.me.meth = LOCATE_NEW_ReduceAction145_parser___ReduceAction145___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction145();
+  /* ./parser//parser.nit:7776 */
+  INIT_ATTRIBUTES__ReduceAction145(fra.me.REG[0]);
+  parser___ReduceAction145___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction145(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction146[44] = {
-  {(bigint) 2291 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction146 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction146 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2291 /* 3: ReduceAction146 < ReduceAction146: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction146[50] = {
+  {(bigint) 4063 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction146 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction146 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4063 /* 4: ReduceAction146 < ReduceAction146: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49566,14 +106522,12 @@ const classtable_elt_t VFT_ReduceAction146[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction146 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction146 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49581,7 +106535,6 @@ const classtable_elt_t VFT_ReduceAction146[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49589,33 +106542,81 @@ const classtable_elt_t VFT_ReduceAction146[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction146 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction146 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction146___action},
-  {(bigint) 2 /* 42: ReduceAction146 < ReduceAction146: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction146 < ReduceAction146: superclass init_table position */},
   {(bigint) parser___ReduceAction146___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction146(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction146(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction146;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction146(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction146;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction146___init() {
+void CHECKNEW_ReduceAction146(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction146;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction146_parser___ReduceAction146___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction146();
-  parser___ReduceAction146___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7821;
+  fra.me.meth = LOCATE_NEW_ReduceAction146_parser___ReduceAction146___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction146();
+  /* ./parser//parser.nit:7821 */
+  INIT_ATTRIBUTES__ReduceAction146(fra.me.REG[0]);
+  parser___ReduceAction146___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction146(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction147[44] = {
-  {(bigint) 2287 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction147 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction147 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2287 /* 3: ReduceAction147 < ReduceAction147: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction147[50] = {
+  {(bigint) 4059 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction147 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction147 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4059 /* 4: ReduceAction147 < ReduceAction147: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49625,14 +106626,12 @@ const classtable_elt_t VFT_ReduceAction147[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction147 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction147 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49640,7 +106639,6 @@ const classtable_elt_t VFT_ReduceAction147[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49648,33 +106646,81 @@ const classtable_elt_t VFT_ReduceAction147[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction147 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction147 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction147___action},
-  {(bigint) 2 /* 42: ReduceAction147 < ReduceAction147: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction147 < ReduceAction147: superclass init_table position */},
   {(bigint) parser___ReduceAction147___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction147(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction147(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction147;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction147(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction147;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction147___init() {
+void CHECKNEW_ReduceAction147(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction147;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction147_parser___ReduceAction147___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction147();
-  parser___ReduceAction147___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7866;
+  fra.me.meth = LOCATE_NEW_ReduceAction147_parser___ReduceAction147___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction147();
+  /* ./parser//parser.nit:7866 */
+  INIT_ATTRIBUTES__ReduceAction147(fra.me.REG[0]);
+  parser___ReduceAction147___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction147(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction148[44] = {
-  {(bigint) 2283 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction148 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction148 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2283 /* 3: ReduceAction148 < ReduceAction148: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction148[50] = {
+  {(bigint) 4055 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction148 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction148 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4055 /* 4: ReduceAction148 < ReduceAction148: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49684,14 +106730,12 @@ const classtable_elt_t VFT_ReduceAction148[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction148 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction148 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49699,7 +106743,6 @@ const classtable_elt_t VFT_ReduceAction148[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49707,33 +106750,81 @@ const classtable_elt_t VFT_ReduceAction148[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction148 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction148 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction148___action},
-  {(bigint) 2 /* 42: ReduceAction148 < ReduceAction148: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction148 < ReduceAction148: superclass init_table position */},
   {(bigint) parser___ReduceAction148___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction148(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction148(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction148;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction148(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction148;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction148___init() {
+void CHECKNEW_ReduceAction148(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction148;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction148_parser___ReduceAction148___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction148();
-  parser___ReduceAction148___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7911;
+  fra.me.meth = LOCATE_NEW_ReduceAction148_parser___ReduceAction148___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction148();
+  /* ./parser//parser.nit:7911 */
+  INIT_ATTRIBUTES__ReduceAction148(fra.me.REG[0]);
+  parser___ReduceAction148___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction148(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction149[44] = {
-  {(bigint) 2279 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction149 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction149 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2279 /* 3: ReduceAction149 < ReduceAction149: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction149[50] = {
+  {(bigint) 4051 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction149 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction149 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4051 /* 4: ReduceAction149 < ReduceAction149: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49743,14 +106834,12 @@ const classtable_elt_t VFT_ReduceAction149[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction149 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction149 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49758,7 +106847,6 @@ const classtable_elt_t VFT_ReduceAction149[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49766,33 +106854,81 @@ const classtable_elt_t VFT_ReduceAction149[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction149 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction149 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction149___action},
-  {(bigint) 2 /* 42: ReduceAction149 < ReduceAction149: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction149 < ReduceAction149: superclass init_table position */},
   {(bigint) parser___ReduceAction149___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction149(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction149(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction149;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction149(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction149;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction149___init() {
+void CHECKNEW_ReduceAction149(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction149;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction149_parser___ReduceAction149___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction149();
-  parser___ReduceAction149___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7956;
+  fra.me.meth = LOCATE_NEW_ReduceAction149_parser___ReduceAction149___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction149();
+  /* ./parser//parser.nit:7956 */
+  INIT_ATTRIBUTES__ReduceAction149(fra.me.REG[0]);
+  parser___ReduceAction149___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction149(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction150[44] = {
-  {(bigint) 2271 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction150 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction150 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2271 /* 3: ReduceAction150 < ReduceAction150: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction150[50] = {
+  {(bigint) 4043 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction150 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction150 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4043 /* 4: ReduceAction150 < ReduceAction150: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49802,14 +106938,12 @@ const classtable_elt_t VFT_ReduceAction150[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction150 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction150 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49817,7 +106951,6 @@ const classtable_elt_t VFT_ReduceAction150[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49825,33 +106958,81 @@ const classtable_elt_t VFT_ReduceAction150[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction150 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction150 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction150___action},
-  {(bigint) 2 /* 42: ReduceAction150 < ReduceAction150: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction150 < ReduceAction150: superclass init_table position */},
   {(bigint) parser___ReduceAction150___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction150(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction150(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction150;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction150(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction150;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction150___init() {
+void CHECKNEW_ReduceAction150(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction150;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction150_parser___ReduceAction150___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction150();
-  parser___ReduceAction150___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8005;
+  fra.me.meth = LOCATE_NEW_ReduceAction150_parser___ReduceAction150___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction150();
+  /* ./parser//parser.nit:8005 */
+  INIT_ATTRIBUTES__ReduceAction150(fra.me.REG[0]);
+  parser___ReduceAction150___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction150(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction151[44] = {
-  {(bigint) 2267 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction151 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction151 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2267 /* 3: ReduceAction151 < ReduceAction151: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction151[50] = {
+  {(bigint) 4039 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction151 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction151 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4039 /* 4: ReduceAction151 < ReduceAction151: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49861,14 +107042,12 @@ const classtable_elt_t VFT_ReduceAction151[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction151 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction151 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49876,7 +107055,6 @@ const classtable_elt_t VFT_ReduceAction151[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49884,33 +107062,81 @@ const classtable_elt_t VFT_ReduceAction151[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction151 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction151 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction151___action},
-  {(bigint) 2 /* 42: ReduceAction151 < ReduceAction151: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction151 < ReduceAction151: superclass init_table position */},
   {(bigint) parser___ReduceAction151___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction151(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction151(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction151;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction151(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction151;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction151___init() {
+void CHECKNEW_ReduceAction151(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction151;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction151_parser___ReduceAction151___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction151();
-  parser___ReduceAction151___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8050;
+  fra.me.meth = LOCATE_NEW_ReduceAction151_parser___ReduceAction151___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction151();
+  /* ./parser//parser.nit:8050 */
+  INIT_ATTRIBUTES__ReduceAction151(fra.me.REG[0]);
+  parser___ReduceAction151___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction151(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction152[44] = {
-  {(bigint) 2263 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction152 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction152 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2263 /* 3: ReduceAction152 < ReduceAction152: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction152[50] = {
+  {(bigint) 4035 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction152 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction152 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4035 /* 4: ReduceAction152 < ReduceAction152: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49920,14 +107146,12 @@ const classtable_elt_t VFT_ReduceAction152[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction152 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction152 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49935,7 +107159,6 @@ const classtable_elt_t VFT_ReduceAction152[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -49943,33 +107166,81 @@ const classtable_elt_t VFT_ReduceAction152[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction152 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction152 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction152___action},
-  {(bigint) 2 /* 42: ReduceAction152 < ReduceAction152: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction152 < ReduceAction152: superclass init_table position */},
   {(bigint) parser___ReduceAction152___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction152(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction152(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction152;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction152(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction152;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction152___init() {
+void CHECKNEW_ReduceAction152(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction152;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction152_parser___ReduceAction152___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction152();
-  parser___ReduceAction152___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8099;
+  fra.me.meth = LOCATE_NEW_ReduceAction152_parser___ReduceAction152___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction152();
+  /* ./parser//parser.nit:8099 */
+  INIT_ATTRIBUTES__ReduceAction152(fra.me.REG[0]);
+  parser___ReduceAction152___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction152(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction153[44] = {
-  {(bigint) 2259 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction153 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction153 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2259 /* 3: ReduceAction153 < ReduceAction153: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction153[50] = {
+  {(bigint) 4031 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction153 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction153 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4031 /* 4: ReduceAction153 < ReduceAction153: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49979,14 +107250,12 @@ const classtable_elt_t VFT_ReduceAction153[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction153 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction153 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -49994,7 +107263,6 @@ const classtable_elt_t VFT_ReduceAction153[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50002,33 +107270,81 @@ const classtable_elt_t VFT_ReduceAction153[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction153 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction153 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction153___action},
-  {(bigint) 2 /* 42: ReduceAction153 < ReduceAction153: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction153 < ReduceAction153: superclass init_table position */},
   {(bigint) parser___ReduceAction153___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction153(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction153(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction153;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction153(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction153;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction153___init() {
+void CHECKNEW_ReduceAction153(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction153;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction153_parser___ReduceAction153___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction153();
-  parser___ReduceAction153___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8152;
+  fra.me.meth = LOCATE_NEW_ReduceAction153_parser___ReduceAction153___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction153();
+  /* ./parser//parser.nit:8152 */
+  INIT_ATTRIBUTES__ReduceAction153(fra.me.REG[0]);
+  parser___ReduceAction153___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction153(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction154[44] = {
-  {(bigint) 2255 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction154 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction154 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2255 /* 3: ReduceAction154 < ReduceAction154: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction154[50] = {
+  {(bigint) 4027 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction154 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction154 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4027 /* 4: ReduceAction154 < ReduceAction154: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50038,14 +107354,12 @@ const classtable_elt_t VFT_ReduceAction154[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction154 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction154 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50053,7 +107367,6 @@ const classtable_elt_t VFT_ReduceAction154[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50061,33 +107374,81 @@ const classtable_elt_t VFT_ReduceAction154[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction154 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction154 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction154___action},
-  {(bigint) 2 /* 42: ReduceAction154 < ReduceAction154: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction154 < ReduceAction154: superclass init_table position */},
   {(bigint) parser___ReduceAction154___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction154(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction154(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction154;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction154(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction154;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction154___init() {
+void CHECKNEW_ReduceAction154(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction154;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction154_parser___ReduceAction154___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction154();
-  parser___ReduceAction154___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8194;
+  fra.me.meth = LOCATE_NEW_ReduceAction154_parser___ReduceAction154___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction154();
+  /* ./parser//parser.nit:8194 */
+  INIT_ATTRIBUTES__ReduceAction154(fra.me.REG[0]);
+  parser___ReduceAction154___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction154(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction155[44] = {
-  {(bigint) 2251 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction155 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction155 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2251 /* 3: ReduceAction155 < ReduceAction155: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction155[50] = {
+  {(bigint) 4023 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction155 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction155 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4023 /* 4: ReduceAction155 < ReduceAction155: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50097,14 +107458,12 @@ const classtable_elt_t VFT_ReduceAction155[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction155 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction155 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50112,7 +107471,6 @@ const classtable_elt_t VFT_ReduceAction155[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50120,33 +107478,81 @@ const classtable_elt_t VFT_ReduceAction155[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction155 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction155 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction155___action},
-  {(bigint) 2 /* 42: ReduceAction155 < ReduceAction155: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction155 < ReduceAction155: superclass init_table position */},
   {(bigint) parser___ReduceAction155___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction155(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction155(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction155;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction155(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction155;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction155___init() {
+void CHECKNEW_ReduceAction155(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction155;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction155_parser___ReduceAction155___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction155();
-  parser___ReduceAction155___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8236;
+  fra.me.meth = LOCATE_NEW_ReduceAction155_parser___ReduceAction155___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction155();
+  /* ./parser//parser.nit:8236 */
+  INIT_ATTRIBUTES__ReduceAction155(fra.me.REG[0]);
+  parser___ReduceAction155___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction155(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction156[44] = {
-  {(bigint) 2247 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction156 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction156 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2247 /* 3: ReduceAction156 < ReduceAction156: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction156[50] = {
+  {(bigint) 4019 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction156 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction156 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4019 /* 4: ReduceAction156 < ReduceAction156: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50156,14 +107562,12 @@ const classtable_elt_t VFT_ReduceAction156[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction156 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction156 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50171,7 +107575,6 @@ const classtable_elt_t VFT_ReduceAction156[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50179,33 +107582,81 @@ const classtable_elt_t VFT_ReduceAction156[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction156 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction156 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction156___action},
-  {(bigint) 2 /* 42: ReduceAction156 < ReduceAction156: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction156 < ReduceAction156: superclass init_table position */},
   {(bigint) parser___ReduceAction156___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction156(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction156(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction156;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction156(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction156;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction156___init() {
+void CHECKNEW_ReduceAction156(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction156;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction156_parser___ReduceAction156___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction156();
-  parser___ReduceAction156___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8278;
+  fra.me.meth = LOCATE_NEW_ReduceAction156_parser___ReduceAction156___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction156();
+  /* ./parser//parser.nit:8278 */
+  INIT_ATTRIBUTES__ReduceAction156(fra.me.REG[0]);
+  parser___ReduceAction156___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction156(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction157[44] = {
-  {(bigint) 2243 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction157 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction157 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2243 /* 3: ReduceAction157 < ReduceAction157: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction157[50] = {
+  {(bigint) 4015 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction157 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction157 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4015 /* 4: ReduceAction157 < ReduceAction157: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50215,22 +107666,19 @@ const classtable_elt_t VFT_ReduceAction157[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction157 < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction157 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
   {(bigint) kernel___Object_____neq},
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50238,33 +107686,81 @@ const classtable_elt_t VFT_ReduceAction157[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction157 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction157 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction157___action},
-  {(bigint) 2 /* 42: ReduceAction157 < ReduceAction157: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction157 < ReduceAction157: superclass init_table position */},
   {(bigint) parser___ReduceAction157___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction157(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction157(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction157;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction157(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction157;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction157___init() {
+void CHECKNEW_ReduceAction157(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction157;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction157_parser___ReduceAction157___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction157();
-  parser___ReduceAction157___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8320;
+  fra.me.meth = LOCATE_NEW_ReduceAction157_parser___ReduceAction157___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction157();
+  /* ./parser//parser.nit:8320 */
+  INIT_ATTRIBUTES__ReduceAction157(fra.me.REG[0]);
+  parser___ReduceAction157___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction157(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction158[44] = {
-  {(bigint) 2239 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction158 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction158 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2239 /* 3: ReduceAction158 < ReduceAction158: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction158[50] = {
+  {(bigint) 4011 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction158 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction158 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4011 /* 4: ReduceAction158 < ReduceAction158: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50274,14 +107770,12 @@ const classtable_elt_t VFT_ReduceAction158[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction158 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction158 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50289,7 +107783,6 @@ const classtable_elt_t VFT_ReduceAction158[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50297,33 +107790,81 @@ const classtable_elt_t VFT_ReduceAction158[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction158 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction158 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction158___action},
-  {(bigint) 2 /* 42: ReduceAction158 < ReduceAction158: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction158 < ReduceAction158: superclass init_table position */},
   {(bigint) parser___ReduceAction158___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction158(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction158(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction158;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction158(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction158;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction158___init() {
+void CHECKNEW_ReduceAction158(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction158;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction158_parser___ReduceAction158___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction158();
-  parser___ReduceAction158___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8362;
+  fra.me.meth = LOCATE_NEW_ReduceAction158_parser___ReduceAction158___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction158();
+  /* ./parser//parser.nit:8362 */
+  INIT_ATTRIBUTES__ReduceAction158(fra.me.REG[0]);
+  parser___ReduceAction158___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction158(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction159[44] = {
-  {(bigint) 2235 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction159 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction159 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2235 /* 3: ReduceAction159 < ReduceAction159: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction159[50] = {
+  {(bigint) 4007 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction159 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction159 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4007 /* 4: ReduceAction159 < ReduceAction159: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50333,14 +107874,12 @@ const classtable_elt_t VFT_ReduceAction159[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction159 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction159 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50348,7 +107887,6 @@ const classtable_elt_t VFT_ReduceAction159[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50356,33 +107894,81 @@ const classtable_elt_t VFT_ReduceAction159[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction159 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction159 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction159___action},
-  {(bigint) 2 /* 42: ReduceAction159 < ReduceAction159: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction159 < ReduceAction159: superclass init_table position */},
   {(bigint) parser___ReduceAction159___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction159(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction159(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction159;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction159(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction159;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction159___init() {
+void CHECKNEW_ReduceAction159(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction159;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction159_parser___ReduceAction159___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction159();
-  parser___ReduceAction159___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8404;
+  fra.me.meth = LOCATE_NEW_ReduceAction159_parser___ReduceAction159___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction159();
+  /* ./parser//parser.nit:8404 */
+  INIT_ATTRIBUTES__ReduceAction159(fra.me.REG[0]);
+  parser___ReduceAction159___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction159(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction160[44] = {
-  {(bigint) 2227 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction160 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction160 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2227 /* 3: ReduceAction160 < ReduceAction160: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction160[50] = {
+  {(bigint) 3999 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction160 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction160 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3999 /* 4: ReduceAction160 < ReduceAction160: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50392,14 +107978,12 @@ const classtable_elt_t VFT_ReduceAction160[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction160 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction160 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50407,7 +107991,6 @@ const classtable_elt_t VFT_ReduceAction160[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50415,33 +107998,81 @@ const classtable_elt_t VFT_ReduceAction160[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction160 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction160 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction160___action},
-  {(bigint) 2 /* 42: ReduceAction160 < ReduceAction160: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction160 < ReduceAction160: superclass init_table position */},
   {(bigint) parser___ReduceAction160___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction160(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction160(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction160;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction160(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction160;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction160___init() {
+void CHECKNEW_ReduceAction160(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction160;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction160_parser___ReduceAction160___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction160();
-  parser___ReduceAction160___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8446;
+  fra.me.meth = LOCATE_NEW_ReduceAction160_parser___ReduceAction160___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction160();
+  /* ./parser//parser.nit:8446 */
+  INIT_ATTRIBUTES__ReduceAction160(fra.me.REG[0]);
+  parser___ReduceAction160___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction160(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction161[44] = {
-  {(bigint) 2223 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction161 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction161 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2223 /* 3: ReduceAction161 < ReduceAction161: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction161[50] = {
+  {(bigint) 3995 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction161 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction161 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3995 /* 4: ReduceAction161 < ReduceAction161: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50451,14 +108082,12 @@ const classtable_elt_t VFT_ReduceAction161[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction161 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction161 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50466,7 +108095,6 @@ const classtable_elt_t VFT_ReduceAction161[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50474,33 +108102,81 @@ const classtable_elt_t VFT_ReduceAction161[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction161 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction161 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction161___action},
-  {(bigint) 2 /* 42: ReduceAction161 < ReduceAction161: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction161 < ReduceAction161: superclass init_table position */},
   {(bigint) parser___ReduceAction161___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction161(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction161(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction161;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction161(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction161;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction161___init() {
+void CHECKNEW_ReduceAction161(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction161;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction161_parser___ReduceAction161___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction161();
-  parser___ReduceAction161___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8488;
+  fra.me.meth = LOCATE_NEW_ReduceAction161_parser___ReduceAction161___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction161();
+  /* ./parser//parser.nit:8488 */
+  INIT_ATTRIBUTES__ReduceAction161(fra.me.REG[0]);
+  parser___ReduceAction161___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction161(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction162[44] = {
-  {(bigint) 2219 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction162 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction162 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2219 /* 3: ReduceAction162 < ReduceAction162: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction162[50] = {
+  {(bigint) 3991 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction162 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction162 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3991 /* 4: ReduceAction162 < ReduceAction162: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50510,14 +108186,12 @@ const classtable_elt_t VFT_ReduceAction162[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction162 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction162 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50525,7 +108199,6 @@ const classtable_elt_t VFT_ReduceAction162[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50533,33 +108206,81 @@ const classtable_elt_t VFT_ReduceAction162[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction162 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction162 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction162___action},
-  {(bigint) 2 /* 42: ReduceAction162 < ReduceAction162: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction162 < ReduceAction162: superclass init_table position */},
   {(bigint) parser___ReduceAction162___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction162(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction162(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction162;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction162(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction162;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction162___init() {
+void CHECKNEW_ReduceAction162(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction162;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction162_parser___ReduceAction162___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction162();
-  parser___ReduceAction162___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8530;
+  fra.me.meth = LOCATE_NEW_ReduceAction162_parser___ReduceAction162___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction162();
+  /* ./parser//parser.nit:8530 */
+  INIT_ATTRIBUTES__ReduceAction162(fra.me.REG[0]);
+  parser___ReduceAction162___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction162(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction163[44] = {
-  {(bigint) 2215 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction163 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction163 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2215 /* 3: ReduceAction163 < ReduceAction163: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction163[50] = {
+  {(bigint) 3987 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction163 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction163 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3987 /* 4: ReduceAction163 < ReduceAction163: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50569,14 +108290,12 @@ const classtable_elt_t VFT_ReduceAction163[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction163 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction163 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50584,7 +108303,6 @@ const classtable_elt_t VFT_ReduceAction163[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50592,33 +108310,81 @@ const classtable_elt_t VFT_ReduceAction163[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction163 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction163 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction163___action},
-  {(bigint) 2 /* 42: ReduceAction163 < ReduceAction163: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction163 < ReduceAction163: superclass init_table position */},
   {(bigint) parser___ReduceAction163___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction163(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction163(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction163;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction163(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction163;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction163___init() {
+void CHECKNEW_ReduceAction163(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction163;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction163_parser___ReduceAction163___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction163();
-  parser___ReduceAction163___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8572;
+  fra.me.meth = LOCATE_NEW_ReduceAction163_parser___ReduceAction163___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction163();
+  /* ./parser//parser.nit:8572 */
+  INIT_ATTRIBUTES__ReduceAction163(fra.me.REG[0]);
+  parser___ReduceAction163___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction163(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction164[44] = {
-  {(bigint) 2211 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction164 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction164 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2211 /* 3: ReduceAction164 < ReduceAction164: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction164[50] = {
+  {(bigint) 3983 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction164 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction164 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3983 /* 4: ReduceAction164 < ReduceAction164: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50628,14 +108394,12 @@ const classtable_elt_t VFT_ReduceAction164[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction164 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction164 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50643,7 +108407,6 @@ const classtable_elt_t VFT_ReduceAction164[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50651,33 +108414,81 @@ const classtable_elt_t VFT_ReduceAction164[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction164 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction164 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction164___action},
-  {(bigint) 2 /* 42: ReduceAction164 < ReduceAction164: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction164 < ReduceAction164: superclass init_table position */},
   {(bigint) parser___ReduceAction164___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction164(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction164(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction164;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction164(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction164;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction164___init() {
+void CHECKNEW_ReduceAction164(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction164;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction164_parser___ReduceAction164___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction164();
-  parser___ReduceAction164___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8614;
+  fra.me.meth = LOCATE_NEW_ReduceAction164_parser___ReduceAction164___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction164();
+  /* ./parser//parser.nit:8614 */
+  INIT_ATTRIBUTES__ReduceAction164(fra.me.REG[0]);
+  parser___ReduceAction164___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction164(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction165[44] = {
-  {(bigint) 2207 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction165 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction165 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2207 /* 3: ReduceAction165 < ReduceAction165: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction165[50] = {
+  {(bigint) 3979 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction165 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction165 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3979 /* 4: ReduceAction165 < ReduceAction165: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50687,14 +108498,12 @@ const classtable_elt_t VFT_ReduceAction165[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction165 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction165 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50702,7 +108511,6 @@ const classtable_elt_t VFT_ReduceAction165[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50710,33 +108518,81 @@ const classtable_elt_t VFT_ReduceAction165[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction165 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction165 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction165___action},
-  {(bigint) 2 /* 42: ReduceAction165 < ReduceAction165: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction165 < ReduceAction165: superclass init_table position */},
   {(bigint) parser___ReduceAction165___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction165(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction165(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction165;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction165(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction165;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction165___init() {
+void CHECKNEW_ReduceAction165(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction165;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction165_parser___ReduceAction165___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction165();
-  parser___ReduceAction165___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8656;
+  fra.me.meth = LOCATE_NEW_ReduceAction165_parser___ReduceAction165___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction165();
+  /* ./parser//parser.nit:8656 */
+  INIT_ATTRIBUTES__ReduceAction165(fra.me.REG[0]);
+  parser___ReduceAction165___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction165(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction166[44] = {
-  {(bigint) 2203 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction166 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction166 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2203 /* 3: ReduceAction166 < ReduceAction166: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction166[50] = {
+  {(bigint) 3975 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction166 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction166 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3975 /* 4: ReduceAction166 < ReduceAction166: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50746,14 +108602,12 @@ const classtable_elt_t VFT_ReduceAction166[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction166 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction166 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50761,7 +108615,6 @@ const classtable_elt_t VFT_ReduceAction166[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50769,33 +108622,81 @@ const classtable_elt_t VFT_ReduceAction166[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction166 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction166 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction166___action},
-  {(bigint) 2 /* 42: ReduceAction166 < ReduceAction166: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction166 < ReduceAction166: superclass init_table position */},
   {(bigint) parser___ReduceAction166___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction166(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction166(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction166;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction166(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction166;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction166___init() {
+void CHECKNEW_ReduceAction166(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction166;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction166_parser___ReduceAction166___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction166();
-  parser___ReduceAction166___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8702;
+  fra.me.meth = LOCATE_NEW_ReduceAction166_parser___ReduceAction166___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction166();
+  /* ./parser//parser.nit:8702 */
+  INIT_ATTRIBUTES__ReduceAction166(fra.me.REG[0]);
+  parser___ReduceAction166___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction166(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction167[44] = {
-  {(bigint) 2199 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction167 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction167 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2199 /* 3: ReduceAction167 < ReduceAction167: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction167[50] = {
+  {(bigint) 3971 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction167 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction167 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3971 /* 4: ReduceAction167 < ReduceAction167: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50805,14 +108706,12 @@ const classtable_elt_t VFT_ReduceAction167[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction167 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction167 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50820,7 +108719,6 @@ const classtable_elt_t VFT_ReduceAction167[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50828,33 +108726,81 @@ const classtable_elt_t VFT_ReduceAction167[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction167 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction167 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction167___action},
-  {(bigint) 2 /* 42: ReduceAction167 < ReduceAction167: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction167 < ReduceAction167: superclass init_table position */},
   {(bigint) parser___ReduceAction167___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction167(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction167(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction167;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction167(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction167;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction167___init() {
+void CHECKNEW_ReduceAction167(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction167;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction167_parser___ReduceAction167___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction167();
-  parser___ReduceAction167___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8744;
+  fra.me.meth = LOCATE_NEW_ReduceAction167_parser___ReduceAction167___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction167();
+  /* ./parser//parser.nit:8744 */
+  INIT_ATTRIBUTES__ReduceAction167(fra.me.REG[0]);
+  parser___ReduceAction167___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction167(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction168[44] = {
-  {(bigint) 2195 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction168 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction168 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2195 /* 3: ReduceAction168 < ReduceAction168: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction168[50] = {
+  {(bigint) 3967 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction168 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction168 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3967 /* 4: ReduceAction168 < ReduceAction168: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50864,14 +108810,12 @@ const classtable_elt_t VFT_ReduceAction168[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction168 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction168 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50879,7 +108823,6 @@ const classtable_elt_t VFT_ReduceAction168[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50887,33 +108830,81 @@ const classtable_elt_t VFT_ReduceAction168[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction168 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction168 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction168___action},
-  {(bigint) 2 /* 42: ReduceAction168 < ReduceAction168: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction168 < ReduceAction168: superclass init_table position */},
   {(bigint) parser___ReduceAction168___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction168(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction168(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction168;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction168(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction168;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction168___init() {
+void CHECKNEW_ReduceAction168(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction168;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction168_parser___ReduceAction168___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction168();
-  parser___ReduceAction168___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8789;
+  fra.me.meth = LOCATE_NEW_ReduceAction168_parser___ReduceAction168___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction168();
+  /* ./parser//parser.nit:8789 */
+  INIT_ATTRIBUTES__ReduceAction168(fra.me.REG[0]);
+  parser___ReduceAction168___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction168(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction169[44] = {
-  {(bigint) 2191 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction169 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction169 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2191 /* 3: ReduceAction169 < ReduceAction169: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction169[50] = {
+  {(bigint) 3963 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction169 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction169 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3963 /* 4: ReduceAction169 < ReduceAction169: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50923,14 +108914,12 @@ const classtable_elt_t VFT_ReduceAction169[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction169 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction169 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50938,7 +108927,6 @@ const classtable_elt_t VFT_ReduceAction169[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -50946,33 +108934,81 @@ const classtable_elt_t VFT_ReduceAction169[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction169 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction169 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction169___action},
-  {(bigint) 2 /* 42: ReduceAction169 < ReduceAction169: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction169 < ReduceAction169: superclass init_table position */},
   {(bigint) parser___ReduceAction169___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction169(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction169(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction169;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction169(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction169;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction169___init() {
+void CHECKNEW_ReduceAction169(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction169;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction169_parser___ReduceAction169___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction169();
-  parser___ReduceAction169___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8834;
+  fra.me.meth = LOCATE_NEW_ReduceAction169_parser___ReduceAction169___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction169();
+  /* ./parser//parser.nit:8834 */
+  INIT_ATTRIBUTES__ReduceAction169(fra.me.REG[0]);
+  parser___ReduceAction169___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction169(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction170[44] = {
-  {(bigint) 2183 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction170 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction170 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2183 /* 3: ReduceAction170 < ReduceAction170: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction170[50] = {
+  {(bigint) 3955 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction170 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction170 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3955 /* 4: ReduceAction170 < ReduceAction170: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50982,14 +109018,12 @@ const classtable_elt_t VFT_ReduceAction170[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction170 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction170 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -50997,7 +109031,6 @@ const classtable_elt_t VFT_ReduceAction170[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51005,33 +109038,81 @@ const classtable_elt_t VFT_ReduceAction170[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction170 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction170 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction170___action},
-  {(bigint) 2 /* 42: ReduceAction170 < ReduceAction170: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction170 < ReduceAction170: superclass init_table position */},
   {(bigint) parser___ReduceAction170___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction170(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction170(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction170;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction170(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction170;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction170___init() {
+void CHECKNEW_ReduceAction170(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction170;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction170_parser___ReduceAction170___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction170();
-  parser___ReduceAction170___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8879;
+  fra.me.meth = LOCATE_NEW_ReduceAction170_parser___ReduceAction170___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction170();
+  /* ./parser//parser.nit:8879 */
+  INIT_ATTRIBUTES__ReduceAction170(fra.me.REG[0]);
+  parser___ReduceAction170___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction170(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction171[44] = {
-  {(bigint) 2179 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction171 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction171 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2179 /* 3: ReduceAction171 < ReduceAction171: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction171[50] = {
+  {(bigint) 3951 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction171 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction171 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3951 /* 4: ReduceAction171 < ReduceAction171: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51041,14 +109122,12 @@ const classtable_elt_t VFT_ReduceAction171[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction171 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction171 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51056,7 +109135,6 @@ const classtable_elt_t VFT_ReduceAction171[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51064,33 +109142,81 @@ const classtable_elt_t VFT_ReduceAction171[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction171 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction171 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction171___action},
-  {(bigint) 2 /* 42: ReduceAction171 < ReduceAction171: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction171 < ReduceAction171: superclass init_table position */},
   {(bigint) parser___ReduceAction171___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction171(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction171(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction171;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction171(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction171;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction171___init() {
+void CHECKNEW_ReduceAction171(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction171;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction171_parser___ReduceAction171___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction171();
-  parser___ReduceAction171___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8924;
+  fra.me.meth = LOCATE_NEW_ReduceAction171_parser___ReduceAction171___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction171();
+  /* ./parser//parser.nit:8924 */
+  INIT_ATTRIBUTES__ReduceAction171(fra.me.REG[0]);
+  parser___ReduceAction171___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction171(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction172[44] = {
-  {(bigint) 2175 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction172 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction172 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2175 /* 3: ReduceAction172 < ReduceAction172: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction172[50] = {
+  {(bigint) 3947 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction172 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction172 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3947 /* 4: ReduceAction172 < ReduceAction172: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51100,14 +109226,12 @@ const classtable_elt_t VFT_ReduceAction172[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction172 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction172 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51115,7 +109239,6 @@ const classtable_elt_t VFT_ReduceAction172[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51123,33 +109246,81 @@ const classtable_elt_t VFT_ReduceAction172[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction172 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction172 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction172___action},
-  {(bigint) 2 /* 42: ReduceAction172 < ReduceAction172: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction172 < ReduceAction172: superclass init_table position */},
   {(bigint) parser___ReduceAction172___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction172(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction172(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction172;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction172(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction172;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction172___init() {
+void CHECKNEW_ReduceAction172(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction172;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction172_parser___ReduceAction172___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction172();
-  parser___ReduceAction172___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 8969;
+  fra.me.meth = LOCATE_NEW_ReduceAction172_parser___ReduceAction172___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction172();
+  /* ./parser//parser.nit:8969 */
+  INIT_ATTRIBUTES__ReduceAction172(fra.me.REG[0]);
+  parser___ReduceAction172___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction172(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction173[44] = {
-  {(bigint) 2171 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction173 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction173 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2171 /* 3: ReduceAction173 < ReduceAction173: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction173[50] = {
+  {(bigint) 3943 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction173 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction173 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3943 /* 4: ReduceAction173 < ReduceAction173: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51159,14 +109330,12 @@ const classtable_elt_t VFT_ReduceAction173[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction173 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction173 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51174,7 +109343,6 @@ const classtable_elt_t VFT_ReduceAction173[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51182,33 +109350,81 @@ const classtable_elt_t VFT_ReduceAction173[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction173 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction173 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction173___action},
-  {(bigint) 2 /* 42: ReduceAction173 < ReduceAction173: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction173 < ReduceAction173: superclass init_table position */},
   {(bigint) parser___ReduceAction173___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction173(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction173(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction173;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction173(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction173;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction173___init() {
+void CHECKNEW_ReduceAction173(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction173;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction173_parser___ReduceAction173___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction173();
-  parser___ReduceAction173___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9014;
+  fra.me.meth = LOCATE_NEW_ReduceAction173_parser___ReduceAction173___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction173();
+  /* ./parser//parser.nit:9014 */
+  INIT_ATTRIBUTES__ReduceAction173(fra.me.REG[0]);
+  parser___ReduceAction173___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction173(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction174[44] = {
-  {(bigint) 2167 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction174 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction174 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2167 /* 3: ReduceAction174 < ReduceAction174: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction174[50] = {
+  {(bigint) 3939 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction174 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction174 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3939 /* 4: ReduceAction174 < ReduceAction174: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51218,14 +109434,12 @@ const classtable_elt_t VFT_ReduceAction174[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction174 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction174 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51233,7 +109447,6 @@ const classtable_elt_t VFT_ReduceAction174[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51241,33 +109454,81 @@ const classtable_elt_t VFT_ReduceAction174[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction174 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction174 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction174___action},
-  {(bigint) 2 /* 42: ReduceAction174 < ReduceAction174: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction174 < ReduceAction174: superclass init_table position */},
   {(bigint) parser___ReduceAction174___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction174(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction174(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction174;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction174(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction174;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction174___init() {
+void CHECKNEW_ReduceAction174(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction174;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction174_parser___ReduceAction174___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction174();
-  parser___ReduceAction174___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9059;
+  fra.me.meth = LOCATE_NEW_ReduceAction174_parser___ReduceAction174___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction174();
+  /* ./parser//parser.nit:9059 */
+  INIT_ATTRIBUTES__ReduceAction174(fra.me.REG[0]);
+  parser___ReduceAction174___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction174(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction175[44] = {
-  {(bigint) 2163 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction175 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction175 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2163 /* 3: ReduceAction175 < ReduceAction175: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction175[50] = {
+  {(bigint) 3935 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction175 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction175 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3935 /* 4: ReduceAction175 < ReduceAction175: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51277,14 +109538,12 @@ const classtable_elt_t VFT_ReduceAction175[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction175 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction175 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51292,7 +109551,6 @@ const classtable_elt_t VFT_ReduceAction175[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51300,33 +109558,81 @@ const classtable_elt_t VFT_ReduceAction175[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction175 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction175 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction175___action},
-  {(bigint) 2 /* 42: ReduceAction175 < ReduceAction175: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction175 < ReduceAction175: superclass init_table position */},
   {(bigint) parser___ReduceAction175___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction175(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction175(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction175;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction175(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction175;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction175___init() {
+void CHECKNEW_ReduceAction175(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction175;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction175_parser___ReduceAction175___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction175();
-  parser___ReduceAction175___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9104;
+  fra.me.meth = LOCATE_NEW_ReduceAction175_parser___ReduceAction175___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction175();
+  /* ./parser//parser.nit:9104 */
+  INIT_ATTRIBUTES__ReduceAction175(fra.me.REG[0]);
+  parser___ReduceAction175___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction175(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction176[44] = {
-  {(bigint) 2159 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction176 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction176 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2159 /* 3: ReduceAction176 < ReduceAction176: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction176[50] = {
+  {(bigint) 3931 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction176 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction176 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3931 /* 4: ReduceAction176 < ReduceAction176: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51336,14 +109642,12 @@ const classtable_elt_t VFT_ReduceAction176[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction176 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction176 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51351,7 +109655,6 @@ const classtable_elt_t VFT_ReduceAction176[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51359,33 +109662,81 @@ const classtable_elt_t VFT_ReduceAction176[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction176 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction176 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction176___action},
-  {(bigint) 2 /* 42: ReduceAction176 < ReduceAction176: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction176 < ReduceAction176: superclass init_table position */},
   {(bigint) parser___ReduceAction176___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction176(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction176(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction176;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction176(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction176;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction176___init() {
+void CHECKNEW_ReduceAction176(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction176;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction176_parser___ReduceAction176___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction176();
-  parser___ReduceAction176___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9149;
+  fra.me.meth = LOCATE_NEW_ReduceAction176_parser___ReduceAction176___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction176();
+  /* ./parser//parser.nit:9149 */
+  INIT_ATTRIBUTES__ReduceAction176(fra.me.REG[0]);
+  parser___ReduceAction176___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction176(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction177[44] = {
-  {(bigint) 2155 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction177 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction177 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2155 /* 3: ReduceAction177 < ReduceAction177: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction177[50] = {
+  {(bigint) 3927 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction177 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction177 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3927 /* 4: ReduceAction177 < ReduceAction177: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51395,14 +109746,12 @@ const classtable_elt_t VFT_ReduceAction177[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction177 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction177 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51410,7 +109759,6 @@ const classtable_elt_t VFT_ReduceAction177[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51418,33 +109766,81 @@ const classtable_elt_t VFT_ReduceAction177[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction177 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction177 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction177___action},
-  {(bigint) 2 /* 42: ReduceAction177 < ReduceAction177: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction177 < ReduceAction177: superclass init_table position */},
   {(bigint) parser___ReduceAction177___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction177(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction177(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction177;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction177(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction177;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction177___init() {
+void CHECKNEW_ReduceAction177(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction177;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction177_parser___ReduceAction177___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction177();
-  parser___ReduceAction177___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9194;
+  fra.me.meth = LOCATE_NEW_ReduceAction177_parser___ReduceAction177___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction177();
+  /* ./parser//parser.nit:9194 */
+  INIT_ATTRIBUTES__ReduceAction177(fra.me.REG[0]);
+  parser___ReduceAction177___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction177(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction178[44] = {
-  {(bigint) 2151 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction178 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction178 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2151 /* 3: ReduceAction178 < ReduceAction178: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction178[50] = {
+  {(bigint) 3923 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction178 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction178 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3923 /* 4: ReduceAction178 < ReduceAction178: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51454,14 +109850,12 @@ const classtable_elt_t VFT_ReduceAction178[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction178 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction178 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51469,7 +109863,6 @@ const classtable_elt_t VFT_ReduceAction178[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51477,33 +109870,81 @@ const classtable_elt_t VFT_ReduceAction178[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction178 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction178 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction178___action},
-  {(bigint) 2 /* 42: ReduceAction178 < ReduceAction178: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction178 < ReduceAction178: superclass init_table position */},
   {(bigint) parser___ReduceAction178___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction178(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction178(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction178;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction178(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction178;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction178___init() {
+void CHECKNEW_ReduceAction178(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction178;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction178_parser___ReduceAction178___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction178();
-  parser___ReduceAction178___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9239;
+  fra.me.meth = LOCATE_NEW_ReduceAction178_parser___ReduceAction178___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction178();
+  /* ./parser//parser.nit:9239 */
+  INIT_ATTRIBUTES__ReduceAction178(fra.me.REG[0]);
+  parser___ReduceAction178___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction178(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction179[44] = {
-  {(bigint) 2147 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction179 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction179 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2147 /* 3: ReduceAction179 < ReduceAction179: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction179[50] = {
+  {(bigint) 3919 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction179 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction179 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3919 /* 4: ReduceAction179 < ReduceAction179: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51513,22 +109954,19 @@ const classtable_elt_t VFT_ReduceAction179[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction179 < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
-  {(bigint) kernel___Object___is_same_type},
-  {(bigint) kernel___Object_____eqeq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction179 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
   {(bigint) kernel___Object_____neq},
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51536,33 +109974,81 @@ const classtable_elt_t VFT_ReduceAction179[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction179 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction179 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction179___action},
-  {(bigint) 2 /* 42: ReduceAction179 < ReduceAction179: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction179 < ReduceAction179: superclass init_table position */},
   {(bigint) parser___ReduceAction179___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction179(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction179(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction179;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction179(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction179;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction179___init() {
+void CHECKNEW_ReduceAction179(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction179;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction179_parser___ReduceAction179___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction179();
-  parser___ReduceAction179___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9284;
+  fra.me.meth = LOCATE_NEW_ReduceAction179_parser___ReduceAction179___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction179();
+  /* ./parser//parser.nit:9284 */
+  INIT_ATTRIBUTES__ReduceAction179(fra.me.REG[0]);
+  parser___ReduceAction179___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction179(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction180[44] = {
-  {(bigint) 2139 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction180 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction180 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2139 /* 3: ReduceAction180 < ReduceAction180: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction180[50] = {
+  {(bigint) 3911 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction180 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction180 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3911 /* 4: ReduceAction180 < ReduceAction180: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51572,14 +110058,12 @@ const classtable_elt_t VFT_ReduceAction180[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction180 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction180 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51587,7 +110071,6 @@ const classtable_elt_t VFT_ReduceAction180[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51595,33 +110078,81 @@ const classtable_elt_t VFT_ReduceAction180[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction180 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction180 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction180___action},
-  {(bigint) 2 /* 42: ReduceAction180 < ReduceAction180: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction180 < ReduceAction180: superclass init_table position */},
   {(bigint) parser___ReduceAction180___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction180(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction180(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction180;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction180(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction180;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction180___init() {
+void CHECKNEW_ReduceAction180(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction180;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction180_parser___ReduceAction180___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction180();
-  parser___ReduceAction180___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9333;
+  fra.me.meth = LOCATE_NEW_ReduceAction180_parser___ReduceAction180___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction180();
+  /* ./parser//parser.nit:9333 */
+  INIT_ATTRIBUTES__ReduceAction180(fra.me.REG[0]);
+  parser___ReduceAction180___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction180(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction181[44] = {
-  {(bigint) 2135 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction181 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction181 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2135 /* 3: ReduceAction181 < ReduceAction181: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction181[50] = {
+  {(bigint) 3907 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction181 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction181 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3907 /* 4: ReduceAction181 < ReduceAction181: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51631,14 +110162,12 @@ const classtable_elt_t VFT_ReduceAction181[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction181 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction181 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51646,7 +110175,6 @@ const classtable_elt_t VFT_ReduceAction181[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51654,33 +110182,81 @@ const classtable_elt_t VFT_ReduceAction181[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction181 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction181 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction181___action},
-  {(bigint) 2 /* 42: ReduceAction181 < ReduceAction181: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction181 < ReduceAction181: superclass init_table position */},
   {(bigint) parser___ReduceAction181___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction181(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction181(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction181;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction181(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction181;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_parser___ReduceAction181___init() {
+void CHECKNEW_ReduceAction181(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction181;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction181_parser___ReduceAction181___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction181();
-  parser___ReduceAction181___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9378;
+  fra.me.meth = LOCATE_NEW_ReduceAction181_parser___ReduceAction181___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction181();
+  /* ./parser//parser.nit:9378 */
+  INIT_ATTRIBUTES__ReduceAction181(fra.me.REG[0]);
+  parser___ReduceAction181___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction181(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ReduceAction182[44] = {
-  {(bigint) 2131 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction182 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction182 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2131 /* 3: ReduceAction182 < ReduceAction182: superclass typecheck marker */},
+const classtable_elt_t VFT_ReduceAction182[50] = {
+  {(bigint) 3903 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction182 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction182 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3903 /* 4: ReduceAction182 < ReduceAction182: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51690,14 +110266,12 @@ const classtable_elt_t VFT_ReduceAction182[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction182 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction182 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51705,7 +110279,6 @@ const classtable_elt_t VFT_ReduceAction182[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51713,33 +110286,81 @@ const classtable_elt_t VFT_ReduceAction182[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction182 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction182 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction182___action},
-  {(bigint) 2 /* 42: ReduceAction182 < ReduceAction182: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction182 < ReduceAction182: superclass init_table position */},
   {(bigint) parser___ReduceAction182___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction182(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction182(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction182;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction182(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction182;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction182___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction182();
-  parser___ReduceAction182___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction183[44] = {
-  {(bigint) 2127 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction183 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction183 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2127 /* 3: ReduceAction183 < ReduceAction183: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction182(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction182;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction182_parser___ReduceAction182___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9416;
+  fra.me.meth = LOCATE_NEW_ReduceAction182_parser___ReduceAction182___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction182();
+  /* ./parser//parser.nit:9416 */
+  INIT_ATTRIBUTES__ReduceAction182(fra.me.REG[0]);
+  parser___ReduceAction182___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction182(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction183[50] = {
+  {(bigint) 3899 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction183 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction183 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3899 /* 4: ReduceAction183 < ReduceAction183: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51749,14 +110370,12 @@ const classtable_elt_t VFT_ReduceAction183[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction183 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction183 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51764,7 +110383,6 @@ const classtable_elt_t VFT_ReduceAction183[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51772,33 +110390,81 @@ const classtable_elt_t VFT_ReduceAction183[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction183 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction183 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction183___action},
-  {(bigint) 2 /* 42: ReduceAction183 < ReduceAction183: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction183 < ReduceAction183: superclass init_table position */},
   {(bigint) parser___ReduceAction183___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction183(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction183(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction183;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction183(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction183;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction183___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction183();
-  parser___ReduceAction183___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction184[44] = {
-  {(bigint) 2123 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction184 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction184 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2123 /* 3: ReduceAction184 < ReduceAction184: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction183(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction183;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction183_parser___ReduceAction183___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9454;
+  fra.me.meth = LOCATE_NEW_ReduceAction183_parser___ReduceAction183___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction183();
+  /* ./parser//parser.nit:9454 */
+  INIT_ATTRIBUTES__ReduceAction183(fra.me.REG[0]);
+  parser___ReduceAction183___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction183(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction184[50] = {
+  {(bigint) 3895 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction184 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction184 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3895 /* 4: ReduceAction184 < ReduceAction184: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51808,14 +110474,12 @@ const classtable_elt_t VFT_ReduceAction184[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction184 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction184 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51823,7 +110487,6 @@ const classtable_elt_t VFT_ReduceAction184[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51831,33 +110494,81 @@ const classtable_elt_t VFT_ReduceAction184[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction184 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction184 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction184___action},
-  {(bigint) 2 /* 42: ReduceAction184 < ReduceAction184: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction184 < ReduceAction184: superclass init_table position */},
   {(bigint) parser___ReduceAction184___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction184(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction184(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction184;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction184(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction184;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction184___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction184();
-  parser___ReduceAction184___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction185[44] = {
-  {(bigint) 2119 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction185 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction185 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2119 /* 3: ReduceAction185 < ReduceAction185: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction184(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction184;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction184_parser___ReduceAction184___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9492;
+  fra.me.meth = LOCATE_NEW_ReduceAction184_parser___ReduceAction184___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction184();
+  /* ./parser//parser.nit:9492 */
+  INIT_ATTRIBUTES__ReduceAction184(fra.me.REG[0]);
+  parser___ReduceAction184___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction184(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction185[50] = {
+  {(bigint) 3891 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction185 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction185 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3891 /* 4: ReduceAction185 < ReduceAction185: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51867,14 +110578,12 @@ const classtable_elt_t VFT_ReduceAction185[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction185 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction185 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51882,7 +110591,6 @@ const classtable_elt_t VFT_ReduceAction185[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51890,33 +110598,81 @@ const classtable_elt_t VFT_ReduceAction185[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction185 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction185 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction185___action},
-  {(bigint) 2 /* 42: ReduceAction185 < ReduceAction185: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction185 < ReduceAction185: superclass init_table position */},
   {(bigint) parser___ReduceAction185___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction185(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction185(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction185;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction185(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction185;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction185___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction185();
-  parser___ReduceAction185___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction186[44] = {
-  {(bigint) 2115 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction186 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction186 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2115 /* 3: ReduceAction186 < ReduceAction186: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction185(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction185;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction185_parser___ReduceAction185___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9530;
+  fra.me.meth = LOCATE_NEW_ReduceAction185_parser___ReduceAction185___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction185();
+  /* ./parser//parser.nit:9530 */
+  INIT_ATTRIBUTES__ReduceAction185(fra.me.REG[0]);
+  parser___ReduceAction185___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction185(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction186[50] = {
+  {(bigint) 3887 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction186 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction186 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3887 /* 4: ReduceAction186 < ReduceAction186: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51926,14 +110682,12 @@ const classtable_elt_t VFT_ReduceAction186[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction186 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction186 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -51941,7 +110695,6 @@ const classtable_elt_t VFT_ReduceAction186[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -51949,33 +110702,81 @@ const classtable_elt_t VFT_ReduceAction186[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction186 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction186 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction186___action},
-  {(bigint) 2 /* 42: ReduceAction186 < ReduceAction186: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction186 < ReduceAction186: superclass init_table position */},
   {(bigint) parser___ReduceAction186___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction186(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction186(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction186;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction186(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction186;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction186___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction186();
-  parser___ReduceAction186___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction187[44] = {
-  {(bigint) 2111 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction187 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction187 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2111 /* 3: ReduceAction187 < ReduceAction187: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction186(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction186;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction186_parser___ReduceAction186___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9568;
+  fra.me.meth = LOCATE_NEW_ReduceAction186_parser___ReduceAction186___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction186();
+  /* ./parser//parser.nit:9568 */
+  INIT_ATTRIBUTES__ReduceAction186(fra.me.REG[0]);
+  parser___ReduceAction186___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction186(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction187[50] = {
+  {(bigint) 3883 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction187 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction187 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3883 /* 4: ReduceAction187 < ReduceAction187: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51985,14 +110786,12 @@ const classtable_elt_t VFT_ReduceAction187[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction187 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction187 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52000,7 +110799,6 @@ const classtable_elt_t VFT_ReduceAction187[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52008,33 +110806,81 @@ const classtable_elt_t VFT_ReduceAction187[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction187 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction187 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction187___action},
-  {(bigint) 2 /* 42: ReduceAction187 < ReduceAction187: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction187 < ReduceAction187: superclass init_table position */},
   {(bigint) parser___ReduceAction187___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction187(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction187(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction187;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction187(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction187;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction187___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction187();
-  parser___ReduceAction187___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction188[44] = {
-  {(bigint) 2107 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction188 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction188 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2107 /* 3: ReduceAction188 < ReduceAction188: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction187(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction187;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction187_parser___ReduceAction187___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9606;
+  fra.me.meth = LOCATE_NEW_ReduceAction187_parser___ReduceAction187___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction187();
+  /* ./parser//parser.nit:9606 */
+  INIT_ATTRIBUTES__ReduceAction187(fra.me.REG[0]);
+  parser___ReduceAction187___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction187(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction188[50] = {
+  {(bigint) 3879 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction188 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction188 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3879 /* 4: ReduceAction188 < ReduceAction188: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52044,14 +110890,12 @@ const classtable_elt_t VFT_ReduceAction188[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction188 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction188 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52059,7 +110903,6 @@ const classtable_elt_t VFT_ReduceAction188[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52067,33 +110910,81 @@ const classtable_elt_t VFT_ReduceAction188[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction188 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction188 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction188___action},
-  {(bigint) 2 /* 42: ReduceAction188 < ReduceAction188: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction188 < ReduceAction188: superclass init_table position */},
   {(bigint) parser___ReduceAction188___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction188(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction188(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction188;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction188(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction188;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction188___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction188();
-  parser___ReduceAction188___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction189[44] = {
-  {(bigint) 2103 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction189 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction189 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2103 /* 3: ReduceAction189 < ReduceAction189: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction188(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction188;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction188_parser___ReduceAction188___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9644;
+  fra.me.meth = LOCATE_NEW_ReduceAction188_parser___ReduceAction188___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction188();
+  /* ./parser//parser.nit:9644 */
+  INIT_ATTRIBUTES__ReduceAction188(fra.me.REG[0]);
+  parser___ReduceAction188___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction188(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction189[50] = {
+  {(bigint) 3875 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction189 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction189 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3875 /* 4: ReduceAction189 < ReduceAction189: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52103,14 +110994,12 @@ const classtable_elt_t VFT_ReduceAction189[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction189 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction189 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52118,7 +111007,6 @@ const classtable_elt_t VFT_ReduceAction189[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52126,33 +111014,81 @@ const classtable_elt_t VFT_ReduceAction189[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction189 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction189 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction189___action},
-  {(bigint) 2 /* 42: ReduceAction189 < ReduceAction189: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction189 < ReduceAction189: superclass init_table position */},
   {(bigint) parser___ReduceAction189___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction189(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction189(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction189;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction189(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction189;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction189___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction189();
-  parser___ReduceAction189___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction190[44] = {
-  {(bigint) 2095 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction190 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction190 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2095 /* 3: ReduceAction190 < ReduceAction190: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction189(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction189;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction189_parser___ReduceAction189___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9682;
+  fra.me.meth = LOCATE_NEW_ReduceAction189_parser___ReduceAction189___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction189();
+  /* ./parser//parser.nit:9682 */
+  INIT_ATTRIBUTES__ReduceAction189(fra.me.REG[0]);
+  parser___ReduceAction189___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction189(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction190[50] = {
+  {(bigint) 3867 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction190 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction190 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3867 /* 4: ReduceAction190 < ReduceAction190: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52162,14 +111098,12 @@ const classtable_elt_t VFT_ReduceAction190[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction190 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction190 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52177,7 +111111,6 @@ const classtable_elt_t VFT_ReduceAction190[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52185,33 +111118,81 @@ const classtable_elt_t VFT_ReduceAction190[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction190 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction190 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction190___action},
-  {(bigint) 2 /* 42: ReduceAction190 < ReduceAction190: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction190 < ReduceAction190: superclass init_table position */},
   {(bigint) parser___ReduceAction190___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction190(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction190(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction190;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction190(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction190;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction190___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction190();
-  parser___ReduceAction190___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction191[44] = {
-  {(bigint) 2091 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction191 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction191 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2091 /* 3: ReduceAction191 < ReduceAction191: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction190(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction190;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction190_parser___ReduceAction190___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9720;
+  fra.me.meth = LOCATE_NEW_ReduceAction190_parser___ReduceAction190___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction190();
+  /* ./parser//parser.nit:9720 */
+  INIT_ATTRIBUTES__ReduceAction190(fra.me.REG[0]);
+  parser___ReduceAction190___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction190(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction191[50] = {
+  {(bigint) 3863 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction191 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction191 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3863 /* 4: ReduceAction191 < ReduceAction191: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52221,14 +111202,12 @@ const classtable_elt_t VFT_ReduceAction191[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction191 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction191 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52236,7 +111215,6 @@ const classtable_elt_t VFT_ReduceAction191[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52244,33 +111222,81 @@ const classtable_elt_t VFT_ReduceAction191[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction191 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction191 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction191___action},
-  {(bigint) 2 /* 42: ReduceAction191 < ReduceAction191: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction191 < ReduceAction191: superclass init_table position */},
   {(bigint) parser___ReduceAction191___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction191(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction191(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction191;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction191(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction191;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction191___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction191();
-  parser___ReduceAction191___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction192[44] = {
-  {(bigint) 2087 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction192 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction192 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2087 /* 3: ReduceAction192 < ReduceAction192: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction191(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction191;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction191_parser___ReduceAction191___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9758;
+  fra.me.meth = LOCATE_NEW_ReduceAction191_parser___ReduceAction191___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction191();
+  /* ./parser//parser.nit:9758 */
+  INIT_ATTRIBUTES__ReduceAction191(fra.me.REG[0]);
+  parser___ReduceAction191___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction191(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction192[50] = {
+  {(bigint) 3859 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction192 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction192 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3859 /* 4: ReduceAction192 < ReduceAction192: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52280,14 +111306,12 @@ const classtable_elt_t VFT_ReduceAction192[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction192 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction192 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52295,7 +111319,6 @@ const classtable_elt_t VFT_ReduceAction192[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52303,33 +111326,81 @@ const classtable_elt_t VFT_ReduceAction192[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction192 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction192 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction192___action},
-  {(bigint) 2 /* 42: ReduceAction192 < ReduceAction192: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction192 < ReduceAction192: superclass init_table position */},
   {(bigint) parser___ReduceAction192___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction192(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction192(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction192;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction192(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction192;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction192___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction192();
-  parser___ReduceAction192___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction193[44] = {
-  {(bigint) 2083 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction193 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction193 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2083 /* 3: ReduceAction193 < ReduceAction193: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction192(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction192;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction192_parser___ReduceAction192___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9796;
+  fra.me.meth = LOCATE_NEW_ReduceAction192_parser___ReduceAction192___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction192();
+  /* ./parser//parser.nit:9796 */
+  INIT_ATTRIBUTES__ReduceAction192(fra.me.REG[0]);
+  parser___ReduceAction192___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction192(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction193[50] = {
+  {(bigint) 3855 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction193 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction193 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3855 /* 4: ReduceAction193 < ReduceAction193: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52339,14 +111410,12 @@ const classtable_elt_t VFT_ReduceAction193[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction193 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction193 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52354,7 +111423,6 @@ const classtable_elt_t VFT_ReduceAction193[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52362,33 +111430,81 @@ const classtable_elt_t VFT_ReduceAction193[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction193 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction193 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction193___action},
-  {(bigint) 2 /* 42: ReduceAction193 < ReduceAction193: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction193 < ReduceAction193: superclass init_table position */},
   {(bigint) parser___ReduceAction193___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction193(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction193(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction193;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction193(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction193;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction193___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction193();
-  parser___ReduceAction193___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction194[44] = {
-  {(bigint) 2079 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction194 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction194 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2079 /* 3: ReduceAction194 < ReduceAction194: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction193(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction193;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction193_parser___ReduceAction193___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9834;
+  fra.me.meth = LOCATE_NEW_ReduceAction193_parser___ReduceAction193___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction193();
+  /* ./parser//parser.nit:9834 */
+  INIT_ATTRIBUTES__ReduceAction193(fra.me.REG[0]);
+  parser___ReduceAction193___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction193(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction194[50] = {
+  {(bigint) 3851 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction194 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction194 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3851 /* 4: ReduceAction194 < ReduceAction194: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52398,14 +111514,12 @@ const classtable_elt_t VFT_ReduceAction194[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction194 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction194 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52413,7 +111527,6 @@ const classtable_elt_t VFT_ReduceAction194[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52421,33 +111534,81 @@ const classtable_elt_t VFT_ReduceAction194[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction194 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction194 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction194___action},
-  {(bigint) 2 /* 42: ReduceAction194 < ReduceAction194: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction194 < ReduceAction194: superclass init_table position */},
   {(bigint) parser___ReduceAction194___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction194(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction194(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction194;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction194(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction194;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction194___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction194();
-  parser___ReduceAction194___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction195[44] = {
-  {(bigint) 2075 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction195 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction195 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2075 /* 3: ReduceAction195 < ReduceAction195: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction194(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction194;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction194_parser___ReduceAction194___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9876;
+  fra.me.meth = LOCATE_NEW_ReduceAction194_parser___ReduceAction194___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction194();
+  /* ./parser//parser.nit:9876 */
+  INIT_ATTRIBUTES__ReduceAction194(fra.me.REG[0]);
+  parser___ReduceAction194___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction194(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction195[50] = {
+  {(bigint) 3847 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction195 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction195 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3847 /* 4: ReduceAction195 < ReduceAction195: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52457,14 +111618,12 @@ const classtable_elt_t VFT_ReduceAction195[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction195 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction195 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52472,7 +111631,6 @@ const classtable_elt_t VFT_ReduceAction195[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52480,33 +111638,81 @@ const classtable_elt_t VFT_ReduceAction195[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction195 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction195 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction195___action},
-  {(bigint) 2 /* 42: ReduceAction195 < ReduceAction195: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction195 < ReduceAction195: superclass init_table position */},
   {(bigint) parser___ReduceAction195___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction195(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction195(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction195;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction195(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction195;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction195___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction195();
-  parser___ReduceAction195___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction196[44] = {
-  {(bigint) 2071 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction196 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction196 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2071 /* 3: ReduceAction196 < ReduceAction196: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction195(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction195;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction195_parser___ReduceAction195___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9914;
+  fra.me.meth = LOCATE_NEW_ReduceAction195_parser___ReduceAction195___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction195();
+  /* ./parser//parser.nit:9914 */
+  INIT_ATTRIBUTES__ReduceAction195(fra.me.REG[0]);
+  parser___ReduceAction195___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction195(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction196[50] = {
+  {(bigint) 3843 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction196 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction196 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3843 /* 4: ReduceAction196 < ReduceAction196: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52516,14 +111722,12 @@ const classtable_elt_t VFT_ReduceAction196[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction196 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction196 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52531,7 +111735,6 @@ const classtable_elt_t VFT_ReduceAction196[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52539,33 +111742,81 @@ const classtable_elt_t VFT_ReduceAction196[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction196 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction196 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction196___action},
-  {(bigint) 2 /* 42: ReduceAction196 < ReduceAction196: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction196 < ReduceAction196: superclass init_table position */},
   {(bigint) parser___ReduceAction196___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction196(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction196(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction196;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction196(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction196;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction196___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction196();
-  parser___ReduceAction196___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction197[44] = {
-  {(bigint) 2067 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction197 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction197 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2067 /* 3: ReduceAction197 < ReduceAction197: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction196(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction196;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction196_parser___ReduceAction196___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 9956;
+  fra.me.meth = LOCATE_NEW_ReduceAction196_parser___ReduceAction196___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction196();
+  /* ./parser//parser.nit:9956 */
+  INIT_ATTRIBUTES__ReduceAction196(fra.me.REG[0]);
+  parser___ReduceAction196___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction196(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction197[50] = {
+  {(bigint) 3839 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction197 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction197 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3839 /* 4: ReduceAction197 < ReduceAction197: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52575,14 +111826,12 @@ const classtable_elt_t VFT_ReduceAction197[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction197 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction197 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52590,7 +111839,6 @@ const classtable_elt_t VFT_ReduceAction197[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52598,33 +111846,81 @@ const classtable_elt_t VFT_ReduceAction197[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction197 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction197 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction197___action},
-  {(bigint) 2 /* 42: ReduceAction197 < ReduceAction197: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction197 < ReduceAction197: superclass init_table position */},
   {(bigint) parser___ReduceAction197___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction197(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction197(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction197;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction197(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction197;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction197___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction197();
-  parser___ReduceAction197___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction198[44] = {
-  {(bigint) 2063 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction198 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction198 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2063 /* 3: ReduceAction198 < ReduceAction198: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction197(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction197;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction197_parser___ReduceAction197___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10002;
+  fra.me.meth = LOCATE_NEW_ReduceAction197_parser___ReduceAction197___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction197();
+  /* ./parser//parser.nit:10002 */
+  INIT_ATTRIBUTES__ReduceAction197(fra.me.REG[0]);
+  parser___ReduceAction197___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction197(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction198[50] = {
+  {(bigint) 3835 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction198 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction198 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3835 /* 4: ReduceAction198 < ReduceAction198: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52634,14 +111930,12 @@ const classtable_elt_t VFT_ReduceAction198[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction198 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction198 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52649,7 +111943,6 @@ const classtable_elt_t VFT_ReduceAction198[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52657,33 +111950,81 @@ const classtable_elt_t VFT_ReduceAction198[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction198 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction198 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction198___action},
-  {(bigint) 2 /* 42: ReduceAction198 < ReduceAction198: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction198 < ReduceAction198: superclass init_table position */},
   {(bigint) parser___ReduceAction198___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction198(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction198(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction198;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction198(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction198;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction198___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction198();
-  parser___ReduceAction198___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction199[44] = {
-  {(bigint) 2059 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction199 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction199 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2059 /* 3: ReduceAction199 < ReduceAction199: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction198(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction198;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction198_parser___ReduceAction198___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10043;
+  fra.me.meth = LOCATE_NEW_ReduceAction198_parser___ReduceAction198___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction198();
+  /* ./parser//parser.nit:10043 */
+  INIT_ATTRIBUTES__ReduceAction198(fra.me.REG[0]);
+  parser___ReduceAction198___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction198(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction199[50] = {
+  {(bigint) 3831 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction199 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction199 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3831 /* 4: ReduceAction199 < ReduceAction199: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52693,14 +112034,12 @@ const classtable_elt_t VFT_ReduceAction199[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction199 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction199 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52708,7 +112047,6 @@ const classtable_elt_t VFT_ReduceAction199[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52716,33 +112054,81 @@ const classtable_elt_t VFT_ReduceAction199[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction199 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction199 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction199___action},
-  {(bigint) 2 /* 42: ReduceAction199 < ReduceAction199: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction199 < ReduceAction199: superclass init_table position */},
   {(bigint) parser___ReduceAction199___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction199(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction199(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction199;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction199(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction199;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction199___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction199();
-  parser___ReduceAction199___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction200[44] = {
-  {(bigint) 2047 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction200 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction200 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2047 /* 3: ReduceAction200 < ReduceAction200: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction199(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction199;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction199_parser___ReduceAction199___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10084;
+  fra.me.meth = LOCATE_NEW_ReduceAction199_parser___ReduceAction199___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction199();
+  /* ./parser//parser.nit:10084 */
+  INIT_ATTRIBUTES__ReduceAction199(fra.me.REG[0]);
+  parser___ReduceAction199___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction199(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction200[50] = {
+  {(bigint) 3819 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction200 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction200 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3819 /* 4: ReduceAction200 < ReduceAction200: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52752,14 +112138,12 @@ const classtable_elt_t VFT_ReduceAction200[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction200 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction200 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52767,7 +112151,6 @@ const classtable_elt_t VFT_ReduceAction200[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52775,33 +112158,81 @@ const classtable_elt_t VFT_ReduceAction200[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction200 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction200 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction200___action},
-  {(bigint) 2 /* 42: ReduceAction200 < ReduceAction200: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction200 < ReduceAction200: superclass init_table position */},
   {(bigint) parser___ReduceAction200___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction200(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction200(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction200;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction200(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction200;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction200___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction200();
-  parser___ReduceAction200___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction201[44] = {
-  {(bigint) 2043 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction201 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction201 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2043 /* 3: ReduceAction201 < ReduceAction201: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction200(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction200;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction200_parser___ReduceAction200___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10125;
+  fra.me.meth = LOCATE_NEW_ReduceAction200_parser___ReduceAction200___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction200();
+  /* ./parser//parser.nit:10125 */
+  INIT_ATTRIBUTES__ReduceAction200(fra.me.REG[0]);
+  parser___ReduceAction200___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction200(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction201[50] = {
+  {(bigint) 3815 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction201 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction201 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3815 /* 4: ReduceAction201 < ReduceAction201: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52811,14 +112242,12 @@ const classtable_elt_t VFT_ReduceAction201[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction201 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction201 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52826,7 +112255,6 @@ const classtable_elt_t VFT_ReduceAction201[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52834,33 +112262,81 @@ const classtable_elt_t VFT_ReduceAction201[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction201 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction201 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction201___action},
-  {(bigint) 2 /* 42: ReduceAction201 < ReduceAction201: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction201 < ReduceAction201: superclass init_table position */},
   {(bigint) parser___ReduceAction201___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction201(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction201(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction201;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction201(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction201;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction201___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction201();
-  parser___ReduceAction201___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction202[44] = {
-  {(bigint) 2039 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction202 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction202 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2039 /* 3: ReduceAction202 < ReduceAction202: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction201(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction201;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction201_parser___ReduceAction201___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10166;
+  fra.me.meth = LOCATE_NEW_ReduceAction201_parser___ReduceAction201___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction201();
+  /* ./parser//parser.nit:10166 */
+  INIT_ATTRIBUTES__ReduceAction201(fra.me.REG[0]);
+  parser___ReduceAction201___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction201(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction202[50] = {
+  {(bigint) 3811 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction202 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction202 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3811 /* 4: ReduceAction202 < ReduceAction202: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52870,14 +112346,12 @@ const classtable_elt_t VFT_ReduceAction202[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction202 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction202 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52885,7 +112359,6 @@ const classtable_elt_t VFT_ReduceAction202[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52893,33 +112366,81 @@ const classtable_elt_t VFT_ReduceAction202[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction202 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction202 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction202___action},
-  {(bigint) 2 /* 42: ReduceAction202 < ReduceAction202: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction202 < ReduceAction202: superclass init_table position */},
   {(bigint) parser___ReduceAction202___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction202(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction202(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction202;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction202(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction202;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction202___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction202();
-  parser___ReduceAction202___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction203[44] = {
-  {(bigint) 2035 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction203 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction203 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2035 /* 3: ReduceAction203 < ReduceAction203: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction202(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction202;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction202_parser___ReduceAction202___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10207;
+  fra.me.meth = LOCATE_NEW_ReduceAction202_parser___ReduceAction202___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction202();
+  /* ./parser//parser.nit:10207 */
+  INIT_ATTRIBUTES__ReduceAction202(fra.me.REG[0]);
+  parser___ReduceAction202___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction202(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction203[50] = {
+  {(bigint) 3807 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction203 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction203 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3807 /* 4: ReduceAction203 < ReduceAction203: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52929,14 +112450,12 @@ const classtable_elt_t VFT_ReduceAction203[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction203 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction203 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -52944,7 +112463,6 @@ const classtable_elt_t VFT_ReduceAction203[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -52952,33 +112470,81 @@ const classtable_elt_t VFT_ReduceAction203[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction203 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction203 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction203___action},
-  {(bigint) 2 /* 42: ReduceAction203 < ReduceAction203: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction203 < ReduceAction203: superclass init_table position */},
   {(bigint) parser___ReduceAction203___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction203(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction203(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction203;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction203(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction203;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction203___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction203();
-  parser___ReduceAction203___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction204[44] = {
-  {(bigint) 2031 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction204 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction204 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2031 /* 3: ReduceAction204 < ReduceAction204: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction203(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction203;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction203_parser___ReduceAction203___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10248;
+  fra.me.meth = LOCATE_NEW_ReduceAction203_parser___ReduceAction203___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction203();
+  /* ./parser//parser.nit:10248 */
+  INIT_ATTRIBUTES__ReduceAction203(fra.me.REG[0]);
+  parser___ReduceAction203___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction203(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction204[50] = {
+  {(bigint) 3803 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction204 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction204 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3803 /* 4: ReduceAction204 < ReduceAction204: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52988,14 +112554,12 @@ const classtable_elt_t VFT_ReduceAction204[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction204 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction204 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53003,7 +112567,6 @@ const classtable_elt_t VFT_ReduceAction204[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53011,33 +112574,81 @@ const classtable_elt_t VFT_ReduceAction204[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction204 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction204 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction204___action},
-  {(bigint) 2 /* 42: ReduceAction204 < ReduceAction204: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction204 < ReduceAction204: superclass init_table position */},
   {(bigint) parser___ReduceAction204___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction204(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction204(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction204;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction204(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction204;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction204___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction204();
-  parser___ReduceAction204___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction205[44] = {
-  {(bigint) 2027 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction205 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction205 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2027 /* 3: ReduceAction205 < ReduceAction205: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction204(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction204;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction204_parser___ReduceAction204___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10289;
+  fra.me.meth = LOCATE_NEW_ReduceAction204_parser___ReduceAction204___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction204();
+  /* ./parser//parser.nit:10289 */
+  INIT_ATTRIBUTES__ReduceAction204(fra.me.REG[0]);
+  parser___ReduceAction204___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction204(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction205[50] = {
+  {(bigint) 3799 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction205 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction205 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3799 /* 4: ReduceAction205 < ReduceAction205: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53047,14 +112658,12 @@ const classtable_elt_t VFT_ReduceAction205[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction205 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction205 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53062,7 +112671,6 @@ const classtable_elt_t VFT_ReduceAction205[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53070,33 +112678,81 @@ const classtable_elt_t VFT_ReduceAction205[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction205 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction205 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction205___action},
-  {(bigint) 2 /* 42: ReduceAction205 < ReduceAction205: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction205 < ReduceAction205: superclass init_table position */},
   {(bigint) parser___ReduceAction205___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction205(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction205(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction205;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction205(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction205;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction205___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction205();
-  parser___ReduceAction205___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction206[44] = {
-  {(bigint) 2023 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction206 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction206 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2023 /* 3: ReduceAction206 < ReduceAction206: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction205(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction205;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction205_parser___ReduceAction205___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10330;
+  fra.me.meth = LOCATE_NEW_ReduceAction205_parser___ReduceAction205___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction205();
+  /* ./parser//parser.nit:10330 */
+  INIT_ATTRIBUTES__ReduceAction205(fra.me.REG[0]);
+  parser___ReduceAction205___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction205(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction206[50] = {
+  {(bigint) 3795 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction206 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction206 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3795 /* 4: ReduceAction206 < ReduceAction206: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53106,14 +112762,12 @@ const classtable_elt_t VFT_ReduceAction206[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction206 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction206 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53121,7 +112775,6 @@ const classtable_elt_t VFT_ReduceAction206[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53129,33 +112782,81 @@ const classtable_elt_t VFT_ReduceAction206[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction206 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction206 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction206___action},
-  {(bigint) 2 /* 42: ReduceAction206 < ReduceAction206: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction206 < ReduceAction206: superclass init_table position */},
   {(bigint) parser___ReduceAction206___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction206(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction206(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction206;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction206(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction206;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction206___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction206();
-  parser___ReduceAction206___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction207[44] = {
-  {(bigint) 2019 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction207 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction207 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2019 /* 3: ReduceAction207 < ReduceAction207: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction206(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction206;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction206_parser___ReduceAction206___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10371;
+  fra.me.meth = LOCATE_NEW_ReduceAction206_parser___ReduceAction206___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction206();
+  /* ./parser//parser.nit:10371 */
+  INIT_ATTRIBUTES__ReduceAction206(fra.me.REG[0]);
+  parser___ReduceAction206___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction206(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction207[50] = {
+  {(bigint) 3791 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction207 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction207 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3791 /* 4: ReduceAction207 < ReduceAction207: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53165,14 +112866,12 @@ const classtable_elt_t VFT_ReduceAction207[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction207 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction207 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53180,7 +112879,6 @@ const classtable_elt_t VFT_ReduceAction207[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53188,33 +112886,81 @@ const classtable_elt_t VFT_ReduceAction207[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction207 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction207 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction207___action},
-  {(bigint) 2 /* 42: ReduceAction207 < ReduceAction207: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction207 < ReduceAction207: superclass init_table position */},
   {(bigint) parser___ReduceAction207___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction207(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction207(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction207;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction207(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction207;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction207___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction207();
-  parser___ReduceAction207___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction208[44] = {
-  {(bigint) 2015 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction208 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction208 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2015 /* 3: ReduceAction208 < ReduceAction208: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction207(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction207;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction207_parser___ReduceAction207___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10412;
+  fra.me.meth = LOCATE_NEW_ReduceAction207_parser___ReduceAction207___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction207();
+  /* ./parser//parser.nit:10412 */
+  INIT_ATTRIBUTES__ReduceAction207(fra.me.REG[0]);
+  parser___ReduceAction207___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction207(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction208[50] = {
+  {(bigint) 3787 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction208 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction208 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3787 /* 4: ReduceAction208 < ReduceAction208: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53224,14 +112970,12 @@ const classtable_elt_t VFT_ReduceAction208[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction208 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction208 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53239,7 +112983,6 @@ const classtable_elt_t VFT_ReduceAction208[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53247,33 +112990,81 @@ const classtable_elt_t VFT_ReduceAction208[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction208 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction208 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction208___action},
-  {(bigint) 2 /* 42: ReduceAction208 < ReduceAction208: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction208 < ReduceAction208: superclass init_table position */},
   {(bigint) parser___ReduceAction208___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction208(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction208(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction208;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction208(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction208;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction208___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction208();
-  parser___ReduceAction208___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction209[44] = {
-  {(bigint) 2011 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction209 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction209 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2011 /* 3: ReduceAction209 < ReduceAction209: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction208(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction208;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction208_parser___ReduceAction208___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10453;
+  fra.me.meth = LOCATE_NEW_ReduceAction208_parser___ReduceAction208___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction208();
+  /* ./parser//parser.nit:10453 */
+  INIT_ATTRIBUTES__ReduceAction208(fra.me.REG[0]);
+  parser___ReduceAction208___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction208(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction209[50] = {
+  {(bigint) 3783 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction209 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction209 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3783 /* 4: ReduceAction209 < ReduceAction209: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53283,14 +113074,12 @@ const classtable_elt_t VFT_ReduceAction209[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction209 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction209 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53298,7 +113087,6 @@ const classtable_elt_t VFT_ReduceAction209[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53306,33 +113094,81 @@ const classtable_elt_t VFT_ReduceAction209[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction209 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction209 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction209___action},
-  {(bigint) 2 /* 42: ReduceAction209 < ReduceAction209: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction209 < ReduceAction209: superclass init_table position */},
   {(bigint) parser___ReduceAction209___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction209(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction209(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction209;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction209(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction209;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction209___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction209();
-  parser___ReduceAction209___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction210[44] = {
-  {(bigint) 2003 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction210 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction210 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2003 /* 3: ReduceAction210 < ReduceAction210: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction209(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction209;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction209_parser___ReduceAction209___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10494;
+  fra.me.meth = LOCATE_NEW_ReduceAction209_parser___ReduceAction209___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction209();
+  /* ./parser//parser.nit:10494 */
+  INIT_ATTRIBUTES__ReduceAction209(fra.me.REG[0]);
+  parser___ReduceAction209___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction209(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction210[50] = {
+  {(bigint) 3775 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction210 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction210 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3775 /* 4: ReduceAction210 < ReduceAction210: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53342,14 +113178,12 @@ const classtable_elt_t VFT_ReduceAction210[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction210 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction210 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53357,7 +113191,6 @@ const classtable_elt_t VFT_ReduceAction210[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53365,33 +113198,81 @@ const classtable_elt_t VFT_ReduceAction210[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction210 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction210 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction210___action},
-  {(bigint) 2 /* 42: ReduceAction210 < ReduceAction210: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction210 < ReduceAction210: superclass init_table position */},
   {(bigint) parser___ReduceAction210___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction210(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction210(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction210;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction210(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction210;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction210___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction210();
-  parser___ReduceAction210___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction211[44] = {
-  {(bigint) 1999 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction211 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction211 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1999 /* 3: ReduceAction211 < ReduceAction211: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction210(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction210;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction210_parser___ReduceAction210___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10539;
+  fra.me.meth = LOCATE_NEW_ReduceAction210_parser___ReduceAction210___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction210();
+  /* ./parser//parser.nit:10539 */
+  INIT_ATTRIBUTES__ReduceAction210(fra.me.REG[0]);
+  parser___ReduceAction210___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction210(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction211[50] = {
+  {(bigint) 3771 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction211 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction211 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3771 /* 4: ReduceAction211 < ReduceAction211: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53401,14 +113282,12 @@ const classtable_elt_t VFT_ReduceAction211[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction211 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction211 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53416,7 +113295,6 @@ const classtable_elt_t VFT_ReduceAction211[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53424,33 +113302,81 @@ const classtable_elt_t VFT_ReduceAction211[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction211 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction211 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction211___action},
-  {(bigint) 2 /* 42: ReduceAction211 < ReduceAction211: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction211 < ReduceAction211: superclass init_table position */},
   {(bigint) parser___ReduceAction211___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction211(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction211(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction211;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction211(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction211;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction211___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction211();
-  parser___ReduceAction211___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction212[44] = {
-  {(bigint) 1995 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction212 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction212 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1995 /* 3: ReduceAction212 < ReduceAction212: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction211(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction211;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction211_parser___ReduceAction211___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10580;
+  fra.me.meth = LOCATE_NEW_ReduceAction211_parser___ReduceAction211___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction211();
+  /* ./parser//parser.nit:10580 */
+  INIT_ATTRIBUTES__ReduceAction211(fra.me.REG[0]);
+  parser___ReduceAction211___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction211(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction212[50] = {
+  {(bigint) 3767 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction212 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction212 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3767 /* 4: ReduceAction212 < ReduceAction212: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53460,14 +113386,12 @@ const classtable_elt_t VFT_ReduceAction212[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction212 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction212 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53475,7 +113399,6 @@ const classtable_elt_t VFT_ReduceAction212[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53483,33 +113406,81 @@ const classtable_elt_t VFT_ReduceAction212[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction212 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction212 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction212___action},
-  {(bigint) 2 /* 42: ReduceAction212 < ReduceAction212: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction212 < ReduceAction212: superclass init_table position */},
   {(bigint) parser___ReduceAction212___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction212(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction212(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction212;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction212(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction212;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction212___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction212();
-  parser___ReduceAction212___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction213[44] = {
-  {(bigint) 1991 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction213 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction213 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1991 /* 3: ReduceAction213 < ReduceAction213: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction212(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction212;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction212_parser___ReduceAction212___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10625;
+  fra.me.meth = LOCATE_NEW_ReduceAction212_parser___ReduceAction212___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction212();
+  /* ./parser//parser.nit:10625 */
+  INIT_ATTRIBUTES__ReduceAction212(fra.me.REG[0]);
+  parser___ReduceAction212___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction212(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction213[50] = {
+  {(bigint) 3763 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction213 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction213 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3763 /* 4: ReduceAction213 < ReduceAction213: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53519,14 +113490,12 @@ const classtable_elt_t VFT_ReduceAction213[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction213 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction213 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53534,7 +113503,6 @@ const classtable_elt_t VFT_ReduceAction213[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53542,33 +113510,81 @@ const classtable_elt_t VFT_ReduceAction213[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction213 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction213 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction213___action},
-  {(bigint) 2 /* 42: ReduceAction213 < ReduceAction213: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction213 < ReduceAction213: superclass init_table position */},
   {(bigint) parser___ReduceAction213___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction213(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction213(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction213;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction213(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction213;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction213___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction213();
-  parser___ReduceAction213___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction214[44] = {
-  {(bigint) 1987 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction214 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction214 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1987 /* 3: ReduceAction214 < ReduceAction214: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction213(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction213;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction213_parser___ReduceAction213___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10674;
+  fra.me.meth = LOCATE_NEW_ReduceAction213_parser___ReduceAction213___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction213();
+  /* ./parser//parser.nit:10674 */
+  INIT_ATTRIBUTES__ReduceAction213(fra.me.REG[0]);
+  parser___ReduceAction213___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction213(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction214[50] = {
+  {(bigint) 3759 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction214 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction214 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3759 /* 4: ReduceAction214 < ReduceAction214: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53578,14 +113594,12 @@ const classtable_elt_t VFT_ReduceAction214[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction214 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction214 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53593,7 +113607,6 @@ const classtable_elt_t VFT_ReduceAction214[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53601,33 +113614,81 @@ const classtable_elt_t VFT_ReduceAction214[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction214 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction214 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction214___action},
-  {(bigint) 2 /* 42: ReduceAction214 < ReduceAction214: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction214 < ReduceAction214: superclass init_table position */},
   {(bigint) parser___ReduceAction214___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction214(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction214(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction214;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction214(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction214;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction214___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction214();
-  parser___ReduceAction214___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction215[44] = {
-  {(bigint) 1983 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction215 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction215 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1983 /* 3: ReduceAction215 < ReduceAction215: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction214(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction214;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction214_parser___ReduceAction214___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10712;
+  fra.me.meth = LOCATE_NEW_ReduceAction214_parser___ReduceAction214___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction214();
+  /* ./parser//parser.nit:10712 */
+  INIT_ATTRIBUTES__ReduceAction214(fra.me.REG[0]);
+  parser___ReduceAction214___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction214(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction215[50] = {
+  {(bigint) 3755 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction215 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction215 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3755 /* 4: ReduceAction215 < ReduceAction215: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53637,14 +113698,12 @@ const classtable_elt_t VFT_ReduceAction215[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction215 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction215 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53652,7 +113711,6 @@ const classtable_elt_t VFT_ReduceAction215[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53660,33 +113718,81 @@ const classtable_elt_t VFT_ReduceAction215[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction215 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction215 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction215___action},
-  {(bigint) 2 /* 42: ReduceAction215 < ReduceAction215: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction215 < ReduceAction215: superclass init_table position */},
   {(bigint) parser___ReduceAction215___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction215(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction215(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction215;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction215(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction215;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction215___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction215();
-  parser___ReduceAction215___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction216[44] = {
-  {(bigint) 1979 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction216 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction216 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1979 /* 3: ReduceAction216 < ReduceAction216: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction215(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction215;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction215_parser___ReduceAction215___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10750;
+  fra.me.meth = LOCATE_NEW_ReduceAction215_parser___ReduceAction215___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction215();
+  /* ./parser//parser.nit:10750 */
+  INIT_ATTRIBUTES__ReduceAction215(fra.me.REG[0]);
+  parser___ReduceAction215___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction215(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction216[50] = {
+  {(bigint) 3751 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction216 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction216 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3751 /* 4: ReduceAction216 < ReduceAction216: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53696,14 +113802,12 @@ const classtable_elt_t VFT_ReduceAction216[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction216 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction216 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53711,7 +113815,6 @@ const classtable_elt_t VFT_ReduceAction216[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53719,33 +113822,81 @@ const classtable_elt_t VFT_ReduceAction216[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction216 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction216 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction216___action},
-  {(bigint) 2 /* 42: ReduceAction216 < ReduceAction216: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction216 < ReduceAction216: superclass init_table position */},
   {(bigint) parser___ReduceAction216___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction216(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction216(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction216;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction216(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction216;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction216___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction216();
-  parser___ReduceAction216___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction217[44] = {
-  {(bigint) 1975 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction217 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction217 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1975 /* 3: ReduceAction217 < ReduceAction217: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction216(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction216;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction216_parser___ReduceAction216___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10788;
+  fra.me.meth = LOCATE_NEW_ReduceAction216_parser___ReduceAction216___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction216();
+  /* ./parser//parser.nit:10788 */
+  INIT_ATTRIBUTES__ReduceAction216(fra.me.REG[0]);
+  parser___ReduceAction216___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction216(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction217[50] = {
+  {(bigint) 3747 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction217 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction217 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3747 /* 4: ReduceAction217 < ReduceAction217: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53755,22 +113906,19 @@ const classtable_elt_t VFT_ReduceAction217[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction217 < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction217 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
   {(bigint) kernel___Object_____neq},
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53778,33 +113926,81 @@ const classtable_elt_t VFT_ReduceAction217[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction217 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction217 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction217___action},
-  {(bigint) 2 /* 42: ReduceAction217 < ReduceAction217: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction217 < ReduceAction217: superclass init_table position */},
   {(bigint) parser___ReduceAction217___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction217(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction217(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction217;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction217(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction217;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction217___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction217();
-  parser___ReduceAction217___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction218[44] = {
-  {(bigint) 1971 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction218 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction218 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1971 /* 3: ReduceAction218 < ReduceAction218: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction217(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction217;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction217_parser___ReduceAction217___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10826;
+  fra.me.meth = LOCATE_NEW_ReduceAction217_parser___ReduceAction217___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction217();
+  /* ./parser//parser.nit:10826 */
+  INIT_ATTRIBUTES__ReduceAction217(fra.me.REG[0]);
+  parser___ReduceAction217___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction217(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction218[50] = {
+  {(bigint) 3743 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction218 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction218 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3743 /* 4: ReduceAction218 < ReduceAction218: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53814,14 +114010,12 @@ const classtable_elt_t VFT_ReduceAction218[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction218 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction218 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53829,7 +114023,6 @@ const classtable_elt_t VFT_ReduceAction218[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53837,33 +114030,81 @@ const classtable_elt_t VFT_ReduceAction218[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction218 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction218 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction218___action},
-  {(bigint) 2 /* 42: ReduceAction218 < ReduceAction218: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction218 < ReduceAction218: superclass init_table position */},
   {(bigint) parser___ReduceAction218___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction218(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction218(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction218;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction218(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction218;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction218___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction218();
-  parser___ReduceAction218___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction219[44] = {
-  {(bigint) 1967 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction219 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction219 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1967 /* 3: ReduceAction219 < ReduceAction219: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction218(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction218;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction218_parser___ReduceAction218___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10864;
+  fra.me.meth = LOCATE_NEW_ReduceAction218_parser___ReduceAction218___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction218();
+  /* ./parser//parser.nit:10864 */
+  INIT_ATTRIBUTES__ReduceAction218(fra.me.REG[0]);
+  parser___ReduceAction218___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction218(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction219[50] = {
+  {(bigint) 3739 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction219 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction219 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3739 /* 4: ReduceAction219 < ReduceAction219: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53873,14 +114114,12 @@ const classtable_elt_t VFT_ReduceAction219[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction219 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction219 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53888,7 +114127,6 @@ const classtable_elt_t VFT_ReduceAction219[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53896,33 +114134,81 @@ const classtable_elt_t VFT_ReduceAction219[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction219 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction219 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction219___action},
-  {(bigint) 2 /* 42: ReduceAction219 < ReduceAction219: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction219 < ReduceAction219: superclass init_table position */},
   {(bigint) parser___ReduceAction219___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction219(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction219(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction219;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction219(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction219;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction219___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction219();
-  parser___ReduceAction219___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction220[44] = {
-  {(bigint) 1959 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction220 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction220 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1959 /* 3: ReduceAction220 < ReduceAction220: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction219(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction219;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction219_parser___ReduceAction219___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10902;
+  fra.me.meth = LOCATE_NEW_ReduceAction219_parser___ReduceAction219___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction219();
+  /* ./parser//parser.nit:10902 */
+  INIT_ATTRIBUTES__ReduceAction219(fra.me.REG[0]);
+  parser___ReduceAction219___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction219(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction220[50] = {
+  {(bigint) 3731 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction220 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction220 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3731 /* 4: ReduceAction220 < ReduceAction220: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53932,14 +114218,12 @@ const classtable_elt_t VFT_ReduceAction220[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction220 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction220 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -53947,7 +114231,6 @@ const classtable_elt_t VFT_ReduceAction220[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -53955,33 +114238,81 @@ const classtable_elt_t VFT_ReduceAction220[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction220 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction220 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction220___action},
-  {(bigint) 2 /* 42: ReduceAction220 < ReduceAction220: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction220 < ReduceAction220: superclass init_table position */},
   {(bigint) parser___ReduceAction220___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction220(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction220(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction220;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction220(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction220;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction220___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction220();
-  parser___ReduceAction220___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction221[44] = {
-  {(bigint) 1955 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction221 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction221 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1955 /* 3: ReduceAction221 < ReduceAction221: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction220(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction220;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction220_parser___ReduceAction220___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10940;
+  fra.me.meth = LOCATE_NEW_ReduceAction220_parser___ReduceAction220___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction220();
+  /* ./parser//parser.nit:10940 */
+  INIT_ATTRIBUTES__ReduceAction220(fra.me.REG[0]);
+  parser___ReduceAction220___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction220(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction221[50] = {
+  {(bigint) 3727 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction221 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction221 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3727 /* 4: ReduceAction221 < ReduceAction221: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53991,14 +114322,12 @@ const classtable_elt_t VFT_ReduceAction221[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction221 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction221 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54006,7 +114335,6 @@ const classtable_elt_t VFT_ReduceAction221[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54014,33 +114342,81 @@ const classtable_elt_t VFT_ReduceAction221[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction221 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction221 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction221___action},
-  {(bigint) 2 /* 42: ReduceAction221 < ReduceAction221: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction221 < ReduceAction221: superclass init_table position */},
   {(bigint) parser___ReduceAction221___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction221(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction221(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction221;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction221(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction221;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction221___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction221();
-  parser___ReduceAction221___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction222[44] = {
-  {(bigint) 1951 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction222 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction222 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1951 /* 3: ReduceAction222 < ReduceAction222: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction221(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction221;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction221_parser___ReduceAction221___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 10978;
+  fra.me.meth = LOCATE_NEW_ReduceAction221_parser___ReduceAction221___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction221();
+  /* ./parser//parser.nit:10978 */
+  INIT_ATTRIBUTES__ReduceAction221(fra.me.REG[0]);
+  parser___ReduceAction221___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction221(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction222[50] = {
+  {(bigint) 3723 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction222 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction222 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3723 /* 4: ReduceAction222 < ReduceAction222: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54050,14 +114426,12 @@ const classtable_elt_t VFT_ReduceAction222[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction222 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction222 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54065,7 +114439,6 @@ const classtable_elt_t VFT_ReduceAction222[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54073,33 +114446,81 @@ const classtable_elt_t VFT_ReduceAction222[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction222 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction222 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction222___action},
-  {(bigint) 2 /* 42: ReduceAction222 < ReduceAction222: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction222 < ReduceAction222: superclass init_table position */},
   {(bigint) parser___ReduceAction222___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction222(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction222(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction222;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction222(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction222;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction222___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction222();
-  parser___ReduceAction222___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction223[44] = {
-  {(bigint) 1947 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction223 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction223 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1947 /* 3: ReduceAction223 < ReduceAction223: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction222(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction222;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction222_parser___ReduceAction222___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11016;
+  fra.me.meth = LOCATE_NEW_ReduceAction222_parser___ReduceAction222___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction222();
+  /* ./parser//parser.nit:11016 */
+  INIT_ATTRIBUTES__ReduceAction222(fra.me.REG[0]);
+  parser___ReduceAction222___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction222(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction223[50] = {
+  {(bigint) 3719 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction223 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction223 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3719 /* 4: ReduceAction223 < ReduceAction223: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54109,14 +114530,12 @@ const classtable_elt_t VFT_ReduceAction223[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction223 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction223 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54124,7 +114543,6 @@ const classtable_elt_t VFT_ReduceAction223[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54132,33 +114550,81 @@ const classtable_elt_t VFT_ReduceAction223[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction223 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction223 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction223___action},
-  {(bigint) 2 /* 42: ReduceAction223 < ReduceAction223: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction223 < ReduceAction223: superclass init_table position */},
   {(bigint) parser___ReduceAction223___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction223(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction223(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction223;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction223(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction223;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction223___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction223();
-  parser___ReduceAction223___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction224[44] = {
-  {(bigint) 1943 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction224 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction224 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1943 /* 3: ReduceAction224 < ReduceAction224: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction223(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction223;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction223_parser___ReduceAction223___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11054;
+  fra.me.meth = LOCATE_NEW_ReduceAction223_parser___ReduceAction223___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction223();
+  /* ./parser//parser.nit:11054 */
+  INIT_ATTRIBUTES__ReduceAction223(fra.me.REG[0]);
+  parser___ReduceAction223___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction223(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction224[50] = {
+  {(bigint) 3715 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction224 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction224 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3715 /* 4: ReduceAction224 < ReduceAction224: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54168,14 +114634,12 @@ const classtable_elt_t VFT_ReduceAction224[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction224 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction224 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54183,7 +114647,6 @@ const classtable_elt_t VFT_ReduceAction224[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54191,33 +114654,81 @@ const classtable_elt_t VFT_ReduceAction224[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction224 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction224 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction224___action},
-  {(bigint) 2 /* 42: ReduceAction224 < ReduceAction224: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction224 < ReduceAction224: superclass init_table position */},
   {(bigint) parser___ReduceAction224___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction224(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction224(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction224;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction224(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction224;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction224___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction224();
-  parser___ReduceAction224___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction225[44] = {
-  {(bigint) 1939 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction225 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction225 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1939 /* 3: ReduceAction225 < ReduceAction225: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction224(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction224;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction224_parser___ReduceAction224___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11092;
+  fra.me.meth = LOCATE_NEW_ReduceAction224_parser___ReduceAction224___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction224();
+  /* ./parser//parser.nit:11092 */
+  INIT_ATTRIBUTES__ReduceAction224(fra.me.REG[0]);
+  parser___ReduceAction224___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction224(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction225[50] = {
+  {(bigint) 3711 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction225 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction225 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3711 /* 4: ReduceAction225 < ReduceAction225: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54227,14 +114738,12 @@ const classtable_elt_t VFT_ReduceAction225[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction225 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction225 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54242,7 +114751,6 @@ const classtable_elt_t VFT_ReduceAction225[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54250,33 +114758,81 @@ const classtable_elt_t VFT_ReduceAction225[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction225 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction225 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction225___action},
-  {(bigint) 2 /* 42: ReduceAction225 < ReduceAction225: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction225 < ReduceAction225: superclass init_table position */},
   {(bigint) parser___ReduceAction225___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction225(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction225(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction225;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction225(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction225;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction225___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction225();
-  parser___ReduceAction225___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction226[44] = {
-  {(bigint) 1935 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction226 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction226 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1935 /* 3: ReduceAction226 < ReduceAction226: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction225(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction225;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction225_parser___ReduceAction225___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11130;
+  fra.me.meth = LOCATE_NEW_ReduceAction225_parser___ReduceAction225___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction225();
+  /* ./parser//parser.nit:11130 */
+  INIT_ATTRIBUTES__ReduceAction225(fra.me.REG[0]);
+  parser___ReduceAction225___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction225(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction226[50] = {
+  {(bigint) 3707 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction226 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction226 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3707 /* 4: ReduceAction226 < ReduceAction226: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54286,14 +114842,12 @@ const classtable_elt_t VFT_ReduceAction226[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction226 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction226 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54301,7 +114855,6 @@ const classtable_elt_t VFT_ReduceAction226[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54309,33 +114862,81 @@ const classtable_elt_t VFT_ReduceAction226[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction226 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction226 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction226___action},
-  {(bigint) 2 /* 42: ReduceAction226 < ReduceAction226: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction226 < ReduceAction226: superclass init_table position */},
   {(bigint) parser___ReduceAction226___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction226(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction226(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction226;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction226(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction226;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction226___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction226();
-  parser___ReduceAction226___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction227[44] = {
-  {(bigint) 1931 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction227 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction227 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1931 /* 3: ReduceAction227 < ReduceAction227: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction226(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction226;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction226_parser___ReduceAction226___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11172;
+  fra.me.meth = LOCATE_NEW_ReduceAction226_parser___ReduceAction226___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction226();
+  /* ./parser//parser.nit:11172 */
+  INIT_ATTRIBUTES__ReduceAction226(fra.me.REG[0]);
+  parser___ReduceAction226___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction226(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction227[50] = {
+  {(bigint) 3703 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction227 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction227 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3703 /* 4: ReduceAction227 < ReduceAction227: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54345,14 +114946,12 @@ const classtable_elt_t VFT_ReduceAction227[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction227 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction227 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54360,7 +114959,6 @@ const classtable_elt_t VFT_ReduceAction227[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54368,33 +114966,81 @@ const classtable_elt_t VFT_ReduceAction227[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction227 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction227 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction227___action},
-  {(bigint) 2 /* 42: ReduceAction227 < ReduceAction227: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction227 < ReduceAction227: superclass init_table position */},
   {(bigint) parser___ReduceAction227___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction227(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction227(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction227;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction227(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction227;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction227___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction227();
-  parser___ReduceAction227___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction228[44] = {
-  {(bigint) 1927 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction228 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction228 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1927 /* 3: ReduceAction228 < ReduceAction228: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction227(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction227;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction227_parser___ReduceAction227___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11210;
+  fra.me.meth = LOCATE_NEW_ReduceAction227_parser___ReduceAction227___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction227();
+  /* ./parser//parser.nit:11210 */
+  INIT_ATTRIBUTES__ReduceAction227(fra.me.REG[0]);
+  parser___ReduceAction227___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction227(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction228[50] = {
+  {(bigint) 3699 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction228 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction228 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3699 /* 4: ReduceAction228 < ReduceAction228: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54404,14 +115050,12 @@ const classtable_elt_t VFT_ReduceAction228[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction228 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction228 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54419,7 +115063,6 @@ const classtable_elt_t VFT_ReduceAction228[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54427,33 +115070,81 @@ const classtable_elt_t VFT_ReduceAction228[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction228 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction228 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction228___action},
-  {(bigint) 2 /* 42: ReduceAction228 < ReduceAction228: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction228 < ReduceAction228: superclass init_table position */},
   {(bigint) parser___ReduceAction228___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction228(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction228(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction228;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction228(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction228;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction228___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction228();
-  parser___ReduceAction228___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction229[44] = {
-  {(bigint) 1923 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction229 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction229 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1923 /* 3: ReduceAction229 < ReduceAction229: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction228(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction228;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction228_parser___ReduceAction228___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11252;
+  fra.me.meth = LOCATE_NEW_ReduceAction228_parser___ReduceAction228___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction228();
+  /* ./parser//parser.nit:11252 */
+  INIT_ATTRIBUTES__ReduceAction228(fra.me.REG[0]);
+  parser___ReduceAction228___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction228(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction229[50] = {
+  {(bigint) 3695 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction229 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction229 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3695 /* 4: ReduceAction229 < ReduceAction229: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54463,14 +115154,12 @@ const classtable_elt_t VFT_ReduceAction229[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction229 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction229 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54478,7 +115167,6 @@ const classtable_elt_t VFT_ReduceAction229[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54486,33 +115174,81 @@ const classtable_elt_t VFT_ReduceAction229[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction229 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction229 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction229___action},
-  {(bigint) 2 /* 42: ReduceAction229 < ReduceAction229: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction229 < ReduceAction229: superclass init_table position */},
   {(bigint) parser___ReduceAction229___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction229(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction229(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction229;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction229(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction229;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction229___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction229();
-  parser___ReduceAction229___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction230[44] = {
-  {(bigint) 1915 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction230 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction230 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1915 /* 3: ReduceAction230 < ReduceAction230: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction229(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction229;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction229_parser___ReduceAction229___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11298;
+  fra.me.meth = LOCATE_NEW_ReduceAction229_parser___ReduceAction229___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction229();
+  /* ./parser//parser.nit:11298 */
+  INIT_ATTRIBUTES__ReduceAction229(fra.me.REG[0]);
+  parser___ReduceAction229___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction229(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction230[50] = {
+  {(bigint) 3687 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction230 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction230 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3687 /* 4: ReduceAction230 < ReduceAction230: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54522,14 +115258,12 @@ const classtable_elt_t VFT_ReduceAction230[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction230 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction230 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54537,7 +115271,6 @@ const classtable_elt_t VFT_ReduceAction230[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54545,33 +115278,81 @@ const classtable_elt_t VFT_ReduceAction230[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction230 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction230 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction230___action},
-  {(bigint) 2 /* 42: ReduceAction230 < ReduceAction230: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction230 < ReduceAction230: superclass init_table position */},
   {(bigint) parser___ReduceAction230___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction230(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction230(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction230;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction230(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction230;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction230___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction230();
-  parser___ReduceAction230___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction231[44] = {
-  {(bigint) 1911 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction231 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction231 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1911 /* 3: ReduceAction231 < ReduceAction231: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction230(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction230;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction230_parser___ReduceAction230___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11339;
+  fra.me.meth = LOCATE_NEW_ReduceAction230_parser___ReduceAction230___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction230();
+  /* ./parser//parser.nit:11339 */
+  INIT_ATTRIBUTES__ReduceAction230(fra.me.REG[0]);
+  parser___ReduceAction230___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction230(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction231[50] = {
+  {(bigint) 3683 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction231 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction231 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3683 /* 4: ReduceAction231 < ReduceAction231: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54581,14 +115362,12 @@ const classtable_elt_t VFT_ReduceAction231[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction231 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction231 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54596,7 +115375,6 @@ const classtable_elt_t VFT_ReduceAction231[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54604,33 +115382,81 @@ const classtable_elt_t VFT_ReduceAction231[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction231 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction231 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction231___action},
-  {(bigint) 2 /* 42: ReduceAction231 < ReduceAction231: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction231 < ReduceAction231: superclass init_table position */},
   {(bigint) parser___ReduceAction231___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction231(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction231(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction231;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction231(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction231;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction231___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction231();
-  parser___ReduceAction231___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction232[44] = {
-  {(bigint) 1907 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction232 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction232 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1907 /* 3: ReduceAction232 < ReduceAction232: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction231(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction231;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction231_parser___ReduceAction231___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11380;
+  fra.me.meth = LOCATE_NEW_ReduceAction231_parser___ReduceAction231___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction231();
+  /* ./parser//parser.nit:11380 */
+  INIT_ATTRIBUTES__ReduceAction231(fra.me.REG[0]);
+  parser___ReduceAction231___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction231(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction232[50] = {
+  {(bigint) 3679 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction232 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction232 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3679 /* 4: ReduceAction232 < ReduceAction232: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54640,14 +115466,12 @@ const classtable_elt_t VFT_ReduceAction232[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction232 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction232 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54655,7 +115479,6 @@ const classtable_elt_t VFT_ReduceAction232[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54663,33 +115486,81 @@ const classtable_elt_t VFT_ReduceAction232[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction232 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction232 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction232___action},
-  {(bigint) 2 /* 42: ReduceAction232 < ReduceAction232: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction232 < ReduceAction232: superclass init_table position */},
   {(bigint) parser___ReduceAction232___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction232(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction232(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction232;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction232(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction232;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction232___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction232();
-  parser___ReduceAction232___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction233[44] = {
-  {(bigint) 1903 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction233 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction233 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1903 /* 3: ReduceAction233 < ReduceAction233: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction232(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction232;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction232_parser___ReduceAction232___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11421;
+  fra.me.meth = LOCATE_NEW_ReduceAction232_parser___ReduceAction232___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction232();
+  /* ./parser//parser.nit:11421 */
+  INIT_ATTRIBUTES__ReduceAction232(fra.me.REG[0]);
+  parser___ReduceAction232___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction232(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction233[50] = {
+  {(bigint) 3675 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction233 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction233 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3675 /* 4: ReduceAction233 < ReduceAction233: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54699,14 +115570,12 @@ const classtable_elt_t VFT_ReduceAction233[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction233 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction233 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54714,7 +115583,6 @@ const classtable_elt_t VFT_ReduceAction233[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54722,33 +115590,81 @@ const classtable_elt_t VFT_ReduceAction233[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction233 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction233 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction233___action},
-  {(bigint) 2 /* 42: ReduceAction233 < ReduceAction233: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction233 < ReduceAction233: superclass init_table position */},
   {(bigint) parser___ReduceAction233___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction233(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction233(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction233;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction233(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction233;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction233___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction233();
-  parser___ReduceAction233___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction234[44] = {
-  {(bigint) 1899 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction234 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction234 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1899 /* 3: ReduceAction234 < ReduceAction234: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction233(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction233;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction233_parser___ReduceAction233___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11462;
+  fra.me.meth = LOCATE_NEW_ReduceAction233_parser___ReduceAction233___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction233();
+  /* ./parser//parser.nit:11462 */
+  INIT_ATTRIBUTES__ReduceAction233(fra.me.REG[0]);
+  parser___ReduceAction233___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction233(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction234[50] = {
+  {(bigint) 3671 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction234 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction234 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3671 /* 4: ReduceAction234 < ReduceAction234: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54758,14 +115674,12 @@ const classtable_elt_t VFT_ReduceAction234[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction234 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction234 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54773,7 +115687,6 @@ const classtable_elt_t VFT_ReduceAction234[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54781,33 +115694,81 @@ const classtable_elt_t VFT_ReduceAction234[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction234 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction234 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction234___action},
-  {(bigint) 2 /* 42: ReduceAction234 < ReduceAction234: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction234 < ReduceAction234: superclass init_table position */},
   {(bigint) parser___ReduceAction234___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction234(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction234(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction234;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction234(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction234;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction234___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction234();
-  parser___ReduceAction234___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction235[44] = {
-  {(bigint) 1895 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction235 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction235 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1895 /* 3: ReduceAction235 < ReduceAction235: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction234(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction234;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction234_parser___ReduceAction234___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11503;
+  fra.me.meth = LOCATE_NEW_ReduceAction234_parser___ReduceAction234___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction234();
+  /* ./parser//parser.nit:11503 */
+  INIT_ATTRIBUTES__ReduceAction234(fra.me.REG[0]);
+  parser___ReduceAction234___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction234(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction235[50] = {
+  {(bigint) 3667 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction235 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction235 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3667 /* 4: ReduceAction235 < ReduceAction235: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54817,14 +115778,12 @@ const classtable_elt_t VFT_ReduceAction235[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction235 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction235 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54832,7 +115791,6 @@ const classtable_elt_t VFT_ReduceAction235[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54840,33 +115798,81 @@ const classtable_elt_t VFT_ReduceAction235[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction235 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction235 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction235___action},
-  {(bigint) 2 /* 42: ReduceAction235 < ReduceAction235: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction235 < ReduceAction235: superclass init_table position */},
   {(bigint) parser___ReduceAction235___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction235(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction235(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction235;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction235(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction235;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction235___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction235();
-  parser___ReduceAction235___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction236[44] = {
-  {(bigint) 1891 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction236 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction236 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1891 /* 3: ReduceAction236 < ReduceAction236: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction235(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction235;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction235_parser___ReduceAction235___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11544;
+  fra.me.meth = LOCATE_NEW_ReduceAction235_parser___ReduceAction235___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction235();
+  /* ./parser//parser.nit:11544 */
+  INIT_ATTRIBUTES__ReduceAction235(fra.me.REG[0]);
+  parser___ReduceAction235___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction235(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction236[50] = {
+  {(bigint) 3663 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction236 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction236 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3663 /* 4: ReduceAction236 < ReduceAction236: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54876,14 +115882,12 @@ const classtable_elt_t VFT_ReduceAction236[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction236 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction236 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54891,7 +115895,6 @@ const classtable_elt_t VFT_ReduceAction236[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54899,33 +115902,81 @@ const classtable_elt_t VFT_ReduceAction236[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction236 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction236 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction236___action},
-  {(bigint) 2 /* 42: ReduceAction236 < ReduceAction236: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction236 < ReduceAction236: superclass init_table position */},
   {(bigint) parser___ReduceAction236___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction236(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction236(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction236;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction236(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction236;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction236___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction236();
-  parser___ReduceAction236___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction237[44] = {
-  {(bigint) 1887 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction237 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction237 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1887 /* 3: ReduceAction237 < ReduceAction237: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction236(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction236;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction236_parser___ReduceAction236___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11585;
+  fra.me.meth = LOCATE_NEW_ReduceAction236_parser___ReduceAction236___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction236();
+  /* ./parser//parser.nit:11585 */
+  INIT_ATTRIBUTES__ReduceAction236(fra.me.REG[0]);
+  parser___ReduceAction236___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction236(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction237[50] = {
+  {(bigint) 3659 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction237 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction237 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3659 /* 4: ReduceAction237 < ReduceAction237: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54935,14 +115986,12 @@ const classtable_elt_t VFT_ReduceAction237[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction237 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction237 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -54950,7 +115999,6 @@ const classtable_elt_t VFT_ReduceAction237[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -54958,33 +116006,81 @@ const classtable_elt_t VFT_ReduceAction237[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction237 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction237 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction237___action},
-  {(bigint) 2 /* 42: ReduceAction237 < ReduceAction237: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction237 < ReduceAction237: superclass init_table position */},
   {(bigint) parser___ReduceAction237___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction237(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction237(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction237;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction237(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction237;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction237___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction237();
-  parser___ReduceAction237___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction238[44] = {
-  {(bigint) 1883 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction238 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction238 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1883 /* 3: ReduceAction238 < ReduceAction238: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction237(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction237;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction237_parser___ReduceAction237___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11626;
+  fra.me.meth = LOCATE_NEW_ReduceAction237_parser___ReduceAction237___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction237();
+  /* ./parser//parser.nit:11626 */
+  INIT_ATTRIBUTES__ReduceAction237(fra.me.REG[0]);
+  parser___ReduceAction237___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction237(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction238[50] = {
+  {(bigint) 3655 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction238 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction238 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3655 /* 4: ReduceAction238 < ReduceAction238: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54994,14 +116090,12 @@ const classtable_elt_t VFT_ReduceAction238[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction238 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction238 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55009,7 +116103,6 @@ const classtable_elt_t VFT_ReduceAction238[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55017,33 +116110,81 @@ const classtable_elt_t VFT_ReduceAction238[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction238 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction238 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction238___action},
-  {(bigint) 2 /* 42: ReduceAction238 < ReduceAction238: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction238 < ReduceAction238: superclass init_table position */},
   {(bigint) parser___ReduceAction238___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction238(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction238(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction238;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction238(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction238;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction238___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction238();
-  parser___ReduceAction238___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction239[44] = {
-  {(bigint) 1879 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction239 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction239 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1879 /* 3: ReduceAction239 < ReduceAction239: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction238(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction238;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction238_parser___ReduceAction238___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11667;
+  fra.me.meth = LOCATE_NEW_ReduceAction238_parser___ReduceAction238___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction238();
+  /* ./parser//parser.nit:11667 */
+  INIT_ATTRIBUTES__ReduceAction238(fra.me.REG[0]);
+  parser___ReduceAction238___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction238(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction239[50] = {
+  {(bigint) 3651 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction239 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction239 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3651 /* 4: ReduceAction239 < ReduceAction239: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55053,14 +116194,12 @@ const classtable_elt_t VFT_ReduceAction239[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction239 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction239 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55068,7 +116207,6 @@ const classtable_elt_t VFT_ReduceAction239[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55076,33 +116214,81 @@ const classtable_elt_t VFT_ReduceAction239[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction239 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction239 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction239___action},
-  {(bigint) 2 /* 42: ReduceAction239 < ReduceAction239: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction239 < ReduceAction239: superclass init_table position */},
   {(bigint) parser___ReduceAction239___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction239(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction239(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction239;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction239(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction239;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction239___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction239();
-  parser___ReduceAction239___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction240[44] = {
-  {(bigint) 1871 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction240 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction240 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1871 /* 3: ReduceAction240 < ReduceAction240: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction239(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction239;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction239_parser___ReduceAction239___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11708;
+  fra.me.meth = LOCATE_NEW_ReduceAction239_parser___ReduceAction239___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction239();
+  /* ./parser//parser.nit:11708 */
+  INIT_ATTRIBUTES__ReduceAction239(fra.me.REG[0]);
+  parser___ReduceAction239___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction239(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction240[50] = {
+  {(bigint) 3643 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction240 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction240 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3643 /* 4: ReduceAction240 < ReduceAction240: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55112,14 +116298,12 @@ const classtable_elt_t VFT_ReduceAction240[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction240 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction240 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55127,7 +116311,6 @@ const classtable_elt_t VFT_ReduceAction240[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55135,33 +116318,81 @@ const classtable_elt_t VFT_ReduceAction240[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction240 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction240 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction240___action},
-  {(bigint) 2 /* 42: ReduceAction240 < ReduceAction240: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction240 < ReduceAction240: superclass init_table position */},
   {(bigint) parser___ReduceAction240___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction240(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction240(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction240;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction240(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction240;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction240___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction240();
-  parser___ReduceAction240___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction241[44] = {
-  {(bigint) 1867 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction241 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction241 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1867 /* 3: ReduceAction241 < ReduceAction241: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction240(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction240;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction240_parser___ReduceAction240___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11749;
+  fra.me.meth = LOCATE_NEW_ReduceAction240_parser___ReduceAction240___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction240();
+  /* ./parser//parser.nit:11749 */
+  INIT_ATTRIBUTES__ReduceAction240(fra.me.REG[0]);
+  parser___ReduceAction240___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction240(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction241[50] = {
+  {(bigint) 3639 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction241 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction241 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3639 /* 4: ReduceAction241 < ReduceAction241: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55171,14 +116402,12 @@ const classtable_elt_t VFT_ReduceAction241[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction241 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction241 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55186,7 +116415,6 @@ const classtable_elt_t VFT_ReduceAction241[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55194,33 +116422,81 @@ const classtable_elt_t VFT_ReduceAction241[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction241 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction241 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction241___action},
-  {(bigint) 2 /* 42: ReduceAction241 < ReduceAction241: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction241 < ReduceAction241: superclass init_table position */},
   {(bigint) parser___ReduceAction241___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction241(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction241(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction241;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction241(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction241;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction241___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction241();
-  parser___ReduceAction241___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction242[44] = {
-  {(bigint) 1863 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction242 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction242 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1863 /* 3: ReduceAction242 < ReduceAction242: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction241(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction241;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction241_parser___ReduceAction241___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11790;
+  fra.me.meth = LOCATE_NEW_ReduceAction241_parser___ReduceAction241___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction241();
+  /* ./parser//parser.nit:11790 */
+  INIT_ATTRIBUTES__ReduceAction241(fra.me.REG[0]);
+  parser___ReduceAction241___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction241(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction242[50] = {
+  {(bigint) 3635 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction242 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction242 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3635 /* 4: ReduceAction242 < ReduceAction242: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55230,14 +116506,12 @@ const classtable_elt_t VFT_ReduceAction242[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction242 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction242 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55245,7 +116519,6 @@ const classtable_elt_t VFT_ReduceAction242[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55253,33 +116526,81 @@ const classtable_elt_t VFT_ReduceAction242[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction242 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction242 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction242___action},
-  {(bigint) 2 /* 42: ReduceAction242 < ReduceAction242: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction242 < ReduceAction242: superclass init_table position */},
   {(bigint) parser___ReduceAction242___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction242(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction242(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction242;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction242(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction242;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction242___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction242();
-  parser___ReduceAction242___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction243[44] = {
-  {(bigint) 1859 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction243 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction243 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1859 /* 3: ReduceAction243 < ReduceAction243: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction242(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction242;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction242_parser___ReduceAction242___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11835;
+  fra.me.meth = LOCATE_NEW_ReduceAction242_parser___ReduceAction242___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction242();
+  /* ./parser//parser.nit:11835 */
+  INIT_ATTRIBUTES__ReduceAction242(fra.me.REG[0]);
+  parser___ReduceAction242___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction242(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction243[50] = {
+  {(bigint) 3631 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction243 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction243 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3631 /* 4: ReduceAction243 < ReduceAction243: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55289,14 +116610,12 @@ const classtable_elt_t VFT_ReduceAction243[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction243 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction243 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55304,7 +116623,6 @@ const classtable_elt_t VFT_ReduceAction243[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55312,33 +116630,81 @@ const classtable_elt_t VFT_ReduceAction243[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction243 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction243 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction243___action},
-  {(bigint) 2 /* 42: ReduceAction243 < ReduceAction243: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction243 < ReduceAction243: superclass init_table position */},
   {(bigint) parser___ReduceAction243___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction243(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction243(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction243;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction243(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction243;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction243___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction243();
-  parser___ReduceAction243___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction244[44] = {
-  {(bigint) 1855 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction244 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction244 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1855 /* 3: ReduceAction244 < ReduceAction244: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction243(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction243;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction243_parser___ReduceAction243___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11876;
+  fra.me.meth = LOCATE_NEW_ReduceAction243_parser___ReduceAction243___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction243();
+  /* ./parser//parser.nit:11876 */
+  INIT_ATTRIBUTES__ReduceAction243(fra.me.REG[0]);
+  parser___ReduceAction243___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction243(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction244[50] = {
+  {(bigint) 3627 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction244 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction244 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3627 /* 4: ReduceAction244 < ReduceAction244: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55348,14 +116714,12 @@ const classtable_elt_t VFT_ReduceAction244[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction244 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction244 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55363,7 +116727,6 @@ const classtable_elt_t VFT_ReduceAction244[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55371,33 +116734,81 @@ const classtable_elt_t VFT_ReduceAction244[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction244 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction244 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction244___action},
-  {(bigint) 2 /* 42: ReduceAction244 < ReduceAction244: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction244 < ReduceAction244: superclass init_table position */},
   {(bigint) parser___ReduceAction244___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction244(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction244(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction244;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction244(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction244;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction244___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction244();
-  parser___ReduceAction244___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction245[44] = {
-  {(bigint) 1851 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction245 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction245 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1851 /* 3: ReduceAction245 < ReduceAction245: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction244(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction244;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction244_parser___ReduceAction244___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11921;
+  fra.me.meth = LOCATE_NEW_ReduceAction244_parser___ReduceAction244___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction244();
+  /* ./parser//parser.nit:11921 */
+  INIT_ATTRIBUTES__ReduceAction244(fra.me.REG[0]);
+  parser___ReduceAction244___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction244(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction245[50] = {
+  {(bigint) 3623 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction245 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction245 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3623 /* 4: ReduceAction245 < ReduceAction245: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55407,14 +116818,12 @@ const classtable_elt_t VFT_ReduceAction245[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction245 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction245 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55422,7 +116831,6 @@ const classtable_elt_t VFT_ReduceAction245[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55430,33 +116838,81 @@ const classtable_elt_t VFT_ReduceAction245[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction245 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction245 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction245___action},
-  {(bigint) 2 /* 42: ReduceAction245 < ReduceAction245: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction245 < ReduceAction245: superclass init_table position */},
   {(bigint) parser___ReduceAction245___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction245(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction245(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction245;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction245(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction245;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction245___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction245();
-  parser___ReduceAction245___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction246[44] = {
-  {(bigint) 1847 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction246 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction246 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1847 /* 3: ReduceAction246 < ReduceAction246: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction245(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction245;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction245_parser___ReduceAction245___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 11970;
+  fra.me.meth = LOCATE_NEW_ReduceAction245_parser___ReduceAction245___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction245();
+  /* ./parser//parser.nit:11970 */
+  INIT_ATTRIBUTES__ReduceAction245(fra.me.REG[0]);
+  parser___ReduceAction245___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction245(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction246[50] = {
+  {(bigint) 3619 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction246 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction246 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3619 /* 4: ReduceAction246 < ReduceAction246: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55466,14 +116922,12 @@ const classtable_elt_t VFT_ReduceAction246[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction246 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction246 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55481,7 +116935,6 @@ const classtable_elt_t VFT_ReduceAction246[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55489,33 +116942,81 @@ const classtable_elt_t VFT_ReduceAction246[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction246 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction246 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction246___action},
-  {(bigint) 2 /* 42: ReduceAction246 < ReduceAction246: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction246 < ReduceAction246: superclass init_table position */},
   {(bigint) parser___ReduceAction246___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction246(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction246(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction246;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction246(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction246;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction246___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction246();
-  parser___ReduceAction246___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction247[44] = {
-  {(bigint) 1843 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction247 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction247 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1843 /* 3: ReduceAction247 < ReduceAction247: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction246(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction246;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction246_parser___ReduceAction246___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12009;
+  fra.me.meth = LOCATE_NEW_ReduceAction246_parser___ReduceAction246___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction246();
+  /* ./parser//parser.nit:12009 */
+  INIT_ATTRIBUTES__ReduceAction246(fra.me.REG[0]);
+  parser___ReduceAction246___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction246(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction247[50] = {
+  {(bigint) 3615 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction247 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction247 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3615 /* 4: ReduceAction247 < ReduceAction247: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55525,14 +117026,12 @@ const classtable_elt_t VFT_ReduceAction247[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction247 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction247 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55540,7 +117039,6 @@ const classtable_elt_t VFT_ReduceAction247[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55548,33 +117046,81 @@ const classtable_elt_t VFT_ReduceAction247[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction247 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction247 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction247___action},
-  {(bigint) 2 /* 42: ReduceAction247 < ReduceAction247: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction247 < ReduceAction247: superclass init_table position */},
   {(bigint) parser___ReduceAction247___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction247(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction247(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction247;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction247(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction247;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction247___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction247();
-  parser___ReduceAction247___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction248[44] = {
-  {(bigint) 1839 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction248 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction248 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1839 /* 3: ReduceAction248 < ReduceAction248: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction247(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction247;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction247_parser___ReduceAction247___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12048;
+  fra.me.meth = LOCATE_NEW_ReduceAction247_parser___ReduceAction247___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction247();
+  /* ./parser//parser.nit:12048 */
+  INIT_ATTRIBUTES__ReduceAction247(fra.me.REG[0]);
+  parser___ReduceAction247___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction247(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction248[50] = {
+  {(bigint) 3611 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction248 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction248 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3611 /* 4: ReduceAction248 < ReduceAction248: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55584,14 +117130,12 @@ const classtable_elt_t VFT_ReduceAction248[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction248 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction248 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55599,7 +117143,6 @@ const classtable_elt_t VFT_ReduceAction248[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55607,33 +117150,81 @@ const classtable_elt_t VFT_ReduceAction248[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction248 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction248 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction248___action},
-  {(bigint) 2 /* 42: ReduceAction248 < ReduceAction248: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction248 < ReduceAction248: superclass init_table position */},
   {(bigint) parser___ReduceAction248___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction248(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction248(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction248;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction248(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction248;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction248___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction248();
-  parser___ReduceAction248___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction249[44] = {
-  {(bigint) 1835 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction249 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction249 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1835 /* 3: ReduceAction249 < ReduceAction249: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction248(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction248;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction248_parser___ReduceAction248___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12087;
+  fra.me.meth = LOCATE_NEW_ReduceAction248_parser___ReduceAction248___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction248();
+  /* ./parser//parser.nit:12087 */
+  INIT_ATTRIBUTES__ReduceAction248(fra.me.REG[0]);
+  parser___ReduceAction248___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction248(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction249[50] = {
+  {(bigint) 3607 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction249 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction249 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3607 /* 4: ReduceAction249 < ReduceAction249: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55643,14 +117234,12 @@ const classtable_elt_t VFT_ReduceAction249[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction249 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction249 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55658,7 +117247,6 @@ const classtable_elt_t VFT_ReduceAction249[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55666,33 +117254,81 @@ const classtable_elt_t VFT_ReduceAction249[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction249 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction249 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction249___action},
-  {(bigint) 2 /* 42: ReduceAction249 < ReduceAction249: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction249 < ReduceAction249: superclass init_table position */},
   {(bigint) parser___ReduceAction249___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction249(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction249(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction249;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction249(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction249;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction249___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction249();
-  parser___ReduceAction249___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction250[44] = {
-  {(bigint) 1827 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction250 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction250 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1827 /* 3: ReduceAction250 < ReduceAction250: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction249(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction249;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction249_parser___ReduceAction249___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12126;
+  fra.me.meth = LOCATE_NEW_ReduceAction249_parser___ReduceAction249___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction249();
+  /* ./parser//parser.nit:12126 */
+  INIT_ATTRIBUTES__ReduceAction249(fra.me.REG[0]);
+  parser___ReduceAction249___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction249(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction250[50] = {
+  {(bigint) 3599 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction250 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction250 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3599 /* 4: ReduceAction250 < ReduceAction250: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55702,14 +117338,12 @@ const classtable_elt_t VFT_ReduceAction250[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction250 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction250 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55717,7 +117351,6 @@ const classtable_elt_t VFT_ReduceAction250[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55725,33 +117358,81 @@ const classtable_elt_t VFT_ReduceAction250[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction250 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction250 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction250___action},
-  {(bigint) 2 /* 42: ReduceAction250 < ReduceAction250: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction250 < ReduceAction250: superclass init_table position */},
   {(bigint) parser___ReduceAction250___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction250(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction250(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction250;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction250(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction250;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction250___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction250();
-  parser___ReduceAction250___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction251[44] = {
-  {(bigint) 1823 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction251 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction251 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1823 /* 3: ReduceAction251 < ReduceAction251: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction250(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction250;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction250_parser___ReduceAction250___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12165;
+  fra.me.meth = LOCATE_NEW_ReduceAction250_parser___ReduceAction250___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction250();
+  /* ./parser//parser.nit:12165 */
+  INIT_ATTRIBUTES__ReduceAction250(fra.me.REG[0]);
+  parser___ReduceAction250___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction250(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction251[50] = {
+  {(bigint) 3595 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction251 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction251 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3595 /* 4: ReduceAction251 < ReduceAction251: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55761,14 +117442,12 @@ const classtable_elt_t VFT_ReduceAction251[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction251 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction251 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55776,7 +117455,6 @@ const classtable_elt_t VFT_ReduceAction251[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55784,33 +117462,81 @@ const classtable_elt_t VFT_ReduceAction251[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction251 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction251 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction251___action},
-  {(bigint) 2 /* 42: ReduceAction251 < ReduceAction251: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction251 < ReduceAction251: superclass init_table position */},
   {(bigint) parser___ReduceAction251___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction251(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction251(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction251;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction251(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction251;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction251___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction251();
-  parser___ReduceAction251___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction252[44] = {
-  {(bigint) 1819 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction252 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction252 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1819 /* 3: ReduceAction252 < ReduceAction252: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction251(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction251;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction251_parser___ReduceAction251___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12204;
+  fra.me.meth = LOCATE_NEW_ReduceAction251_parser___ReduceAction251___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction251();
+  /* ./parser//parser.nit:12204 */
+  INIT_ATTRIBUTES__ReduceAction251(fra.me.REG[0]);
+  parser___ReduceAction251___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction251(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction252[50] = {
+  {(bigint) 3591 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction252 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction252 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3591 /* 4: ReduceAction252 < ReduceAction252: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55820,14 +117546,12 @@ const classtable_elt_t VFT_ReduceAction252[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction252 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction252 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55835,7 +117559,6 @@ const classtable_elt_t VFT_ReduceAction252[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55843,33 +117566,81 @@ const classtable_elt_t VFT_ReduceAction252[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction252 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction252 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction252___action},
-  {(bigint) 2 /* 42: ReduceAction252 < ReduceAction252: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction252 < ReduceAction252: superclass init_table position */},
   {(bigint) parser___ReduceAction252___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction252(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction252(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction252;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction252(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction252;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction252___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction252();
-  parser___ReduceAction252___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction253[44] = {
-  {(bigint) 1815 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction253 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction253 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1815 /* 3: ReduceAction253 < ReduceAction253: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction252(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction252;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction252_parser___ReduceAction252___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12243;
+  fra.me.meth = LOCATE_NEW_ReduceAction252_parser___ReduceAction252___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction252();
+  /* ./parser//parser.nit:12243 */
+  INIT_ATTRIBUTES__ReduceAction252(fra.me.REG[0]);
+  parser___ReduceAction252___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction252(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction253[50] = {
+  {(bigint) 3587 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction253 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction253 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3587 /* 4: ReduceAction253 < ReduceAction253: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55879,14 +117650,12 @@ const classtable_elt_t VFT_ReduceAction253[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction253 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction253 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55894,7 +117663,6 @@ const classtable_elt_t VFT_ReduceAction253[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55902,33 +117670,81 @@ const classtable_elt_t VFT_ReduceAction253[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction253 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction253 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction253___action},
-  {(bigint) 2 /* 42: ReduceAction253 < ReduceAction253: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction253 < ReduceAction253: superclass init_table position */},
   {(bigint) parser___ReduceAction253___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction253(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction253(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction253;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction253(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction253;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction253___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction253();
-  parser___ReduceAction253___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction254[44] = {
-  {(bigint) 1811 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction254 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction254 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1811 /* 3: ReduceAction254 < ReduceAction254: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction253(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction253;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction253_parser___ReduceAction253___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12282;
+  fra.me.meth = LOCATE_NEW_ReduceAction253_parser___ReduceAction253___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction253();
+  /* ./parser//parser.nit:12282 */
+  INIT_ATTRIBUTES__ReduceAction253(fra.me.REG[0]);
+  parser___ReduceAction253___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction253(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction254[50] = {
+  {(bigint) 3583 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction254 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction254 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3583 /* 4: ReduceAction254 < ReduceAction254: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55938,14 +117754,12 @@ const classtable_elt_t VFT_ReduceAction254[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction254 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction254 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -55953,7 +117767,6 @@ const classtable_elt_t VFT_ReduceAction254[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -55961,33 +117774,81 @@ const classtable_elt_t VFT_ReduceAction254[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction254 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction254 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction254___action},
-  {(bigint) 2 /* 42: ReduceAction254 < ReduceAction254: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction254 < ReduceAction254: superclass init_table position */},
   {(bigint) parser___ReduceAction254___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction254(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction254(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction254;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction254(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction254;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction254___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction254();
-  parser___ReduceAction254___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction255[44] = {
-  {(bigint) 1807 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction255 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction255 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1807 /* 3: ReduceAction255 < ReduceAction255: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction254(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction254;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction254_parser___ReduceAction254___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12321;
+  fra.me.meth = LOCATE_NEW_ReduceAction254_parser___ReduceAction254___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction254();
+  /* ./parser//parser.nit:12321 */
+  INIT_ATTRIBUTES__ReduceAction254(fra.me.REG[0]);
+  parser___ReduceAction254___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction254(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction255[50] = {
+  {(bigint) 3579 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction255 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction255 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3579 /* 4: ReduceAction255 < ReduceAction255: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55997,14 +117858,12 @@ const classtable_elt_t VFT_ReduceAction255[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction255 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction255 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56012,7 +117871,6 @@ const classtable_elt_t VFT_ReduceAction255[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56020,33 +117878,81 @@ const classtable_elt_t VFT_ReduceAction255[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction255 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction255 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction255___action},
-  {(bigint) 2 /* 42: ReduceAction255 < ReduceAction255: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction255 < ReduceAction255: superclass init_table position */},
   {(bigint) parser___ReduceAction255___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction255(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction255(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction255;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction255(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction255;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction255___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction255();
-  parser___ReduceAction255___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction256[44] = {
-  {(bigint) 1803 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction256 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction256 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1803 /* 3: ReduceAction256 < ReduceAction256: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction255(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction255;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction255_parser___ReduceAction255___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12360;
+  fra.me.meth = LOCATE_NEW_ReduceAction255_parser___ReduceAction255___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction255();
+  /* ./parser//parser.nit:12360 */
+  INIT_ATTRIBUTES__ReduceAction255(fra.me.REG[0]);
+  parser___ReduceAction255___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction255(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction256[50] = {
+  {(bigint) 3575 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction256 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction256 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3575 /* 4: ReduceAction256 < ReduceAction256: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56056,14 +117962,12 @@ const classtable_elt_t VFT_ReduceAction256[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction256 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction256 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56071,7 +117975,6 @@ const classtable_elt_t VFT_ReduceAction256[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56079,33 +117982,81 @@ const classtable_elt_t VFT_ReduceAction256[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction256 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction256 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction256___action},
-  {(bigint) 2 /* 42: ReduceAction256 < ReduceAction256: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction256 < ReduceAction256: superclass init_table position */},
   {(bigint) parser___ReduceAction256___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction256(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction256(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction256;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction256(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction256;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction256___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction256();
-  parser___ReduceAction256___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction257[44] = {
-  {(bigint) 1799 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction257 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction257 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1799 /* 3: ReduceAction257 < ReduceAction257: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction256(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction256;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction256_parser___ReduceAction256___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12399;
+  fra.me.meth = LOCATE_NEW_ReduceAction256_parser___ReduceAction256___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction256();
+  /* ./parser//parser.nit:12399 */
+  INIT_ATTRIBUTES__ReduceAction256(fra.me.REG[0]);
+  parser___ReduceAction256___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction256(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction257[50] = {
+  {(bigint) 3571 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction257 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction257 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3571 /* 4: ReduceAction257 < ReduceAction257: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56115,14 +118066,12 @@ const classtable_elt_t VFT_ReduceAction257[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction257 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction257 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56130,7 +118079,6 @@ const classtable_elt_t VFT_ReduceAction257[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56138,33 +118086,81 @@ const classtable_elt_t VFT_ReduceAction257[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction257 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction257 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction257___action},
-  {(bigint) 2 /* 42: ReduceAction257 < ReduceAction257: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction257 < ReduceAction257: superclass init_table position */},
   {(bigint) parser___ReduceAction257___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction257(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction257(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction257;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction257(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction257;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction257___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction257();
-  parser___ReduceAction257___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction258[44] = {
-  {(bigint) 1795 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction258 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction258 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1795 /* 3: ReduceAction258 < ReduceAction258: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction257(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction257;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction257_parser___ReduceAction257___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12438;
+  fra.me.meth = LOCATE_NEW_ReduceAction257_parser___ReduceAction257___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction257();
+  /* ./parser//parser.nit:12438 */
+  INIT_ATTRIBUTES__ReduceAction257(fra.me.REG[0]);
+  parser___ReduceAction257___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction257(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction258[50] = {
+  {(bigint) 3567 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction258 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction258 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3567 /* 4: ReduceAction258 < ReduceAction258: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56174,14 +118170,12 @@ const classtable_elt_t VFT_ReduceAction258[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction258 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction258 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56189,7 +118183,6 @@ const classtable_elt_t VFT_ReduceAction258[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56197,33 +118190,81 @@ const classtable_elt_t VFT_ReduceAction258[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction258 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction258 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction258___action},
-  {(bigint) 2 /* 42: ReduceAction258 < ReduceAction258: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction258 < ReduceAction258: superclass init_table position */},
   {(bigint) parser___ReduceAction258___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction258(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction258(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction258;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction258(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction258;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction258___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction258();
-  parser___ReduceAction258___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction259[44] = {
-  {(bigint) 1791 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction259 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction259 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1791 /* 3: ReduceAction259 < ReduceAction259: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction258(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction258;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction258_parser___ReduceAction258___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12481;
+  fra.me.meth = LOCATE_NEW_ReduceAction258_parser___ReduceAction258___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction258();
+  /* ./parser//parser.nit:12481 */
+  INIT_ATTRIBUTES__ReduceAction258(fra.me.REG[0]);
+  parser___ReduceAction258___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction258(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction259[50] = {
+  {(bigint) 3563 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction259 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction259 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3563 /* 4: ReduceAction259 < ReduceAction259: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56233,14 +118274,12 @@ const classtable_elt_t VFT_ReduceAction259[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction259 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction259 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56248,7 +118287,6 @@ const classtable_elt_t VFT_ReduceAction259[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56256,33 +118294,81 @@ const classtable_elt_t VFT_ReduceAction259[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction259 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction259 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction259___action},
-  {(bigint) 2 /* 42: ReduceAction259 < ReduceAction259: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction259 < ReduceAction259: superclass init_table position */},
   {(bigint) parser___ReduceAction259___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction259(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction259(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction259;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction259(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction259;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction259___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction259();
-  parser___ReduceAction259___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction260[44] = {
-  {(bigint) 1783 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction260 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction260 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1783 /* 3: ReduceAction260 < ReduceAction260: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction259(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction259;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction259_parser___ReduceAction259___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12520;
+  fra.me.meth = LOCATE_NEW_ReduceAction259_parser___ReduceAction259___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction259();
+  /* ./parser//parser.nit:12520 */
+  INIT_ATTRIBUTES__ReduceAction259(fra.me.REG[0]);
+  parser___ReduceAction259___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction259(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction260[50] = {
+  {(bigint) 3555 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction260 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction260 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3555 /* 4: ReduceAction260 < ReduceAction260: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56292,14 +118378,12 @@ const classtable_elt_t VFT_ReduceAction260[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction260 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction260 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56307,7 +118391,6 @@ const classtable_elt_t VFT_ReduceAction260[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56315,33 +118398,81 @@ const classtable_elt_t VFT_ReduceAction260[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction260 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction260 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction260___action},
-  {(bigint) 2 /* 42: ReduceAction260 < ReduceAction260: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction260 < ReduceAction260: superclass init_table position */},
   {(bigint) parser___ReduceAction260___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction260(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction260(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction260;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction260(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction260;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction260___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction260();
-  parser___ReduceAction260___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction261[44] = {
-  {(bigint) 1779 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction261 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction261 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1779 /* 3: ReduceAction261 < ReduceAction261: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction260(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction260;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction260_parser___ReduceAction260___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12563;
+  fra.me.meth = LOCATE_NEW_ReduceAction260_parser___ReduceAction260___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction260();
+  /* ./parser//parser.nit:12563 */
+  INIT_ATTRIBUTES__ReduceAction260(fra.me.REG[0]);
+  parser___ReduceAction260___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction260(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction261[50] = {
+  {(bigint) 3551 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction261 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction261 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3551 /* 4: ReduceAction261 < ReduceAction261: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56351,14 +118482,12 @@ const classtable_elt_t VFT_ReduceAction261[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction261 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction261 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56366,7 +118495,6 @@ const classtable_elt_t VFT_ReduceAction261[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56374,33 +118502,81 @@ const classtable_elt_t VFT_ReduceAction261[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction261 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction261 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction261___action},
-  {(bigint) 2 /* 42: ReduceAction261 < ReduceAction261: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction261 < ReduceAction261: superclass init_table position */},
   {(bigint) parser___ReduceAction261___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction261(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction261(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction261;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction261(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction261;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction261___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction261();
-  parser___ReduceAction261___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction262[44] = {
-  {(bigint) 1775 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction262 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction262 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1775 /* 3: ReduceAction262 < ReduceAction262: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction261(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction261;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction261_parser___ReduceAction261___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12610;
+  fra.me.meth = LOCATE_NEW_ReduceAction261_parser___ReduceAction261___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction261();
+  /* ./parser//parser.nit:12610 */
+  INIT_ATTRIBUTES__ReduceAction261(fra.me.REG[0]);
+  parser___ReduceAction261___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction261(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction262[50] = {
+  {(bigint) 3547 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction262 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction262 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3547 /* 4: ReduceAction262 < ReduceAction262: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56410,14 +118586,12 @@ const classtable_elt_t VFT_ReduceAction262[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction262 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction262 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56425,7 +118599,6 @@ const classtable_elt_t VFT_ReduceAction262[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56433,33 +118606,81 @@ const classtable_elt_t VFT_ReduceAction262[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction262 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction262 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction262___action},
-  {(bigint) 2 /* 42: ReduceAction262 < ReduceAction262: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction262 < ReduceAction262: superclass init_table position */},
   {(bigint) parser___ReduceAction262___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction262(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction262(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction262;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction262(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction262;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction262___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction262();
-  parser___ReduceAction262___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction263[44] = {
-  {(bigint) 1771 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction263 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction263 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1771 /* 3: ReduceAction263 < ReduceAction263: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction262(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction262;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction262_parser___ReduceAction262___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12652;
+  fra.me.meth = LOCATE_NEW_ReduceAction262_parser___ReduceAction262___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction262();
+  /* ./parser//parser.nit:12652 */
+  INIT_ATTRIBUTES__ReduceAction262(fra.me.REG[0]);
+  parser___ReduceAction262___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction262(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction263[50] = {
+  {(bigint) 3543 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction263 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction263 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3543 /* 4: ReduceAction263 < ReduceAction263: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56469,14 +118690,12 @@ const classtable_elt_t VFT_ReduceAction263[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction263 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction263 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56484,7 +118703,6 @@ const classtable_elt_t VFT_ReduceAction263[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56492,33 +118710,81 @@ const classtable_elt_t VFT_ReduceAction263[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction263 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction263 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction263___action},
-  {(bigint) 2 /* 42: ReduceAction263 < ReduceAction263: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction263 < ReduceAction263: superclass init_table position */},
   {(bigint) parser___ReduceAction263___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction263(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction263(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction263;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction263(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction263;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction263___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction263();
-  parser___ReduceAction263___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction264[44] = {
-  {(bigint) 1767 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction264 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction264 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1767 /* 3: ReduceAction264 < ReduceAction264: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction263(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction263;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction263_parser___ReduceAction263___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12694;
+  fra.me.meth = LOCATE_NEW_ReduceAction263_parser___ReduceAction263___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction263();
+  /* ./parser//parser.nit:12694 */
+  INIT_ATTRIBUTES__ReduceAction263(fra.me.REG[0]);
+  parser___ReduceAction263___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction263(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction264[50] = {
+  {(bigint) 3539 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction264 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction264 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3539 /* 4: ReduceAction264 < ReduceAction264: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56528,14 +118794,12 @@ const classtable_elt_t VFT_ReduceAction264[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction264 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction264 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56543,7 +118807,6 @@ const classtable_elt_t VFT_ReduceAction264[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56551,33 +118814,81 @@ const classtable_elt_t VFT_ReduceAction264[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction264 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction264 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction264___action},
-  {(bigint) 2 /* 42: ReduceAction264 < ReduceAction264: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction264 < ReduceAction264: superclass init_table position */},
   {(bigint) parser___ReduceAction264___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction264(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction264(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction264;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction264(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction264;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction264___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction264();
-  parser___ReduceAction264___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction265[44] = {
-  {(bigint) 1763 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction265 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction265 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1763 /* 3: ReduceAction265 < ReduceAction265: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction264(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction264;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction264_parser___ReduceAction264___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12736;
+  fra.me.meth = LOCATE_NEW_ReduceAction264_parser___ReduceAction264___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction264();
+  /* ./parser//parser.nit:12736 */
+  INIT_ATTRIBUTES__ReduceAction264(fra.me.REG[0]);
+  parser___ReduceAction264___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction264(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction265[50] = {
+  {(bigint) 3535 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction265 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction265 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3535 /* 4: ReduceAction265 < ReduceAction265: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56587,14 +118898,12 @@ const classtable_elt_t VFT_ReduceAction265[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction265 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction265 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56602,7 +118911,6 @@ const classtable_elt_t VFT_ReduceAction265[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56610,33 +118918,81 @@ const classtable_elt_t VFT_ReduceAction265[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction265 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction265 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction265___action},
-  {(bigint) 2 /* 42: ReduceAction265 < ReduceAction265: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction265 < ReduceAction265: superclass init_table position */},
   {(bigint) parser___ReduceAction265___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction265(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction265(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction265;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction265(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction265;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction265___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction265();
-  parser___ReduceAction265___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction266[44] = {
-  {(bigint) 1759 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction266 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction266 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1759 /* 3: ReduceAction266 < ReduceAction266: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction265(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction265;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction265_parser___ReduceAction265___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12778;
+  fra.me.meth = LOCATE_NEW_ReduceAction265_parser___ReduceAction265___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction265();
+  /* ./parser//parser.nit:12778 */
+  INIT_ATTRIBUTES__ReduceAction265(fra.me.REG[0]);
+  parser___ReduceAction265___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction265(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction266[50] = {
+  {(bigint) 3531 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction266 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction266 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3531 /* 4: ReduceAction266 < ReduceAction266: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56646,14 +119002,12 @@ const classtable_elt_t VFT_ReduceAction266[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction266 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction266 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56661,7 +119015,6 @@ const classtable_elt_t VFT_ReduceAction266[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56669,33 +119022,81 @@ const classtable_elt_t VFT_ReduceAction266[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction266 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction266 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction266___action},
-  {(bigint) 2 /* 42: ReduceAction266 < ReduceAction266: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction266 < ReduceAction266: superclass init_table position */},
   {(bigint) parser___ReduceAction266___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction266(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction266(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction266;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction266(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction266;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction266___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction266();
-  parser___ReduceAction266___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction267[44] = {
-  {(bigint) 1755 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction267 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction267 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1755 /* 3: ReduceAction267 < ReduceAction267: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction266(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction266;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction266_parser___ReduceAction266___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12820;
+  fra.me.meth = LOCATE_NEW_ReduceAction266_parser___ReduceAction266___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction266();
+  /* ./parser//parser.nit:12820 */
+  INIT_ATTRIBUTES__ReduceAction266(fra.me.REG[0]);
+  parser___ReduceAction266___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction266(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction267[50] = {
+  {(bigint) 3527 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction267 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction267 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3527 /* 4: ReduceAction267 < ReduceAction267: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56705,14 +119106,12 @@ const classtable_elt_t VFT_ReduceAction267[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction267 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction267 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56720,7 +119119,6 @@ const classtable_elt_t VFT_ReduceAction267[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56728,33 +119126,81 @@ const classtable_elt_t VFT_ReduceAction267[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction267 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction267 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction267___action},
-  {(bigint) 2 /* 42: ReduceAction267 < ReduceAction267: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction267 < ReduceAction267: superclass init_table position */},
   {(bigint) parser___ReduceAction267___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction267(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction267(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction267;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction267(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction267;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction267___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction267();
-  parser___ReduceAction267___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction268[44] = {
-  {(bigint) 1751 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction268 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction268 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1751 /* 3: ReduceAction268 < ReduceAction268: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction267(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction267;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction267_parser___ReduceAction267___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12862;
+  fra.me.meth = LOCATE_NEW_ReduceAction267_parser___ReduceAction267___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction267();
+  /* ./parser//parser.nit:12862 */
+  INIT_ATTRIBUTES__ReduceAction267(fra.me.REG[0]);
+  parser___ReduceAction267___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction267(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction268[50] = {
+  {(bigint) 3523 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction268 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction268 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3523 /* 4: ReduceAction268 < ReduceAction268: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56764,14 +119210,12 @@ const classtable_elt_t VFT_ReduceAction268[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction268 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction268 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56779,7 +119223,6 @@ const classtable_elt_t VFT_ReduceAction268[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56787,33 +119230,81 @@ const classtable_elt_t VFT_ReduceAction268[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction268 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction268 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction268___action},
-  {(bigint) 2 /* 42: ReduceAction268 < ReduceAction268: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction268 < ReduceAction268: superclass init_table position */},
   {(bigint) parser___ReduceAction268___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction268(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction268(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction268;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction268(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction268;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction268___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction268();
-  parser___ReduceAction268___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction269[44] = {
-  {(bigint) 1747 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction269 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction269 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1747 /* 3: ReduceAction269 < ReduceAction269: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction268(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction268;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction268_parser___ReduceAction268___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12904;
+  fra.me.meth = LOCATE_NEW_ReduceAction268_parser___ReduceAction268___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction268();
+  /* ./parser//parser.nit:12904 */
+  INIT_ATTRIBUTES__ReduceAction268(fra.me.REG[0]);
+  parser___ReduceAction268___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction268(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction269[50] = {
+  {(bigint) 3519 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction269 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction269 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3519 /* 4: ReduceAction269 < ReduceAction269: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56823,14 +119314,12 @@ const classtable_elt_t VFT_ReduceAction269[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction269 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction269 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56838,7 +119327,6 @@ const classtable_elt_t VFT_ReduceAction269[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56846,33 +119334,81 @@ const classtable_elt_t VFT_ReduceAction269[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction269 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction269 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction269___action},
-  {(bigint) 2 /* 42: ReduceAction269 < ReduceAction269: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction269 < ReduceAction269: superclass init_table position */},
   {(bigint) parser___ReduceAction269___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction269(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction269(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction269;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction269(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction269;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction269___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction269();
-  parser___ReduceAction269___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction270[44] = {
-  {(bigint) 1739 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction270 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction270 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1739 /* 3: ReduceAction270 < ReduceAction270: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction269(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction269;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction269_parser___ReduceAction269___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12946;
+  fra.me.meth = LOCATE_NEW_ReduceAction269_parser___ReduceAction269___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction269();
+  /* ./parser//parser.nit:12946 */
+  INIT_ATTRIBUTES__ReduceAction269(fra.me.REG[0]);
+  parser___ReduceAction269___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction269(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction270[50] = {
+  {(bigint) 3511 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction270 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction270 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3511 /* 4: ReduceAction270 < ReduceAction270: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56882,14 +119418,12 @@ const classtable_elt_t VFT_ReduceAction270[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction270 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction270 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56897,7 +119431,6 @@ const classtable_elt_t VFT_ReduceAction270[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56905,33 +119438,81 @@ const classtable_elt_t VFT_ReduceAction270[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction270 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction270 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction270___action},
-  {(bigint) 2 /* 42: ReduceAction270 < ReduceAction270: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction270 < ReduceAction270: superclass init_table position */},
   {(bigint) parser___ReduceAction270___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction270(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction270(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction270;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction270(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction270;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction270___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction270();
-  parser___ReduceAction270___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction271[44] = {
-  {(bigint) 1735 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction271 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction271 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1735 /* 3: ReduceAction271 < ReduceAction271: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction270(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction270;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction270_parser___ReduceAction270___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 12988;
+  fra.me.meth = LOCATE_NEW_ReduceAction270_parser___ReduceAction270___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction270();
+  /* ./parser//parser.nit:12988 */
+  INIT_ATTRIBUTES__ReduceAction270(fra.me.REG[0]);
+  parser___ReduceAction270___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction270(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction271[50] = {
+  {(bigint) 3507 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction271 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction271 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3507 /* 4: ReduceAction271 < ReduceAction271: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56941,14 +119522,12 @@ const classtable_elt_t VFT_ReduceAction271[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction271 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction271 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -56956,7 +119535,6 @@ const classtable_elt_t VFT_ReduceAction271[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -56964,33 +119542,81 @@ const classtable_elt_t VFT_ReduceAction271[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction271 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction271 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction271___action},
-  {(bigint) 2 /* 42: ReduceAction271 < ReduceAction271: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction271 < ReduceAction271: superclass init_table position */},
   {(bigint) parser___ReduceAction271___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction271(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction271(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction271;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction271(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction271;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction271___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction271();
-  parser___ReduceAction271___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction272[44] = {
-  {(bigint) 1731 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction272 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction272 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1731 /* 3: ReduceAction272 < ReduceAction272: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction271(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction271;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction271_parser___ReduceAction271___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13030;
+  fra.me.meth = LOCATE_NEW_ReduceAction271_parser___ReduceAction271___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction271();
+  /* ./parser//parser.nit:13030 */
+  INIT_ATTRIBUTES__ReduceAction271(fra.me.REG[0]);
+  parser___ReduceAction271___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction271(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction272[50] = {
+  {(bigint) 3503 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction272 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction272 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3503 /* 4: ReduceAction272 < ReduceAction272: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57000,14 +119626,12 @@ const classtable_elt_t VFT_ReduceAction272[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction272 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction272 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57015,7 +119639,6 @@ const classtable_elt_t VFT_ReduceAction272[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57023,33 +119646,81 @@ const classtable_elt_t VFT_ReduceAction272[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction272 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction272 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction272___action},
-  {(bigint) 2 /* 42: ReduceAction272 < ReduceAction272: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction272 < ReduceAction272: superclass init_table position */},
   {(bigint) parser___ReduceAction272___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction272(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction272(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction272;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction272(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction272;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction272___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction272();
-  parser___ReduceAction272___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction273[44] = {
-  {(bigint) 1727 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction273 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction273 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1727 /* 3: ReduceAction273 < ReduceAction273: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction272(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction272;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction272_parser___ReduceAction272___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13072;
+  fra.me.meth = LOCATE_NEW_ReduceAction272_parser___ReduceAction272___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction272();
+  /* ./parser//parser.nit:13072 */
+  INIT_ATTRIBUTES__ReduceAction272(fra.me.REG[0]);
+  parser___ReduceAction272___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction272(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction273[50] = {
+  {(bigint) 3499 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction273 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction273 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3499 /* 4: ReduceAction273 < ReduceAction273: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57059,14 +119730,12 @@ const classtable_elt_t VFT_ReduceAction273[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction273 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction273 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57074,7 +119743,6 @@ const classtable_elt_t VFT_ReduceAction273[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57082,33 +119750,81 @@ const classtable_elt_t VFT_ReduceAction273[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction273 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction273 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction273___action},
-  {(bigint) 2 /* 42: ReduceAction273 < ReduceAction273: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction273 < ReduceAction273: superclass init_table position */},
   {(bigint) parser___ReduceAction273___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction273(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction273(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction273;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction273(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction273;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction273___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction273();
-  parser___ReduceAction273___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction274[44] = {
-  {(bigint) 1723 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction274 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction274 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1723 /* 3: ReduceAction274 < ReduceAction274: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction273(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction273;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction273_parser___ReduceAction273___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13114;
+  fra.me.meth = LOCATE_NEW_ReduceAction273_parser___ReduceAction273___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction273();
+  /* ./parser//parser.nit:13114 */
+  INIT_ATTRIBUTES__ReduceAction273(fra.me.REG[0]);
+  parser___ReduceAction273___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction273(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction274[50] = {
+  {(bigint) 3495 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction274 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction274 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3495 /* 4: ReduceAction274 < ReduceAction274: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57118,14 +119834,12 @@ const classtable_elt_t VFT_ReduceAction274[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction274 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction274 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57133,7 +119847,6 @@ const classtable_elt_t VFT_ReduceAction274[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57141,33 +119854,81 @@ const classtable_elt_t VFT_ReduceAction274[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction274 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction274 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction274___action},
-  {(bigint) 2 /* 42: ReduceAction274 < ReduceAction274: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction274 < ReduceAction274: superclass init_table position */},
   {(bigint) parser___ReduceAction274___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction274(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction274(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction274;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction274(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction274;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction274___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction274();
-  parser___ReduceAction274___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction275[44] = {
-  {(bigint) 1719 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction275 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction275 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1719 /* 3: ReduceAction275 < ReduceAction275: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction274(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction274;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction274_parser___ReduceAction274___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13160;
+  fra.me.meth = LOCATE_NEW_ReduceAction274_parser___ReduceAction274___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction274();
+  /* ./parser//parser.nit:13160 */
+  INIT_ATTRIBUTES__ReduceAction274(fra.me.REG[0]);
+  parser___ReduceAction274___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction274(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction275[50] = {
+  {(bigint) 3491 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction275 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction275 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3491 /* 4: ReduceAction275 < ReduceAction275: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57177,14 +119938,12 @@ const classtable_elt_t VFT_ReduceAction275[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction275 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction275 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57192,7 +119951,6 @@ const classtable_elt_t VFT_ReduceAction275[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57200,33 +119958,81 @@ const classtable_elt_t VFT_ReduceAction275[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction275 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction275 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction275___action},
-  {(bigint) 2 /* 42: ReduceAction275 < ReduceAction275: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction275 < ReduceAction275: superclass init_table position */},
   {(bigint) parser___ReduceAction275___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction275(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction275(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction275;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction275(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction275;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction275___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction275();
-  parser___ReduceAction275___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction276[44] = {
-  {(bigint) 1715 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction276 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction276 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1715 /* 3: ReduceAction276 < ReduceAction276: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction275(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction275;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction275_parser___ReduceAction275___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13202;
+  fra.me.meth = LOCATE_NEW_ReduceAction275_parser___ReduceAction275___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction275();
+  /* ./parser//parser.nit:13202 */
+  INIT_ATTRIBUTES__ReduceAction275(fra.me.REG[0]);
+  parser___ReduceAction275___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction275(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction276[50] = {
+  {(bigint) 3487 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction276 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction276 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3487 /* 4: ReduceAction276 < ReduceAction276: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57236,14 +120042,12 @@ const classtable_elt_t VFT_ReduceAction276[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction276 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction276 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57251,7 +120055,6 @@ const classtable_elt_t VFT_ReduceAction276[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57259,33 +120062,81 @@ const classtable_elt_t VFT_ReduceAction276[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction276 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction276 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction276___action},
-  {(bigint) 2 /* 42: ReduceAction276 < ReduceAction276: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction276 < ReduceAction276: superclass init_table position */},
   {(bigint) parser___ReduceAction276___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction276(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction276(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction276;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction276(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction276;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction276___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction276();
-  parser___ReduceAction276___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction277[44] = {
-  {(bigint) 1711 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction277 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction277 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1711 /* 3: ReduceAction277 < ReduceAction277: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction276(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction276;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction276_parser___ReduceAction276___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13248;
+  fra.me.meth = LOCATE_NEW_ReduceAction276_parser___ReduceAction276___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction276();
+  /* ./parser//parser.nit:13248 */
+  INIT_ATTRIBUTES__ReduceAction276(fra.me.REG[0]);
+  parser___ReduceAction276___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction276(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction277[50] = {
+  {(bigint) 3483 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction277 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction277 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3483 /* 4: ReduceAction277 < ReduceAction277: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57295,14 +120146,12 @@ const classtable_elt_t VFT_ReduceAction277[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction277 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction277 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57310,7 +120159,6 @@ const classtable_elt_t VFT_ReduceAction277[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57318,33 +120166,81 @@ const classtable_elt_t VFT_ReduceAction277[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction277 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction277 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction277___action},
-  {(bigint) 2 /* 42: ReduceAction277 < ReduceAction277: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction277 < ReduceAction277: superclass init_table position */},
   {(bigint) parser___ReduceAction277___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction277(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction277(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction277;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction277(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction277;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction277___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction277();
-  parser___ReduceAction277___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction278[44] = {
-  {(bigint) 1707 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction278 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction278 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1707 /* 3: ReduceAction278 < ReduceAction278: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction277(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction277;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction277_parser___ReduceAction277___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13298;
+  fra.me.meth = LOCATE_NEW_ReduceAction277_parser___ReduceAction277___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction277();
+  /* ./parser//parser.nit:13298 */
+  INIT_ATTRIBUTES__ReduceAction277(fra.me.REG[0]);
+  parser___ReduceAction277___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction277(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction278[50] = {
+  {(bigint) 3479 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction278 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction278 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3479 /* 4: ReduceAction278 < ReduceAction278: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57354,14 +120250,12 @@ const classtable_elt_t VFT_ReduceAction278[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction278 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction278 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57369,7 +120263,6 @@ const classtable_elt_t VFT_ReduceAction278[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57377,33 +120270,81 @@ const classtable_elt_t VFT_ReduceAction278[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction278 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction278 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction278___action},
-  {(bigint) 2 /* 42: ReduceAction278 < ReduceAction278: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction278 < ReduceAction278: superclass init_table position */},
   {(bigint) parser___ReduceAction278___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction278(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction278(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction278;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction278(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction278;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction278___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction278();
-  parser___ReduceAction278___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction279[44] = {
-  {(bigint) 1703 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction279 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction279 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1703 /* 3: ReduceAction279 < ReduceAction279: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction278(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction278;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction278_parser___ReduceAction278___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13340;
+  fra.me.meth = LOCATE_NEW_ReduceAction278_parser___ReduceAction278___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction278();
+  /* ./parser//parser.nit:13340 */
+  INIT_ATTRIBUTES__ReduceAction278(fra.me.REG[0]);
+  parser___ReduceAction278___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction278(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction279[50] = {
+  {(bigint) 3475 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction279 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction279 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3475 /* 4: ReduceAction279 < ReduceAction279: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57413,14 +120354,12 @@ const classtable_elt_t VFT_ReduceAction279[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction279 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction279 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57428,7 +120367,6 @@ const classtable_elt_t VFT_ReduceAction279[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57436,33 +120374,81 @@ const classtable_elt_t VFT_ReduceAction279[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction279 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction279 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction279___action},
-  {(bigint) 2 /* 42: ReduceAction279 < ReduceAction279: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction279 < ReduceAction279: superclass init_table position */},
   {(bigint) parser___ReduceAction279___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction279(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction279(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction279;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction279(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction279;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction279___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction279();
-  parser___ReduceAction279___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction280[44] = {
-  {(bigint) 1695 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction280 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction280 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1695 /* 3: ReduceAction280 < ReduceAction280: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction279(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction279;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction279_parser___ReduceAction279___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13382;
+  fra.me.meth = LOCATE_NEW_ReduceAction279_parser___ReduceAction279___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction279();
+  /* ./parser//parser.nit:13382 */
+  INIT_ATTRIBUTES__ReduceAction279(fra.me.REG[0]);
+  parser___ReduceAction279___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction279(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction280[50] = {
+  {(bigint) 3467 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction280 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction280 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3467 /* 4: ReduceAction280 < ReduceAction280: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57472,14 +120458,12 @@ const classtable_elt_t VFT_ReduceAction280[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction280 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction280 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57487,7 +120471,6 @@ const classtable_elt_t VFT_ReduceAction280[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57495,33 +120478,81 @@ const classtable_elt_t VFT_ReduceAction280[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction280 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction280 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction280___action},
-  {(bigint) 2 /* 42: ReduceAction280 < ReduceAction280: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction280 < ReduceAction280: superclass init_table position */},
   {(bigint) parser___ReduceAction280___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction280(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction280(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction280;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction280(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction280;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction280___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction280();
-  parser___ReduceAction280___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction281[44] = {
-  {(bigint) 1691 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction281 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction281 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1691 /* 3: ReduceAction281 < ReduceAction281: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction280(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction280;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction280_parser___ReduceAction280___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13424;
+  fra.me.meth = LOCATE_NEW_ReduceAction280_parser___ReduceAction280___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction280();
+  /* ./parser//parser.nit:13424 */
+  INIT_ATTRIBUTES__ReduceAction280(fra.me.REG[0]);
+  parser___ReduceAction280___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction280(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction281[50] = {
+  {(bigint) 3463 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction281 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction281 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ReduceAction281 < ReduceAction281: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57531,14 +120562,12 @@ const classtable_elt_t VFT_ReduceAction281[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction281 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction281 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57546,7 +120575,6 @@ const classtable_elt_t VFT_ReduceAction281[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57554,33 +120582,81 @@ const classtable_elt_t VFT_ReduceAction281[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction281 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction281 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction281___action},
-  {(bigint) 2 /* 42: ReduceAction281 < ReduceAction281: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction281 < ReduceAction281: superclass init_table position */},
   {(bigint) parser___ReduceAction281___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction281(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction281(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction281;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction281(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction281;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction281___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction281();
-  parser___ReduceAction281___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction282[44] = {
-  {(bigint) 1687 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction282 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction282 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1687 /* 3: ReduceAction282 < ReduceAction282: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction281(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction281;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction281_parser___ReduceAction281___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13466;
+  fra.me.meth = LOCATE_NEW_ReduceAction281_parser___ReduceAction281___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction281();
+  /* ./parser//parser.nit:13466 */
+  INIT_ATTRIBUTES__ReduceAction281(fra.me.REG[0]);
+  parser___ReduceAction281___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction281(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction282[50] = {
+  {(bigint) 3459 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction282 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction282 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3459 /* 4: ReduceAction282 < ReduceAction282: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57590,14 +120666,12 @@ const classtable_elt_t VFT_ReduceAction282[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction282 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction282 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57605,7 +120679,6 @@ const classtable_elt_t VFT_ReduceAction282[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57613,33 +120686,81 @@ const classtable_elt_t VFT_ReduceAction282[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction282 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction282 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction282___action},
-  {(bigint) 2 /* 42: ReduceAction282 < ReduceAction282: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction282 < ReduceAction282: superclass init_table position */},
   {(bigint) parser___ReduceAction282___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction282(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction282(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction282;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction282(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction282;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction282___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction282();
-  parser___ReduceAction282___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction283[44] = {
-  {(bigint) 1683 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction283 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction283 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1683 /* 3: ReduceAction283 < ReduceAction283: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction282(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction282;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction282_parser___ReduceAction282___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13508;
+  fra.me.meth = LOCATE_NEW_ReduceAction282_parser___ReduceAction282___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction282();
+  /* ./parser//parser.nit:13508 */
+  INIT_ATTRIBUTES__ReduceAction282(fra.me.REG[0]);
+  parser___ReduceAction282___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction282(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction283[50] = {
+  {(bigint) 3455 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction283 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction283 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3455 /* 4: ReduceAction283 < ReduceAction283: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57649,14 +120770,12 @@ const classtable_elt_t VFT_ReduceAction283[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction283 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction283 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57664,7 +120783,6 @@ const classtable_elt_t VFT_ReduceAction283[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57672,33 +120790,81 @@ const classtable_elt_t VFT_ReduceAction283[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction283 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction283 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction283___action},
-  {(bigint) 2 /* 42: ReduceAction283 < ReduceAction283: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction283 < ReduceAction283: superclass init_table position */},
   {(bigint) parser___ReduceAction283___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction283(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction283(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction283;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction283(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction283;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction283___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction283();
-  parser___ReduceAction283___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction284[44] = {
-  {(bigint) 1679 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction284 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction284 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1679 /* 3: ReduceAction284 < ReduceAction284: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction283(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction283;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction283_parser___ReduceAction283___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13550;
+  fra.me.meth = LOCATE_NEW_ReduceAction283_parser___ReduceAction283___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction283();
+  /* ./parser//parser.nit:13550 */
+  INIT_ATTRIBUTES__ReduceAction283(fra.me.REG[0]);
+  parser___ReduceAction283___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction283(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction284[50] = {
+  {(bigint) 3451 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction284 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction284 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: ReduceAction284 < ReduceAction284: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57708,14 +120874,12 @@ const classtable_elt_t VFT_ReduceAction284[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction284 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction284 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57723,7 +120887,6 @@ const classtable_elt_t VFT_ReduceAction284[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57731,33 +120894,81 @@ const classtable_elt_t VFT_ReduceAction284[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction284 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction284 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction284___action},
-  {(bigint) 2 /* 42: ReduceAction284 < ReduceAction284: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction284 < ReduceAction284: superclass init_table position */},
   {(bigint) parser___ReduceAction284___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction284(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction284(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction284;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction284(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction284;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction284___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction284();
-  parser___ReduceAction284___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction285[44] = {
-  {(bigint) 1675 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction285 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction285 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1675 /* 3: ReduceAction285 < ReduceAction285: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction284(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction284;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction284_parser___ReduceAction284___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13592;
+  fra.me.meth = LOCATE_NEW_ReduceAction284_parser___ReduceAction284___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction284();
+  /* ./parser//parser.nit:13592 */
+  INIT_ATTRIBUTES__ReduceAction284(fra.me.REG[0]);
+  parser___ReduceAction284___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction284(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction285[50] = {
+  {(bigint) 3447 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction285 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction285 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3447 /* 4: ReduceAction285 < ReduceAction285: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57767,14 +120978,12 @@ const classtable_elt_t VFT_ReduceAction285[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction285 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction285 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57782,7 +120991,6 @@ const classtable_elt_t VFT_ReduceAction285[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57790,33 +120998,81 @@ const classtable_elt_t VFT_ReduceAction285[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction285 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction285 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction285___action},
-  {(bigint) 2 /* 42: ReduceAction285 < ReduceAction285: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction285 < ReduceAction285: superclass init_table position */},
   {(bigint) parser___ReduceAction285___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction285(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction285(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction285;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction285(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction285;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction285___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction285();
-  parser___ReduceAction285___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction286[44] = {
-  {(bigint) 1671 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction286 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction286 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1671 /* 3: ReduceAction286 < ReduceAction286: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction285(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction285;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction285_parser___ReduceAction285___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13634;
+  fra.me.meth = LOCATE_NEW_ReduceAction285_parser___ReduceAction285___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction285();
+  /* ./parser//parser.nit:13634 */
+  INIT_ATTRIBUTES__ReduceAction285(fra.me.REG[0]);
+  parser___ReduceAction285___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction285(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction286[50] = {
+  {(bigint) 3443 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction286 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction286 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3443 /* 4: ReduceAction286 < ReduceAction286: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57826,14 +121082,12 @@ const classtable_elt_t VFT_ReduceAction286[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction286 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction286 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57841,7 +121095,6 @@ const classtable_elt_t VFT_ReduceAction286[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57849,33 +121102,81 @@ const classtable_elt_t VFT_ReduceAction286[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction286 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction286 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction286___action},
-  {(bigint) 2 /* 42: ReduceAction286 < ReduceAction286: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction286 < ReduceAction286: superclass init_table position */},
   {(bigint) parser___ReduceAction286___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction286(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction286(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction286;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction286(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction286;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction286___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction286();
-  parser___ReduceAction286___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction287[44] = {
-  {(bigint) 1667 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction287 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction287 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1667 /* 3: ReduceAction287 < ReduceAction287: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction286(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction286;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction286_parser___ReduceAction286___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13676;
+  fra.me.meth = LOCATE_NEW_ReduceAction286_parser___ReduceAction286___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction286();
+  /* ./parser//parser.nit:13676 */
+  INIT_ATTRIBUTES__ReduceAction286(fra.me.REG[0]);
+  parser___ReduceAction286___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction286(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction287[50] = {
+  {(bigint) 3439 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction287 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction287 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3439 /* 4: ReduceAction287 < ReduceAction287: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57885,14 +121186,12 @@ const classtable_elt_t VFT_ReduceAction287[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction287 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction287 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57900,7 +121199,6 @@ const classtable_elt_t VFT_ReduceAction287[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57908,33 +121206,81 @@ const classtable_elt_t VFT_ReduceAction287[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction287 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction287 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction287___action},
-  {(bigint) 2 /* 42: ReduceAction287 < ReduceAction287: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction287 < ReduceAction287: superclass init_table position */},
   {(bigint) parser___ReduceAction287___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction287(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction287(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction287;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction287(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction287;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction287___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction287();
-  parser___ReduceAction287___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction288[44] = {
-  {(bigint) 1663 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction288 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction288 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1663 /* 3: ReduceAction288 < ReduceAction288: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction287(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction287;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction287_parser___ReduceAction287___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13718;
+  fra.me.meth = LOCATE_NEW_ReduceAction287_parser___ReduceAction287___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction287();
+  /* ./parser//parser.nit:13718 */
+  INIT_ATTRIBUTES__ReduceAction287(fra.me.REG[0]);
+  parser___ReduceAction287___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction287(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction288[50] = {
+  {(bigint) 3435 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction288 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction288 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: ReduceAction288 < ReduceAction288: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57944,14 +121290,12 @@ const classtable_elt_t VFT_ReduceAction288[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction288 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction288 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -57959,7 +121303,6 @@ const classtable_elt_t VFT_ReduceAction288[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -57967,33 +121310,81 @@ const classtable_elt_t VFT_ReduceAction288[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction288 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction288 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction288___action},
-  {(bigint) 2 /* 42: ReduceAction288 < ReduceAction288: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction288 < ReduceAction288: superclass init_table position */},
   {(bigint) parser___ReduceAction288___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction288(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction288(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction288;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction288(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction288;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction288___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction288();
-  parser___ReduceAction288___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction289[44] = {
-  {(bigint) 1659 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction289 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction289 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1659 /* 3: ReduceAction289 < ReduceAction289: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction288(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction288;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction288_parser___ReduceAction288___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13760;
+  fra.me.meth = LOCATE_NEW_ReduceAction288_parser___ReduceAction288___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction288();
+  /* ./parser//parser.nit:13760 */
+  INIT_ATTRIBUTES__ReduceAction288(fra.me.REG[0]);
+  parser___ReduceAction288___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction288(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction289[50] = {
+  {(bigint) 3431 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction289 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction289 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3431 /* 4: ReduceAction289 < ReduceAction289: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58003,14 +121394,12 @@ const classtable_elt_t VFT_ReduceAction289[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction289 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction289 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58018,7 +121407,6 @@ const classtable_elt_t VFT_ReduceAction289[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58026,33 +121414,81 @@ const classtable_elt_t VFT_ReduceAction289[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction289 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction289 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction289___action},
-  {(bigint) 2 /* 42: ReduceAction289 < ReduceAction289: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction289 < ReduceAction289: superclass init_table position */},
   {(bigint) parser___ReduceAction289___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction289(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction289(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction289;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction289(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction289;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction289___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction289();
-  parser___ReduceAction289___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction290[44] = {
-  {(bigint) 1651 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction290 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction290 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1651 /* 3: ReduceAction290 < ReduceAction290: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction289(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction289;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction289_parser___ReduceAction289___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13802;
+  fra.me.meth = LOCATE_NEW_ReduceAction289_parser___ReduceAction289___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction289();
+  /* ./parser//parser.nit:13802 */
+  INIT_ATTRIBUTES__ReduceAction289(fra.me.REG[0]);
+  parser___ReduceAction289___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction289(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction290[50] = {
+  {(bigint) 3423 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction290 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction290 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3423 /* 4: ReduceAction290 < ReduceAction290: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58062,14 +121498,12 @@ const classtable_elt_t VFT_ReduceAction290[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction290 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction290 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58077,7 +121511,6 @@ const classtable_elt_t VFT_ReduceAction290[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58085,33 +121518,81 @@ const classtable_elt_t VFT_ReduceAction290[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction290 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction290 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction290___action},
-  {(bigint) 2 /* 42: ReduceAction290 < ReduceAction290: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction290 < ReduceAction290: superclass init_table position */},
   {(bigint) parser___ReduceAction290___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction290(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction290(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction290;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction290(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction290;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction290___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction290();
-  parser___ReduceAction290___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction291[44] = {
-  {(bigint) 1647 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction291 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction291 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1647 /* 3: ReduceAction291 < ReduceAction291: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction290(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction290;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction290_parser___ReduceAction290___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13848;
+  fra.me.meth = LOCATE_NEW_ReduceAction290_parser___ReduceAction290___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction290();
+  /* ./parser//parser.nit:13848 */
+  INIT_ATTRIBUTES__ReduceAction290(fra.me.REG[0]);
+  parser___ReduceAction290___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction290(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction291[50] = {
+  {(bigint) 3419 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction291 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction291 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3419 /* 4: ReduceAction291 < ReduceAction291: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58121,14 +121602,12 @@ const classtable_elt_t VFT_ReduceAction291[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction291 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction291 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58136,7 +121615,6 @@ const classtable_elt_t VFT_ReduceAction291[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58144,33 +121622,81 @@ const classtable_elt_t VFT_ReduceAction291[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction291 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction291 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction291___action},
-  {(bigint) 2 /* 42: ReduceAction291 < ReduceAction291: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction291 < ReduceAction291: superclass init_table position */},
   {(bigint) parser___ReduceAction291___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction291(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction291(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction291;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction291(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction291;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction291___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction291();
-  parser___ReduceAction291___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction292[44] = {
-  {(bigint) 1643 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction292 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction292 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1643 /* 3: ReduceAction292 < ReduceAction292: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction291(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction291;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction291_parser___ReduceAction291___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13890;
+  fra.me.meth = LOCATE_NEW_ReduceAction291_parser___ReduceAction291___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction291();
+  /* ./parser//parser.nit:13890 */
+  INIT_ATTRIBUTES__ReduceAction291(fra.me.REG[0]);
+  parser___ReduceAction291___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction291(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction292[50] = {
+  {(bigint) 3415 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction292 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction292 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3415 /* 4: ReduceAction292 < ReduceAction292: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58180,14 +121706,12 @@ const classtable_elt_t VFT_ReduceAction292[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction292 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction292 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58195,7 +121719,6 @@ const classtable_elt_t VFT_ReduceAction292[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58203,33 +121726,81 @@ const classtable_elt_t VFT_ReduceAction292[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction292 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction292 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction292___action},
-  {(bigint) 2 /* 42: ReduceAction292 < ReduceAction292: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction292 < ReduceAction292: superclass init_table position */},
   {(bigint) parser___ReduceAction292___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction292(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction292(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction292;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction292(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction292;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction292___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction292();
-  parser___ReduceAction292___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction293[44] = {
-  {(bigint) 1639 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction293 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction293 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1639 /* 3: ReduceAction293 < ReduceAction293: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction292(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction292;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction292_parser___ReduceAction292___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13936;
+  fra.me.meth = LOCATE_NEW_ReduceAction292_parser___ReduceAction292___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction292();
+  /* ./parser//parser.nit:13936 */
+  INIT_ATTRIBUTES__ReduceAction292(fra.me.REG[0]);
+  parser___ReduceAction292___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction292(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction293[50] = {
+  {(bigint) 3411 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction293 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction293 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3411 /* 4: ReduceAction293 < ReduceAction293: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58239,14 +121810,12 @@ const classtable_elt_t VFT_ReduceAction293[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction293 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction293 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58254,7 +121823,6 @@ const classtable_elt_t VFT_ReduceAction293[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58262,33 +121830,81 @@ const classtable_elt_t VFT_ReduceAction293[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction293 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction293 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction293___action},
-  {(bigint) 2 /* 42: ReduceAction293 < ReduceAction293: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction293 < ReduceAction293: superclass init_table position */},
   {(bigint) parser___ReduceAction293___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction293(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction293(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction293;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction293(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction293;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction293___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction293();
-  parser___ReduceAction293___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction294[44] = {
-  {(bigint) 1635 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction294 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction294 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1635 /* 3: ReduceAction294 < ReduceAction294: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction293(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction293;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction293_parser___ReduceAction293___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 13986;
+  fra.me.meth = LOCATE_NEW_ReduceAction293_parser___ReduceAction293___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction293();
+  /* ./parser//parser.nit:13986 */
+  INIT_ATTRIBUTES__ReduceAction293(fra.me.REG[0]);
+  parser___ReduceAction293___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction293(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction294[50] = {
+  {(bigint) 3407 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction294 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction294 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3407 /* 4: ReduceAction294 < ReduceAction294: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58298,14 +121914,12 @@ const classtable_elt_t VFT_ReduceAction294[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction294 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction294 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58313,7 +121927,6 @@ const classtable_elt_t VFT_ReduceAction294[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58321,33 +121934,81 @@ const classtable_elt_t VFT_ReduceAction294[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction294 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction294 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction294___action},
-  {(bigint) 2 /* 42: ReduceAction294 < ReduceAction294: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction294 < ReduceAction294: superclass init_table position */},
   {(bigint) parser___ReduceAction294___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction294(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction294(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction294;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction294(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction294;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction294___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction294();
-  parser___ReduceAction294___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction295[44] = {
-  {(bigint) 1631 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction295 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction295 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1631 /* 3: ReduceAction295 < ReduceAction295: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction294(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction294;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction294_parser___ReduceAction294___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14031;
+  fra.me.meth = LOCATE_NEW_ReduceAction294_parser___ReduceAction294___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction294();
+  /* ./parser//parser.nit:14031 */
+  INIT_ATTRIBUTES__ReduceAction294(fra.me.REG[0]);
+  parser___ReduceAction294___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction294(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction295[50] = {
+  {(bigint) 3403 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction295 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction295 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3403 /* 4: ReduceAction295 < ReduceAction295: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58357,14 +122018,12 @@ const classtable_elt_t VFT_ReduceAction295[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction295 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction295 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58372,7 +122031,6 @@ const classtable_elt_t VFT_ReduceAction295[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58380,33 +122038,81 @@ const classtable_elt_t VFT_ReduceAction295[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction295 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction295 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction295___action},
-  {(bigint) 2 /* 42: ReduceAction295 < ReduceAction295: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction295 < ReduceAction295: superclass init_table position */},
   {(bigint) parser___ReduceAction295___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction295(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction295(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction295;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction295(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction295;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction295___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction295();
-  parser___ReduceAction295___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction296[44] = {
-  {(bigint) 1627 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction296 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction296 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1627 /* 3: ReduceAction296 < ReduceAction296: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction295(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction295;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction295_parser___ReduceAction295___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14076;
+  fra.me.meth = LOCATE_NEW_ReduceAction295_parser___ReduceAction295___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction295();
+  /* ./parser//parser.nit:14076 */
+  INIT_ATTRIBUTES__ReduceAction295(fra.me.REG[0]);
+  parser___ReduceAction295___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction295(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction296[50] = {
+  {(bigint) 3399 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction296 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction296 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3399 /* 4: ReduceAction296 < ReduceAction296: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58416,14 +122122,12 @@ const classtable_elt_t VFT_ReduceAction296[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction296 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction296 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58431,7 +122135,6 @@ const classtable_elt_t VFT_ReduceAction296[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58439,33 +122142,81 @@ const classtable_elt_t VFT_ReduceAction296[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction296 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction296 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction296___action},
-  {(bigint) 2 /* 42: ReduceAction296 < ReduceAction296: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction296 < ReduceAction296: superclass init_table position */},
   {(bigint) parser___ReduceAction296___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction296(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction296(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction296;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction296(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction296;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction296___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction296();
-  parser___ReduceAction296___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction297[44] = {
-  {(bigint) 1623 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction297 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction297 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1623 /* 3: ReduceAction297 < ReduceAction297: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction296(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction296;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction296_parser___ReduceAction296___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14121;
+  fra.me.meth = LOCATE_NEW_ReduceAction296_parser___ReduceAction296___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction296();
+  /* ./parser//parser.nit:14121 */
+  INIT_ATTRIBUTES__ReduceAction296(fra.me.REG[0]);
+  parser___ReduceAction296___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction296(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction297[50] = {
+  {(bigint) 3395 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction297 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction297 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3395 /* 4: ReduceAction297 < ReduceAction297: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58475,14 +122226,12 @@ const classtable_elt_t VFT_ReduceAction297[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction297 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction297 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58490,7 +122239,6 @@ const classtable_elt_t VFT_ReduceAction297[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58498,33 +122246,81 @@ const classtable_elt_t VFT_ReduceAction297[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction297 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction297 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction297___action},
-  {(bigint) 2 /* 42: ReduceAction297 < ReduceAction297: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction297 < ReduceAction297: superclass init_table position */},
   {(bigint) parser___ReduceAction297___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction297(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction297(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction297;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction297(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction297;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction297___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction297();
-  parser___ReduceAction297___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction298[44] = {
-  {(bigint) 1619 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction298 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction298 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1619 /* 3: ReduceAction298 < ReduceAction298: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction297(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction297;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction297_parser___ReduceAction297___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14166;
+  fra.me.meth = LOCATE_NEW_ReduceAction297_parser___ReduceAction297___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction297();
+  /* ./parser//parser.nit:14166 */
+  INIT_ATTRIBUTES__ReduceAction297(fra.me.REG[0]);
+  parser___ReduceAction297___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction297(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction298[50] = {
+  {(bigint) 3391 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction298 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction298 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3391 /* 4: ReduceAction298 < ReduceAction298: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58534,14 +122330,12 @@ const classtable_elt_t VFT_ReduceAction298[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction298 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction298 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58549,7 +122343,6 @@ const classtable_elt_t VFT_ReduceAction298[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58557,33 +122350,81 @@ const classtable_elt_t VFT_ReduceAction298[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction298 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction298 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction298___action},
-  {(bigint) 2 /* 42: ReduceAction298 < ReduceAction298: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction298 < ReduceAction298: superclass init_table position */},
   {(bigint) parser___ReduceAction298___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction298(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction298(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction298;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction298(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction298;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction298___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction298();
-  parser___ReduceAction298___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction299[44] = {
-  {(bigint) 1615 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction299 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction299 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1615 /* 3: ReduceAction299 < ReduceAction299: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction298(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction298;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction298_parser___ReduceAction298___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14211;
+  fra.me.meth = LOCATE_NEW_ReduceAction298_parser___ReduceAction298___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction298();
+  /* ./parser//parser.nit:14211 */
+  INIT_ATTRIBUTES__ReduceAction298(fra.me.REG[0]);
+  parser___ReduceAction298___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction298(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction299[50] = {
+  {(bigint) 3387 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction299 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction299 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3387 /* 4: ReduceAction299 < ReduceAction299: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58593,14 +122434,12 @@ const classtable_elt_t VFT_ReduceAction299[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction299 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction299 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58608,7 +122447,6 @@ const classtable_elt_t VFT_ReduceAction299[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58616,33 +122454,81 @@ const classtable_elt_t VFT_ReduceAction299[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction299 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction299 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction299___action},
-  {(bigint) 2 /* 42: ReduceAction299 < ReduceAction299: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction299 < ReduceAction299: superclass init_table position */},
   {(bigint) parser___ReduceAction299___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction299(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction299(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction299;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction299(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction299;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction299___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction299();
-  parser___ReduceAction299___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction300[44] = {
-  {(bigint) 1603 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction300 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction300 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1603 /* 3: ReduceAction300 < ReduceAction300: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction299(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction299;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction299_parser___ReduceAction299___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14256;
+  fra.me.meth = LOCATE_NEW_ReduceAction299_parser___ReduceAction299___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction299();
+  /* ./parser//parser.nit:14256 */
+  INIT_ATTRIBUTES__ReduceAction299(fra.me.REG[0]);
+  parser___ReduceAction299___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction299(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction300[50] = {
+  {(bigint) 3375 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction300 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction300 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3375 /* 4: ReduceAction300 < ReduceAction300: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58652,14 +122538,12 @@ const classtable_elt_t VFT_ReduceAction300[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction300 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction300 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58667,7 +122551,6 @@ const classtable_elt_t VFT_ReduceAction300[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58675,33 +122558,81 @@ const classtable_elt_t VFT_ReduceAction300[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction300 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction300 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction300___action},
-  {(bigint) 2 /* 42: ReduceAction300 < ReduceAction300: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction300 < ReduceAction300: superclass init_table position */},
   {(bigint) parser___ReduceAction300___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction300(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction300(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction300;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction300(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction300;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction300___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction300();
-  parser___ReduceAction300___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction301[44] = {
-  {(bigint) 1599 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction301 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction301 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1599 /* 3: ReduceAction301 < ReduceAction301: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction300(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction300;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction300_parser___ReduceAction300___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14301;
+  fra.me.meth = LOCATE_NEW_ReduceAction300_parser___ReduceAction300___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction300();
+  /* ./parser//parser.nit:14301 */
+  INIT_ATTRIBUTES__ReduceAction300(fra.me.REG[0]);
+  parser___ReduceAction300___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction300(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction301[50] = {
+  {(bigint) 3371 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction301 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction301 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3371 /* 4: ReduceAction301 < ReduceAction301: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58711,14 +122642,12 @@ const classtable_elt_t VFT_ReduceAction301[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction301 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction301 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58726,7 +122655,6 @@ const classtable_elt_t VFT_ReduceAction301[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58734,33 +122662,81 @@ const classtable_elt_t VFT_ReduceAction301[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction301 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction301 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction301___action},
-  {(bigint) 2 /* 42: ReduceAction301 < ReduceAction301: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction301 < ReduceAction301: superclass init_table position */},
   {(bigint) parser___ReduceAction301___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction301(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction301(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction301;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction301(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction301;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction301___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction301();
-  parser___ReduceAction301___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction302[44] = {
-  {(bigint) 1595 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction302 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction302 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1595 /* 3: ReduceAction302 < ReduceAction302: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction301(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction301;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction301_parser___ReduceAction301___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14346;
+  fra.me.meth = LOCATE_NEW_ReduceAction301_parser___ReduceAction301___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction301();
+  /* ./parser//parser.nit:14346 */
+  INIT_ATTRIBUTES__ReduceAction301(fra.me.REG[0]);
+  parser___ReduceAction301___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction301(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction302[50] = {
+  {(bigint) 3367 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction302 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction302 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3367 /* 4: ReduceAction302 < ReduceAction302: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58770,14 +122746,12 @@ const classtable_elt_t VFT_ReduceAction302[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction302 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction302 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58785,7 +122759,6 @@ const classtable_elt_t VFT_ReduceAction302[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58793,33 +122766,81 @@ const classtable_elt_t VFT_ReduceAction302[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction302 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction302 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction302___action},
-  {(bigint) 2 /* 42: ReduceAction302 < ReduceAction302: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction302 < ReduceAction302: superclass init_table position */},
   {(bigint) parser___ReduceAction302___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction302(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction302(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction302;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction302(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction302;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction302___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction302();
-  parser___ReduceAction302___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction303[44] = {
-  {(bigint) 1591 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction303 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction303 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1591 /* 3: ReduceAction303 < ReduceAction303: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction302(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction302;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction302_parser___ReduceAction302___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14391;
+  fra.me.meth = LOCATE_NEW_ReduceAction302_parser___ReduceAction302___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction302();
+  /* ./parser//parser.nit:14391 */
+  INIT_ATTRIBUTES__ReduceAction302(fra.me.REG[0]);
+  parser___ReduceAction302___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction302(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction303[50] = {
+  {(bigint) 3363 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction303 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction303 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3363 /* 4: ReduceAction303 < ReduceAction303: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58829,14 +122850,12 @@ const classtable_elt_t VFT_ReduceAction303[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction303 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction303 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58844,7 +122863,6 @@ const classtable_elt_t VFT_ReduceAction303[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58852,33 +122870,81 @@ const classtable_elt_t VFT_ReduceAction303[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction303 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction303 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction303___action},
-  {(bigint) 2 /* 42: ReduceAction303 < ReduceAction303: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction303 < ReduceAction303: superclass init_table position */},
   {(bigint) parser___ReduceAction303___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction303(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction303(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction303;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction303(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction303;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction303___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction303();
-  parser___ReduceAction303___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction304[44] = {
-  {(bigint) 1587 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction304 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction304 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1587 /* 3: ReduceAction304 < ReduceAction304: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction303(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction303;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction303_parser___ReduceAction303___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14436;
+  fra.me.meth = LOCATE_NEW_ReduceAction303_parser___ReduceAction303___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction303();
+  /* ./parser//parser.nit:14436 */
+  INIT_ATTRIBUTES__ReduceAction303(fra.me.REG[0]);
+  parser___ReduceAction303___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction303(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction304[50] = {
+  {(bigint) 3359 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction304 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction304 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3359 /* 4: ReduceAction304 < ReduceAction304: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58888,14 +122954,12 @@ const classtable_elt_t VFT_ReduceAction304[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction304 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction304 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58903,7 +122967,6 @@ const classtable_elt_t VFT_ReduceAction304[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58911,33 +122974,81 @@ const classtable_elt_t VFT_ReduceAction304[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction304 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction304 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction304___action},
-  {(bigint) 2 /* 42: ReduceAction304 < ReduceAction304: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction304 < ReduceAction304: superclass init_table position */},
   {(bigint) parser___ReduceAction304___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction304(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction304(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction304;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction304(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction304;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction304___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction304();
-  parser___ReduceAction304___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction305[44] = {
-  {(bigint) 1583 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction305 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction305 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1583 /* 3: ReduceAction305 < ReduceAction305: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction304(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction304;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction304_parser___ReduceAction304___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14481;
+  fra.me.meth = LOCATE_NEW_ReduceAction304_parser___ReduceAction304___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction304();
+  /* ./parser//parser.nit:14481 */
+  INIT_ATTRIBUTES__ReduceAction304(fra.me.REG[0]);
+  parser___ReduceAction304___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction304(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction305[50] = {
+  {(bigint) 3355 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction305 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction305 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3355 /* 4: ReduceAction305 < ReduceAction305: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58947,14 +123058,12 @@ const classtable_elt_t VFT_ReduceAction305[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction305 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction305 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -58962,7 +123071,6 @@ const classtable_elt_t VFT_ReduceAction305[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -58970,33 +123078,81 @@ const classtable_elt_t VFT_ReduceAction305[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction305 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction305 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction305___action},
-  {(bigint) 2 /* 42: ReduceAction305 < ReduceAction305: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction305 < ReduceAction305: superclass init_table position */},
   {(bigint) parser___ReduceAction305___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction305(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction305(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction305;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction305(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction305;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction305___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction305();
-  parser___ReduceAction305___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction306[44] = {
-  {(bigint) 1579 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction306 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction306 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1579 /* 3: ReduceAction306 < ReduceAction306: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction305(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction305;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction305_parser___ReduceAction305___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14526;
+  fra.me.meth = LOCATE_NEW_ReduceAction305_parser___ReduceAction305___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction305();
+  /* ./parser//parser.nit:14526 */
+  INIT_ATTRIBUTES__ReduceAction305(fra.me.REG[0]);
+  parser___ReduceAction305___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction305(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction306[50] = {
+  {(bigint) 3351 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction306 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction306 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3351 /* 4: ReduceAction306 < ReduceAction306: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59006,14 +123162,12 @@ const classtable_elt_t VFT_ReduceAction306[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction306 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction306 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59021,7 +123175,6 @@ const classtable_elt_t VFT_ReduceAction306[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59029,33 +123182,81 @@ const classtable_elt_t VFT_ReduceAction306[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction306 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction306 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction306___action},
-  {(bigint) 2 /* 42: ReduceAction306 < ReduceAction306: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction306 < ReduceAction306: superclass init_table position */},
   {(bigint) parser___ReduceAction306___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction306(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction306(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction306;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction306(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction306;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction306___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction306();
-  parser___ReduceAction306___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction307[44] = {
-  {(bigint) 1575 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction307 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction307 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1575 /* 3: ReduceAction307 < ReduceAction307: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction306(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction306;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction306_parser___ReduceAction306___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14575;
+  fra.me.meth = LOCATE_NEW_ReduceAction306_parser___ReduceAction306___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction306();
+  /* ./parser//parser.nit:14575 */
+  INIT_ATTRIBUTES__ReduceAction306(fra.me.REG[0]);
+  parser___ReduceAction306___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction306(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction307[50] = {
+  {(bigint) 3347 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction307 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction307 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3347 /* 4: ReduceAction307 < ReduceAction307: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59065,14 +123266,12 @@ const classtable_elt_t VFT_ReduceAction307[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction307 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction307 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59080,7 +123279,6 @@ const classtable_elt_t VFT_ReduceAction307[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59088,33 +123286,81 @@ const classtable_elt_t VFT_ReduceAction307[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction307 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction307 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction307___action},
-  {(bigint) 2 /* 42: ReduceAction307 < ReduceAction307: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction307 < ReduceAction307: superclass init_table position */},
   {(bigint) parser___ReduceAction307___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction307(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction307(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction307;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction307(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction307;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction307___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction307();
-  parser___ReduceAction307___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction308[44] = {
-  {(bigint) 1571 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction308 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction308 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1571 /* 3: ReduceAction308 < ReduceAction308: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction307(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction307;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction307_parser___ReduceAction307___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14620;
+  fra.me.meth = LOCATE_NEW_ReduceAction307_parser___ReduceAction307___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction307();
+  /* ./parser//parser.nit:14620 */
+  INIT_ATTRIBUTES__ReduceAction307(fra.me.REG[0]);
+  parser___ReduceAction307___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction307(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction308[50] = {
+  {(bigint) 3343 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction308 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction308 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3343 /* 4: ReduceAction308 < ReduceAction308: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59124,14 +123370,12 @@ const classtable_elt_t VFT_ReduceAction308[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction308 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction308 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59139,7 +123383,6 @@ const classtable_elt_t VFT_ReduceAction308[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59147,33 +123390,81 @@ const classtable_elt_t VFT_ReduceAction308[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction308 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction308 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction308___action},
-  {(bigint) 2 /* 42: ReduceAction308 < ReduceAction308: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction308 < ReduceAction308: superclass init_table position */},
   {(bigint) parser___ReduceAction308___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction308(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction308(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction308;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction308(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction308;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction308___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction308();
-  parser___ReduceAction308___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction309[44] = {
-  {(bigint) 1567 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction309 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction309 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1567 /* 3: ReduceAction309 < ReduceAction309: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction308(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction308;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction308_parser___ReduceAction308___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14669;
+  fra.me.meth = LOCATE_NEW_ReduceAction308_parser___ReduceAction308___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction308();
+  /* ./parser//parser.nit:14669 */
+  INIT_ATTRIBUTES__ReduceAction308(fra.me.REG[0]);
+  parser___ReduceAction308___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction308(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction309[50] = {
+  {(bigint) 3339 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction309 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction309 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3339 /* 4: ReduceAction309 < ReduceAction309: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59183,14 +123474,12 @@ const classtable_elt_t VFT_ReduceAction309[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction309 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction309 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59198,7 +123487,6 @@ const classtable_elt_t VFT_ReduceAction309[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59206,33 +123494,81 @@ const classtable_elt_t VFT_ReduceAction309[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction309 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction309 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction309___action},
-  {(bigint) 2 /* 42: ReduceAction309 < ReduceAction309: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction309 < ReduceAction309: superclass init_table position */},
   {(bigint) parser___ReduceAction309___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction309(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction309(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction309;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction309(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction309;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction309___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction309();
-  parser___ReduceAction309___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction310[44] = {
-  {(bigint) 1559 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction310 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction310 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1559 /* 3: ReduceAction310 < ReduceAction310: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction309(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction309;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction309_parser___ReduceAction309___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14722;
+  fra.me.meth = LOCATE_NEW_ReduceAction309_parser___ReduceAction309___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction309();
+  /* ./parser//parser.nit:14722 */
+  INIT_ATTRIBUTES__ReduceAction309(fra.me.REG[0]);
+  parser___ReduceAction309___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction309(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction310[50] = {
+  {(bigint) 3331 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction310 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction310 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3331 /* 4: ReduceAction310 < ReduceAction310: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59242,14 +123578,12 @@ const classtable_elt_t VFT_ReduceAction310[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction310 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction310 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59257,7 +123591,6 @@ const classtable_elt_t VFT_ReduceAction310[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59265,33 +123598,81 @@ const classtable_elt_t VFT_ReduceAction310[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction310 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction310 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction310___action},
-  {(bigint) 2 /* 42: ReduceAction310 < ReduceAction310: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction310 < ReduceAction310: superclass init_table position */},
   {(bigint) parser___ReduceAction310___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction310(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction310(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction310;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction310(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction310;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction310___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction310();
-  parser___ReduceAction310___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction311[44] = {
-  {(bigint) 1555 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction311 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction311 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1555 /* 3: ReduceAction311 < ReduceAction311: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction310(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction310;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction310_parser___ReduceAction310___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14769;
+  fra.me.meth = LOCATE_NEW_ReduceAction310_parser___ReduceAction310___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction310();
+  /* ./parser//parser.nit:14769 */
+  INIT_ATTRIBUTES__ReduceAction310(fra.me.REG[0]);
+  parser___ReduceAction310___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction310(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction311[50] = {
+  {(bigint) 3327 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction311 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction311 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3327 /* 4: ReduceAction311 < ReduceAction311: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59301,14 +123682,12 @@ const classtable_elt_t VFT_ReduceAction311[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction311 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction311 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59316,7 +123695,6 @@ const classtable_elt_t VFT_ReduceAction311[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59324,33 +123702,81 @@ const classtable_elt_t VFT_ReduceAction311[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction311 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction311 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction311___action},
-  {(bigint) 2 /* 42: ReduceAction311 < ReduceAction311: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction311 < ReduceAction311: superclass init_table position */},
   {(bigint) parser___ReduceAction311___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction311(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction311(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction311;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction311(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction311;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction311___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction311();
-  parser___ReduceAction311___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction312[44] = {
-  {(bigint) 1551 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction312 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction312 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1551 /* 3: ReduceAction312 < ReduceAction312: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction311(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction311;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction311_parser___ReduceAction311___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14819;
+  fra.me.meth = LOCATE_NEW_ReduceAction311_parser___ReduceAction311___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction311();
+  /* ./parser//parser.nit:14819 */
+  INIT_ATTRIBUTES__ReduceAction311(fra.me.REG[0]);
+  parser___ReduceAction311___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction311(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction312[50] = {
+  {(bigint) 3323 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction312 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction312 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3323 /* 4: ReduceAction312 < ReduceAction312: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59360,14 +123786,12 @@ const classtable_elt_t VFT_ReduceAction312[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction312 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction312 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59375,7 +123799,6 @@ const classtable_elt_t VFT_ReduceAction312[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59383,33 +123806,81 @@ const classtable_elt_t VFT_ReduceAction312[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction312 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction312 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction312___action},
-  {(bigint) 2 /* 42: ReduceAction312 < ReduceAction312: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction312 < ReduceAction312: superclass init_table position */},
   {(bigint) parser___ReduceAction312___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction312(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction312(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction312;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction312(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction312;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction312___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction312();
-  parser___ReduceAction312___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction313[44] = {
-  {(bigint) 1547 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction313 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction313 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1547 /* 3: ReduceAction313 < ReduceAction313: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction312(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction312;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction312_parser___ReduceAction312___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14859;
+  fra.me.meth = LOCATE_NEW_ReduceAction312_parser___ReduceAction312___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction312();
+  /* ./parser//parser.nit:14859 */
+  INIT_ATTRIBUTES__ReduceAction312(fra.me.REG[0]);
+  parser___ReduceAction312___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction312(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction313[50] = {
+  {(bigint) 3319 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction313 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction313 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3319 /* 4: ReduceAction313 < ReduceAction313: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59419,14 +123890,12 @@ const classtable_elt_t VFT_ReduceAction313[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction313 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction313 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59434,7 +123903,6 @@ const classtable_elt_t VFT_ReduceAction313[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59442,33 +123910,81 @@ const classtable_elt_t VFT_ReduceAction313[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction313 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction313 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction313___action},
-  {(bigint) 2 /* 42: ReduceAction313 < ReduceAction313: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction313 < ReduceAction313: superclass init_table position */},
   {(bigint) parser___ReduceAction313___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction313(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction313(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction313;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction313(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction313;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction313___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction313();
-  parser___ReduceAction313___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction314[44] = {
-  {(bigint) 1543 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction314 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction314 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1543 /* 3: ReduceAction314 < ReduceAction314: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction313(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction313;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction313_parser___ReduceAction313___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14909;
+  fra.me.meth = LOCATE_NEW_ReduceAction313_parser___ReduceAction313___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction313();
+  /* ./parser//parser.nit:14909 */
+  INIT_ATTRIBUTES__ReduceAction313(fra.me.REG[0]);
+  parser___ReduceAction313___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction313(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction314[50] = {
+  {(bigint) 3315 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction314 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction314 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3315 /* 4: ReduceAction314 < ReduceAction314: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59478,14 +123994,12 @@ const classtable_elt_t VFT_ReduceAction314[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction314 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction314 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59493,7 +124007,6 @@ const classtable_elt_t VFT_ReduceAction314[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59501,33 +124014,81 @@ const classtable_elt_t VFT_ReduceAction314[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction314 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction314 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction314___action},
-  {(bigint) 2 /* 42: ReduceAction314 < ReduceAction314: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction314 < ReduceAction314: superclass init_table position */},
   {(bigint) parser___ReduceAction314___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction314(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction314(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction314;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction314(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction314;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction314___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction314();
-  parser___ReduceAction314___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction315[44] = {
-  {(bigint) 1539 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction315 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction315 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1539 /* 3: ReduceAction315 < ReduceAction315: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction314(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction314;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction314_parser___ReduceAction314___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 14962;
+  fra.me.meth = LOCATE_NEW_ReduceAction314_parser___ReduceAction314___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction314();
+  /* ./parser//parser.nit:14962 */
+  INIT_ATTRIBUTES__ReduceAction314(fra.me.REG[0]);
+  parser___ReduceAction314___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction314(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction315[50] = {
+  {(bigint) 3311 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction315 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction315 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3311 /* 4: ReduceAction315 < ReduceAction315: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59537,14 +124098,12 @@ const classtable_elt_t VFT_ReduceAction315[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction315 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction315 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59552,7 +124111,6 @@ const classtable_elt_t VFT_ReduceAction315[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59560,33 +124118,81 @@ const classtable_elt_t VFT_ReduceAction315[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction315 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction315 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction315___action},
-  {(bigint) 2 /* 42: ReduceAction315 < ReduceAction315: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction315 < ReduceAction315: superclass init_table position */},
   {(bigint) parser___ReduceAction315___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction315(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction315(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction315;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction315(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction315;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction315___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction315();
-  parser___ReduceAction315___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction316[44] = {
-  {(bigint) 1535 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction316 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction316 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1535 /* 3: ReduceAction316 < ReduceAction316: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction315(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction315;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction315_parser___ReduceAction315___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15005;
+  fra.me.meth = LOCATE_NEW_ReduceAction315_parser___ReduceAction315___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction315();
+  /* ./parser//parser.nit:15005 */
+  INIT_ATTRIBUTES__ReduceAction315(fra.me.REG[0]);
+  parser___ReduceAction315___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction315(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction316[50] = {
+  {(bigint) 3307 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction316 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction316 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3307 /* 4: ReduceAction316 < ReduceAction316: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59596,14 +124202,12 @@ const classtable_elt_t VFT_ReduceAction316[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction316 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction316 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59611,7 +124215,6 @@ const classtable_elt_t VFT_ReduceAction316[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59619,33 +124222,81 @@ const classtable_elt_t VFT_ReduceAction316[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction316 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction316 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction316___action},
-  {(bigint) 2 /* 42: ReduceAction316 < ReduceAction316: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction316 < ReduceAction316: superclass init_table position */},
   {(bigint) parser___ReduceAction316___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction316(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction316(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction316;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction316(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction316;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction316___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction316();
-  parser___ReduceAction316___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction317[44] = {
-  {(bigint) 1531 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction317 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction317 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1531 /* 3: ReduceAction317 < ReduceAction317: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction316(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction316;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction316_parser___ReduceAction316___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15045;
+  fra.me.meth = LOCATE_NEW_ReduceAction316_parser___ReduceAction316___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction316();
+  /* ./parser//parser.nit:15045 */
+  INIT_ATTRIBUTES__ReduceAction316(fra.me.REG[0]);
+  parser___ReduceAction316___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction316(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction317[50] = {
+  {(bigint) 3303 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction317 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction317 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3303 /* 4: ReduceAction317 < ReduceAction317: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59655,14 +124306,12 @@ const classtable_elt_t VFT_ReduceAction317[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction317 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction317 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59670,7 +124319,6 @@ const classtable_elt_t VFT_ReduceAction317[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59678,33 +124326,81 @@ const classtable_elt_t VFT_ReduceAction317[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction317 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction317 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction317___action},
-  {(bigint) 2 /* 42: ReduceAction317 < ReduceAction317: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction317 < ReduceAction317: superclass init_table position */},
   {(bigint) parser___ReduceAction317___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction317(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction317(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction317;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction317(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction317;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction317___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction317();
-  parser___ReduceAction317___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction318[44] = {
-  {(bigint) 1527 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction318 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction318 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1527 /* 3: ReduceAction318 < ReduceAction318: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction317(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction317;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction317_parser___ReduceAction317___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15088;
+  fra.me.meth = LOCATE_NEW_ReduceAction317_parser___ReduceAction317___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction317();
+  /* ./parser//parser.nit:15088 */
+  INIT_ATTRIBUTES__ReduceAction317(fra.me.REG[0]);
+  parser___ReduceAction317___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction317(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction318[50] = {
+  {(bigint) 3299 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction318 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction318 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3299 /* 4: ReduceAction318 < ReduceAction318: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59714,14 +124410,12 @@ const classtable_elt_t VFT_ReduceAction318[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction318 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction318 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59729,7 +124423,6 @@ const classtable_elt_t VFT_ReduceAction318[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59737,33 +124430,81 @@ const classtable_elt_t VFT_ReduceAction318[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction318 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction318 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction318___action},
-  {(bigint) 2 /* 42: ReduceAction318 < ReduceAction318: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction318 < ReduceAction318: superclass init_table position */},
   {(bigint) parser___ReduceAction318___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction318(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction318(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction318;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction318(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction318;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction318___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction318();
-  parser___ReduceAction318___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction319[44] = {
-  {(bigint) 1523 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction319 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction319 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1523 /* 3: ReduceAction319 < ReduceAction319: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction318(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction318;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction318_parser___ReduceAction318___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15121;
+  fra.me.meth = LOCATE_NEW_ReduceAction318_parser___ReduceAction318___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction318();
+  /* ./parser//parser.nit:15121 */
+  INIT_ATTRIBUTES__ReduceAction318(fra.me.REG[0]);
+  parser___ReduceAction318___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction318(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction319[50] = {
+  {(bigint) 3295 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction319 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction319 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3295 /* 4: ReduceAction319 < ReduceAction319: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59773,14 +124514,12 @@ const classtable_elt_t VFT_ReduceAction319[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction319 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction319 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59788,7 +124527,6 @@ const classtable_elt_t VFT_ReduceAction319[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59796,33 +124534,81 @@ const classtable_elt_t VFT_ReduceAction319[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction319 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction319 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction319___action},
-  {(bigint) 2 /* 42: ReduceAction319 < ReduceAction319: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction319 < ReduceAction319: superclass init_table position */},
   {(bigint) parser___ReduceAction319___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction319(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction319(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction319;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction319(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction319;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction319___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction319();
-  parser___ReduceAction319___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction320[44] = {
-  {(bigint) 1515 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction320 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction320 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1515 /* 3: ReduceAction320 < ReduceAction320: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction319(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction319;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction319_parser___ReduceAction319___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15171;
+  fra.me.meth = LOCATE_NEW_ReduceAction319_parser___ReduceAction319___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction319();
+  /* ./parser//parser.nit:15171 */
+  INIT_ATTRIBUTES__ReduceAction319(fra.me.REG[0]);
+  parser___ReduceAction319___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction319(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction320[50] = {
+  {(bigint) 3287 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction320 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction320 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3287 /* 4: ReduceAction320 < ReduceAction320: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59832,14 +124618,12 @@ const classtable_elt_t VFT_ReduceAction320[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction320 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction320 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59847,7 +124631,6 @@ const classtable_elt_t VFT_ReduceAction320[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59855,33 +124638,81 @@ const classtable_elt_t VFT_ReduceAction320[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction320 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction320 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction320___action},
-  {(bigint) 2 /* 42: ReduceAction320 < ReduceAction320: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction320 < ReduceAction320: superclass init_table position */},
   {(bigint) parser___ReduceAction320___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction320(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction320(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction320;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction320(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction320;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction320___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction320();
-  parser___ReduceAction320___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction321[44] = {
-  {(bigint) 1511 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction321 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction321 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1511 /* 3: ReduceAction321 < ReduceAction321: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction320(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction320;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction320_parser___ReduceAction320___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15224;
+  fra.me.meth = LOCATE_NEW_ReduceAction320_parser___ReduceAction320___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction320();
+  /* ./parser//parser.nit:15224 */
+  INIT_ATTRIBUTES__ReduceAction320(fra.me.REG[0]);
+  parser___ReduceAction320___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction320(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction321[50] = {
+  {(bigint) 3283 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction321 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction321 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3283 /* 4: ReduceAction321 < ReduceAction321: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59891,14 +124722,12 @@ const classtable_elt_t VFT_ReduceAction321[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction321 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction321 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59906,7 +124735,6 @@ const classtable_elt_t VFT_ReduceAction321[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59914,33 +124742,81 @@ const classtable_elt_t VFT_ReduceAction321[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction321 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction321 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction321___action},
-  {(bigint) 2 /* 42: ReduceAction321 < ReduceAction321: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction321 < ReduceAction321: superclass init_table position */},
   {(bigint) parser___ReduceAction321___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction321(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction321(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction321;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction321(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction321;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction321___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction321();
-  parser___ReduceAction321___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction322[44] = {
-  {(bigint) 1507 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction322 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction322 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1507 /* 3: ReduceAction322 < ReduceAction322: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction321(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction321;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction321_parser___ReduceAction321___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15267;
+  fra.me.meth = LOCATE_NEW_ReduceAction321_parser___ReduceAction321___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction321();
+  /* ./parser//parser.nit:15267 */
+  INIT_ATTRIBUTES__ReduceAction321(fra.me.REG[0]);
+  parser___ReduceAction321___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction321(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction322[50] = {
+  {(bigint) 3279 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction322 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction322 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3279 /* 4: ReduceAction322 < ReduceAction322: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59950,14 +124826,12 @@ const classtable_elt_t VFT_ReduceAction322[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction322 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction322 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -59965,7 +124839,6 @@ const classtable_elt_t VFT_ReduceAction322[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -59973,33 +124846,81 @@ const classtable_elt_t VFT_ReduceAction322[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction322 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction322 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction322___action},
-  {(bigint) 2 /* 42: ReduceAction322 < ReduceAction322: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction322 < ReduceAction322: superclass init_table position */},
   {(bigint) parser___ReduceAction322___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction322(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction322(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction322;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction322(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction322;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction322___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction322();
-  parser___ReduceAction322___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction323[44] = {
-  {(bigint) 1503 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction323 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction323 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1503 /* 3: ReduceAction323 < ReduceAction323: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction322(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction322;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction322_parser___ReduceAction322___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15320;
+  fra.me.meth = LOCATE_NEW_ReduceAction322_parser___ReduceAction322___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction322();
+  /* ./parser//parser.nit:15320 */
+  INIT_ATTRIBUTES__ReduceAction322(fra.me.REG[0]);
+  parser___ReduceAction322___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction322(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction323[50] = {
+  {(bigint) 3275 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction323 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction323 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3275 /* 4: ReduceAction323 < ReduceAction323: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60009,14 +124930,12 @@ const classtable_elt_t VFT_ReduceAction323[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction323 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction323 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60024,7 +124943,6 @@ const classtable_elt_t VFT_ReduceAction323[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60032,33 +124950,81 @@ const classtable_elt_t VFT_ReduceAction323[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction323 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction323 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction323___action},
-  {(bigint) 2 /* 42: ReduceAction323 < ReduceAction323: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction323 < ReduceAction323: superclass init_table position */},
   {(bigint) parser___ReduceAction323___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction323(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction323(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction323;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction323(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction323;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction323___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction323();
-  parser___ReduceAction323___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction324[44] = {
-  {(bigint) 1499 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction324 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction324 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1499 /* 3: ReduceAction324 < ReduceAction324: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction323(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction323;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction323_parser___ReduceAction323___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15376;
+  fra.me.meth = LOCATE_NEW_ReduceAction323_parser___ReduceAction323___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction323();
+  /* ./parser//parser.nit:15376 */
+  INIT_ATTRIBUTES__ReduceAction323(fra.me.REG[0]);
+  parser___ReduceAction323___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction323(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction324[50] = {
+  {(bigint) 3271 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction324 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction324 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3271 /* 4: ReduceAction324 < ReduceAction324: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60068,14 +125034,12 @@ const classtable_elt_t VFT_ReduceAction324[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction324 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction324 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60083,7 +125047,6 @@ const classtable_elt_t VFT_ReduceAction324[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60091,33 +125054,81 @@ const classtable_elt_t VFT_ReduceAction324[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction324 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction324 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction324___action},
-  {(bigint) 2 /* 42: ReduceAction324 < ReduceAction324: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction324 < ReduceAction324: superclass init_table position */},
   {(bigint) parser___ReduceAction324___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction324(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction324(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction324;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction324(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction324;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction324___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction324();
-  parser___ReduceAction324___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction325[44] = {
-  {(bigint) 1495 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction325 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction325 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1495 /* 3: ReduceAction325 < ReduceAction325: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction324(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction324;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction324_parser___ReduceAction324___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15422;
+  fra.me.meth = LOCATE_NEW_ReduceAction324_parser___ReduceAction324___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction324();
+  /* ./parser//parser.nit:15422 */
+  INIT_ATTRIBUTES__ReduceAction324(fra.me.REG[0]);
+  parser___ReduceAction324___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction324(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction325[50] = {
+  {(bigint) 3267 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction325 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction325 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3267 /* 4: ReduceAction325 < ReduceAction325: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60127,14 +125138,12 @@ const classtable_elt_t VFT_ReduceAction325[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction325 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction325 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60142,7 +125151,6 @@ const classtable_elt_t VFT_ReduceAction325[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60150,33 +125158,81 @@ const classtable_elt_t VFT_ReduceAction325[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction325 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction325 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction325___action},
-  {(bigint) 2 /* 42: ReduceAction325 < ReduceAction325: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction325 < ReduceAction325: superclass init_table position */},
   {(bigint) parser___ReduceAction325___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction325(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction325(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction325;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction325(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction325;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction325___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction325();
-  parser___ReduceAction325___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction326[44] = {
-  {(bigint) 1491 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction326 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction326 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1491 /* 3: ReduceAction326 < ReduceAction326: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction325(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction325;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction325_parser___ReduceAction325___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15465;
+  fra.me.meth = LOCATE_NEW_ReduceAction325_parser___ReduceAction325___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction325();
+  /* ./parser//parser.nit:15465 */
+  INIT_ATTRIBUTES__ReduceAction325(fra.me.REG[0]);
+  parser___ReduceAction325___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction325(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction326[50] = {
+  {(bigint) 3263 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction326 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction326 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3263 /* 4: ReduceAction326 < ReduceAction326: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60186,14 +125242,12 @@ const classtable_elt_t VFT_ReduceAction326[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction326 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction326 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60201,7 +125255,6 @@ const classtable_elt_t VFT_ReduceAction326[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60209,33 +125262,81 @@ const classtable_elt_t VFT_ReduceAction326[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction326 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction326 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction326___action},
-  {(bigint) 2 /* 42: ReduceAction326 < ReduceAction326: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction326 < ReduceAction326: superclass init_table position */},
   {(bigint) parser___ReduceAction326___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction326(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction326(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction326;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction326(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction326;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction326___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction326();
-  parser___ReduceAction326___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction327[44] = {
-  {(bigint) 1487 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction327 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction327 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1487 /* 3: ReduceAction327 < ReduceAction327: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction326(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction326;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction326_parser___ReduceAction326___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15511;
+  fra.me.meth = LOCATE_NEW_ReduceAction326_parser___ReduceAction326___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction326();
+  /* ./parser//parser.nit:15511 */
+  INIT_ATTRIBUTES__ReduceAction326(fra.me.REG[0]);
+  parser___ReduceAction326___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction326(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction327[50] = {
+  {(bigint) 3259 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction327 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction327 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3259 /* 4: ReduceAction327 < ReduceAction327: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60245,14 +125346,12 @@ const classtable_elt_t VFT_ReduceAction327[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction327 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction327 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60260,7 +125359,6 @@ const classtable_elt_t VFT_ReduceAction327[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60268,33 +125366,81 @@ const classtable_elt_t VFT_ReduceAction327[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction327 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction327 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction327___action},
-  {(bigint) 2 /* 42: ReduceAction327 < ReduceAction327: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction327 < ReduceAction327: superclass init_table position */},
   {(bigint) parser___ReduceAction327___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction327(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction327(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction327;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction327(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction327;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction327___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction327();
-  parser___ReduceAction327___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction328[44] = {
-  {(bigint) 1483 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction328 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction328 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1483 /* 3: ReduceAction328 < ReduceAction328: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction327(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction327;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction327_parser___ReduceAction327___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15547;
+  fra.me.meth = LOCATE_NEW_ReduceAction327_parser___ReduceAction327___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction327();
+  /* ./parser//parser.nit:15547 */
+  INIT_ATTRIBUTES__ReduceAction327(fra.me.REG[0]);
+  parser___ReduceAction327___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction327(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction328[50] = {
+  {(bigint) 3255 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction328 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction328 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3255 /* 4: ReduceAction328 < ReduceAction328: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60304,14 +125450,12 @@ const classtable_elt_t VFT_ReduceAction328[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction328 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction328 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60319,7 +125463,6 @@ const classtable_elt_t VFT_ReduceAction328[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60327,33 +125470,81 @@ const classtable_elt_t VFT_ReduceAction328[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction328 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction328 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction328___action},
-  {(bigint) 2 /* 42: ReduceAction328 < ReduceAction328: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction328 < ReduceAction328: superclass init_table position */},
   {(bigint) parser___ReduceAction328___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction328(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction328(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction328;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction328(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction328;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction328___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction328();
-  parser___ReduceAction328___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction329[44] = {
-  {(bigint) 1479 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction329 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction329 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1479 /* 3: ReduceAction329 < ReduceAction329: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction328(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction328;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction328_parser___ReduceAction328___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15597;
+  fra.me.meth = LOCATE_NEW_ReduceAction328_parser___ReduceAction328___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction328();
+  /* ./parser//parser.nit:15597 */
+  INIT_ATTRIBUTES__ReduceAction328(fra.me.REG[0]);
+  parser___ReduceAction328___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction328(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction329[50] = {
+  {(bigint) 3251 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction329 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction329 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3251 /* 4: ReduceAction329 < ReduceAction329: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60363,14 +125554,12 @@ const classtable_elt_t VFT_ReduceAction329[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction329 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction329 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60378,7 +125567,6 @@ const classtable_elt_t VFT_ReduceAction329[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60386,33 +125574,81 @@ const classtable_elt_t VFT_ReduceAction329[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction329 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction329 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction329___action},
-  {(bigint) 2 /* 42: ReduceAction329 < ReduceAction329: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction329 < ReduceAction329: superclass init_table position */},
   {(bigint) parser___ReduceAction329___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction329(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction329(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction329;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction329(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction329;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction329___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction329();
-  parser___ReduceAction329___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction330[44] = {
-  {(bigint) 1471 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction330 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction330 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1471 /* 3: ReduceAction330 < ReduceAction330: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction329(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction329;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction329_parser___ReduceAction329___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15650;
+  fra.me.meth = LOCATE_NEW_ReduceAction329_parser___ReduceAction329___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction329();
+  /* ./parser//parser.nit:15650 */
+  INIT_ATTRIBUTES__ReduceAction329(fra.me.REG[0]);
+  parser___ReduceAction329___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction329(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction330[50] = {
+  {(bigint) 3243 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction330 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction330 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3243 /* 4: ReduceAction330 < ReduceAction330: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60422,14 +125658,12 @@ const classtable_elt_t VFT_ReduceAction330[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction330 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction330 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60437,7 +125671,6 @@ const classtable_elt_t VFT_ReduceAction330[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60445,33 +125678,81 @@ const classtable_elt_t VFT_ReduceAction330[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction330 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction330 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction330___action},
-  {(bigint) 2 /* 42: ReduceAction330 < ReduceAction330: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction330 < ReduceAction330: superclass init_table position */},
   {(bigint) parser___ReduceAction330___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction330(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction330(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction330;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction330(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction330;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction330___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction330();
-  parser___ReduceAction330___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction331[44] = {
-  {(bigint) 1467 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction331 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction331 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1467 /* 3: ReduceAction331 < ReduceAction331: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction330(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction330;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction330_parser___ReduceAction330___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15693;
+  fra.me.meth = LOCATE_NEW_ReduceAction330_parser___ReduceAction330___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction330();
+  /* ./parser//parser.nit:15693 */
+  INIT_ATTRIBUTES__ReduceAction330(fra.me.REG[0]);
+  parser___ReduceAction330___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction330(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction331[50] = {
+  {(bigint) 3239 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction331 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction331 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3239 /* 4: ReduceAction331 < ReduceAction331: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60481,14 +125762,12 @@ const classtable_elt_t VFT_ReduceAction331[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction331 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction331 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60496,7 +125775,6 @@ const classtable_elt_t VFT_ReduceAction331[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60504,33 +125782,81 @@ const classtable_elt_t VFT_ReduceAction331[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction331 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction331 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction331___action},
-  {(bigint) 2 /* 42: ReduceAction331 < ReduceAction331: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction331 < ReduceAction331: superclass init_table position */},
   {(bigint) parser___ReduceAction331___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction331(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction331(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction331;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction331(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction331;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction331___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction331();
-  parser___ReduceAction331___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction332[44] = {
-  {(bigint) 1463 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction332 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction332 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1463 /* 3: ReduceAction332 < ReduceAction332: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction331(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction331;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction331_parser___ReduceAction331___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15746;
+  fra.me.meth = LOCATE_NEW_ReduceAction331_parser___ReduceAction331___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction331();
+  /* ./parser//parser.nit:15746 */
+  INIT_ATTRIBUTES__ReduceAction331(fra.me.REG[0]);
+  parser___ReduceAction331___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction331(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction332[50] = {
+  {(bigint) 3235 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction332 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction332 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3235 /* 4: ReduceAction332 < ReduceAction332: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60540,14 +125866,12 @@ const classtable_elt_t VFT_ReduceAction332[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction332 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction332 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60555,7 +125879,6 @@ const classtable_elt_t VFT_ReduceAction332[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60563,33 +125886,81 @@ const classtable_elt_t VFT_ReduceAction332[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction332 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction332 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction332___action},
-  {(bigint) 2 /* 42: ReduceAction332 < ReduceAction332: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction332 < ReduceAction332: superclass init_table position */},
   {(bigint) parser___ReduceAction332___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction332(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction332(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction332;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction332(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction332;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction332___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction332();
-  parser___ReduceAction332___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction333[44] = {
-  {(bigint) 1459 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction333 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction333 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1459 /* 3: ReduceAction333 < ReduceAction333: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction332(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction332;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction332_parser___ReduceAction332___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15802;
+  fra.me.meth = LOCATE_NEW_ReduceAction332_parser___ReduceAction332___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction332();
+  /* ./parser//parser.nit:15802 */
+  INIT_ATTRIBUTES__ReduceAction332(fra.me.REG[0]);
+  parser___ReduceAction332___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction332(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction333[50] = {
+  {(bigint) 3231 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction333 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction333 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3231 /* 4: ReduceAction333 < ReduceAction333: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60599,14 +125970,12 @@ const classtable_elt_t VFT_ReduceAction333[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction333 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction333 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60614,7 +125983,6 @@ const classtable_elt_t VFT_ReduceAction333[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60622,33 +125990,81 @@ const classtable_elt_t VFT_ReduceAction333[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction333 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction333 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction333___action},
-  {(bigint) 2 /* 42: ReduceAction333 < ReduceAction333: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction333 < ReduceAction333: superclass init_table position */},
   {(bigint) parser___ReduceAction333___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction333(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction333(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction333;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction333(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction333;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction333___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction333();
-  parser___ReduceAction333___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction334[44] = {
-  {(bigint) 1455 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction334 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction334 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1455 /* 3: ReduceAction334 < ReduceAction334: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction333(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction333;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction333_parser___ReduceAction333___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15848;
+  fra.me.meth = LOCATE_NEW_ReduceAction333_parser___ReduceAction333___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction333();
+  /* ./parser//parser.nit:15848 */
+  INIT_ATTRIBUTES__ReduceAction333(fra.me.REG[0]);
+  parser___ReduceAction333___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction333(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction334[50] = {
+  {(bigint) 3227 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction334 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction334 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3227 /* 4: ReduceAction334 < ReduceAction334: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60658,14 +126074,12 @@ const classtable_elt_t VFT_ReduceAction334[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction334 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction334 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60673,7 +126087,6 @@ const classtable_elt_t VFT_ReduceAction334[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60681,33 +126094,81 @@ const classtable_elt_t VFT_ReduceAction334[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction334 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction334 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction334___action},
-  {(bigint) 2 /* 42: ReduceAction334 < ReduceAction334: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction334 < ReduceAction334: superclass init_table position */},
   {(bigint) parser___ReduceAction334___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction334(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction334(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction334;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction334(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction334;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction334___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction334();
-  parser___ReduceAction334___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction335[44] = {
-  {(bigint) 1451 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction335 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction335 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1451 /* 3: ReduceAction335 < ReduceAction335: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction334(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction334;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction334_parser___ReduceAction334___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15891;
+  fra.me.meth = LOCATE_NEW_ReduceAction334_parser___ReduceAction334___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction334();
+  /* ./parser//parser.nit:15891 */
+  INIT_ATTRIBUTES__ReduceAction334(fra.me.REG[0]);
+  parser___ReduceAction334___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction334(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction335[50] = {
+  {(bigint) 3223 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction335 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction335 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3223 /* 4: ReduceAction335 < ReduceAction335: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60717,14 +126178,12 @@ const classtable_elt_t VFT_ReduceAction335[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction335 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction335 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60732,7 +126191,6 @@ const classtable_elt_t VFT_ReduceAction335[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60740,33 +126198,81 @@ const classtable_elt_t VFT_ReduceAction335[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction335 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction335 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction335___action},
-  {(bigint) 2 /* 42: ReduceAction335 < ReduceAction335: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction335 < ReduceAction335: superclass init_table position */},
   {(bigint) parser___ReduceAction335___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction335(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction335(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction335;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction335(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction335;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction335___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction335();
-  parser___ReduceAction335___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction336[44] = {
-  {(bigint) 1447 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction336 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction336 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1447 /* 3: ReduceAction336 < ReduceAction336: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction335(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction335;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction335_parser___ReduceAction335___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15937;
+  fra.me.meth = LOCATE_NEW_ReduceAction335_parser___ReduceAction335___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction335();
+  /* ./parser//parser.nit:15937 */
+  INIT_ATTRIBUTES__ReduceAction335(fra.me.REG[0]);
+  parser___ReduceAction335___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction335(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction336[50] = {
+  {(bigint) 3219 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction336 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction336 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3219 /* 4: ReduceAction336 < ReduceAction336: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60776,14 +126282,12 @@ const classtable_elt_t VFT_ReduceAction336[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction336 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction336 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60791,7 +126295,6 @@ const classtable_elt_t VFT_ReduceAction336[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60799,33 +126302,81 @@ const classtable_elt_t VFT_ReduceAction336[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction336 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction336 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction336___action},
-  {(bigint) 2 /* 42: ReduceAction336 < ReduceAction336: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction336 < ReduceAction336: superclass init_table position */},
   {(bigint) parser___ReduceAction336___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction336(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction336(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction336;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction336(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction336;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction336___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction336();
-  parser___ReduceAction336___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction337[44] = {
-  {(bigint) 1443 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction337 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction337 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1443 /* 3: ReduceAction337 < ReduceAction337: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction336(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction336;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction336_parser___ReduceAction336___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15973;
+  fra.me.meth = LOCATE_NEW_ReduceAction336_parser___ReduceAction336___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction336();
+  /* ./parser//parser.nit:15973 */
+  INIT_ATTRIBUTES__ReduceAction336(fra.me.REG[0]);
+  parser___ReduceAction336___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction336(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction337[50] = {
+  {(bigint) 3215 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction337 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction337 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3215 /* 4: ReduceAction337 < ReduceAction337: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60835,14 +126386,12 @@ const classtable_elt_t VFT_ReduceAction337[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction337 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction337 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60850,7 +126399,6 @@ const classtable_elt_t VFT_ReduceAction337[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60858,33 +126406,81 @@ const classtable_elt_t VFT_ReduceAction337[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction337 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction337 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction337___action},
-  {(bigint) 2 /* 42: ReduceAction337 < ReduceAction337: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction337 < ReduceAction337: superclass init_table position */},
   {(bigint) parser___ReduceAction337___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction337(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction337(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction337;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction337(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction337;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction337___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction337();
-  parser___ReduceAction337___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction338[44] = {
-  {(bigint) 1439 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction338 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction338 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1439 /* 3: ReduceAction338 < ReduceAction338: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction337(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction337;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction337_parser___ReduceAction337___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16026;
+  fra.me.meth = LOCATE_NEW_ReduceAction337_parser___ReduceAction337___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction337();
+  /* ./parser//parser.nit:16026 */
+  INIT_ATTRIBUTES__ReduceAction337(fra.me.REG[0]);
+  parser___ReduceAction337___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction337(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction338[50] = {
+  {(bigint) 3211 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction338 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction338 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3211 /* 4: ReduceAction338 < ReduceAction338: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60894,14 +126490,12 @@ const classtable_elt_t VFT_ReduceAction338[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction338 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction338 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60909,7 +126503,6 @@ const classtable_elt_t VFT_ReduceAction338[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60917,33 +126510,81 @@ const classtable_elt_t VFT_ReduceAction338[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction338 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction338 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction338___action},
-  {(bigint) 2 /* 42: ReduceAction338 < ReduceAction338: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction338 < ReduceAction338: superclass init_table position */},
   {(bigint) parser___ReduceAction338___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction338(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction338(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction338;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction338(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction338;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction338___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction338();
-  parser___ReduceAction338___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction339[44] = {
-  {(bigint) 1435 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction339 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction339 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1435 /* 3: ReduceAction339 < ReduceAction339: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction338(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction338;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction338_parser___ReduceAction338___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16082;
+  fra.me.meth = LOCATE_NEW_ReduceAction338_parser___ReduceAction338___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction338();
+  /* ./parser//parser.nit:16082 */
+  INIT_ATTRIBUTES__ReduceAction338(fra.me.REG[0]);
+  parser___ReduceAction338___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction338(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction339[50] = {
+  {(bigint) 3207 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction339 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction339 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3207 /* 4: ReduceAction339 < ReduceAction339: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60953,14 +126594,12 @@ const classtable_elt_t VFT_ReduceAction339[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction339 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction339 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -60968,7 +126607,6 @@ const classtable_elt_t VFT_ReduceAction339[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -60976,33 +126614,81 @@ const classtable_elt_t VFT_ReduceAction339[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction339 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction339 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction339___action},
-  {(bigint) 2 /* 42: ReduceAction339 < ReduceAction339: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction339 < ReduceAction339: superclass init_table position */},
   {(bigint) parser___ReduceAction339___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction339(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction339(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction339;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction339(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction339;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction339___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction339();
-  parser___ReduceAction339___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction340[44] = {
-  {(bigint) 1427 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction340 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction340 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1427 /* 3: ReduceAction340 < ReduceAction340: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction339(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction339;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction339_parser___ReduceAction339___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16128;
+  fra.me.meth = LOCATE_NEW_ReduceAction339_parser___ReduceAction339___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction339();
+  /* ./parser//parser.nit:16128 */
+  INIT_ATTRIBUTES__ReduceAction339(fra.me.REG[0]);
+  parser___ReduceAction339___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction339(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction340[50] = {
+  {(bigint) 3199 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction340 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction340 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3199 /* 4: ReduceAction340 < ReduceAction340: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61012,14 +126698,12 @@ const classtable_elt_t VFT_ReduceAction340[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction340 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction340 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61027,7 +126711,6 @@ const classtable_elt_t VFT_ReduceAction340[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61035,33 +126718,81 @@ const classtable_elt_t VFT_ReduceAction340[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction340 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction340 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction340___action},
-  {(bigint) 2 /* 42: ReduceAction340 < ReduceAction340: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction340 < ReduceAction340: superclass init_table position */},
   {(bigint) parser___ReduceAction340___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction340(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction340(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction340;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction340(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction340;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction340___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction340();
-  parser___ReduceAction340___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction341[44] = {
-  {(bigint) 1423 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction341 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction341 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1423 /* 3: ReduceAction341 < ReduceAction341: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction340(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction340;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction340_parser___ReduceAction340___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16184;
+  fra.me.meth = LOCATE_NEW_ReduceAction340_parser___ReduceAction340___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction340();
+  /* ./parser//parser.nit:16184 */
+  INIT_ATTRIBUTES__ReduceAction340(fra.me.REG[0]);
+  parser___ReduceAction340___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction340(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction341[50] = {
+  {(bigint) 3195 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction341 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction341 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3195 /* 4: ReduceAction341 < ReduceAction341: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61071,14 +126802,12 @@ const classtable_elt_t VFT_ReduceAction341[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction341 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction341 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61086,7 +126815,6 @@ const classtable_elt_t VFT_ReduceAction341[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61094,33 +126822,81 @@ const classtable_elt_t VFT_ReduceAction341[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction341 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction341 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction341___action},
-  {(bigint) 2 /* 42: ReduceAction341 < ReduceAction341: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction341 < ReduceAction341: superclass init_table position */},
   {(bigint) parser___ReduceAction341___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction341(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction341(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction341;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction341(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction341;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction341___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction341();
-  parser___ReduceAction341___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction342[44] = {
-  {(bigint) 1419 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction342 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction342 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1419 /* 3: ReduceAction342 < ReduceAction342: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction341(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction341;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction341_parser___ReduceAction341___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16243;
+  fra.me.meth = LOCATE_NEW_ReduceAction341_parser___ReduceAction341___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction341();
+  /* ./parser//parser.nit:16243 */
+  INIT_ATTRIBUTES__ReduceAction341(fra.me.REG[0]);
+  parser___ReduceAction341___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction341(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction342[50] = {
+  {(bigint) 3191 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction342 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction342 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3191 /* 4: ReduceAction342 < ReduceAction342: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61130,14 +126906,12 @@ const classtable_elt_t VFT_ReduceAction342[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction342 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction342 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61145,7 +126919,6 @@ const classtable_elt_t VFT_ReduceAction342[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61153,33 +126926,81 @@ const classtable_elt_t VFT_ReduceAction342[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction342 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction342 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction342___action},
-  {(bigint) 2 /* 42: ReduceAction342 < ReduceAction342: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction342 < ReduceAction342: superclass init_table position */},
   {(bigint) parser___ReduceAction342___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction342(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction342(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction342;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction342(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction342;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction342___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction342();
-  parser___ReduceAction342___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction343[44] = {
-  {(bigint) 1415 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction343 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction343 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1415 /* 3: ReduceAction343 < ReduceAction343: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction342(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction342;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction342_parser___ReduceAction342___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16292;
+  fra.me.meth = LOCATE_NEW_ReduceAction342_parser___ReduceAction342___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction342();
+  /* ./parser//parser.nit:16292 */
+  INIT_ATTRIBUTES__ReduceAction342(fra.me.REG[0]);
+  parser___ReduceAction342___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction342(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction343[50] = {
+  {(bigint) 3187 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction343 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction343 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3187 /* 4: ReduceAction343 < ReduceAction343: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61189,14 +127010,12 @@ const classtable_elt_t VFT_ReduceAction343[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction343 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction343 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61204,7 +127023,6 @@ const classtable_elt_t VFT_ReduceAction343[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61212,33 +127030,81 @@ const classtable_elt_t VFT_ReduceAction343[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction343 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction343 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction343___action},
-  {(bigint) 2 /* 42: ReduceAction343 < ReduceAction343: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction343 < ReduceAction343: superclass init_table position */},
   {(bigint) parser___ReduceAction343___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction343(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction343(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction343;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction343(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction343;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction343___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction343();
-  parser___ReduceAction343___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction344[44] = {
-  {(bigint) 1411 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction344 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction344 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1411 /* 3: ReduceAction344 < ReduceAction344: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction343(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction343;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction343_parser___ReduceAction343___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16338;
+  fra.me.meth = LOCATE_NEW_ReduceAction343_parser___ReduceAction343___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction343();
+  /* ./parser//parser.nit:16338 */
+  INIT_ATTRIBUTES__ReduceAction343(fra.me.REG[0]);
+  parser___ReduceAction343___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction343(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction344[50] = {
+  {(bigint) 3183 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction344 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction344 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3183 /* 4: ReduceAction344 < ReduceAction344: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61248,14 +127114,12 @@ const classtable_elt_t VFT_ReduceAction344[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction344 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction344 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61263,7 +127127,6 @@ const classtable_elt_t VFT_ReduceAction344[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61271,33 +127134,81 @@ const classtable_elt_t VFT_ReduceAction344[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction344 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction344 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction344___action},
-  {(bigint) 2 /* 42: ReduceAction344 < ReduceAction344: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction344 < ReduceAction344: superclass init_table position */},
   {(bigint) parser___ReduceAction344___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction344(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction344(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction344;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction344(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction344;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction344___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction344();
-  parser___ReduceAction344___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction345[44] = {
-  {(bigint) 1407 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction345 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction345 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1407 /* 3: ReduceAction345 < ReduceAction345: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction344(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction344;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction344_parser___ReduceAction344___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16387;
+  fra.me.meth = LOCATE_NEW_ReduceAction344_parser___ReduceAction344___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction344();
+  /* ./parser//parser.nit:16387 */
+  INIT_ATTRIBUTES__ReduceAction344(fra.me.REG[0]);
+  parser___ReduceAction344___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction344(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction345[50] = {
+  {(bigint) 3179 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction345 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction345 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3179 /* 4: ReduceAction345 < ReduceAction345: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61307,14 +127218,12 @@ const classtable_elt_t VFT_ReduceAction345[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction345 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction345 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61322,7 +127231,6 @@ const classtable_elt_t VFT_ReduceAction345[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61330,33 +127238,81 @@ const classtable_elt_t VFT_ReduceAction345[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction345 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction345 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction345___action},
-  {(bigint) 2 /* 42: ReduceAction345 < ReduceAction345: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction345 < ReduceAction345: superclass init_table position */},
   {(bigint) parser___ReduceAction345___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction345(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction345(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction345;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction345(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction345;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction345___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction345();
-  parser___ReduceAction345___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction346[44] = {
-  {(bigint) 1403 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction346 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction346 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1403 /* 3: ReduceAction346 < ReduceAction346: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction345(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction345;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction345_parser___ReduceAction345___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16426;
+  fra.me.meth = LOCATE_NEW_ReduceAction345_parser___ReduceAction345___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction345();
+  /* ./parser//parser.nit:16426 */
+  INIT_ATTRIBUTES__ReduceAction345(fra.me.REG[0]);
+  parser___ReduceAction345___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction345(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction346[50] = {
+  {(bigint) 3175 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction346 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction346 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3175 /* 4: ReduceAction346 < ReduceAction346: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61366,14 +127322,12 @@ const classtable_elt_t VFT_ReduceAction346[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction346 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction346 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61381,7 +127335,6 @@ const classtable_elt_t VFT_ReduceAction346[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61389,33 +127342,81 @@ const classtable_elt_t VFT_ReduceAction346[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction346 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction346 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction346___action},
-  {(bigint) 2 /* 42: ReduceAction346 < ReduceAction346: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction346 < ReduceAction346: superclass init_table position */},
   {(bigint) parser___ReduceAction346___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction346(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction346(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction346;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction346(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction346;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction346___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction346();
-  parser___ReduceAction346___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction347[44] = {
-  {(bigint) 1399 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction347 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction347 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1399 /* 3: ReduceAction347 < ReduceAction347: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction346(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction346;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction346_parser___ReduceAction346___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16478;
+  fra.me.meth = LOCATE_NEW_ReduceAction346_parser___ReduceAction346___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction346();
+  /* ./parser//parser.nit:16478 */
+  INIT_ATTRIBUTES__ReduceAction346(fra.me.REG[0]);
+  parser___ReduceAction346___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction346(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction347[50] = {
+  {(bigint) 3171 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction347 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction347 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3171 /* 4: ReduceAction347 < ReduceAction347: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61425,14 +127426,12 @@ const classtable_elt_t VFT_ReduceAction347[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction347 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction347 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61440,7 +127439,6 @@ const classtable_elt_t VFT_ReduceAction347[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61448,33 +127446,81 @@ const classtable_elt_t VFT_ReduceAction347[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction347 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction347 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction347___action},
-  {(bigint) 2 /* 42: ReduceAction347 < ReduceAction347: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction347 < ReduceAction347: superclass init_table position */},
   {(bigint) parser___ReduceAction347___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction347(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction347(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction347;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction347(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction347;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction347___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction347();
-  parser___ReduceAction347___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction348[44] = {
-  {(bigint) 1395 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction348 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction348 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1395 /* 3: ReduceAction348 < ReduceAction348: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction347(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction347;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction347_parser___ReduceAction347___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16533;
+  fra.me.meth = LOCATE_NEW_ReduceAction347_parser___ReduceAction347___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction347();
+  /* ./parser//parser.nit:16533 */
+  INIT_ATTRIBUTES__ReduceAction347(fra.me.REG[0]);
+  parser___ReduceAction347___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction347(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction348[50] = {
+  {(bigint) 3167 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction348 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction348 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3167 /* 4: ReduceAction348 < ReduceAction348: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61484,14 +127530,12 @@ const classtable_elt_t VFT_ReduceAction348[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction348 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction348 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61499,7 +127543,6 @@ const classtable_elt_t VFT_ReduceAction348[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61507,33 +127550,81 @@ const classtable_elt_t VFT_ReduceAction348[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction348 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction348 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction348___action},
-  {(bigint) 2 /* 42: ReduceAction348 < ReduceAction348: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction348 < ReduceAction348: superclass init_table position */},
   {(bigint) parser___ReduceAction348___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction348(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction348(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction348;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction348(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction348;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction348___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction348();
-  parser___ReduceAction348___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction349[44] = {
-  {(bigint) 1391 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction349 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction349 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1391 /* 3: ReduceAction349 < ReduceAction349: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction348(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction348;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction348_parser___ReduceAction348___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16578;
+  fra.me.meth = LOCATE_NEW_ReduceAction348_parser___ReduceAction348___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction348();
+  /* ./parser//parser.nit:16578 */
+  INIT_ATTRIBUTES__ReduceAction348(fra.me.REG[0]);
+  parser___ReduceAction348___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction348(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction349[50] = {
+  {(bigint) 3163 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction349 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction349 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3163 /* 4: ReduceAction349 < ReduceAction349: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61543,14 +127634,12 @@ const classtable_elt_t VFT_ReduceAction349[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction349 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction349 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61558,7 +127647,6 @@ const classtable_elt_t VFT_ReduceAction349[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61566,33 +127654,81 @@ const classtable_elt_t VFT_ReduceAction349[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction349 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction349 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction349___action},
-  {(bigint) 2 /* 42: ReduceAction349 < ReduceAction349: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction349 < ReduceAction349: superclass init_table position */},
   {(bigint) parser___ReduceAction349___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction349(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction349(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction349;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction349(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction349;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction349___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction349();
-  parser___ReduceAction349___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction350[44] = {
-  {(bigint) 1383 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction350 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction350 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1383 /* 3: ReduceAction350 < ReduceAction350: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction349(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction349;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction349_parser___ReduceAction349___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16633;
+  fra.me.meth = LOCATE_NEW_ReduceAction349_parser___ReduceAction349___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction349();
+  /* ./parser//parser.nit:16633 */
+  INIT_ATTRIBUTES__ReduceAction349(fra.me.REG[0]);
+  parser___ReduceAction349___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction349(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction350[50] = {
+  {(bigint) 3155 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction350 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction350 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3155 /* 4: ReduceAction350 < ReduceAction350: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61602,14 +127738,12 @@ const classtable_elt_t VFT_ReduceAction350[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction350 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction350 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61617,7 +127751,6 @@ const classtable_elt_t VFT_ReduceAction350[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61625,33 +127758,81 @@ const classtable_elt_t VFT_ReduceAction350[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction350 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction350 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction350___action},
-  {(bigint) 2 /* 42: ReduceAction350 < ReduceAction350: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction350 < ReduceAction350: superclass init_table position */},
   {(bigint) parser___ReduceAction350___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction350(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction350(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction350;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction350(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction350;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction350___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction350();
-  parser___ReduceAction350___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction351[44] = {
-  {(bigint) 1379 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction351 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction351 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1379 /* 3: ReduceAction351 < ReduceAction351: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction350(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction350;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction350_parser___ReduceAction350___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16691;
+  fra.me.meth = LOCATE_NEW_ReduceAction350_parser___ReduceAction350___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction350();
+  /* ./parser//parser.nit:16691 */
+  INIT_ATTRIBUTES__ReduceAction350(fra.me.REG[0]);
+  parser___ReduceAction350___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction350(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction351[50] = {
+  {(bigint) 3151 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction351 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction351 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3151 /* 4: ReduceAction351 < ReduceAction351: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61661,14 +127842,12 @@ const classtable_elt_t VFT_ReduceAction351[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction351 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction351 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61676,7 +127855,6 @@ const classtable_elt_t VFT_ReduceAction351[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61684,33 +127862,81 @@ const classtable_elt_t VFT_ReduceAction351[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction351 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction351 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction351___action},
-  {(bigint) 2 /* 42: ReduceAction351 < ReduceAction351: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction351 < ReduceAction351: superclass init_table position */},
   {(bigint) parser___ReduceAction351___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction351(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction351(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction351;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction351(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction351;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction351___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction351();
-  parser___ReduceAction351___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction352[44] = {
-  {(bigint) 1375 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction352 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction352 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1375 /* 3: ReduceAction352 < ReduceAction352: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction351(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction351;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction351_parser___ReduceAction351___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16739;
+  fra.me.meth = LOCATE_NEW_ReduceAction351_parser___ReduceAction351___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction351();
+  /* ./parser//parser.nit:16739 */
+  INIT_ATTRIBUTES__ReduceAction351(fra.me.REG[0]);
+  parser___ReduceAction351___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction351(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction352[50] = {
+  {(bigint) 3147 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction352 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction352 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3147 /* 4: ReduceAction352 < ReduceAction352: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61720,14 +127946,12 @@ const classtable_elt_t VFT_ReduceAction352[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction352 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction352 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61735,7 +127959,6 @@ const classtable_elt_t VFT_ReduceAction352[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61743,33 +127966,81 @@ const classtable_elt_t VFT_ReduceAction352[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction352 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction352 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction352___action},
-  {(bigint) 2 /* 42: ReduceAction352 < ReduceAction352: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction352 < ReduceAction352: superclass init_table position */},
   {(bigint) parser___ReduceAction352___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction352(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction352(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction352;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction352(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction352;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction352___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction352();
-  parser___ReduceAction352___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction353[44] = {
-  {(bigint) 1371 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction353 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction353 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1371 /* 3: ReduceAction353 < ReduceAction353: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction352(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction352;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction352_parser___ReduceAction352___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16784;
+  fra.me.meth = LOCATE_NEW_ReduceAction352_parser___ReduceAction352___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction352();
+  /* ./parser//parser.nit:16784 */
+  INIT_ATTRIBUTES__ReduceAction352(fra.me.REG[0]);
+  parser___ReduceAction352___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction352(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction353[50] = {
+  {(bigint) 3143 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction353 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction353 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3143 /* 4: ReduceAction353 < ReduceAction353: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61779,14 +128050,12 @@ const classtable_elt_t VFT_ReduceAction353[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction353 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction353 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61794,7 +128063,6 @@ const classtable_elt_t VFT_ReduceAction353[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61802,33 +128070,81 @@ const classtable_elt_t VFT_ReduceAction353[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction353 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction353 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction353___action},
-  {(bigint) 2 /* 42: ReduceAction353 < ReduceAction353: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction353 < ReduceAction353: superclass init_table position */},
   {(bigint) parser___ReduceAction353___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction353(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction353(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction353;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction353(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction353;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction353___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction353();
-  parser___ReduceAction353___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction354[44] = {
-  {(bigint) 1367 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction354 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction354 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1367 /* 3: ReduceAction354 < ReduceAction354: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction353(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction353;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction353_parser___ReduceAction353___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16832;
+  fra.me.meth = LOCATE_NEW_ReduceAction353_parser___ReduceAction353___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction353();
+  /* ./parser//parser.nit:16832 */
+  INIT_ATTRIBUTES__ReduceAction353(fra.me.REG[0]);
+  parser___ReduceAction353___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction353(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction354[50] = {
+  {(bigint) 3139 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction354 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction354 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3139 /* 4: ReduceAction354 < ReduceAction354: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61838,14 +128154,12 @@ const classtable_elt_t VFT_ReduceAction354[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction354 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction354 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61853,7 +128167,6 @@ const classtable_elt_t VFT_ReduceAction354[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61861,33 +128174,81 @@ const classtable_elt_t VFT_ReduceAction354[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction354 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction354 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction354___action},
-  {(bigint) 2 /* 42: ReduceAction354 < ReduceAction354: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction354 < ReduceAction354: superclass init_table position */},
   {(bigint) parser___ReduceAction354___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction354(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction354(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction354;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction354(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction354;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction354___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction354();
-  parser___ReduceAction354___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction355[44] = {
-  {(bigint) 1363 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction355 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction355 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1363 /* 3: ReduceAction355 < ReduceAction355: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction354(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction354;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction354_parser___ReduceAction354___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16870;
+  fra.me.meth = LOCATE_NEW_ReduceAction354_parser___ReduceAction354___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction354();
+  /* ./parser//parser.nit:16870 */
+  INIT_ATTRIBUTES__ReduceAction354(fra.me.REG[0]);
+  parser___ReduceAction354___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction354(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction355[50] = {
+  {(bigint) 3135 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction355 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction355 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3135 /* 4: ReduceAction355 < ReduceAction355: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61897,14 +128258,12 @@ const classtable_elt_t VFT_ReduceAction355[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction355 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction355 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61912,7 +128271,6 @@ const classtable_elt_t VFT_ReduceAction355[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61920,33 +128278,81 @@ const classtable_elt_t VFT_ReduceAction355[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction355 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction355 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction355___action},
-  {(bigint) 2 /* 42: ReduceAction355 < ReduceAction355: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction355 < ReduceAction355: superclass init_table position */},
   {(bigint) parser___ReduceAction355___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction355(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction355(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction355;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction355(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction355;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction355___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction355();
-  parser___ReduceAction355___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction356[44] = {
-  {(bigint) 1359 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction356 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction356 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1359 /* 3: ReduceAction356 < ReduceAction356: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction355(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction355;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction355_parser___ReduceAction355___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16925;
+  fra.me.meth = LOCATE_NEW_ReduceAction355_parser___ReduceAction355___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction355();
+  /* ./parser//parser.nit:16925 */
+  INIT_ATTRIBUTES__ReduceAction355(fra.me.REG[0]);
+  parser___ReduceAction355___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction355(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction356[50] = {
+  {(bigint) 3131 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction356 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction356 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3131 /* 4: ReduceAction356 < ReduceAction356: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61956,14 +128362,12 @@ const classtable_elt_t VFT_ReduceAction356[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction356 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction356 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -61971,7 +128375,6 @@ const classtable_elt_t VFT_ReduceAction356[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -61979,33 +128382,81 @@ const classtable_elt_t VFT_ReduceAction356[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction356 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction356 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction356___action},
-  {(bigint) 2 /* 42: ReduceAction356 < ReduceAction356: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction356 < ReduceAction356: superclass init_table position */},
   {(bigint) parser___ReduceAction356___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction356(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction356(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction356;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction356(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction356;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction356___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction356();
-  parser___ReduceAction356___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction357[44] = {
-  {(bigint) 1355 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction357 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction357 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1355 /* 3: ReduceAction357 < ReduceAction357: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction356(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction356;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction356_parser___ReduceAction356___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 16983;
+  fra.me.meth = LOCATE_NEW_ReduceAction356_parser___ReduceAction356___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction356();
+  /* ./parser//parser.nit:16983 */
+  INIT_ATTRIBUTES__ReduceAction356(fra.me.REG[0]);
+  parser___ReduceAction356___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction356(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction357[50] = {
+  {(bigint) 3127 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction357 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction357 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3127 /* 4: ReduceAction357 < ReduceAction357: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62015,14 +128466,12 @@ const classtable_elt_t VFT_ReduceAction357[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction357 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction357 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62030,7 +128479,6 @@ const classtable_elt_t VFT_ReduceAction357[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62038,33 +128486,81 @@ const classtable_elt_t VFT_ReduceAction357[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction357 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction357 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction357___action},
-  {(bigint) 2 /* 42: ReduceAction357 < ReduceAction357: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction357 < ReduceAction357: superclass init_table position */},
   {(bigint) parser___ReduceAction357___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction357(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction357(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction357;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction357(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction357;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction357___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction357();
-  parser___ReduceAction357___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction358[44] = {
-  {(bigint) 1351 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction358 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction358 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1351 /* 3: ReduceAction358 < ReduceAction358: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction357(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction357;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction357_parser___ReduceAction357___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17031;
+  fra.me.meth = LOCATE_NEW_ReduceAction357_parser___ReduceAction357___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction357();
+  /* ./parser//parser.nit:17031 */
+  INIT_ATTRIBUTES__ReduceAction357(fra.me.REG[0]);
+  parser___ReduceAction357___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction357(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction358[50] = {
+  {(bigint) 3123 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction358 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction358 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3123 /* 4: ReduceAction358 < ReduceAction358: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62074,14 +128570,12 @@ const classtable_elt_t VFT_ReduceAction358[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction358 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction358 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62089,7 +128583,6 @@ const classtable_elt_t VFT_ReduceAction358[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62097,33 +128590,81 @@ const classtable_elt_t VFT_ReduceAction358[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction358 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction358 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction358___action},
-  {(bigint) 2 /* 42: ReduceAction358 < ReduceAction358: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction358 < ReduceAction358: superclass init_table position */},
   {(bigint) parser___ReduceAction358___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction358(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction358(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction358;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction358(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction358;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction358___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction358();
-  parser___ReduceAction358___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction359[44] = {
-  {(bigint) 1347 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction359 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction359 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1347 /* 3: ReduceAction359 < ReduceAction359: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction358(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction358;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction358_parser___ReduceAction358___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17089;
+  fra.me.meth = LOCATE_NEW_ReduceAction358_parser___ReduceAction358___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction358();
+  /* ./parser//parser.nit:17089 */
+  INIT_ATTRIBUTES__ReduceAction358(fra.me.REG[0]);
+  parser___ReduceAction358___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction358(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction359[50] = {
+  {(bigint) 3119 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction359 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction359 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3119 /* 4: ReduceAction359 < ReduceAction359: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62133,14 +128674,12 @@ const classtable_elt_t VFT_ReduceAction359[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction359 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction359 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62148,7 +128687,6 @@ const classtable_elt_t VFT_ReduceAction359[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62156,33 +128694,81 @@ const classtable_elt_t VFT_ReduceAction359[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction359 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction359 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction359___action},
-  {(bigint) 2 /* 42: ReduceAction359 < ReduceAction359: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction359 < ReduceAction359: superclass init_table position */},
   {(bigint) parser___ReduceAction359___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction359(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction359(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction359;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction359(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction359;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction359___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction359();
-  parser___ReduceAction359___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction360[44] = {
-  {(bigint) 1339 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction360 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction360 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1339 /* 3: ReduceAction360 < ReduceAction360: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction359(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction359;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction359_parser___ReduceAction359___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17150;
+  fra.me.meth = LOCATE_NEW_ReduceAction359_parser___ReduceAction359___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction359();
+  /* ./parser//parser.nit:17150 */
+  INIT_ATTRIBUTES__ReduceAction359(fra.me.REG[0]);
+  parser___ReduceAction359___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction359(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction360[50] = {
+  {(bigint) 3111 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction360 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction360 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3111 /* 4: ReduceAction360 < ReduceAction360: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62192,14 +128778,12 @@ const classtable_elt_t VFT_ReduceAction360[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction360 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction360 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62207,7 +128791,6 @@ const classtable_elt_t VFT_ReduceAction360[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62215,33 +128798,81 @@ const classtable_elt_t VFT_ReduceAction360[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction360 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction360 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction360___action},
-  {(bigint) 2 /* 42: ReduceAction360 < ReduceAction360: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction360 < ReduceAction360: superclass init_table position */},
   {(bigint) parser___ReduceAction360___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction360(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction360(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction360;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction360(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction360;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction360___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction360();
-  parser___ReduceAction360___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction361[44] = {
-  {(bigint) 1335 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction361 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction361 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1335 /* 3: ReduceAction361 < ReduceAction361: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction360(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction360;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction360_parser___ReduceAction360___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17201;
+  fra.me.meth = LOCATE_NEW_ReduceAction360_parser___ReduceAction360___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction360();
+  /* ./parser//parser.nit:17201 */
+  INIT_ATTRIBUTES__ReduceAction360(fra.me.REG[0]);
+  parser___ReduceAction360___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction360(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction361[50] = {
+  {(bigint) 3107 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction361 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction361 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3107 /* 4: ReduceAction361 < ReduceAction361: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62251,14 +128882,12 @@ const classtable_elt_t VFT_ReduceAction361[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction361 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction361 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62266,7 +128895,6 @@ const classtable_elt_t VFT_ReduceAction361[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62274,33 +128902,81 @@ const classtable_elt_t VFT_ReduceAction361[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction361 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction361 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction361___action},
-  {(bigint) 2 /* 42: ReduceAction361 < ReduceAction361: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction361 < ReduceAction361: superclass init_table position */},
   {(bigint) parser___ReduceAction361___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction361(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction361(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction361;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction361(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction361;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction361___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction361();
-  parser___ReduceAction361___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction362[44] = {
-  {(bigint) 1331 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction362 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction362 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1331 /* 3: ReduceAction362 < ReduceAction362: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction361(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction361;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction361_parser___ReduceAction361___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17249;
+  fra.me.meth = LOCATE_NEW_ReduceAction361_parser___ReduceAction361___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction361();
+  /* ./parser//parser.nit:17249 */
+  INIT_ATTRIBUTES__ReduceAction361(fra.me.REG[0]);
+  parser___ReduceAction361___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction361(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction362[50] = {
+  {(bigint) 3103 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction362 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction362 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3103 /* 4: ReduceAction362 < ReduceAction362: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62310,14 +128986,12 @@ const classtable_elt_t VFT_ReduceAction362[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction362 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction362 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62325,7 +128999,6 @@ const classtable_elt_t VFT_ReduceAction362[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62333,33 +129006,81 @@ const classtable_elt_t VFT_ReduceAction362[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction362 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction362 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction362___action},
-  {(bigint) 2 /* 42: ReduceAction362 < ReduceAction362: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction362 < ReduceAction362: superclass init_table position */},
   {(bigint) parser___ReduceAction362___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction362(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction362(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction362;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction362(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction362;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction362___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction362();
-  parser___ReduceAction362___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction363[44] = {
-  {(bigint) 1327 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction363 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction363 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1327 /* 3: ReduceAction363 < ReduceAction363: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction362(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction362;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction362_parser___ReduceAction362___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17300;
+  fra.me.meth = LOCATE_NEW_ReduceAction362_parser___ReduceAction362___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction362();
+  /* ./parser//parser.nit:17300 */
+  INIT_ATTRIBUTES__ReduceAction362(fra.me.REG[0]);
+  parser___ReduceAction362___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction362(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction363[50] = {
+  {(bigint) 3099 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction363 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction363 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3099 /* 4: ReduceAction363 < ReduceAction363: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62369,14 +129090,12 @@ const classtable_elt_t VFT_ReduceAction363[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction363 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction363 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62384,7 +129103,6 @@ const classtable_elt_t VFT_ReduceAction363[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62392,33 +129110,81 @@ const classtable_elt_t VFT_ReduceAction363[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction363 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction363 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction363___action},
-  {(bigint) 2 /* 42: ReduceAction363 < ReduceAction363: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction363 < ReduceAction363: superclass init_table position */},
   {(bigint) parser___ReduceAction363___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction363(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction363(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction363;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction363(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction363;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction363___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction363();
-  parser___ReduceAction363___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction364[44] = {
-  {(bigint) 1323 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction364 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction364 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1323 /* 3: ReduceAction364 < ReduceAction364: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction363(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction363;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction363_parser___ReduceAction363___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17341;
+  fra.me.meth = LOCATE_NEW_ReduceAction363_parser___ReduceAction363___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction363();
+  /* ./parser//parser.nit:17341 */
+  INIT_ATTRIBUTES__ReduceAction363(fra.me.REG[0]);
+  parser___ReduceAction363___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction363(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction364[50] = {
+  {(bigint) 3095 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction364 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction364 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3095 /* 4: ReduceAction364 < ReduceAction364: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62428,14 +129194,12 @@ const classtable_elt_t VFT_ReduceAction364[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction364 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction364 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62443,7 +129207,6 @@ const classtable_elt_t VFT_ReduceAction364[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62451,33 +129214,81 @@ const classtable_elt_t VFT_ReduceAction364[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction364 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction364 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction364___action},
-  {(bigint) 2 /* 42: ReduceAction364 < ReduceAction364: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction364 < ReduceAction364: superclass init_table position */},
   {(bigint) parser___ReduceAction364___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction364(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction364(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction364;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction364(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction364;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction364___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction364();
-  parser___ReduceAction364___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction365[44] = {
-  {(bigint) 1319 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction365 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction365 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1319 /* 3: ReduceAction365 < ReduceAction365: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction364(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction364;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction364_parser___ReduceAction364___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17396;
+  fra.me.meth = LOCATE_NEW_ReduceAction364_parser___ReduceAction364___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction364();
+  /* ./parser//parser.nit:17396 */
+  INIT_ATTRIBUTES__ReduceAction364(fra.me.REG[0]);
+  parser___ReduceAction364___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction364(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction365[50] = {
+  {(bigint) 3091 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction365 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction365 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3091 /* 4: ReduceAction365 < ReduceAction365: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62487,14 +129298,12 @@ const classtable_elt_t VFT_ReduceAction365[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction365 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction365 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62502,7 +129311,6 @@ const classtable_elt_t VFT_ReduceAction365[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62510,33 +129318,81 @@ const classtable_elt_t VFT_ReduceAction365[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction365 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction365 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction365___action},
-  {(bigint) 2 /* 42: ReduceAction365 < ReduceAction365: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction365 < ReduceAction365: superclass init_table position */},
   {(bigint) parser___ReduceAction365___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction365(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction365(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction365;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction365(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction365;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction365___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction365();
-  parser___ReduceAction365___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction366[44] = {
-  {(bigint) 1315 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction366 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction366 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1315 /* 3: ReduceAction366 < ReduceAction366: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction365(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction365;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction365_parser___ReduceAction365___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17454;
+  fra.me.meth = LOCATE_NEW_ReduceAction365_parser___ReduceAction365___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction365();
+  /* ./parser//parser.nit:17454 */
+  INIT_ATTRIBUTES__ReduceAction365(fra.me.REG[0]);
+  parser___ReduceAction365___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction365(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction366[50] = {
+  {(bigint) 3087 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction366 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction366 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3087 /* 4: ReduceAction366 < ReduceAction366: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62546,14 +129402,12 @@ const classtable_elt_t VFT_ReduceAction366[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction366 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction366 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62561,7 +129415,6 @@ const classtable_elt_t VFT_ReduceAction366[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62569,33 +129422,81 @@ const classtable_elt_t VFT_ReduceAction366[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction366 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction366 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction366___action},
-  {(bigint) 2 /* 42: ReduceAction366 < ReduceAction366: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction366 < ReduceAction366: superclass init_table position */},
   {(bigint) parser___ReduceAction366___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction366(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction366(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction366;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction366(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction366;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction366___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction366();
-  parser___ReduceAction366___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction367[44] = {
-  {(bigint) 1311 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction367 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction367 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1311 /* 3: ReduceAction367 < ReduceAction367: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction366(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction366;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction366_parser___ReduceAction366___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17502;
+  fra.me.meth = LOCATE_NEW_ReduceAction366_parser___ReduceAction366___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction366();
+  /* ./parser//parser.nit:17502 */
+  INIT_ATTRIBUTES__ReduceAction366(fra.me.REG[0]);
+  parser___ReduceAction366___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction366(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction367[50] = {
+  {(bigint) 3083 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction367 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction367 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3083 /* 4: ReduceAction367 < ReduceAction367: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62605,14 +129506,12 @@ const classtable_elt_t VFT_ReduceAction367[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction367 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction367 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62620,7 +129519,6 @@ const classtable_elt_t VFT_ReduceAction367[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62628,33 +129526,81 @@ const classtable_elt_t VFT_ReduceAction367[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction367 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction367 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction367___action},
-  {(bigint) 2 /* 42: ReduceAction367 < ReduceAction367: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction367 < ReduceAction367: superclass init_table position */},
   {(bigint) parser___ReduceAction367___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction367(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction367(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction367;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction367(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction367;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction367___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction367();
-  parser___ReduceAction367___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction368[44] = {
-  {(bigint) 1307 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction368 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction368 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1307 /* 3: ReduceAction368 < ReduceAction368: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction367(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction367;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction367_parser___ReduceAction367___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17560;
+  fra.me.meth = LOCATE_NEW_ReduceAction367_parser___ReduceAction367___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction367();
+  /* ./parser//parser.nit:17560 */
+  INIT_ATTRIBUTES__ReduceAction367(fra.me.REG[0]);
+  parser___ReduceAction367___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction367(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction368[50] = {
+  {(bigint) 3079 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction368 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction368 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3079 /* 4: ReduceAction368 < ReduceAction368: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62664,14 +129610,12 @@ const classtable_elt_t VFT_ReduceAction368[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction368 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction368 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62679,7 +129623,6 @@ const classtable_elt_t VFT_ReduceAction368[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62687,33 +129630,81 @@ const classtable_elt_t VFT_ReduceAction368[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction368 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction368 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction368___action},
-  {(bigint) 2 /* 42: ReduceAction368 < ReduceAction368: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction368 < ReduceAction368: superclass init_table position */},
   {(bigint) parser___ReduceAction368___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction368(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction368(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction368;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction368(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction368;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction368___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction368();
-  parser___ReduceAction368___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction369[44] = {
-  {(bigint) 1303 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction369 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction369 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1303 /* 3: ReduceAction369 < ReduceAction369: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction368(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction368;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction368_parser___ReduceAction368___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17621;
+  fra.me.meth = LOCATE_NEW_ReduceAction368_parser___ReduceAction368___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction368();
+  /* ./parser//parser.nit:17621 */
+  INIT_ATTRIBUTES__ReduceAction368(fra.me.REG[0]);
+  parser___ReduceAction368___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction368(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction369[50] = {
+  {(bigint) 3075 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction369 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction369 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3075 /* 4: ReduceAction369 < ReduceAction369: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62723,14 +129714,12 @@ const classtable_elt_t VFT_ReduceAction369[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction369 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction369 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62738,7 +129727,6 @@ const classtable_elt_t VFT_ReduceAction369[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62746,33 +129734,81 @@ const classtable_elt_t VFT_ReduceAction369[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction369 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction369 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction369___action},
-  {(bigint) 2 /* 42: ReduceAction369 < ReduceAction369: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction369 < ReduceAction369: superclass init_table position */},
   {(bigint) parser___ReduceAction369___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction369(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction369(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction369;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction369(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction369;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction369___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction369();
-  parser___ReduceAction369___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction370[44] = {
-  {(bigint) 1295 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction370 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction370 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1295 /* 3: ReduceAction370 < ReduceAction370: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction369(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction369;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction369_parser___ReduceAction369___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17672;
+  fra.me.meth = LOCATE_NEW_ReduceAction369_parser___ReduceAction369___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction369();
+  /* ./parser//parser.nit:17672 */
+  INIT_ATTRIBUTES__ReduceAction369(fra.me.REG[0]);
+  parser___ReduceAction369___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction369(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction370[50] = {
+  {(bigint) 3067 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction370 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction370 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3067 /* 4: ReduceAction370 < ReduceAction370: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62782,14 +129818,12 @@ const classtable_elt_t VFT_ReduceAction370[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction370 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction370 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62797,7 +129831,6 @@ const classtable_elt_t VFT_ReduceAction370[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62805,33 +129838,81 @@ const classtable_elt_t VFT_ReduceAction370[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction370 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction370 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction370___action},
-  {(bigint) 2 /* 42: ReduceAction370 < ReduceAction370: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction370 < ReduceAction370: superclass init_table position */},
   {(bigint) parser___ReduceAction370___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction370(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction370(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction370;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction370(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction370;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction370___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction370();
-  parser___ReduceAction370___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction371[44] = {
-  {(bigint) 1291 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction371 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction371 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1291 /* 3: ReduceAction371 < ReduceAction371: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction370(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction370;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction370_parser___ReduceAction370___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17720;
+  fra.me.meth = LOCATE_NEW_ReduceAction370_parser___ReduceAction370___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction370();
+  /* ./parser//parser.nit:17720 */
+  INIT_ATTRIBUTES__ReduceAction370(fra.me.REG[0]);
+  parser___ReduceAction370___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction370(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction371[50] = {
+  {(bigint) 3063 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction371 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction371 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3063 /* 4: ReduceAction371 < ReduceAction371: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62841,14 +129922,12 @@ const classtable_elt_t VFT_ReduceAction371[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction371 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction371 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62856,7 +129935,6 @@ const classtable_elt_t VFT_ReduceAction371[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62864,33 +129942,81 @@ const classtable_elt_t VFT_ReduceAction371[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction371 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction371 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction371___action},
-  {(bigint) 2 /* 42: ReduceAction371 < ReduceAction371: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction371 < ReduceAction371: superclass init_table position */},
   {(bigint) parser___ReduceAction371___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction371(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction371(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction371;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction371(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction371;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction371___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction371();
-  parser___ReduceAction371___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction372[44] = {
-  {(bigint) 1287 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction372 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction372 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1287 /* 3: ReduceAction372 < ReduceAction372: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction371(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction371;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction371_parser___ReduceAction371___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17771;
+  fra.me.meth = LOCATE_NEW_ReduceAction371_parser___ReduceAction371___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction371();
+  /* ./parser//parser.nit:17771 */
+  INIT_ATTRIBUTES__ReduceAction371(fra.me.REG[0]);
+  parser___ReduceAction371___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction371(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction372[50] = {
+  {(bigint) 3059 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction372 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction372 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3059 /* 4: ReduceAction372 < ReduceAction372: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62900,14 +130026,12 @@ const classtable_elt_t VFT_ReduceAction372[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction372 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction372 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62915,7 +130039,6 @@ const classtable_elt_t VFT_ReduceAction372[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62923,33 +130046,81 @@ const classtable_elt_t VFT_ReduceAction372[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction372 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction372 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction372___action},
-  {(bigint) 2 /* 42: ReduceAction372 < ReduceAction372: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction372 < ReduceAction372: superclass init_table position */},
   {(bigint) parser___ReduceAction372___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction372(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction372(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction372;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction372(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction372;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction372___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction372();
-  parser___ReduceAction372___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction373[44] = {
-  {(bigint) 1283 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction373 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction373 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1283 /* 3: ReduceAction373 < ReduceAction373: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction372(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction372;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction372_parser___ReduceAction372___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17812;
+  fra.me.meth = LOCATE_NEW_ReduceAction372_parser___ReduceAction372___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction372();
+  /* ./parser//parser.nit:17812 */
+  INIT_ATTRIBUTES__ReduceAction372(fra.me.REG[0]);
+  parser___ReduceAction372___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction372(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction373[50] = {
+  {(bigint) 3055 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction373 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction373 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3055 /* 4: ReduceAction373 < ReduceAction373: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62959,14 +130130,12 @@ const classtable_elt_t VFT_ReduceAction373[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction373 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction373 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -62974,7 +130143,6 @@ const classtable_elt_t VFT_ReduceAction373[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -62982,33 +130150,81 @@ const classtable_elt_t VFT_ReduceAction373[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction373 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction373 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction373___action},
-  {(bigint) 2 /* 42: ReduceAction373 < ReduceAction373: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction373 < ReduceAction373: superclass init_table position */},
   {(bigint) parser___ReduceAction373___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction373(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction373(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction373;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction373(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction373;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction373___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction373();
-  parser___ReduceAction373___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction374[44] = {
-  {(bigint) 1279 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction374 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction374 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1279 /* 3: ReduceAction374 < ReduceAction374: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction373(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction373;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction373_parser___ReduceAction373___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17870;
+  fra.me.meth = LOCATE_NEW_ReduceAction373_parser___ReduceAction373___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction373();
+  /* ./parser//parser.nit:17870 */
+  INIT_ATTRIBUTES__ReduceAction373(fra.me.REG[0]);
+  parser___ReduceAction373___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction373(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction374[50] = {
+  {(bigint) 3051 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction374 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction374 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3051 /* 4: ReduceAction374 < ReduceAction374: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63018,14 +130234,12 @@ const classtable_elt_t VFT_ReduceAction374[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction374 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction374 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63033,7 +130247,6 @@ const classtable_elt_t VFT_ReduceAction374[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63041,33 +130254,81 @@ const classtable_elt_t VFT_ReduceAction374[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction374 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction374 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction374___action},
-  {(bigint) 2 /* 42: ReduceAction374 < ReduceAction374: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction374 < ReduceAction374: superclass init_table position */},
   {(bigint) parser___ReduceAction374___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction374(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction374(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction374;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction374(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction374;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction374___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction374();
-  parser___ReduceAction374___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction375[44] = {
-  {(bigint) 1275 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction375 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction375 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1275 /* 3: ReduceAction375 < ReduceAction375: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction374(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction374;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction374_parser___ReduceAction374___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17931;
+  fra.me.meth = LOCATE_NEW_ReduceAction374_parser___ReduceAction374___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction374();
+  /* ./parser//parser.nit:17931 */
+  INIT_ATTRIBUTES__ReduceAction374(fra.me.REG[0]);
+  parser___ReduceAction374___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction374(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction375[50] = {
+  {(bigint) 3047 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction375 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction375 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3047 /* 4: ReduceAction375 < ReduceAction375: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63077,14 +130338,12 @@ const classtable_elt_t VFT_ReduceAction375[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction375 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction375 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63092,7 +130351,6 @@ const classtable_elt_t VFT_ReduceAction375[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63100,33 +130358,81 @@ const classtable_elt_t VFT_ReduceAction375[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction375 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction375 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction375___action},
-  {(bigint) 2 /* 42: ReduceAction375 < ReduceAction375: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction375 < ReduceAction375: superclass init_table position */},
   {(bigint) parser___ReduceAction375___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction375(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction375(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction375;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction375(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction375;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction375___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction375();
-  parser___ReduceAction375___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction376[44] = {
-  {(bigint) 1271 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction376 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction376 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1271 /* 3: ReduceAction376 < ReduceAction376: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction375(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction375;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction375_parser___ReduceAction375___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 17982;
+  fra.me.meth = LOCATE_NEW_ReduceAction375_parser___ReduceAction375___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction375();
+  /* ./parser//parser.nit:17982 */
+  INIT_ATTRIBUTES__ReduceAction375(fra.me.REG[0]);
+  parser___ReduceAction375___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction375(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction376[50] = {
+  {(bigint) 3043 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction376 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction376 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3043 /* 4: ReduceAction376 < ReduceAction376: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63136,14 +130442,12 @@ const classtable_elt_t VFT_ReduceAction376[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction376 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction376 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63151,7 +130455,6 @@ const classtable_elt_t VFT_ReduceAction376[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63159,33 +130462,81 @@ const classtable_elt_t VFT_ReduceAction376[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction376 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction376 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction376___action},
-  {(bigint) 2 /* 42: ReduceAction376 < ReduceAction376: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction376 < ReduceAction376: superclass init_table position */},
   {(bigint) parser___ReduceAction376___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction376(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction376(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction376;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction376(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction376;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction376___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction376();
-  parser___ReduceAction376___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction377[44] = {
-  {(bigint) 1267 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction377 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction377 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1267 /* 3: ReduceAction377 < ReduceAction377: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction376(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction376;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction376_parser___ReduceAction376___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18043;
+  fra.me.meth = LOCATE_NEW_ReduceAction376_parser___ReduceAction376___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction376();
+  /* ./parser//parser.nit:18043 */
+  INIT_ATTRIBUTES__ReduceAction376(fra.me.REG[0]);
+  parser___ReduceAction376___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction376(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction377[50] = {
+  {(bigint) 3039 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction377 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction377 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3039 /* 4: ReduceAction377 < ReduceAction377: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63195,14 +130546,12 @@ const classtable_elt_t VFT_ReduceAction377[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction377 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction377 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63210,7 +130559,6 @@ const classtable_elt_t VFT_ReduceAction377[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63218,33 +130566,81 @@ const classtable_elt_t VFT_ReduceAction377[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction377 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction377 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction377___action},
-  {(bigint) 2 /* 42: ReduceAction377 < ReduceAction377: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction377 < ReduceAction377: superclass init_table position */},
   {(bigint) parser___ReduceAction377___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction377(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction377(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction377;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction377(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction377;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction377___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction377();
-  parser___ReduceAction377___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction378[44] = {
-  {(bigint) 1263 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction378 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction378 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1263 /* 3: ReduceAction378 < ReduceAction378: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction377(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction377;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction377_parser___ReduceAction377___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18107;
+  fra.me.meth = LOCATE_NEW_ReduceAction377_parser___ReduceAction377___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction377();
+  /* ./parser//parser.nit:18107 */
+  INIT_ATTRIBUTES__ReduceAction377(fra.me.REG[0]);
+  parser___ReduceAction377___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction377(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction378[50] = {
+  {(bigint) 3035 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction378 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction378 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3035 /* 4: ReduceAction378 < ReduceAction378: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63254,14 +130650,12 @@ const classtable_elt_t VFT_ReduceAction378[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction378 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction378 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63269,7 +130663,6 @@ const classtable_elt_t VFT_ReduceAction378[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63277,33 +130670,81 @@ const classtable_elt_t VFT_ReduceAction378[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction378 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction378 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction378___action},
-  {(bigint) 2 /* 42: ReduceAction378 < ReduceAction378: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction378 < ReduceAction378: superclass init_table position */},
   {(bigint) parser___ReduceAction378___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction378(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction378(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction378;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction378(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction378;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction378___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction378();
-  parser___ReduceAction378___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction379[44] = {
-  {(bigint) 1259 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction379 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction379 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1259 /* 3: ReduceAction379 < ReduceAction379: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction378(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction378;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction378_parser___ReduceAction378___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18161;
+  fra.me.meth = LOCATE_NEW_ReduceAction378_parser___ReduceAction378___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction378();
+  /* ./parser//parser.nit:18161 */
+  INIT_ATTRIBUTES__ReduceAction378(fra.me.REG[0]);
+  parser___ReduceAction378___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction378(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction379[50] = {
+  {(bigint) 3031 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction379 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction379 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3031 /* 4: ReduceAction379 < ReduceAction379: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63313,14 +130754,12 @@ const classtable_elt_t VFT_ReduceAction379[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction379 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction379 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63328,7 +130767,6 @@ const classtable_elt_t VFT_ReduceAction379[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63336,33 +130774,81 @@ const classtable_elt_t VFT_ReduceAction379[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction379 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction379 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction379___action},
-  {(bigint) 2 /* 42: ReduceAction379 < ReduceAction379: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction379 < ReduceAction379: superclass init_table position */},
   {(bigint) parser___ReduceAction379___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction379(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction379(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction379;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction379(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction379;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction379___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction379();
-  parser___ReduceAction379___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction380[44] = {
-  {(bigint) 1251 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction380 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction380 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1251 /* 3: ReduceAction380 < ReduceAction380: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction379(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction379;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction379_parser___ReduceAction379___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18212;
+  fra.me.meth = LOCATE_NEW_ReduceAction379_parser___ReduceAction379___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction379();
+  /* ./parser//parser.nit:18212 */
+  INIT_ATTRIBUTES__ReduceAction379(fra.me.REG[0]);
+  parser___ReduceAction379___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction379(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction380[50] = {
+  {(bigint) 3023 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction380 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction380 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3023 /* 4: ReduceAction380 < ReduceAction380: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63372,14 +130858,12 @@ const classtable_elt_t VFT_ReduceAction380[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction380 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction380 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63387,7 +130871,6 @@ const classtable_elt_t VFT_ReduceAction380[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63395,33 +130878,81 @@ const classtable_elt_t VFT_ReduceAction380[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction380 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction380 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction380___action},
-  {(bigint) 2 /* 42: ReduceAction380 < ReduceAction380: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction380 < ReduceAction380: superclass init_table position */},
   {(bigint) parser___ReduceAction380___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction380(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction380(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction380;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction380(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction380;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction380___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction380();
-  parser___ReduceAction380___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction381[44] = {
-  {(bigint) 1247 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction381 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction381 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1247 /* 3: ReduceAction381 < ReduceAction381: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction380(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction380;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction380_parser___ReduceAction380___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18266;
+  fra.me.meth = LOCATE_NEW_ReduceAction380_parser___ReduceAction380___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction380();
+  /* ./parser//parser.nit:18266 */
+  INIT_ATTRIBUTES__ReduceAction380(fra.me.REG[0]);
+  parser___ReduceAction380___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction380(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction381[50] = {
+  {(bigint) 3019 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction381 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction381 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3019 /* 4: ReduceAction381 < ReduceAction381: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63431,14 +130962,12 @@ const classtable_elt_t VFT_ReduceAction381[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction381 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction381 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63446,7 +130975,6 @@ const classtable_elt_t VFT_ReduceAction381[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63454,33 +130982,81 @@ const classtable_elt_t VFT_ReduceAction381[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction381 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction381 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction381___action},
-  {(bigint) 2 /* 42: ReduceAction381 < ReduceAction381: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction381 < ReduceAction381: superclass init_table position */},
   {(bigint) parser___ReduceAction381___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction381(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction381(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction381;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction381(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction381;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction381___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction381();
-  parser___ReduceAction381___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction382[44] = {
-  {(bigint) 1243 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction382 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction382 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1243 /* 3: ReduceAction382 < ReduceAction382: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction381(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction381;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction381_parser___ReduceAction381___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18310;
+  fra.me.meth = LOCATE_NEW_ReduceAction381_parser___ReduceAction381___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction381();
+  /* ./parser//parser.nit:18310 */
+  INIT_ATTRIBUTES__ReduceAction381(fra.me.REG[0]);
+  parser___ReduceAction381___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction381(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction382[50] = {
+  {(bigint) 3015 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction382 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction382 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3015 /* 4: ReduceAction382 < ReduceAction382: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63490,14 +131066,12 @@ const classtable_elt_t VFT_ReduceAction382[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction382 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction382 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63505,7 +131079,6 @@ const classtable_elt_t VFT_ReduceAction382[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63513,33 +131086,81 @@ const classtable_elt_t VFT_ReduceAction382[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction382 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction382 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction382___action},
-  {(bigint) 2 /* 42: ReduceAction382 < ReduceAction382: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction382 < ReduceAction382: superclass init_table position */},
   {(bigint) parser___ReduceAction382___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction382(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction382(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction382;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction382(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction382;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction382___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction382();
-  parser___ReduceAction382___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction383[44] = {
-  {(bigint) 1239 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction383 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction383 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1239 /* 3: ReduceAction383 < ReduceAction383: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction382(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction382;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction382_parser___ReduceAction382___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18345;
+  fra.me.meth = LOCATE_NEW_ReduceAction382_parser___ReduceAction382___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction382();
+  /* ./parser//parser.nit:18345 */
+  INIT_ATTRIBUTES__ReduceAction382(fra.me.REG[0]);
+  parser___ReduceAction382___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction382(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction383[50] = {
+  {(bigint) 3011 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction383 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction383 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3011 /* 4: ReduceAction383 < ReduceAction383: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63549,14 +131170,12 @@ const classtable_elt_t VFT_ReduceAction383[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction383 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction383 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63564,7 +131183,6 @@ const classtable_elt_t VFT_ReduceAction383[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63572,33 +131190,81 @@ const classtable_elt_t VFT_ReduceAction383[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction383 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction383 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction383___action},
-  {(bigint) 2 /* 42: ReduceAction383 < ReduceAction383: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction383 < ReduceAction383: superclass init_table position */},
   {(bigint) parser___ReduceAction383___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction383(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction383(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction383;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction383(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction383;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction383___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction383();
-  parser___ReduceAction383___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction384[44] = {
-  {(bigint) 1235 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction384 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction384 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1235 /* 3: ReduceAction384 < ReduceAction384: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction383(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction383;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction383_parser___ReduceAction383___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18383;
+  fra.me.meth = LOCATE_NEW_ReduceAction383_parser___ReduceAction383___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction383();
+  /* ./parser//parser.nit:18383 */
+  INIT_ATTRIBUTES__ReduceAction383(fra.me.REG[0]);
+  parser___ReduceAction383___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction383(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction384[50] = {
+  {(bigint) 3007 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction384 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction384 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3007 /* 4: ReduceAction384 < ReduceAction384: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63608,14 +131274,12 @@ const classtable_elt_t VFT_ReduceAction384[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction384 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction384 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63623,7 +131287,6 @@ const classtable_elt_t VFT_ReduceAction384[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63631,33 +131294,81 @@ const classtable_elt_t VFT_ReduceAction384[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction384 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction384 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction384___action},
-  {(bigint) 2 /* 42: ReduceAction384 < ReduceAction384: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction384 < ReduceAction384: superclass init_table position */},
   {(bigint) parser___ReduceAction384___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction384(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction384(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction384;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction384(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction384;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction384___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction384();
-  parser___ReduceAction384___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction385[44] = {
-  {(bigint) 1231 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction385 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction385 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1231 /* 3: ReduceAction385 < ReduceAction385: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction384(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction384;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction384_parser___ReduceAction384___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18424;
+  fra.me.meth = LOCATE_NEW_ReduceAction384_parser___ReduceAction384___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction384();
+  /* ./parser//parser.nit:18424 */
+  INIT_ATTRIBUTES__ReduceAction384(fra.me.REG[0]);
+  parser___ReduceAction384___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction384(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction385[50] = {
+  {(bigint) 3003 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction385 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction385 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 3003 /* 4: ReduceAction385 < ReduceAction385: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63667,14 +131378,12 @@ const classtable_elt_t VFT_ReduceAction385[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction385 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction385 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63682,7 +131391,6 @@ const classtable_elt_t VFT_ReduceAction385[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63690,33 +131398,81 @@ const classtable_elt_t VFT_ReduceAction385[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction385 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction385 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction385___action},
-  {(bigint) 2 /* 42: ReduceAction385 < ReduceAction385: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction385 < ReduceAction385: superclass init_table position */},
   {(bigint) parser___ReduceAction385___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction385(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction385(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction385;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction385(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction385;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction385___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction385();
-  parser___ReduceAction385___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction386[44] = {
-  {(bigint) 1227 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction386 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction386 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1227 /* 3: ReduceAction386 < ReduceAction386: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction385(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction385;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction385_parser___ReduceAction385___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18465;
+  fra.me.meth = LOCATE_NEW_ReduceAction385_parser___ReduceAction385___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction385();
+  /* ./parser//parser.nit:18465 */
+  INIT_ATTRIBUTES__ReduceAction385(fra.me.REG[0]);
+  parser___ReduceAction385___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction385(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction386[50] = {
+  {(bigint) 2999 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction386 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction386 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2999 /* 4: ReduceAction386 < ReduceAction386: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63726,14 +131482,12 @@ const classtable_elt_t VFT_ReduceAction386[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction386 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction386 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63741,7 +131495,6 @@ const classtable_elt_t VFT_ReduceAction386[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63749,33 +131502,81 @@ const classtable_elt_t VFT_ReduceAction386[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction386 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction386 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction386___action},
-  {(bigint) 2 /* 42: ReduceAction386 < ReduceAction386: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction386 < ReduceAction386: superclass init_table position */},
   {(bigint) parser___ReduceAction386___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction386(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction386(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction386;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction386(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction386;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction386___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction386();
-  parser___ReduceAction386___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction387[44] = {
-  {(bigint) 1223 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction387 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction387 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1223 /* 3: ReduceAction387 < ReduceAction387: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction386(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction386;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction386_parser___ReduceAction386___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18506;
+  fra.me.meth = LOCATE_NEW_ReduceAction386_parser___ReduceAction386___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction386();
+  /* ./parser//parser.nit:18506 */
+  INIT_ATTRIBUTES__ReduceAction386(fra.me.REG[0]);
+  parser___ReduceAction386___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction386(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction387[50] = {
+  {(bigint) 2995 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction387 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction387 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2995 /* 4: ReduceAction387 < ReduceAction387: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63785,14 +131586,12 @@ const classtable_elt_t VFT_ReduceAction387[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction387 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction387 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63800,7 +131599,6 @@ const classtable_elt_t VFT_ReduceAction387[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63808,33 +131606,81 @@ const classtable_elt_t VFT_ReduceAction387[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction387 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction387 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction387___action},
-  {(bigint) 2 /* 42: ReduceAction387 < ReduceAction387: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction387 < ReduceAction387: superclass init_table position */},
   {(bigint) parser___ReduceAction387___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction387(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction387(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction387;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction387(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction387;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction387___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction387();
-  parser___ReduceAction387___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction388[44] = {
-  {(bigint) 1219 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction388 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction388 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1219 /* 3: ReduceAction388 < ReduceAction388: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction387(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction387;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction387_parser___ReduceAction387___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18547;
+  fra.me.meth = LOCATE_NEW_ReduceAction387_parser___ReduceAction387___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction387();
+  /* ./parser//parser.nit:18547 */
+  INIT_ATTRIBUTES__ReduceAction387(fra.me.REG[0]);
+  parser___ReduceAction387___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction387(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction388[50] = {
+  {(bigint) 2991 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction388 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction388 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2991 /* 4: ReduceAction388 < ReduceAction388: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63844,14 +131690,12 @@ const classtable_elt_t VFT_ReduceAction388[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction388 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction388 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63859,7 +131703,6 @@ const classtable_elt_t VFT_ReduceAction388[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63867,33 +131710,81 @@ const classtable_elt_t VFT_ReduceAction388[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction388 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction388 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction388___action},
-  {(bigint) 2 /* 42: ReduceAction388 < ReduceAction388: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction388 < ReduceAction388: superclass init_table position */},
   {(bigint) parser___ReduceAction388___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction388(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction388(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction388;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction388(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction388;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction388___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction388();
-  parser___ReduceAction388___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction389[44] = {
-  {(bigint) 1215 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction389 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction389 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1215 /* 3: ReduceAction389 < ReduceAction389: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction388(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction388;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction388_parser___ReduceAction388___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18588;
+  fra.me.meth = LOCATE_NEW_ReduceAction388_parser___ReduceAction388___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction388();
+  /* ./parser//parser.nit:18588 */
+  INIT_ATTRIBUTES__ReduceAction388(fra.me.REG[0]);
+  parser___ReduceAction388___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction388(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction389[50] = {
+  {(bigint) 2987 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction389 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction389 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2987 /* 4: ReduceAction389 < ReduceAction389: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63903,14 +131794,12 @@ const classtable_elt_t VFT_ReduceAction389[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction389 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction389 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63918,7 +131807,6 @@ const classtable_elt_t VFT_ReduceAction389[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63926,33 +131814,81 @@ const classtable_elt_t VFT_ReduceAction389[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction389 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction389 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction389___action},
-  {(bigint) 2 /* 42: ReduceAction389 < ReduceAction389: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction389 < ReduceAction389: superclass init_table position */},
   {(bigint) parser___ReduceAction389___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction389(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction389(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction389;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction389(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction389;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction389___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction389();
-  parser___ReduceAction389___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction390[44] = {
-  {(bigint) 1207 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction390 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction390 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1207 /* 3: ReduceAction390 < ReduceAction390: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction389(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction389;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction389_parser___ReduceAction389___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18629;
+  fra.me.meth = LOCATE_NEW_ReduceAction389_parser___ReduceAction389___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction389();
+  /* ./parser//parser.nit:18629 */
+  INIT_ATTRIBUTES__ReduceAction389(fra.me.REG[0]);
+  parser___ReduceAction389___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction389(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction390[50] = {
+  {(bigint) 2979 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction390 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction390 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2979 /* 4: ReduceAction390 < ReduceAction390: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63962,14 +131898,12 @@ const classtable_elt_t VFT_ReduceAction390[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction390 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction390 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -63977,7 +131911,6 @@ const classtable_elt_t VFT_ReduceAction390[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -63985,33 +131918,81 @@ const classtable_elt_t VFT_ReduceAction390[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction390 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction390 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction390___action},
-  {(bigint) 2 /* 42: ReduceAction390 < ReduceAction390: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction390 < ReduceAction390: superclass init_table position */},
   {(bigint) parser___ReduceAction390___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction390(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction390(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction390;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction390(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction390;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction390___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction390();
-  parser___ReduceAction390___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction391[44] = {
-  {(bigint) 1203 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction391 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction391 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1203 /* 3: ReduceAction391 < ReduceAction391: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction390(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction390;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction390_parser___ReduceAction390___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18670;
+  fra.me.meth = LOCATE_NEW_ReduceAction390_parser___ReduceAction390___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction390();
+  /* ./parser//parser.nit:18670 */
+  INIT_ATTRIBUTES__ReduceAction390(fra.me.REG[0]);
+  parser___ReduceAction390___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction390(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction391[50] = {
+  {(bigint) 2975 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction391 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction391 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2975 /* 4: ReduceAction391 < ReduceAction391: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64021,14 +132002,12 @@ const classtable_elt_t VFT_ReduceAction391[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction391 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction391 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64036,7 +132015,6 @@ const classtable_elt_t VFT_ReduceAction391[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64044,33 +132022,81 @@ const classtable_elt_t VFT_ReduceAction391[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction391 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction391 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction391___action},
-  {(bigint) 2 /* 42: ReduceAction391 < ReduceAction391: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction391 < ReduceAction391: superclass init_table position */},
   {(bigint) parser___ReduceAction391___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction391(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction391(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction391;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction391(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction391;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction391___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction391();
-  parser___ReduceAction391___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction392[44] = {
-  {(bigint) 1199 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction392 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction392 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1199 /* 3: ReduceAction392 < ReduceAction392: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction391(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction391;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction391_parser___ReduceAction391___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18711;
+  fra.me.meth = LOCATE_NEW_ReduceAction391_parser___ReduceAction391___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction391();
+  /* ./parser//parser.nit:18711 */
+  INIT_ATTRIBUTES__ReduceAction391(fra.me.REG[0]);
+  parser___ReduceAction391___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction391(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction392[50] = {
+  {(bigint) 2971 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction392 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction392 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2971 /* 4: ReduceAction392 < ReduceAction392: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64080,14 +132106,12 @@ const classtable_elt_t VFT_ReduceAction392[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction392 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction392 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64095,7 +132119,6 @@ const classtable_elt_t VFT_ReduceAction392[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64103,33 +132126,81 @@ const classtable_elt_t VFT_ReduceAction392[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction392 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction392 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction392___action},
-  {(bigint) 2 /* 42: ReduceAction392 < ReduceAction392: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction392 < ReduceAction392: superclass init_table position */},
   {(bigint) parser___ReduceAction392___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction392(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction392(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction392;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction392(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction392;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction392___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction392();
-  parser___ReduceAction392___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction393[44] = {
-  {(bigint) 1195 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction393 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction393 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1195 /* 3: ReduceAction393 < ReduceAction393: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction392(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction392;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction392_parser___ReduceAction392___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18752;
+  fra.me.meth = LOCATE_NEW_ReduceAction392_parser___ReduceAction392___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction392();
+  /* ./parser//parser.nit:18752 */
+  INIT_ATTRIBUTES__ReduceAction392(fra.me.REG[0]);
+  parser___ReduceAction392___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction392(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction393[50] = {
+  {(bigint) 2967 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction393 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction393 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2967 /* 4: ReduceAction393 < ReduceAction393: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64139,14 +132210,12 @@ const classtable_elt_t VFT_ReduceAction393[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction393 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction393 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64154,7 +132223,6 @@ const classtable_elt_t VFT_ReduceAction393[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64162,33 +132230,81 @@ const classtable_elt_t VFT_ReduceAction393[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction393 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction393 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction393___action},
-  {(bigint) 2 /* 42: ReduceAction393 < ReduceAction393: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction393 < ReduceAction393: superclass init_table position */},
   {(bigint) parser___ReduceAction393___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction393(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction393(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction393;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction393(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction393;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction393___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction393();
-  parser___ReduceAction393___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction394[44] = {
-  {(bigint) 1191 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction394 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction394 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1191 /* 3: ReduceAction394 < ReduceAction394: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction393(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction393;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction393_parser___ReduceAction393___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18793;
+  fra.me.meth = LOCATE_NEW_ReduceAction393_parser___ReduceAction393___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction393();
+  /* ./parser//parser.nit:18793 */
+  INIT_ATTRIBUTES__ReduceAction393(fra.me.REG[0]);
+  parser___ReduceAction393___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction393(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction394[50] = {
+  {(bigint) 2963 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction394 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction394 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2963 /* 4: ReduceAction394 < ReduceAction394: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64198,14 +132314,12 @@ const classtable_elt_t VFT_ReduceAction394[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction394 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction394 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64213,7 +132327,6 @@ const classtable_elt_t VFT_ReduceAction394[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64221,33 +132334,81 @@ const classtable_elt_t VFT_ReduceAction394[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction394 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction394 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction394___action},
-  {(bigint) 2 /* 42: ReduceAction394 < ReduceAction394: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction394 < ReduceAction394: superclass init_table position */},
   {(bigint) parser___ReduceAction394___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction394(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction394(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction394;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction394(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction394;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction394___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction394();
-  parser___ReduceAction394___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction395[44] = {
-  {(bigint) 1187 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction395 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction395 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1187 /* 3: ReduceAction395 < ReduceAction395: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction394(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction394;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction394_parser___ReduceAction394___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18834;
+  fra.me.meth = LOCATE_NEW_ReduceAction394_parser___ReduceAction394___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction394();
+  /* ./parser//parser.nit:18834 */
+  INIT_ATTRIBUTES__ReduceAction394(fra.me.REG[0]);
+  parser___ReduceAction394___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction394(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction395[50] = {
+  {(bigint) 2959 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction395 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction395 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2959 /* 4: ReduceAction395 < ReduceAction395: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64257,14 +132418,12 @@ const classtable_elt_t VFT_ReduceAction395[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction395 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction395 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64272,7 +132431,6 @@ const classtable_elt_t VFT_ReduceAction395[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64280,33 +132438,81 @@ const classtable_elt_t VFT_ReduceAction395[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction395 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction395 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction395___action},
-  {(bigint) 2 /* 42: ReduceAction395 < ReduceAction395: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction395 < ReduceAction395: superclass init_table position */},
   {(bigint) parser___ReduceAction395___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction395(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction395(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction395;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction395(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction395;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction395___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction395();
-  parser___ReduceAction395___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction396[44] = {
-  {(bigint) 1183 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction396 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction396 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1183 /* 3: ReduceAction396 < ReduceAction396: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction395(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction395;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction395_parser___ReduceAction395___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18875;
+  fra.me.meth = LOCATE_NEW_ReduceAction395_parser___ReduceAction395___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction395();
+  /* ./parser//parser.nit:18875 */
+  INIT_ATTRIBUTES__ReduceAction395(fra.me.REG[0]);
+  parser___ReduceAction395___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction395(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction396[50] = {
+  {(bigint) 2955 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction396 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction396 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2955 /* 4: ReduceAction396 < ReduceAction396: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64316,14 +132522,12 @@ const classtable_elt_t VFT_ReduceAction396[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction396 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction396 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64331,7 +132535,6 @@ const classtable_elt_t VFT_ReduceAction396[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64339,33 +132542,81 @@ const classtable_elt_t VFT_ReduceAction396[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction396 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction396 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction396___action},
-  {(bigint) 2 /* 42: ReduceAction396 < ReduceAction396: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction396 < ReduceAction396: superclass init_table position */},
   {(bigint) parser___ReduceAction396___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction396(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction396(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction396;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction396(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction396;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction396___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction396();
-  parser___ReduceAction396___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction397[44] = {
-  {(bigint) 1179 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction397 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction397 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1179 /* 3: ReduceAction397 < ReduceAction397: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction396(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction396;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction396_parser___ReduceAction396___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18920;
+  fra.me.meth = LOCATE_NEW_ReduceAction396_parser___ReduceAction396___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction396();
+  /* ./parser//parser.nit:18920 */
+  INIT_ATTRIBUTES__ReduceAction396(fra.me.REG[0]);
+  parser___ReduceAction396___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction396(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction397[50] = {
+  {(bigint) 2951 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction397 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction397 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2951 /* 4: ReduceAction397 < ReduceAction397: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64375,14 +132626,12 @@ const classtable_elt_t VFT_ReduceAction397[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction397 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction397 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64390,7 +132639,6 @@ const classtable_elt_t VFT_ReduceAction397[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64398,33 +132646,81 @@ const classtable_elt_t VFT_ReduceAction397[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction397 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction397 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction397___action},
-  {(bigint) 2 /* 42: ReduceAction397 < ReduceAction397: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction397 < ReduceAction397: superclass init_table position */},
   {(bigint) parser___ReduceAction397___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction397(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction397(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction397;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction397(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction397;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction397___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction397();
-  parser___ReduceAction397___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction398[44] = {
-  {(bigint) 1175 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction398 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction398 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1175 /* 3: ReduceAction398 < ReduceAction398: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction397(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction397;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction397_parser___ReduceAction397___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 18961;
+  fra.me.meth = LOCATE_NEW_ReduceAction397_parser___ReduceAction397___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction397();
+  /* ./parser//parser.nit:18961 */
+  INIT_ATTRIBUTES__ReduceAction397(fra.me.REG[0]);
+  parser___ReduceAction397___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction397(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction398[50] = {
+  {(bigint) 2947 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction398 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction398 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2947 /* 4: ReduceAction398 < ReduceAction398: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64434,14 +132730,12 @@ const classtable_elt_t VFT_ReduceAction398[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction398 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction398 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64449,7 +132743,6 @@ const classtable_elt_t VFT_ReduceAction398[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64457,33 +132750,81 @@ const classtable_elt_t VFT_ReduceAction398[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction398 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction398 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction398___action},
-  {(bigint) 2 /* 42: ReduceAction398 < ReduceAction398: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction398 < ReduceAction398: superclass init_table position */},
   {(bigint) parser___ReduceAction398___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction398(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction398(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction398;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction398(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction398;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction398___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction398();
-  parser___ReduceAction398___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction399[44] = {
-  {(bigint) 1171 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction399 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction399 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1171 /* 3: ReduceAction399 < ReduceAction399: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction398(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction398;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction398_parser___ReduceAction398___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19006;
+  fra.me.meth = LOCATE_NEW_ReduceAction398_parser___ReduceAction398___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction398();
+  /* ./parser//parser.nit:19006 */
+  INIT_ATTRIBUTES__ReduceAction398(fra.me.REG[0]);
+  parser___ReduceAction398___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction398(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction399[50] = {
+  {(bigint) 2943 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction399 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction399 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2943 /* 4: ReduceAction399 < ReduceAction399: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64493,14 +132834,12 @@ const classtable_elt_t VFT_ReduceAction399[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction399 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction399 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64508,7 +132847,6 @@ const classtable_elt_t VFT_ReduceAction399[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64516,33 +132854,81 @@ const classtable_elt_t VFT_ReduceAction399[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction399 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction399 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction399___action},
-  {(bigint) 2 /* 42: ReduceAction399 < ReduceAction399: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction399 < ReduceAction399: superclass init_table position */},
   {(bigint) parser___ReduceAction399___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction399(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction399(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction399;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction399(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction399;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction399___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction399();
-  parser___ReduceAction399___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction400[44] = {
-  {(bigint) 1159 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction400 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction400 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1159 /* 3: ReduceAction400 < ReduceAction400: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction399(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction399;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction399_parser___ReduceAction399___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19055;
+  fra.me.meth = LOCATE_NEW_ReduceAction399_parser___ReduceAction399___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction399();
+  /* ./parser//parser.nit:19055 */
+  INIT_ATTRIBUTES__ReduceAction399(fra.me.REG[0]);
+  parser___ReduceAction399___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction399(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction400[50] = {
+  {(bigint) 2931 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction400 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction400 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2931 /* 4: ReduceAction400 < ReduceAction400: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64552,14 +132938,12 @@ const classtable_elt_t VFT_ReduceAction400[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction400 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction400 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64567,7 +132951,6 @@ const classtable_elt_t VFT_ReduceAction400[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64575,33 +132958,81 @@ const classtable_elt_t VFT_ReduceAction400[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction400 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction400 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction400___action},
-  {(bigint) 2 /* 42: ReduceAction400 < ReduceAction400: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction400 < ReduceAction400: superclass init_table position */},
   {(bigint) parser___ReduceAction400___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction400(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction400(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction400;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction400(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction400;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction400___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction400();
-  parser___ReduceAction400___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction401[44] = {
-  {(bigint) 1155 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction401 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction401 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1155 /* 3: ReduceAction401 < ReduceAction401: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction400(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction400;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction400_parser___ReduceAction400___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19099;
+  fra.me.meth = LOCATE_NEW_ReduceAction400_parser___ReduceAction400___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction400();
+  /* ./parser//parser.nit:19099 */
+  INIT_ATTRIBUTES__ReduceAction400(fra.me.REG[0]);
+  parser___ReduceAction400___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction400(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction401[50] = {
+  {(bigint) 2927 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction401 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction401 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2927 /* 4: ReduceAction401 < ReduceAction401: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64611,14 +133042,12 @@ const classtable_elt_t VFT_ReduceAction401[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction401 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction401 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64626,7 +133055,6 @@ const classtable_elt_t VFT_ReduceAction401[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64634,33 +133062,81 @@ const classtable_elt_t VFT_ReduceAction401[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction401 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction401 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction401___action},
-  {(bigint) 2 /* 42: ReduceAction401 < ReduceAction401: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction401 < ReduceAction401: superclass init_table position */},
   {(bigint) parser___ReduceAction401___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction401(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction401(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction401;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction401(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction401;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction401___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction401();
-  parser___ReduceAction401___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction402[44] = {
-  {(bigint) 1151 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction402 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction402 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1151 /* 3: ReduceAction402 < ReduceAction402: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction401(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction401;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction401_parser___ReduceAction401___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19143;
+  fra.me.meth = LOCATE_NEW_ReduceAction401_parser___ReduceAction401___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction401();
+  /* ./parser//parser.nit:19143 */
+  INIT_ATTRIBUTES__ReduceAction401(fra.me.REG[0]);
+  parser___ReduceAction401___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction401(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction402[50] = {
+  {(bigint) 2923 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction402 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction402 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2923 /* 4: ReduceAction402 < ReduceAction402: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64670,14 +133146,12 @@ const classtable_elt_t VFT_ReduceAction402[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction402 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction402 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64685,7 +133159,6 @@ const classtable_elt_t VFT_ReduceAction402[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64693,33 +133166,81 @@ const classtable_elt_t VFT_ReduceAction402[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction402 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction402 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction402___action},
-  {(bigint) 2 /* 42: ReduceAction402 < ReduceAction402: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction402 < ReduceAction402: superclass init_table position */},
   {(bigint) parser___ReduceAction402___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction402(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction402(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction402;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction402(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction402;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction402___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction402();
-  parser___ReduceAction402___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction403[44] = {
-  {(bigint) 1147 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction403 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction403 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1147 /* 3: ReduceAction403 < ReduceAction403: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction402(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction402;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction402_parser___ReduceAction402___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19187;
+  fra.me.meth = LOCATE_NEW_ReduceAction402_parser___ReduceAction402___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction402();
+  /* ./parser//parser.nit:19187 */
+  INIT_ATTRIBUTES__ReduceAction402(fra.me.REG[0]);
+  parser___ReduceAction402___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction402(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction403[50] = {
+  {(bigint) 2919 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction403 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction403 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2919 /* 4: ReduceAction403 < ReduceAction403: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64729,14 +133250,12 @@ const classtable_elt_t VFT_ReduceAction403[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction403 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction403 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64744,7 +133263,6 @@ const classtable_elt_t VFT_ReduceAction403[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64752,33 +133270,81 @@ const classtable_elt_t VFT_ReduceAction403[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction403 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction403 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction403___action},
-  {(bigint) 2 /* 42: ReduceAction403 < ReduceAction403: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction403 < ReduceAction403: superclass init_table position */},
   {(bigint) parser___ReduceAction403___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction403(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction403(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction403;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction403(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction403;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction403___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction403();
-  parser___ReduceAction403___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction404[44] = {
-  {(bigint) 1143 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction404 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction404 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1143 /* 3: ReduceAction404 < ReduceAction404: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction403(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction403;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction403_parser___ReduceAction403___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19231;
+  fra.me.meth = LOCATE_NEW_ReduceAction403_parser___ReduceAction403___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction403();
+  /* ./parser//parser.nit:19231 */
+  INIT_ATTRIBUTES__ReduceAction403(fra.me.REG[0]);
+  parser___ReduceAction403___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction403(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction404[50] = {
+  {(bigint) 2915 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction404 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction404 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2915 /* 4: ReduceAction404 < ReduceAction404: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64788,14 +133354,12 @@ const classtable_elt_t VFT_ReduceAction404[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction404 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction404 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64803,7 +133367,6 @@ const classtable_elt_t VFT_ReduceAction404[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64811,33 +133374,81 @@ const classtable_elt_t VFT_ReduceAction404[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction404 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction404 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction404___action},
-  {(bigint) 2 /* 42: ReduceAction404 < ReduceAction404: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction404 < ReduceAction404: superclass init_table position */},
   {(bigint) parser___ReduceAction404___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction404(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction404(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction404;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction404(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction404;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction404___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction404();
-  parser___ReduceAction404___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction405[44] = {
-  {(bigint) 1139 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction405 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction405 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1139 /* 3: ReduceAction405 < ReduceAction405: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction404(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction404;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction404_parser___ReduceAction404___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19275;
+  fra.me.meth = LOCATE_NEW_ReduceAction404_parser___ReduceAction404___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction404();
+  /* ./parser//parser.nit:19275 */
+  INIT_ATTRIBUTES__ReduceAction404(fra.me.REG[0]);
+  parser___ReduceAction404___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction404(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction405[50] = {
+  {(bigint) 2911 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction405 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction405 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2911 /* 4: ReduceAction405 < ReduceAction405: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64847,14 +133458,12 @@ const classtable_elt_t VFT_ReduceAction405[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction405 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction405 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64862,7 +133471,6 @@ const classtable_elt_t VFT_ReduceAction405[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64870,33 +133478,81 @@ const classtable_elt_t VFT_ReduceAction405[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction405 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction405 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction405___action},
-  {(bigint) 2 /* 42: ReduceAction405 < ReduceAction405: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction405 < ReduceAction405: superclass init_table position */},
   {(bigint) parser___ReduceAction405___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction405(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction405(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction405;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction405(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction405;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction405___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction405();
-  parser___ReduceAction405___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction406[44] = {
-  {(bigint) 1135 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction406 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction406 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1135 /* 3: ReduceAction406 < ReduceAction406: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction405(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction405;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction405_parser___ReduceAction405___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19319;
+  fra.me.meth = LOCATE_NEW_ReduceAction405_parser___ReduceAction405___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction405();
+  /* ./parser//parser.nit:19319 */
+  INIT_ATTRIBUTES__ReduceAction405(fra.me.REG[0]);
+  parser___ReduceAction405___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction405(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction406[50] = {
+  {(bigint) 2907 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction406 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction406 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2907 /* 4: ReduceAction406 < ReduceAction406: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64906,14 +133562,12 @@ const classtable_elt_t VFT_ReduceAction406[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction406 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction406 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64921,7 +133575,6 @@ const classtable_elt_t VFT_ReduceAction406[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64929,33 +133582,81 @@ const classtable_elt_t VFT_ReduceAction406[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction406 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction406 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction406___action},
-  {(bigint) 2 /* 42: ReduceAction406 < ReduceAction406: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction406 < ReduceAction406: superclass init_table position */},
   {(bigint) parser___ReduceAction406___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction406(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction406(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction406;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction406(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction406;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction406___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction406();
-  parser___ReduceAction406___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction407[44] = {
-  {(bigint) 1131 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction407 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction407 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1131 /* 3: ReduceAction407 < ReduceAction407: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction406(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction406;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction406_parser___ReduceAction406___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19363;
+  fra.me.meth = LOCATE_NEW_ReduceAction406_parser___ReduceAction406___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction406();
+  /* ./parser//parser.nit:19363 */
+  INIT_ATTRIBUTES__ReduceAction406(fra.me.REG[0]);
+  parser___ReduceAction406___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction406(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction407[50] = {
+  {(bigint) 2903 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction407 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction407 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2903 /* 4: ReduceAction407 < ReduceAction407: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64965,14 +133666,12 @@ const classtable_elt_t VFT_ReduceAction407[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction407 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction407 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -64980,7 +133679,6 @@ const classtable_elt_t VFT_ReduceAction407[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -64988,33 +133686,81 @@ const classtable_elt_t VFT_ReduceAction407[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction407 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction407 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction407___action},
-  {(bigint) 2 /* 42: ReduceAction407 < ReduceAction407: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction407 < ReduceAction407: superclass init_table position */},
   {(bigint) parser___ReduceAction407___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction407(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction407(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction407;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction407(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction407;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction407___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction407();
-  parser___ReduceAction407___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction408[44] = {
-  {(bigint) 1127 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction408 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction408 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1127 /* 3: ReduceAction408 < ReduceAction408: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction407(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction407;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction407_parser___ReduceAction407___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19407;
+  fra.me.meth = LOCATE_NEW_ReduceAction407_parser___ReduceAction407___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction407();
+  /* ./parser//parser.nit:19407 */
+  INIT_ATTRIBUTES__ReduceAction407(fra.me.REG[0]);
+  parser___ReduceAction407___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction407(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction408[50] = {
+  {(bigint) 2899 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction408 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction408 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2899 /* 4: ReduceAction408 < ReduceAction408: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65024,14 +133770,12 @@ const classtable_elt_t VFT_ReduceAction408[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction408 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction408 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65039,7 +133783,6 @@ const classtable_elt_t VFT_ReduceAction408[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65047,33 +133790,81 @@ const classtable_elt_t VFT_ReduceAction408[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction408 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction408 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction408___action},
-  {(bigint) 2 /* 42: ReduceAction408 < ReduceAction408: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction408 < ReduceAction408: superclass init_table position */},
   {(bigint) parser___ReduceAction408___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction408(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction408(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction408;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction408(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction408;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction408___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction408();
-  parser___ReduceAction408___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction409[44] = {
-  {(bigint) 1123 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction409 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction409 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1123 /* 3: ReduceAction409 < ReduceAction409: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction408(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction408;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction408_parser___ReduceAction408___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19451;
+  fra.me.meth = LOCATE_NEW_ReduceAction408_parser___ReduceAction408___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction408();
+  /* ./parser//parser.nit:19451 */
+  INIT_ATTRIBUTES__ReduceAction408(fra.me.REG[0]);
+  parser___ReduceAction408___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction408(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction409[50] = {
+  {(bigint) 2895 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction409 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction409 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2895 /* 4: ReduceAction409 < ReduceAction409: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65083,14 +133874,12 @@ const classtable_elt_t VFT_ReduceAction409[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction409 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction409 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65098,7 +133887,6 @@ const classtable_elt_t VFT_ReduceAction409[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65106,33 +133894,81 @@ const classtable_elt_t VFT_ReduceAction409[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction409 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction409 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction409___action},
-  {(bigint) 2 /* 42: ReduceAction409 < ReduceAction409: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction409 < ReduceAction409: superclass init_table position */},
   {(bigint) parser___ReduceAction409___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction409(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction409(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction409;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction409(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction409;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction409___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction409();
-  parser___ReduceAction409___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction410[44] = {
-  {(bigint) 1115 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction410 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction410 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1115 /* 3: ReduceAction410 < ReduceAction410: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction409(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction409;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction409_parser___ReduceAction409___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19495;
+  fra.me.meth = LOCATE_NEW_ReduceAction409_parser___ReduceAction409___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction409();
+  /* ./parser//parser.nit:19495 */
+  INIT_ATTRIBUTES__ReduceAction409(fra.me.REG[0]);
+  parser___ReduceAction409___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction409(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction410[50] = {
+  {(bigint) 2887 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction410 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction410 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2887 /* 4: ReduceAction410 < ReduceAction410: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65142,14 +133978,12 @@ const classtable_elt_t VFT_ReduceAction410[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction410 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction410 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65157,7 +133991,6 @@ const classtable_elt_t VFT_ReduceAction410[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65165,33 +133998,81 @@ const classtable_elt_t VFT_ReduceAction410[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction410 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction410 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction410___action},
-  {(bigint) 2 /* 42: ReduceAction410 < ReduceAction410: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction410 < ReduceAction410: superclass init_table position */},
   {(bigint) parser___ReduceAction410___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction410(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction410(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction410;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction410(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction410;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction410___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction410();
-  parser___ReduceAction410___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction411[44] = {
-  {(bigint) 1111 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction411 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction411 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1111 /* 3: ReduceAction411 < ReduceAction411: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction410(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction410;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction410_parser___ReduceAction410___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19539;
+  fra.me.meth = LOCATE_NEW_ReduceAction410_parser___ReduceAction410___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction410();
+  /* ./parser//parser.nit:19539 */
+  INIT_ATTRIBUTES__ReduceAction410(fra.me.REG[0]);
+  parser___ReduceAction410___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction410(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction411[50] = {
+  {(bigint) 2883 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction411 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction411 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2883 /* 4: ReduceAction411 < ReduceAction411: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65201,14 +134082,12 @@ const classtable_elt_t VFT_ReduceAction411[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction411 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction411 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65216,7 +134095,6 @@ const classtable_elt_t VFT_ReduceAction411[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65224,33 +134102,81 @@ const classtable_elt_t VFT_ReduceAction411[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction411 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction411 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction411___action},
-  {(bigint) 2 /* 42: ReduceAction411 < ReduceAction411: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction411 < ReduceAction411: superclass init_table position */},
   {(bigint) parser___ReduceAction411___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction411(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction411(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction411;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction411(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction411;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction411___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction411();
-  parser___ReduceAction411___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction412[44] = {
-  {(bigint) 1107 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction412 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction412 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1107 /* 3: ReduceAction412 < ReduceAction412: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction411(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction411;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction411_parser___ReduceAction411___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19583;
+  fra.me.meth = LOCATE_NEW_ReduceAction411_parser___ReduceAction411___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction411();
+  /* ./parser//parser.nit:19583 */
+  INIT_ATTRIBUTES__ReduceAction411(fra.me.REG[0]);
+  parser___ReduceAction411___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction411(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction412[50] = {
+  {(bigint) 2879 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction412 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction412 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2879 /* 4: ReduceAction412 < ReduceAction412: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65260,14 +134186,12 @@ const classtable_elt_t VFT_ReduceAction412[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction412 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction412 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65275,7 +134199,6 @@ const classtable_elt_t VFT_ReduceAction412[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65283,33 +134206,81 @@ const classtable_elt_t VFT_ReduceAction412[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction412 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction412 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction412___action},
-  {(bigint) 2 /* 42: ReduceAction412 < ReduceAction412: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction412 < ReduceAction412: superclass init_table position */},
   {(bigint) parser___ReduceAction412___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction412(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction412(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction412;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction412(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction412;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction412___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction412();
-  parser___ReduceAction412___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction413[44] = {
-  {(bigint) 1103 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction413 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction413 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1103 /* 3: ReduceAction413 < ReduceAction413: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction412(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction412;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction412_parser___ReduceAction412___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19631;
+  fra.me.meth = LOCATE_NEW_ReduceAction412_parser___ReduceAction412___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction412();
+  /* ./parser//parser.nit:19631 */
+  INIT_ATTRIBUTES__ReduceAction412(fra.me.REG[0]);
+  parser___ReduceAction412___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction412(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction413[50] = {
+  {(bigint) 2875 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction413 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction413 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: ReduceAction413 < ReduceAction413: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65319,14 +134290,12 @@ const classtable_elt_t VFT_ReduceAction413[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction413 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction413 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65334,7 +134303,6 @@ const classtable_elt_t VFT_ReduceAction413[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65342,33 +134310,81 @@ const classtable_elt_t VFT_ReduceAction413[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction413 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction413 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction413___action},
-  {(bigint) 2 /* 42: ReduceAction413 < ReduceAction413: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction413 < ReduceAction413: superclass init_table position */},
   {(bigint) parser___ReduceAction413___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction413(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction413(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction413;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction413(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction413;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction413___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction413();
-  parser___ReduceAction413___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction414[44] = {
-  {(bigint) 1099 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction414 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction414 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1099 /* 3: ReduceAction414 < ReduceAction414: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction413(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction413;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction413_parser___ReduceAction413___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19675;
+  fra.me.meth = LOCATE_NEW_ReduceAction413_parser___ReduceAction413___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction413();
+  /* ./parser//parser.nit:19675 */
+  INIT_ATTRIBUTES__ReduceAction413(fra.me.REG[0]);
+  parser___ReduceAction413___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction413(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction414[50] = {
+  {(bigint) 2871 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction414 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction414 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2871 /* 4: ReduceAction414 < ReduceAction414: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65378,14 +134394,12 @@ const classtable_elt_t VFT_ReduceAction414[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction414 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction414 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65393,7 +134407,6 @@ const classtable_elt_t VFT_ReduceAction414[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65401,33 +134414,81 @@ const classtable_elt_t VFT_ReduceAction414[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction414 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction414 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction414___action},
-  {(bigint) 2 /* 42: ReduceAction414 < ReduceAction414: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction414 < ReduceAction414: superclass init_table position */},
   {(bigint) parser___ReduceAction414___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction414(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction414(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction414;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction414(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction414;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction414___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction414();
-  parser___ReduceAction414___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction415[44] = {
-  {(bigint) 1095 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction415 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction415 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1095 /* 3: ReduceAction415 < ReduceAction415: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction414(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction414;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction414_parser___ReduceAction414___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19723;
+  fra.me.meth = LOCATE_NEW_ReduceAction414_parser___ReduceAction414___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction414();
+  /* ./parser//parser.nit:19723 */
+  INIT_ATTRIBUTES__ReduceAction414(fra.me.REG[0]);
+  parser___ReduceAction414___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction414(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction415[50] = {
+  {(bigint) 2867 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction415 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction415 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2867 /* 4: ReduceAction415 < ReduceAction415: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65437,14 +134498,12 @@ const classtable_elt_t VFT_ReduceAction415[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction415 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction415 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65452,7 +134511,6 @@ const classtable_elt_t VFT_ReduceAction415[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65460,33 +134518,81 @@ const classtable_elt_t VFT_ReduceAction415[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction415 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction415 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction415___action},
-  {(bigint) 2 /* 42: ReduceAction415 < ReduceAction415: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction415 < ReduceAction415: superclass init_table position */},
   {(bigint) parser___ReduceAction415___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction415(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction415(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction415;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction415(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction415;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction415___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction415();
-  parser___ReduceAction415___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction416[44] = {
-  {(bigint) 1091 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction416 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction416 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1091 /* 3: ReduceAction416 < ReduceAction416: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction415(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction415;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction415_parser___ReduceAction415___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19775;
+  fra.me.meth = LOCATE_NEW_ReduceAction415_parser___ReduceAction415___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction415();
+  /* ./parser//parser.nit:19775 */
+  INIT_ATTRIBUTES__ReduceAction415(fra.me.REG[0]);
+  parser___ReduceAction415___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction415(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction416[50] = {
+  {(bigint) 2863 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction416 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction416 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2863 /* 4: ReduceAction416 < ReduceAction416: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65496,14 +134602,12 @@ const classtable_elt_t VFT_ReduceAction416[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction416 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction416 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65511,7 +134615,6 @@ const classtable_elt_t VFT_ReduceAction416[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65519,33 +134622,81 @@ const classtable_elt_t VFT_ReduceAction416[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction416 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction416 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction416___action},
-  {(bigint) 2 /* 42: ReduceAction416 < ReduceAction416: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction416 < ReduceAction416: superclass init_table position */},
   {(bigint) parser___ReduceAction416___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction416(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction416(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction416;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction416(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction416;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction416___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction416();
-  parser___ReduceAction416___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction417[44] = {
-  {(bigint) 1087 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction417 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction417 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1087 /* 3: ReduceAction417 < ReduceAction417: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction416(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction416;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction416_parser___ReduceAction416___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19811;
+  fra.me.meth = LOCATE_NEW_ReduceAction416_parser___ReduceAction416___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction416();
+  /* ./parser//parser.nit:19811 */
+  INIT_ATTRIBUTES__ReduceAction416(fra.me.REG[0]);
+  parser___ReduceAction416___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction416(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction417[50] = {
+  {(bigint) 2859 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction417 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction417 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2859 /* 4: ReduceAction417 < ReduceAction417: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65555,14 +134706,12 @@ const classtable_elt_t VFT_ReduceAction417[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction417 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction417 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65570,7 +134719,6 @@ const classtable_elt_t VFT_ReduceAction417[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65578,33 +134726,81 @@ const classtable_elt_t VFT_ReduceAction417[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction417 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction417 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction417___action},
-  {(bigint) 2 /* 42: ReduceAction417 < ReduceAction417: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction417 < ReduceAction417: superclass init_table position */},
   {(bigint) parser___ReduceAction417___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction417(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction417(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction417;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction417(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction417;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction417___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction417();
-  parser___ReduceAction417___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction418[44] = {
-  {(bigint) 1083 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction418 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction418 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1083 /* 3: ReduceAction418 < ReduceAction418: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction417(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction417;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction417_parser___ReduceAction417___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19850;
+  fra.me.meth = LOCATE_NEW_ReduceAction417_parser___ReduceAction417___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction417();
+  /* ./parser//parser.nit:19850 */
+  INIT_ATTRIBUTES__ReduceAction417(fra.me.REG[0]);
+  parser___ReduceAction417___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction417(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction418[50] = {
+  {(bigint) 2855 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction418 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction418 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2855 /* 4: ReduceAction418 < ReduceAction418: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65614,14 +134810,12 @@ const classtable_elt_t VFT_ReduceAction418[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction418 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction418 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65629,7 +134823,6 @@ const classtable_elt_t VFT_ReduceAction418[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65637,33 +134830,81 @@ const classtable_elt_t VFT_ReduceAction418[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction418 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction418 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction418___action},
-  {(bigint) 2 /* 42: ReduceAction418 < ReduceAction418: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction418 < ReduceAction418: superclass init_table position */},
   {(bigint) parser___ReduceAction418___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction418(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction418(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction418;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction418(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction418;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction418___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction418();
-  parser___ReduceAction418___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction419[44] = {
-  {(bigint) 1079 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction419 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction419 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1079 /* 3: ReduceAction419 < ReduceAction419: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction418(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction418;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction418_parser___ReduceAction418___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19892;
+  fra.me.meth = LOCATE_NEW_ReduceAction418_parser___ReduceAction418___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction418();
+  /* ./parser//parser.nit:19892 */
+  INIT_ATTRIBUTES__ReduceAction418(fra.me.REG[0]);
+  parser___ReduceAction418___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction418(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction419[50] = {
+  {(bigint) 2851 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction419 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction419 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2851 /* 4: ReduceAction419 < ReduceAction419: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65673,14 +134914,12 @@ const classtable_elt_t VFT_ReduceAction419[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction419 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction419 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65688,7 +134927,6 @@ const classtable_elt_t VFT_ReduceAction419[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65696,33 +134934,81 @@ const classtable_elt_t VFT_ReduceAction419[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction419 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction419 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction419___action},
-  {(bigint) 2 /* 42: ReduceAction419 < ReduceAction419: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction419 < ReduceAction419: superclass init_table position */},
   {(bigint) parser___ReduceAction419___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction419(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction419(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction419;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction419(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction419;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction419___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction419();
-  parser___ReduceAction419___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction420[44] = {
-  {(bigint) 1071 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction420 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction420 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1071 /* 3: ReduceAction420 < ReduceAction420: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction419(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction419;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction419_parser___ReduceAction419___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19934;
+  fra.me.meth = LOCATE_NEW_ReduceAction419_parser___ReduceAction419___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction419();
+  /* ./parser//parser.nit:19934 */
+  INIT_ATTRIBUTES__ReduceAction419(fra.me.REG[0]);
+  parser___ReduceAction419___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction419(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction420[50] = {
+  {(bigint) 2843 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction420 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction420 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2843 /* 4: ReduceAction420 < ReduceAction420: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65732,14 +135018,12 @@ const classtable_elt_t VFT_ReduceAction420[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction420 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction420 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65747,7 +135031,6 @@ const classtable_elt_t VFT_ReduceAction420[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65755,33 +135038,81 @@ const classtable_elt_t VFT_ReduceAction420[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction420 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction420 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction420___action},
-  {(bigint) 2 /* 42: ReduceAction420 < ReduceAction420: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction420 < ReduceAction420: superclass init_table position */},
   {(bigint) parser___ReduceAction420___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction420(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction420(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction420;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction420(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction420;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction420___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction420();
-  parser___ReduceAction420___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction421[44] = {
-  {(bigint) 1067 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction421 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction421 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1067 /* 3: ReduceAction421 < ReduceAction421: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction420(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction420;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction420_parser___ReduceAction420___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 19976;
+  fra.me.meth = LOCATE_NEW_ReduceAction420_parser___ReduceAction420___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction420();
+  /* ./parser//parser.nit:19976 */
+  INIT_ATTRIBUTES__ReduceAction420(fra.me.REG[0]);
+  parser___ReduceAction420___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction420(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction421[50] = {
+  {(bigint) 2839 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction421 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction421 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2839 /* 4: ReduceAction421 < ReduceAction421: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65791,14 +135122,12 @@ const classtable_elt_t VFT_ReduceAction421[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction421 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction421 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65806,7 +135135,6 @@ const classtable_elt_t VFT_ReduceAction421[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65814,33 +135142,81 @@ const classtable_elt_t VFT_ReduceAction421[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction421 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction421 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction421___action},
-  {(bigint) 2 /* 42: ReduceAction421 < ReduceAction421: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction421 < ReduceAction421: superclass init_table position */},
   {(bigint) parser___ReduceAction421___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction421(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction421(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction421;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction421(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction421;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction421___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction421();
-  parser___ReduceAction421___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction422[44] = {
-  {(bigint) 1063 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction422 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction422 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1063 /* 3: ReduceAction422 < ReduceAction422: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction421(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction421;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction421_parser___ReduceAction421___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20018;
+  fra.me.meth = LOCATE_NEW_ReduceAction421_parser___ReduceAction421___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction421();
+  /* ./parser//parser.nit:20018 */
+  INIT_ATTRIBUTES__ReduceAction421(fra.me.REG[0]);
+  parser___ReduceAction421___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction421(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction422[50] = {
+  {(bigint) 2835 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction422 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction422 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2835 /* 4: ReduceAction422 < ReduceAction422: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65850,14 +135226,12 @@ const classtable_elt_t VFT_ReduceAction422[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction422 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction422 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65865,7 +135239,6 @@ const classtable_elt_t VFT_ReduceAction422[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65873,33 +135246,81 @@ const classtable_elt_t VFT_ReduceAction422[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction422 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction422 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction422___action},
-  {(bigint) 2 /* 42: ReduceAction422 < ReduceAction422: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction422 < ReduceAction422: superclass init_table position */},
   {(bigint) parser___ReduceAction422___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction422(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction422(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction422;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction422(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction422;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction422___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction422();
-  parser___ReduceAction422___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction423[44] = {
-  {(bigint) 1059 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction423 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction423 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1059 /* 3: ReduceAction423 < ReduceAction423: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction422(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction422;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction422_parser___ReduceAction422___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20060;
+  fra.me.meth = LOCATE_NEW_ReduceAction422_parser___ReduceAction422___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction422();
+  /* ./parser//parser.nit:20060 */
+  INIT_ATTRIBUTES__ReduceAction422(fra.me.REG[0]);
+  parser___ReduceAction422___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction422(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction423[50] = {
+  {(bigint) 2831 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction423 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction423 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2831 /* 4: ReduceAction423 < ReduceAction423: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65909,14 +135330,12 @@ const classtable_elt_t VFT_ReduceAction423[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction423 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction423 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65924,7 +135343,6 @@ const classtable_elt_t VFT_ReduceAction423[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65932,33 +135350,81 @@ const classtable_elt_t VFT_ReduceAction423[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction423 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction423 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction423___action},
-  {(bigint) 2 /* 42: ReduceAction423 < ReduceAction423: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction423 < ReduceAction423: superclass init_table position */},
   {(bigint) parser___ReduceAction423___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction423(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction423(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction423;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction423(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction423;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction423___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction423();
-  parser___ReduceAction423___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction424[44] = {
-  {(bigint) 1055 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction424 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction424 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1055 /* 3: ReduceAction424 < ReduceAction424: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction423(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction423;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction423_parser___ReduceAction423___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20102;
+  fra.me.meth = LOCATE_NEW_ReduceAction423_parser___ReduceAction423___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction423();
+  /* ./parser//parser.nit:20102 */
+  INIT_ATTRIBUTES__ReduceAction423(fra.me.REG[0]);
+  parser___ReduceAction423___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction423(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction424[50] = {
+  {(bigint) 2827 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction424 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction424 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2827 /* 4: ReduceAction424 < ReduceAction424: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65968,14 +135434,12 @@ const classtable_elt_t VFT_ReduceAction424[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction424 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction424 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -65983,7 +135447,6 @@ const classtable_elt_t VFT_ReduceAction424[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -65991,33 +135454,81 @@ const classtable_elt_t VFT_ReduceAction424[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction424 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction424 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction424___action},
-  {(bigint) 2 /* 42: ReduceAction424 < ReduceAction424: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction424 < ReduceAction424: superclass init_table position */},
   {(bigint) parser___ReduceAction424___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction424(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction424(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction424;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction424(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction424;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction424___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction424();
-  parser___ReduceAction424___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction425[44] = {
-  {(bigint) 1051 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction425 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction425 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1051 /* 3: ReduceAction425 < ReduceAction425: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction424(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction424;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction424_parser___ReduceAction424___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20144;
+  fra.me.meth = LOCATE_NEW_ReduceAction424_parser___ReduceAction424___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction424();
+  /* ./parser//parser.nit:20144 */
+  INIT_ATTRIBUTES__ReduceAction424(fra.me.REG[0]);
+  parser___ReduceAction424___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction424(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction425[50] = {
+  {(bigint) 2823 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction425 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction425 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2823 /* 4: ReduceAction425 < ReduceAction425: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66027,14 +135538,12 @@ const classtable_elt_t VFT_ReduceAction425[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction425 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction425 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66042,7 +135551,6 @@ const classtable_elt_t VFT_ReduceAction425[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66050,33 +135558,81 @@ const classtable_elt_t VFT_ReduceAction425[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction425 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction425 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction425___action},
-  {(bigint) 2 /* 42: ReduceAction425 < ReduceAction425: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction425 < ReduceAction425: superclass init_table position */},
   {(bigint) parser___ReduceAction425___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction425(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction425(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction425;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction425(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction425;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction425___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction425();
-  parser___ReduceAction425___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction426[44] = {
-  {(bigint) 1047 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction426 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction426 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1047 /* 3: ReduceAction426 < ReduceAction426: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction425(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction425;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction425_parser___ReduceAction425___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20186;
+  fra.me.meth = LOCATE_NEW_ReduceAction425_parser___ReduceAction425___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction425();
+  /* ./parser//parser.nit:20186 */
+  INIT_ATTRIBUTES__ReduceAction425(fra.me.REG[0]);
+  parser___ReduceAction425___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction425(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction426[50] = {
+  {(bigint) 2819 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction426 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction426 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2819 /* 4: ReduceAction426 < ReduceAction426: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66086,14 +135642,12 @@ const classtable_elt_t VFT_ReduceAction426[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction426 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction426 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66101,7 +135655,6 @@ const classtable_elt_t VFT_ReduceAction426[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66109,33 +135662,81 @@ const classtable_elt_t VFT_ReduceAction426[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction426 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction426 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction426___action},
-  {(bigint) 2 /* 42: ReduceAction426 < ReduceAction426: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction426 < ReduceAction426: superclass init_table position */},
   {(bigint) parser___ReduceAction426___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction426(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction426(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction426;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction426(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction426;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction426___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction426();
-  parser___ReduceAction426___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction427[44] = {
-  {(bigint) 1043 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction427 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction427 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1043 /* 3: ReduceAction427 < ReduceAction427: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction426(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction426;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction426_parser___ReduceAction426___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20228;
+  fra.me.meth = LOCATE_NEW_ReduceAction426_parser___ReduceAction426___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction426();
+  /* ./parser//parser.nit:20228 */
+  INIT_ATTRIBUTES__ReduceAction426(fra.me.REG[0]);
+  parser___ReduceAction426___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction426(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction427[50] = {
+  {(bigint) 2815 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction427 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction427 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2815 /* 4: ReduceAction427 < ReduceAction427: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66145,14 +135746,12 @@ const classtable_elt_t VFT_ReduceAction427[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction427 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction427 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66160,7 +135759,6 @@ const classtable_elt_t VFT_ReduceAction427[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66168,33 +135766,81 @@ const classtable_elt_t VFT_ReduceAction427[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction427 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction427 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction427___action},
-  {(bigint) 2 /* 42: ReduceAction427 < ReduceAction427: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction427 < ReduceAction427: superclass init_table position */},
   {(bigint) parser___ReduceAction427___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction427(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction427(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction427;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction427(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction427;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction427___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction427();
-  parser___ReduceAction427___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction428[44] = {
-  {(bigint) 1039 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction428 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction428 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1039 /* 3: ReduceAction428 < ReduceAction428: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction427(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction427;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction427_parser___ReduceAction427___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20270;
+  fra.me.meth = LOCATE_NEW_ReduceAction427_parser___ReduceAction427___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction427();
+  /* ./parser//parser.nit:20270 */
+  INIT_ATTRIBUTES__ReduceAction427(fra.me.REG[0]);
+  parser___ReduceAction427___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction427(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction428[50] = {
+  {(bigint) 2811 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction428 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction428 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2811 /* 4: ReduceAction428 < ReduceAction428: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66204,14 +135850,12 @@ const classtable_elt_t VFT_ReduceAction428[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction428 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction428 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66219,7 +135863,6 @@ const classtable_elt_t VFT_ReduceAction428[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66227,33 +135870,81 @@ const classtable_elt_t VFT_ReduceAction428[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction428 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction428 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction428___action},
-  {(bigint) 2 /* 42: ReduceAction428 < ReduceAction428: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction428 < ReduceAction428: superclass init_table position */},
   {(bigint) parser___ReduceAction428___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction428(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction428(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction428;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction428(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction428;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction428___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction428();
-  parser___ReduceAction428___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction429[44] = {
-  {(bigint) 1035 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction429 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction429 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1035 /* 3: ReduceAction429 < ReduceAction429: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction428(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction428;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction428_parser___ReduceAction428___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20312;
+  fra.me.meth = LOCATE_NEW_ReduceAction428_parser___ReduceAction428___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction428();
+  /* ./parser//parser.nit:20312 */
+  INIT_ATTRIBUTES__ReduceAction428(fra.me.REG[0]);
+  parser___ReduceAction428___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction428(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction429[50] = {
+  {(bigint) 2807 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction429 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction429 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2807 /* 4: ReduceAction429 < ReduceAction429: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66263,14 +135954,12 @@ const classtable_elt_t VFT_ReduceAction429[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction429 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction429 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66278,7 +135967,6 @@ const classtable_elt_t VFT_ReduceAction429[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66286,33 +135974,81 @@ const classtable_elt_t VFT_ReduceAction429[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction429 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction429 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction429___action},
-  {(bigint) 2 /* 42: ReduceAction429 < ReduceAction429: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction429 < ReduceAction429: superclass init_table position */},
   {(bigint) parser___ReduceAction429___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction429(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction429(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction429;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction429(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction429;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction429___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction429();
-  parser___ReduceAction429___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction430[44] = {
-  {(bigint) 1027 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction430 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction430 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1027 /* 3: ReduceAction430 < ReduceAction430: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction429(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction429;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction429_parser___ReduceAction429___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20354;
+  fra.me.meth = LOCATE_NEW_ReduceAction429_parser___ReduceAction429___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction429();
+  /* ./parser//parser.nit:20354 */
+  INIT_ATTRIBUTES__ReduceAction429(fra.me.REG[0]);
+  parser___ReduceAction429___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction429(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction430[50] = {
+  {(bigint) 2799 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction430 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction430 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2799 /* 4: ReduceAction430 < ReduceAction430: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66322,14 +136058,12 @@ const classtable_elt_t VFT_ReduceAction430[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction430 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction430 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66337,7 +136071,6 @@ const classtable_elt_t VFT_ReduceAction430[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66345,33 +136078,81 @@ const classtable_elt_t VFT_ReduceAction430[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction430 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction430 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction430___action},
-  {(bigint) 2 /* 42: ReduceAction430 < ReduceAction430: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction430 < ReduceAction430: superclass init_table position */},
   {(bigint) parser___ReduceAction430___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction430(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction430(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction430;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction430(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction430;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction430___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction430();
-  parser___ReduceAction430___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction431[44] = {
-  {(bigint) 1023 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction431 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction431 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1023 /* 3: ReduceAction431 < ReduceAction431: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction430(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction430;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction430_parser___ReduceAction430___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20400;
+  fra.me.meth = LOCATE_NEW_ReduceAction430_parser___ReduceAction430___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction430();
+  /* ./parser//parser.nit:20400 */
+  INIT_ATTRIBUTES__ReduceAction430(fra.me.REG[0]);
+  parser___ReduceAction430___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction430(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction431[50] = {
+  {(bigint) 2795 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction431 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction431 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2795 /* 4: ReduceAction431 < ReduceAction431: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66381,14 +136162,12 @@ const classtable_elt_t VFT_ReduceAction431[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction431 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction431 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66396,7 +136175,6 @@ const classtable_elt_t VFT_ReduceAction431[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66404,33 +136182,81 @@ const classtable_elt_t VFT_ReduceAction431[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction431 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction431 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction431___action},
-  {(bigint) 2 /* 42: ReduceAction431 < ReduceAction431: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction431 < ReduceAction431: superclass init_table position */},
   {(bigint) parser___ReduceAction431___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction431(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction431(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction431;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction431(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction431;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction431___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction431();
-  parser___ReduceAction431___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction432[44] = {
-  {(bigint) 1019 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction432 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction432 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1019 /* 3: ReduceAction432 < ReduceAction432: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction431(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction431;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction431_parser___ReduceAction431___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20442;
+  fra.me.meth = LOCATE_NEW_ReduceAction431_parser___ReduceAction431___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction431();
+  /* ./parser//parser.nit:20442 */
+  INIT_ATTRIBUTES__ReduceAction431(fra.me.REG[0]);
+  parser___ReduceAction431___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction431(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction432[50] = {
+  {(bigint) 2791 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction432 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction432 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2791 /* 4: ReduceAction432 < ReduceAction432: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66440,14 +136266,12 @@ const classtable_elt_t VFT_ReduceAction432[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction432 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction432 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66455,7 +136279,6 @@ const classtable_elt_t VFT_ReduceAction432[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66463,33 +136286,81 @@ const classtable_elt_t VFT_ReduceAction432[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction432 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction432 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction432___action},
-  {(bigint) 2 /* 42: ReduceAction432 < ReduceAction432: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction432 < ReduceAction432: superclass init_table position */},
   {(bigint) parser___ReduceAction432___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction432(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction432(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction432;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction432(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction432;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction432___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction432();
-  parser___ReduceAction432___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction433[44] = {
-  {(bigint) 1015 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction433 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction433 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1015 /* 3: ReduceAction433 < ReduceAction433: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction432(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction432;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction432_parser___ReduceAction432___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20488;
+  fra.me.meth = LOCATE_NEW_ReduceAction432_parser___ReduceAction432___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction432();
+  /* ./parser//parser.nit:20488 */
+  INIT_ATTRIBUTES__ReduceAction432(fra.me.REG[0]);
+  parser___ReduceAction432___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction432(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction433[50] = {
+  {(bigint) 2787 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction433 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction433 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2787 /* 4: ReduceAction433 < ReduceAction433: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66499,14 +136370,12 @@ const classtable_elt_t VFT_ReduceAction433[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction433 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction433 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66514,7 +136383,6 @@ const classtable_elt_t VFT_ReduceAction433[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66522,33 +136390,81 @@ const classtable_elt_t VFT_ReduceAction433[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction433 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction433 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction433___action},
-  {(bigint) 2 /* 42: ReduceAction433 < ReduceAction433: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction433 < ReduceAction433: superclass init_table position */},
   {(bigint) parser___ReduceAction433___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction433(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction433(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction433;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction433(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction433;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction433___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction433();
-  parser___ReduceAction433___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction434[44] = {
-  {(bigint) 1011 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction434 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction434 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1011 /* 3: ReduceAction434 < ReduceAction434: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction433(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction433;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction433_parser___ReduceAction433___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20538;
+  fra.me.meth = LOCATE_NEW_ReduceAction433_parser___ReduceAction433___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction433();
+  /* ./parser//parser.nit:20538 */
+  INIT_ATTRIBUTES__ReduceAction433(fra.me.REG[0]);
+  parser___ReduceAction433___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction433(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction434[50] = {
+  {(bigint) 2783 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction434 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction434 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2783 /* 4: ReduceAction434 < ReduceAction434: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66558,14 +136474,12 @@ const classtable_elt_t VFT_ReduceAction434[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction434 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction434 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66573,7 +136487,6 @@ const classtable_elt_t VFT_ReduceAction434[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66581,33 +136494,81 @@ const classtable_elt_t VFT_ReduceAction434[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction434 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction434 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction434___action},
-  {(bigint) 2 /* 42: ReduceAction434 < ReduceAction434: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction434 < ReduceAction434: superclass init_table position */},
   {(bigint) parser___ReduceAction434___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction434(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction434(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction434;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction434(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction434;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction434___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction434();
-  parser___ReduceAction434___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction435[44] = {
-  {(bigint) 1007 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction435 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction435 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1007 /* 3: ReduceAction435 < ReduceAction435: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction434(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction434;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction434_parser___ReduceAction434___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20583;
+  fra.me.meth = LOCATE_NEW_ReduceAction434_parser___ReduceAction434___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction434();
+  /* ./parser//parser.nit:20583 */
+  INIT_ATTRIBUTES__ReduceAction434(fra.me.REG[0]);
+  parser___ReduceAction434___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction434(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction435[50] = {
+  {(bigint) 2779 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction435 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction435 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2779 /* 4: ReduceAction435 < ReduceAction435: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66617,14 +136578,12 @@ const classtable_elt_t VFT_ReduceAction435[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction435 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction435 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66632,7 +136591,6 @@ const classtable_elt_t VFT_ReduceAction435[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66640,33 +136598,81 @@ const classtable_elt_t VFT_ReduceAction435[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction435 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction435 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction435___action},
-  {(bigint) 2 /* 42: ReduceAction435 < ReduceAction435: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction435 < ReduceAction435: superclass init_table position */},
   {(bigint) parser___ReduceAction435___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction435(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction435(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction435;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction435(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction435;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction435___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction435();
-  parser___ReduceAction435___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction436[44] = {
-  {(bigint) 1003 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction436 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction436 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1003 /* 3: ReduceAction436 < ReduceAction436: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction435(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction435;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction435_parser___ReduceAction435___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20628;
+  fra.me.meth = LOCATE_NEW_ReduceAction435_parser___ReduceAction435___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction435();
+  /* ./parser//parser.nit:20628 */
+  INIT_ATTRIBUTES__ReduceAction435(fra.me.REG[0]);
+  parser___ReduceAction435___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction435(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction436[50] = {
+  {(bigint) 2775 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction436 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction436 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2775 /* 4: ReduceAction436 < ReduceAction436: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66676,14 +136682,12 @@ const classtable_elt_t VFT_ReduceAction436[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction436 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction436 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66691,7 +136695,6 @@ const classtable_elt_t VFT_ReduceAction436[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66699,33 +136702,81 @@ const classtable_elt_t VFT_ReduceAction436[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction436 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction436 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction436___action},
-  {(bigint) 2 /* 42: ReduceAction436 < ReduceAction436: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction436 < ReduceAction436: superclass init_table position */},
   {(bigint) parser___ReduceAction436___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction436(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction436(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction436;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction436(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction436;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction436___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction436();
-  parser___ReduceAction436___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction437[44] = {
-  {(bigint) 999 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction437 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction437 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 999 /* 3: ReduceAction437 < ReduceAction437: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction436(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction436;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction436_parser___ReduceAction436___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20673;
+  fra.me.meth = LOCATE_NEW_ReduceAction436_parser___ReduceAction436___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction436();
+  /* ./parser//parser.nit:20673 */
+  INIT_ATTRIBUTES__ReduceAction436(fra.me.REG[0]);
+  parser___ReduceAction436___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction436(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction437[50] = {
+  {(bigint) 2771 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction437 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction437 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2771 /* 4: ReduceAction437 < ReduceAction437: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66735,14 +136786,12 @@ const classtable_elt_t VFT_ReduceAction437[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction437 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction437 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66750,7 +136799,6 @@ const classtable_elt_t VFT_ReduceAction437[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66758,33 +136806,81 @@ const classtable_elt_t VFT_ReduceAction437[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction437 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction437 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction437___action},
-  {(bigint) 2 /* 42: ReduceAction437 < ReduceAction437: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction437 < ReduceAction437: superclass init_table position */},
   {(bigint) parser___ReduceAction437___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction437(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction437(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction437;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction437(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction437;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction437___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction437();
-  parser___ReduceAction437___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction438[44] = {
-  {(bigint) 995 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction438 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction438 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 995 /* 3: ReduceAction438 < ReduceAction438: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction437(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction437;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction437_parser___ReduceAction437___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20718;
+  fra.me.meth = LOCATE_NEW_ReduceAction437_parser___ReduceAction437___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction437();
+  /* ./parser//parser.nit:20718 */
+  INIT_ATTRIBUTES__ReduceAction437(fra.me.REG[0]);
+  parser___ReduceAction437___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction437(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction438[50] = {
+  {(bigint) 2767 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction438 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction438 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2767 /* 4: ReduceAction438 < ReduceAction438: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66794,14 +136890,12 @@ const classtable_elt_t VFT_ReduceAction438[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction438 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction438 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66809,7 +136903,6 @@ const classtable_elt_t VFT_ReduceAction438[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66817,33 +136910,81 @@ const classtable_elt_t VFT_ReduceAction438[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction438 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction438 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction438___action},
-  {(bigint) 2 /* 42: ReduceAction438 < ReduceAction438: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction438 < ReduceAction438: superclass init_table position */},
   {(bigint) parser___ReduceAction438___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction438(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction438(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction438;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction438(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction438;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction438___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction438();
-  parser___ReduceAction438___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction439[44] = {
-  {(bigint) 991 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction439 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction439 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 991 /* 3: ReduceAction439 < ReduceAction439: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction438(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction438;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction438_parser___ReduceAction438___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20763;
+  fra.me.meth = LOCATE_NEW_ReduceAction438_parser___ReduceAction438___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction438();
+  /* ./parser//parser.nit:20763 */
+  INIT_ATTRIBUTES__ReduceAction438(fra.me.REG[0]);
+  parser___ReduceAction438___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction438(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction439[50] = {
+  {(bigint) 2763 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction439 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction439 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2763 /* 4: ReduceAction439 < ReduceAction439: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66853,14 +136994,12 @@ const classtable_elt_t VFT_ReduceAction439[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction439 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction439 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66868,7 +137007,6 @@ const classtable_elt_t VFT_ReduceAction439[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66876,33 +137014,81 @@ const classtable_elt_t VFT_ReduceAction439[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction439 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction439 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction439___action},
-  {(bigint) 2 /* 42: ReduceAction439 < ReduceAction439: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction439 < ReduceAction439: superclass init_table position */},
   {(bigint) parser___ReduceAction439___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction439(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction439(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction439;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction439(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction439;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction439___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction439();
-  parser___ReduceAction439___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction440[44] = {
-  {(bigint) 983 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction440 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction440 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 983 /* 3: ReduceAction440 < ReduceAction440: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction439(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction439;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction439_parser___ReduceAction439___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20808;
+  fra.me.meth = LOCATE_NEW_ReduceAction439_parser___ReduceAction439___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction439();
+  /* ./parser//parser.nit:20808 */
+  INIT_ATTRIBUTES__ReduceAction439(fra.me.REG[0]);
+  parser___ReduceAction439___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction439(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction440[50] = {
+  {(bigint) 2755 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction440 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction440 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2755 /* 4: ReduceAction440 < ReduceAction440: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66912,14 +137098,12 @@ const classtable_elt_t VFT_ReduceAction440[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction440 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction440 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66927,7 +137111,6 @@ const classtable_elt_t VFT_ReduceAction440[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66935,33 +137118,81 @@ const classtable_elt_t VFT_ReduceAction440[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction440 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction440 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction440___action},
-  {(bigint) 2 /* 42: ReduceAction440 < ReduceAction440: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction440 < ReduceAction440: superclass init_table position */},
   {(bigint) parser___ReduceAction440___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction440(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction440(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction440;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction440(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction440;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction440___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction440();
-  parser___ReduceAction440___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction441[44] = {
-  {(bigint) 979 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction441 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction441 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 979 /* 3: ReduceAction441 < ReduceAction441: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction440(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction440;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction440_parser___ReduceAction440___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20853;
+  fra.me.meth = LOCATE_NEW_ReduceAction440_parser___ReduceAction440___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction440();
+  /* ./parser//parser.nit:20853 */
+  INIT_ATTRIBUTES__ReduceAction440(fra.me.REG[0]);
+  parser___ReduceAction440___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction440(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction441[50] = {
+  {(bigint) 2751 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction441 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction441 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2751 /* 4: ReduceAction441 < ReduceAction441: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66971,14 +137202,12 @@ const classtable_elt_t VFT_ReduceAction441[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction441 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction441 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -66986,7 +137215,6 @@ const classtable_elt_t VFT_ReduceAction441[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -66994,33 +137222,81 @@ const classtable_elt_t VFT_ReduceAction441[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction441 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction441 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction441___action},
-  {(bigint) 2 /* 42: ReduceAction441 < ReduceAction441: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction441 < ReduceAction441: superclass init_table position */},
   {(bigint) parser___ReduceAction441___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction441(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction441(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction441;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction441(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction441;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction441___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction441();
-  parser___ReduceAction441___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction442[44] = {
-  {(bigint) 975 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction442 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction442 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 975 /* 3: ReduceAction442 < ReduceAction442: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction441(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction441;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction441_parser___ReduceAction441___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20898;
+  fra.me.meth = LOCATE_NEW_ReduceAction441_parser___ReduceAction441___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction441();
+  /* ./parser//parser.nit:20898 */
+  INIT_ATTRIBUTES__ReduceAction441(fra.me.REG[0]);
+  parser___ReduceAction441___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction441(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction442[50] = {
+  {(bigint) 2747 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction442 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction442 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2747 /* 4: ReduceAction442 < ReduceAction442: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67030,14 +137306,12 @@ const classtable_elt_t VFT_ReduceAction442[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction442 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction442 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67045,7 +137319,6 @@ const classtable_elt_t VFT_ReduceAction442[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67053,33 +137326,81 @@ const classtable_elt_t VFT_ReduceAction442[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction442 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction442 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction442___action},
-  {(bigint) 2 /* 42: ReduceAction442 < ReduceAction442: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction442 < ReduceAction442: superclass init_table position */},
   {(bigint) parser___ReduceAction442___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction442(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction442(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction442;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction442(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction442;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction442___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction442();
-  parser___ReduceAction442___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction443[44] = {
-  {(bigint) 971 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction443 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction443 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 971 /* 3: ReduceAction443 < ReduceAction443: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction442(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction442;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction442_parser___ReduceAction442___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20943;
+  fra.me.meth = LOCATE_NEW_ReduceAction442_parser___ReduceAction442___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction442();
+  /* ./parser//parser.nit:20943 */
+  INIT_ATTRIBUTES__ReduceAction442(fra.me.REG[0]);
+  parser___ReduceAction442___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction442(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction443[50] = {
+  {(bigint) 2743 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction443 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction443 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2743 /* 4: ReduceAction443 < ReduceAction443: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67089,14 +137410,12 @@ const classtable_elt_t VFT_ReduceAction443[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction443 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction443 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67104,7 +137423,6 @@ const classtable_elt_t VFT_ReduceAction443[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67112,33 +137430,81 @@ const classtable_elt_t VFT_ReduceAction443[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction443 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction443 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction443___action},
-  {(bigint) 2 /* 42: ReduceAction443 < ReduceAction443: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction443 < ReduceAction443: superclass init_table position */},
   {(bigint) parser___ReduceAction443___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction443(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction443(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction443;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction443(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction443;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction443___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction443();
-  parser___ReduceAction443___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction444[44] = {
-  {(bigint) 967 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction444 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction444 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 967 /* 3: ReduceAction444 < ReduceAction444: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction443(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction443;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction443_parser___ReduceAction443___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 20988;
+  fra.me.meth = LOCATE_NEW_ReduceAction443_parser___ReduceAction443___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction443();
+  /* ./parser//parser.nit:20988 */
+  INIT_ATTRIBUTES__ReduceAction443(fra.me.REG[0]);
+  parser___ReduceAction443___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction443(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction444[50] = {
+  {(bigint) 2739 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction444 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction444 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2739 /* 4: ReduceAction444 < ReduceAction444: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67148,14 +137514,12 @@ const classtable_elt_t VFT_ReduceAction444[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction444 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction444 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67163,7 +137527,6 @@ const classtable_elt_t VFT_ReduceAction444[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67171,33 +137534,81 @@ const classtable_elt_t VFT_ReduceAction444[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction444 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction444 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction444___action},
-  {(bigint) 2 /* 42: ReduceAction444 < ReduceAction444: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction444 < ReduceAction444: superclass init_table position */},
   {(bigint) parser___ReduceAction444___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction444(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction444(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction444;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction444(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction444;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction444___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction444();
-  parser___ReduceAction444___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction445[44] = {
-  {(bigint) 963 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction445 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction445 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 963 /* 3: ReduceAction445 < ReduceAction445: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction444(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction444;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction444_parser___ReduceAction444___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21033;
+  fra.me.meth = LOCATE_NEW_ReduceAction444_parser___ReduceAction444___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction444();
+  /* ./parser//parser.nit:21033 */
+  INIT_ATTRIBUTES__ReduceAction444(fra.me.REG[0]);
+  parser___ReduceAction444___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction444(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction445[50] = {
+  {(bigint) 2735 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction445 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction445 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2735 /* 4: ReduceAction445 < ReduceAction445: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67207,14 +137618,12 @@ const classtable_elt_t VFT_ReduceAction445[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction445 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction445 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67222,7 +137631,6 @@ const classtable_elt_t VFT_ReduceAction445[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67230,33 +137638,81 @@ const classtable_elt_t VFT_ReduceAction445[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction445 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction445 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction445___action},
-  {(bigint) 2 /* 42: ReduceAction445 < ReduceAction445: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction445 < ReduceAction445: superclass init_table position */},
   {(bigint) parser___ReduceAction445___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction445(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction445(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction445;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction445(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction445;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction445___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction445();
-  parser___ReduceAction445___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction446[44] = {
-  {(bigint) 959 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction446 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction446 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 959 /* 3: ReduceAction446 < ReduceAction446: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction445(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction445;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction445_parser___ReduceAction445___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21078;
+  fra.me.meth = LOCATE_NEW_ReduceAction445_parser___ReduceAction445___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction445();
+  /* ./parser//parser.nit:21078 */
+  INIT_ATTRIBUTES__ReduceAction445(fra.me.REG[0]);
+  parser___ReduceAction445___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction445(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction446[50] = {
+  {(bigint) 2731 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction446 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction446 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2731 /* 4: ReduceAction446 < ReduceAction446: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67266,14 +137722,12 @@ const classtable_elt_t VFT_ReduceAction446[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction446 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction446 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67281,7 +137735,6 @@ const classtable_elt_t VFT_ReduceAction446[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67289,33 +137742,81 @@ const classtable_elt_t VFT_ReduceAction446[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction446 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction446 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction446___action},
-  {(bigint) 2 /* 42: ReduceAction446 < ReduceAction446: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction446 < ReduceAction446: superclass init_table position */},
   {(bigint) parser___ReduceAction446___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction446(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction446(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction446;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction446(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction446;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction446___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction446();
-  parser___ReduceAction446___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction447[44] = {
-  {(bigint) 955 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction447 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction447 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 955 /* 3: ReduceAction447 < ReduceAction447: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction446(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction446;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction446_parser___ReduceAction446___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21127;
+  fra.me.meth = LOCATE_NEW_ReduceAction446_parser___ReduceAction446___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction446();
+  /* ./parser//parser.nit:21127 */
+  INIT_ATTRIBUTES__ReduceAction446(fra.me.REG[0]);
+  parser___ReduceAction446___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction446(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction447[50] = {
+  {(bigint) 2727 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction447 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction447 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2727 /* 4: ReduceAction447 < ReduceAction447: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67325,14 +137826,12 @@ const classtable_elt_t VFT_ReduceAction447[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction447 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction447 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67340,7 +137839,6 @@ const classtable_elt_t VFT_ReduceAction447[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67348,33 +137846,81 @@ const classtable_elt_t VFT_ReduceAction447[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction447 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction447 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction447___action},
-  {(bigint) 2 /* 42: ReduceAction447 < ReduceAction447: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction447 < ReduceAction447: superclass init_table position */},
   {(bigint) parser___ReduceAction447___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction447(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction447(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction447;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction447(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction447;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction447___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction447();
-  parser___ReduceAction447___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction448[44] = {
-  {(bigint) 951 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction448 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction448 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 951 /* 3: ReduceAction448 < ReduceAction448: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction447(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction447;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction447_parser___ReduceAction447___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21172;
+  fra.me.meth = LOCATE_NEW_ReduceAction447_parser___ReduceAction447___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction447();
+  /* ./parser//parser.nit:21172 */
+  INIT_ATTRIBUTES__ReduceAction447(fra.me.REG[0]);
+  parser___ReduceAction447___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction447(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction448[50] = {
+  {(bigint) 2723 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction448 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction448 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2723 /* 4: ReduceAction448 < ReduceAction448: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67384,14 +137930,12 @@ const classtable_elt_t VFT_ReduceAction448[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction448 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction448 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67399,7 +137943,6 @@ const classtable_elt_t VFT_ReduceAction448[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67407,33 +137950,81 @@ const classtable_elt_t VFT_ReduceAction448[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction448 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction448 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction448___action},
-  {(bigint) 2 /* 42: ReduceAction448 < ReduceAction448: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction448 < ReduceAction448: superclass init_table position */},
   {(bigint) parser___ReduceAction448___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction448(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction448(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction448;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction448(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction448;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction448___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction448();
-  parser___ReduceAction448___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction449[44] = {
-  {(bigint) 947 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction449 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction449 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 947 /* 3: ReduceAction449 < ReduceAction449: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction448(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction448;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction448_parser___ReduceAction448___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21221;
+  fra.me.meth = LOCATE_NEW_ReduceAction448_parser___ReduceAction448___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction448();
+  /* ./parser//parser.nit:21221 */
+  INIT_ATTRIBUTES__ReduceAction448(fra.me.REG[0]);
+  parser___ReduceAction448___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction448(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction449[50] = {
+  {(bigint) 2719 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction449 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction449 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2719 /* 4: ReduceAction449 < ReduceAction449: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67443,14 +138034,12 @@ const classtable_elt_t VFT_ReduceAction449[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction449 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction449 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67458,7 +138047,6 @@ const classtable_elt_t VFT_ReduceAction449[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67466,33 +138054,81 @@ const classtable_elt_t VFT_ReduceAction449[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction449 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction449 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction449___action},
-  {(bigint) 2 /* 42: ReduceAction449 < ReduceAction449: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction449 < ReduceAction449: superclass init_table position */},
   {(bigint) parser___ReduceAction449___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction449(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction449(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction449;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction449(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction449;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction449___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction449();
-  parser___ReduceAction449___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction450[44] = {
-  {(bigint) 939 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction450 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction450 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 939 /* 3: ReduceAction450 < ReduceAction450: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction449(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction449;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction449_parser___ReduceAction449___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21274;
+  fra.me.meth = LOCATE_NEW_ReduceAction449_parser___ReduceAction449___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction449();
+  /* ./parser//parser.nit:21274 */
+  INIT_ATTRIBUTES__ReduceAction449(fra.me.REG[0]);
+  parser___ReduceAction449___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction449(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction450[50] = {
+  {(bigint) 2711 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction450 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction450 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2711 /* 4: ReduceAction450 < ReduceAction450: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67502,14 +138138,12 @@ const classtable_elt_t VFT_ReduceAction450[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction450 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction450 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67517,7 +138151,6 @@ const classtable_elt_t VFT_ReduceAction450[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67525,33 +138158,81 @@ const classtable_elt_t VFT_ReduceAction450[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction450 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction450 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction450___action},
-  {(bigint) 2 /* 42: ReduceAction450 < ReduceAction450: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction450 < ReduceAction450: superclass init_table position */},
   {(bigint) parser___ReduceAction450___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction450(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction450(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction450;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction450(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction450;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction450___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction450();
-  parser___ReduceAction450___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction451[44] = {
-  {(bigint) 935 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction451 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction451 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 935 /* 3: ReduceAction451 < ReduceAction451: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction450(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction450;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction450_parser___ReduceAction450___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21307;
+  fra.me.meth = LOCATE_NEW_ReduceAction450_parser___ReduceAction450___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction450();
+  /* ./parser//parser.nit:21307 */
+  INIT_ATTRIBUTES__ReduceAction450(fra.me.REG[0]);
+  parser___ReduceAction450___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction450(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction451[50] = {
+  {(bigint) 2707 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction451 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction451 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2707 /* 4: ReduceAction451 < ReduceAction451: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67561,14 +138242,12 @@ const classtable_elt_t VFT_ReduceAction451[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction451 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction451 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67576,7 +138255,6 @@ const classtable_elt_t VFT_ReduceAction451[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67584,33 +138262,81 @@ const classtable_elt_t VFT_ReduceAction451[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction451 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction451 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction451___action},
-  {(bigint) 2 /* 42: ReduceAction451 < ReduceAction451: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction451 < ReduceAction451: superclass init_table position */},
   {(bigint) parser___ReduceAction451___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction451(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction451(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction451;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction451(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction451;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction451___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction451();
-  parser___ReduceAction451___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction452[44] = {
-  {(bigint) 931 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction452 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction452 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 931 /* 3: ReduceAction452 < ReduceAction452: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction451(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction451;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction451_parser___ReduceAction451___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21343;
+  fra.me.meth = LOCATE_NEW_ReduceAction451_parser___ReduceAction451___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction451();
+  /* ./parser//parser.nit:21343 */
+  INIT_ATTRIBUTES__ReduceAction451(fra.me.REG[0]);
+  parser___ReduceAction451___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction451(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction452[50] = {
+  {(bigint) 2703 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction452 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction452 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2703 /* 4: ReduceAction452 < ReduceAction452: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67620,14 +138346,12 @@ const classtable_elt_t VFT_ReduceAction452[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction452 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction452 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67635,7 +138359,6 @@ const classtable_elt_t VFT_ReduceAction452[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67643,33 +138366,81 @@ const classtable_elt_t VFT_ReduceAction452[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction452 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction452 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction452___action},
-  {(bigint) 2 /* 42: ReduceAction452 < ReduceAction452: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction452 < ReduceAction452: superclass init_table position */},
   {(bigint) parser___ReduceAction452___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction452(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction452(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction452;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction452(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction452;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction452___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction452();
-  parser___ReduceAction452___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction453[44] = {
-  {(bigint) 927 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction453 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction453 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 927 /* 3: ReduceAction453 < ReduceAction453: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction452(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction452;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction452_parser___ReduceAction452___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21355;
+  fra.me.meth = LOCATE_NEW_ReduceAction452_parser___ReduceAction452___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction452();
+  /* ./parser//parser.nit:21355 */
+  INIT_ATTRIBUTES__ReduceAction452(fra.me.REG[0]);
+  parser___ReduceAction452___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction452(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction453[50] = {
+  {(bigint) 2699 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction453 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction453 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2699 /* 4: ReduceAction453 < ReduceAction453: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67679,14 +138450,12 @@ const classtable_elt_t VFT_ReduceAction453[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction453 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction453 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67694,7 +138463,6 @@ const classtable_elt_t VFT_ReduceAction453[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67702,33 +138470,81 @@ const classtable_elt_t VFT_ReduceAction453[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction453 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction453 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction453___action},
-  {(bigint) 2 /* 42: ReduceAction453 < ReduceAction453: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction453 < ReduceAction453: superclass init_table position */},
   {(bigint) parser___ReduceAction453___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction453(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction453(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction453;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction453(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction453;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction453___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction453();
-  parser___ReduceAction453___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction454[44] = {
-  {(bigint) 923 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction454 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction454 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 923 /* 3: ReduceAction454 < ReduceAction454: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction453(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction453;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction453_parser___ReduceAction453___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21372;
+  fra.me.meth = LOCATE_NEW_ReduceAction453_parser___ReduceAction453___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction453();
+  /* ./parser//parser.nit:21372 */
+  INIT_ATTRIBUTES__ReduceAction453(fra.me.REG[0]);
+  parser___ReduceAction453___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction453(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction454[50] = {
+  {(bigint) 2695 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction454 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction454 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2695 /* 4: ReduceAction454 < ReduceAction454: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67738,14 +138554,12 @@ const classtable_elt_t VFT_ReduceAction454[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction454 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction454 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67753,7 +138567,6 @@ const classtable_elt_t VFT_ReduceAction454[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67761,33 +138574,81 @@ const classtable_elt_t VFT_ReduceAction454[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction454 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction454 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction454___action},
-  {(bigint) 2 /* 42: ReduceAction454 < ReduceAction454: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction454 < ReduceAction454: superclass init_table position */},
   {(bigint) parser___ReduceAction454___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction454(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction454(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction454;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction454(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction454;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction454___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction454();
-  parser___ReduceAction454___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction455[44] = {
-  {(bigint) 919 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction455 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction455 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 919 /* 3: ReduceAction455 < ReduceAction455: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction454(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction454;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction454_parser___ReduceAction454___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21389;
+  fra.me.meth = LOCATE_NEW_ReduceAction454_parser___ReduceAction454___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction454();
+  /* ./parser//parser.nit:21389 */
+  INIT_ATTRIBUTES__ReduceAction454(fra.me.REG[0]);
+  parser___ReduceAction454___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction454(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction455[50] = {
+  {(bigint) 2691 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction455 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction455 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2691 /* 4: ReduceAction455 < ReduceAction455: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67797,14 +138658,12 @@ const classtable_elt_t VFT_ReduceAction455[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction455 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction455 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67812,7 +138671,6 @@ const classtable_elt_t VFT_ReduceAction455[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67820,33 +138678,81 @@ const classtable_elt_t VFT_ReduceAction455[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction455 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction455 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction455___action},
-  {(bigint) 2 /* 42: ReduceAction455 < ReduceAction455: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction455 < ReduceAction455: superclass init_table position */},
   {(bigint) parser___ReduceAction455___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction455(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction455(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction455;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction455(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction455;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction455___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction455();
-  parser___ReduceAction455___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction456[44] = {
-  {(bigint) 915 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction456 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction456 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 915 /* 3: ReduceAction456 < ReduceAction456: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction455(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction455;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction455_parser___ReduceAction455___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21406;
+  fra.me.meth = LOCATE_NEW_ReduceAction455_parser___ReduceAction455___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction455();
+  /* ./parser//parser.nit:21406 */
+  INIT_ATTRIBUTES__ReduceAction455(fra.me.REG[0]);
+  parser___ReduceAction455___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction455(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction456[50] = {
+  {(bigint) 2687 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction456 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction456 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2687 /* 4: ReduceAction456 < ReduceAction456: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67856,14 +138762,12 @@ const classtable_elt_t VFT_ReduceAction456[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction456 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction456 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67871,7 +138775,6 @@ const classtable_elt_t VFT_ReduceAction456[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67879,33 +138782,81 @@ const classtable_elt_t VFT_ReduceAction456[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction456 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction456 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction456___action},
-  {(bigint) 2 /* 42: ReduceAction456 < ReduceAction456: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction456 < ReduceAction456: superclass init_table position */},
   {(bigint) parser___ReduceAction456___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction456(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction456(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction456;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction456(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction456;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction456___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction456();
-  parser___ReduceAction456___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction457[44] = {
-  {(bigint) 911 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction457 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction457 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 911 /* 3: ReduceAction457 < ReduceAction457: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction456(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction456;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction456_parser___ReduceAction456___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21436;
+  fra.me.meth = LOCATE_NEW_ReduceAction456_parser___ReduceAction456___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction456();
+  /* ./parser//parser.nit:21436 */
+  INIT_ATTRIBUTES__ReduceAction456(fra.me.REG[0]);
+  parser___ReduceAction456___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction456(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction457[50] = {
+  {(bigint) 2683 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction457 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction457 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2683 /* 4: ReduceAction457 < ReduceAction457: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67915,14 +138866,12 @@ const classtable_elt_t VFT_ReduceAction457[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction457 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction457 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67930,7 +138879,6 @@ const classtable_elt_t VFT_ReduceAction457[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67938,33 +138886,81 @@ const classtable_elt_t VFT_ReduceAction457[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction457 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction457 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction457___action},
-  {(bigint) 2 /* 42: ReduceAction457 < ReduceAction457: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction457 < ReduceAction457: superclass init_table position */},
   {(bigint) parser___ReduceAction457___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction457(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction457(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction457;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction457(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction457;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction457___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction457();
-  parser___ReduceAction457___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction458[44] = {
-  {(bigint) 907 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction458 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction458 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 907 /* 3: ReduceAction458 < ReduceAction458: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction457(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction457;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction457_parser___ReduceAction457___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21476;
+  fra.me.meth = LOCATE_NEW_ReduceAction457_parser___ReduceAction457___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction457();
+  /* ./parser//parser.nit:21476 */
+  INIT_ATTRIBUTES__ReduceAction457(fra.me.REG[0]);
+  parser___ReduceAction457___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction457(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction458[50] = {
+  {(bigint) 2679 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction458 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction458 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2679 /* 4: ReduceAction458 < ReduceAction458: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67974,14 +138970,12 @@ const classtable_elt_t VFT_ReduceAction458[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction458 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction458 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -67989,7 +138983,6 @@ const classtable_elt_t VFT_ReduceAction458[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -67997,33 +138990,81 @@ const classtable_elt_t VFT_ReduceAction458[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction458 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction458 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction458___action},
-  {(bigint) 2 /* 42: ReduceAction458 < ReduceAction458: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction458 < ReduceAction458: superclass init_table position */},
   {(bigint) parser___ReduceAction458___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction458(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction458(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction458;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction458(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction458;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction458___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction458();
-  parser___ReduceAction458___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction459[44] = {
-  {(bigint) 903 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction459 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction459 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 903 /* 3: ReduceAction459 < ReduceAction459: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction458(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction458;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction458_parser___ReduceAction458___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21497;
+  fra.me.meth = LOCATE_NEW_ReduceAction458_parser___ReduceAction458___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction458();
+  /* ./parser//parser.nit:21497 */
+  INIT_ATTRIBUTES__ReduceAction458(fra.me.REG[0]);
+  parser___ReduceAction458___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction458(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction459[50] = {
+  {(bigint) 2675 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction459 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction459 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2675 /* 4: ReduceAction459 < ReduceAction459: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68033,14 +139074,12 @@ const classtable_elt_t VFT_ReduceAction459[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction459 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction459 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68048,7 +139087,6 @@ const classtable_elt_t VFT_ReduceAction459[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68056,33 +139094,81 @@ const classtable_elt_t VFT_ReduceAction459[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction459 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction459 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction459___action},
-  {(bigint) 2 /* 42: ReduceAction459 < ReduceAction459: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction459 < ReduceAction459: superclass init_table position */},
   {(bigint) parser___ReduceAction459___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction459(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction459(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction459;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction459(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction459;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction459___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction459();
-  parser___ReduceAction459___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction460[44] = {
-  {(bigint) 895 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction460 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction460 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 895 /* 3: ReduceAction460 < ReduceAction460: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction459(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction459;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction459_parser___ReduceAction459___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21528;
+  fra.me.meth = LOCATE_NEW_ReduceAction459_parser___ReduceAction459___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction459();
+  /* ./parser//parser.nit:21528 */
+  INIT_ATTRIBUTES__ReduceAction459(fra.me.REG[0]);
+  parser___ReduceAction459___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction459(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction460[50] = {
+  {(bigint) 2667 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction460 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction460 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2667 /* 4: ReduceAction460 < ReduceAction460: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68092,14 +139178,12 @@ const classtable_elt_t VFT_ReduceAction460[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction460 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction460 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68107,7 +139191,6 @@ const classtable_elt_t VFT_ReduceAction460[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68115,33 +139198,81 @@ const classtable_elt_t VFT_ReduceAction460[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction460 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction460 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction460___action},
-  {(bigint) 2 /* 42: ReduceAction460 < ReduceAction460: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction460 < ReduceAction460: superclass init_table position */},
   {(bigint) parser___ReduceAction460___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction460(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction460(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction460;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction460(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction460;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction460___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction460();
-  parser___ReduceAction460___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction461[44] = {
-  {(bigint) 891 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction461 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction461 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 891 /* 3: ReduceAction461 < ReduceAction461: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction460(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction460;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction460_parser___ReduceAction460___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21555;
+  fra.me.meth = LOCATE_NEW_ReduceAction460_parser___ReduceAction460___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction460();
+  /* ./parser//parser.nit:21555 */
+  INIT_ATTRIBUTES__ReduceAction460(fra.me.REG[0]);
+  parser___ReduceAction460___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction460(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction461[50] = {
+  {(bigint) 2663 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction461 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction461 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2663 /* 4: ReduceAction461 < ReduceAction461: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68151,14 +139282,12 @@ const classtable_elt_t VFT_ReduceAction461[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction461 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction461 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68166,7 +139295,6 @@ const classtable_elt_t VFT_ReduceAction461[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68174,33 +139302,81 @@ const classtable_elt_t VFT_ReduceAction461[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction461 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction461 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction461___action},
-  {(bigint) 2 /* 42: ReduceAction461 < ReduceAction461: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction461 < ReduceAction461: superclass init_table position */},
   {(bigint) parser___ReduceAction461___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction461(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction461(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction461;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction461(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction461;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction461___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction461();
-  parser___ReduceAction461___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction462[44] = {
-  {(bigint) 887 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction462 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction462 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 887 /* 3: ReduceAction462 < ReduceAction462: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction461(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction461;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction461_parser___ReduceAction461___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21592;
+  fra.me.meth = LOCATE_NEW_ReduceAction461_parser___ReduceAction461___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction461();
+  /* ./parser//parser.nit:21592 */
+  INIT_ATTRIBUTES__ReduceAction461(fra.me.REG[0]);
+  parser___ReduceAction461___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction461(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction462[50] = {
+  {(bigint) 2659 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction462 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction462 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2659 /* 4: ReduceAction462 < ReduceAction462: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68210,14 +139386,12 @@ const classtable_elt_t VFT_ReduceAction462[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction462 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction462 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68225,7 +139399,6 @@ const classtable_elt_t VFT_ReduceAction462[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68233,33 +139406,81 @@ const classtable_elt_t VFT_ReduceAction462[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction462 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction462 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction462___action},
-  {(bigint) 2 /* 42: ReduceAction462 < ReduceAction462: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction462 < ReduceAction462: superclass init_table position */},
   {(bigint) parser___ReduceAction462___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction462(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction462(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction462;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction462(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction462;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction462___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction462();
-  parser___ReduceAction462___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction463[44] = {
-  {(bigint) 883 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction463 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction463 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 883 /* 3: ReduceAction463 < ReduceAction463: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction462(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction462;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction462_parser___ReduceAction462___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21610;
+  fra.me.meth = LOCATE_NEW_ReduceAction462_parser___ReduceAction462___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction462();
+  /* ./parser//parser.nit:21610 */
+  INIT_ATTRIBUTES__ReduceAction462(fra.me.REG[0]);
+  parser___ReduceAction462___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction462(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction463[50] = {
+  {(bigint) 2655 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction463 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction463 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2655 /* 4: ReduceAction463 < ReduceAction463: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68269,14 +139490,12 @@ const classtable_elt_t VFT_ReduceAction463[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction463 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction463 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68284,7 +139503,6 @@ const classtable_elt_t VFT_ReduceAction463[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68292,33 +139510,81 @@ const classtable_elt_t VFT_ReduceAction463[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction463 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction463 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction463___action},
-  {(bigint) 2 /* 42: ReduceAction463 < ReduceAction463: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction463 < ReduceAction463: superclass init_table position */},
   {(bigint) parser___ReduceAction463___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction463(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction463(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction463;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction463(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction463;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction463___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction463();
-  parser___ReduceAction463___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction464[44] = {
-  {(bigint) 879 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction464 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction464 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 879 /* 3: ReduceAction464 < ReduceAction464: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction463(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction463;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction463_parser___ReduceAction463___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21638;
+  fra.me.meth = LOCATE_NEW_ReduceAction463_parser___ReduceAction463___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction463();
+  /* ./parser//parser.nit:21638 */
+  INIT_ATTRIBUTES__ReduceAction463(fra.me.REG[0]);
+  parser___ReduceAction463___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction463(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction464[50] = {
+  {(bigint) 2651 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction464 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction464 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2651 /* 4: ReduceAction464 < ReduceAction464: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68328,14 +139594,12 @@ const classtable_elt_t VFT_ReduceAction464[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction464 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction464 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68343,7 +139607,6 @@ const classtable_elt_t VFT_ReduceAction464[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68351,33 +139614,81 @@ const classtable_elt_t VFT_ReduceAction464[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction464 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction464 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction464___action},
-  {(bigint) 2 /* 42: ReduceAction464 < ReduceAction464: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction464 < ReduceAction464: superclass init_table position */},
   {(bigint) parser___ReduceAction464___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction464(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction464(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction464;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction464(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction464;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction464___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction464();
-  parser___ReduceAction464___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction465[44] = {
-  {(bigint) 875 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction465 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction465 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 875 /* 3: ReduceAction465 < ReduceAction465: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction464(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction464;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction464_parser___ReduceAction464___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21655;
+  fra.me.meth = LOCATE_NEW_ReduceAction464_parser___ReduceAction464___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction464();
+  /* ./parser//parser.nit:21655 */
+  INIT_ATTRIBUTES__ReduceAction464(fra.me.REG[0]);
+  parser___ReduceAction464___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction464(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction465[50] = {
+  {(bigint) 2647 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction465 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction465 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2647 /* 4: ReduceAction465 < ReduceAction465: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68387,14 +139698,12 @@ const classtable_elt_t VFT_ReduceAction465[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction465 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction465 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68402,7 +139711,6 @@ const classtable_elt_t VFT_ReduceAction465[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68410,33 +139718,81 @@ const classtable_elt_t VFT_ReduceAction465[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction465 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction465 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction465___action},
-  {(bigint) 2 /* 42: ReduceAction465 < ReduceAction465: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction465 < ReduceAction465: superclass init_table position */},
   {(bigint) parser___ReduceAction465___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction465(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction465(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction465;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction465(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction465;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction465___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction465();
-  parser___ReduceAction465___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction466[44] = {
-  {(bigint) 871 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction466 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction466 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 871 /* 3: ReduceAction466 < ReduceAction466: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction465(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction465;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction465_parser___ReduceAction465___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21682;
+  fra.me.meth = LOCATE_NEW_ReduceAction465_parser___ReduceAction465___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction465();
+  /* ./parser//parser.nit:21682 */
+  INIT_ATTRIBUTES__ReduceAction465(fra.me.REG[0]);
+  parser___ReduceAction465___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction465(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction466[50] = {
+  {(bigint) 2643 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction466 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction466 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2643 /* 4: ReduceAction466 < ReduceAction466: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68446,14 +139802,12 @@ const classtable_elt_t VFT_ReduceAction466[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction466 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction466 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68461,7 +139815,6 @@ const classtable_elt_t VFT_ReduceAction466[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68469,33 +139822,81 @@ const classtable_elt_t VFT_ReduceAction466[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction466 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction466 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction466___action},
-  {(bigint) 2 /* 42: ReduceAction466 < ReduceAction466: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction466 < ReduceAction466: superclass init_table position */},
   {(bigint) parser___ReduceAction466___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction466(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction466(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction466;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction466(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction466;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction466___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction466();
-  parser___ReduceAction466___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction467[44] = {
-  {(bigint) 867 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction467 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction467 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 867 /* 3: ReduceAction467 < ReduceAction467: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction466(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction466;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction466_parser___ReduceAction466___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21702;
+  fra.me.meth = LOCATE_NEW_ReduceAction466_parser___ReduceAction466___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction466();
+  /* ./parser//parser.nit:21702 */
+  INIT_ATTRIBUTES__ReduceAction466(fra.me.REG[0]);
+  parser___ReduceAction466___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction466(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction467[50] = {
+  {(bigint) 2639 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction467 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction467 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2639 /* 4: ReduceAction467 < ReduceAction467: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68505,14 +139906,12 @@ const classtable_elt_t VFT_ReduceAction467[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction467 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction467 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68520,7 +139919,6 @@ const classtable_elt_t VFT_ReduceAction467[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68528,33 +139926,81 @@ const classtable_elt_t VFT_ReduceAction467[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction467 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction467 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction467___action},
-  {(bigint) 2 /* 42: ReduceAction467 < ReduceAction467: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction467 < ReduceAction467: superclass init_table position */},
   {(bigint) parser___ReduceAction467___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction467(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction467(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction467;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction467(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction467;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction467___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction467();
-  parser___ReduceAction467___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction468[44] = {
-  {(bigint) 863 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction468 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction468 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 863 /* 3: ReduceAction468 < ReduceAction468: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction467(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction467;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction467_parser___ReduceAction467___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21732;
+  fra.me.meth = LOCATE_NEW_ReduceAction467_parser___ReduceAction467___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction467();
+  /* ./parser//parser.nit:21732 */
+  INIT_ATTRIBUTES__ReduceAction467(fra.me.REG[0]);
+  parser___ReduceAction467___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction467(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction468[50] = {
+  {(bigint) 2635 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction468 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction468 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2635 /* 4: ReduceAction468 < ReduceAction468: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68564,14 +140010,12 @@ const classtable_elt_t VFT_ReduceAction468[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction468 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction468 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68579,7 +140023,6 @@ const classtable_elt_t VFT_ReduceAction468[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68587,33 +140030,81 @@ const classtable_elt_t VFT_ReduceAction468[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction468 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction468 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction468___action},
-  {(bigint) 2 /* 42: ReduceAction468 < ReduceAction468: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction468 < ReduceAction468: superclass init_table position */},
   {(bigint) parser___ReduceAction468___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction468(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction468(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction468;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction468(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction468;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction468___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction468();
-  parser___ReduceAction468___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction469[44] = {
-  {(bigint) 859 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction469 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction469 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 859 /* 3: ReduceAction469 < ReduceAction469: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction468(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction468;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction468_parser___ReduceAction468___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21753;
+  fra.me.meth = LOCATE_NEW_ReduceAction468_parser___ReduceAction468___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction468();
+  /* ./parser//parser.nit:21753 */
+  INIT_ATTRIBUTES__ReduceAction468(fra.me.REG[0]);
+  parser___ReduceAction468___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction468(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction469[50] = {
+  {(bigint) 2631 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction469 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction469 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2631 /* 4: ReduceAction469 < ReduceAction469: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68623,14 +140114,12 @@ const classtable_elt_t VFT_ReduceAction469[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction469 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction469 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68638,7 +140127,6 @@ const classtable_elt_t VFT_ReduceAction469[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68646,33 +140134,81 @@ const classtable_elt_t VFT_ReduceAction469[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction469 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction469 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction469___action},
-  {(bigint) 2 /* 42: ReduceAction469 < ReduceAction469: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction469 < ReduceAction469: superclass init_table position */},
   {(bigint) parser___ReduceAction469___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction469(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction469(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction469;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction469(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction469;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction469___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction469();
-  parser___ReduceAction469___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction470[44] = {
-  {(bigint) 851 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction470 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction470 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 851 /* 3: ReduceAction470 < ReduceAction470: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction469(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction469;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction469_parser___ReduceAction469___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21784;
+  fra.me.meth = LOCATE_NEW_ReduceAction469_parser___ReduceAction469___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction469();
+  /* ./parser//parser.nit:21784 */
+  INIT_ATTRIBUTES__ReduceAction469(fra.me.REG[0]);
+  parser___ReduceAction469___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction469(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction470[50] = {
+  {(bigint) 2623 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction470 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction470 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2623 /* 4: ReduceAction470 < ReduceAction470: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68682,14 +140218,12 @@ const classtable_elt_t VFT_ReduceAction470[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction470 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction470 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68697,7 +140231,6 @@ const classtable_elt_t VFT_ReduceAction470[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68705,33 +140238,81 @@ const classtable_elt_t VFT_ReduceAction470[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction470 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction470 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction470___action},
-  {(bigint) 2 /* 42: ReduceAction470 < ReduceAction470: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction470 < ReduceAction470: superclass init_table position */},
   {(bigint) parser___ReduceAction470___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction470(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction470(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction470;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction470(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction470;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction470___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction470();
-  parser___ReduceAction470___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction471[44] = {
-  {(bigint) 847 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction471 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction471 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 847 /* 3: ReduceAction471 < ReduceAction471: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction470(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction470;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction470_parser___ReduceAction470___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21798;
+  fra.me.meth = LOCATE_NEW_ReduceAction470_parser___ReduceAction470___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction470();
+  /* ./parser//parser.nit:21798 */
+  INIT_ATTRIBUTES__ReduceAction470(fra.me.REG[0]);
+  parser___ReduceAction470___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction470(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction471[50] = {
+  {(bigint) 2619 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction471 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction471 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2619 /* 4: ReduceAction471 < ReduceAction471: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68741,14 +140322,12 @@ const classtable_elt_t VFT_ReduceAction471[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction471 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction471 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68756,7 +140335,6 @@ const classtable_elt_t VFT_ReduceAction471[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68764,33 +140342,81 @@ const classtable_elt_t VFT_ReduceAction471[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction471 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction471 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction471___action},
-  {(bigint) 2 /* 42: ReduceAction471 < ReduceAction471: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction471 < ReduceAction471: superclass init_table position */},
   {(bigint) parser___ReduceAction471___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction471(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction471(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction471;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction471(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction471;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction471___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction471();
-  parser___ReduceAction471___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction472[44] = {
-  {(bigint) 843 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction472 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction472 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 843 /* 3: ReduceAction472 < ReduceAction472: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction471(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction471;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction471_parser___ReduceAction471___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21813;
+  fra.me.meth = LOCATE_NEW_ReduceAction471_parser___ReduceAction471___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction471();
+  /* ./parser//parser.nit:21813 */
+  INIT_ATTRIBUTES__ReduceAction471(fra.me.REG[0]);
+  parser___ReduceAction471___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction471(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction472[50] = {
+  {(bigint) 2615 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction472 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction472 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2615 /* 4: ReduceAction472 < ReduceAction472: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68800,14 +140426,12 @@ const classtable_elt_t VFT_ReduceAction472[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction472 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction472 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68815,7 +140439,6 @@ const classtable_elt_t VFT_ReduceAction472[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68823,33 +140446,81 @@ const classtable_elt_t VFT_ReduceAction472[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction472 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction472 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction472___action},
-  {(bigint) 2 /* 42: ReduceAction472 < ReduceAction472: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction472 < ReduceAction472: superclass init_table position */},
   {(bigint) parser___ReduceAction472___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction472(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction472(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction472;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction472(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction472;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction472___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction472();
-  parser___ReduceAction472___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction473[44] = {
-  {(bigint) 839 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction473 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction473 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 839 /* 3: ReduceAction473 < ReduceAction473: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction472(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction472;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction472_parser___ReduceAction472___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21831;
+  fra.me.meth = LOCATE_NEW_ReduceAction472_parser___ReduceAction472___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction472();
+  /* ./parser//parser.nit:21831 */
+  INIT_ATTRIBUTES__ReduceAction472(fra.me.REG[0]);
+  parser___ReduceAction472___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction472(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction473[50] = {
+  {(bigint) 2611 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction473 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction473 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2611 /* 4: ReduceAction473 < ReduceAction473: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68859,14 +140530,12 @@ const classtable_elt_t VFT_ReduceAction473[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction473 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction473 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68874,7 +140543,6 @@ const classtable_elt_t VFT_ReduceAction473[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68882,33 +140550,81 @@ const classtable_elt_t VFT_ReduceAction473[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction473 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction473 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction473___action},
-  {(bigint) 2 /* 42: ReduceAction473 < ReduceAction473: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction473 < ReduceAction473: superclass init_table position */},
   {(bigint) parser___ReduceAction473___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction473(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction473(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction473;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction473(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction473;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction473___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction473();
-  parser___ReduceAction473___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction474[44] = {
-  {(bigint) 835 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction474 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction474 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 835 /* 3: ReduceAction474 < ReduceAction474: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction473(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction473;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction473_parser___ReduceAction473___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21852;
+  fra.me.meth = LOCATE_NEW_ReduceAction473_parser___ReduceAction473___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction473();
+  /* ./parser//parser.nit:21852 */
+  INIT_ATTRIBUTES__ReduceAction473(fra.me.REG[0]);
+  parser___ReduceAction473___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction473(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction474[50] = {
+  {(bigint) 2607 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction474 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction474 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2607 /* 4: ReduceAction474 < ReduceAction474: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68918,14 +140634,12 @@ const classtable_elt_t VFT_ReduceAction474[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction474 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction474 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68933,7 +140647,6 @@ const classtable_elt_t VFT_ReduceAction474[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -68941,33 +140654,81 @@ const classtable_elt_t VFT_ReduceAction474[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction474 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction474 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction474___action},
-  {(bigint) 2 /* 42: ReduceAction474 < ReduceAction474: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction474 < ReduceAction474: superclass init_table position */},
   {(bigint) parser___ReduceAction474___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction474(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction474(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction474;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction474(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction474;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction474___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction474();
-  parser___ReduceAction474___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction475[44] = {
-  {(bigint) 831 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction475 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction475 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 831 /* 3: ReduceAction475 < ReduceAction475: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction474(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction474;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction474_parser___ReduceAction474___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21876;
+  fra.me.meth = LOCATE_NEW_ReduceAction474_parser___ReduceAction474___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction474();
+  /* ./parser//parser.nit:21876 */
+  INIT_ATTRIBUTES__ReduceAction474(fra.me.REG[0]);
+  parser___ReduceAction474___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction474(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction475[50] = {
+  {(bigint) 2603 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction475 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction475 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2603 /* 4: ReduceAction475 < ReduceAction475: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68977,14 +140738,12 @@ const classtable_elt_t VFT_ReduceAction475[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction475 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction475 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -68992,7 +140751,6 @@ const classtable_elt_t VFT_ReduceAction475[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69000,33 +140758,81 @@ const classtable_elt_t VFT_ReduceAction475[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction475 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction475 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction475___action},
-  {(bigint) 2 /* 42: ReduceAction475 < ReduceAction475: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction475 < ReduceAction475: superclass init_table position */},
   {(bigint) parser___ReduceAction475___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction475(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction475(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction475;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction475(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction475;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction475___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction475();
-  parser___ReduceAction475___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction476[44] = {
-  {(bigint) 827 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction476 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction476 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 827 /* 3: ReduceAction476 < ReduceAction476: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction475(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction475;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction475_parser___ReduceAction475___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21898;
+  fra.me.meth = LOCATE_NEW_ReduceAction475_parser___ReduceAction475___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction475();
+  /* ./parser//parser.nit:21898 */
+  INIT_ATTRIBUTES__ReduceAction475(fra.me.REG[0]);
+  parser___ReduceAction475___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction475(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction476[50] = {
+  {(bigint) 2599 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction476 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction476 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2599 /* 4: ReduceAction476 < ReduceAction476: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69036,14 +140842,12 @@ const classtable_elt_t VFT_ReduceAction476[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction476 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction476 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69051,7 +140855,6 @@ const classtable_elt_t VFT_ReduceAction476[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69059,33 +140862,81 @@ const classtable_elt_t VFT_ReduceAction476[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction476 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction476 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction476___action},
-  {(bigint) 2 /* 42: ReduceAction476 < ReduceAction476: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction476 < ReduceAction476: superclass init_table position */},
   {(bigint) parser___ReduceAction476___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction476(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction476(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction476;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction476(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction476;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction476___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction476();
-  parser___ReduceAction476___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction477[44] = {
-  {(bigint) 823 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction477 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction477 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 823 /* 3: ReduceAction477 < ReduceAction477: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction476(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction476;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction476_parser___ReduceAction476___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21925;
+  fra.me.meth = LOCATE_NEW_ReduceAction476_parser___ReduceAction476___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction476();
+  /* ./parser//parser.nit:21925 */
+  INIT_ATTRIBUTES__ReduceAction476(fra.me.REG[0]);
+  parser___ReduceAction476___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction476(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction477[50] = {
+  {(bigint) 2595 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction477 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction477 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2595 /* 4: ReduceAction477 < ReduceAction477: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69095,14 +140946,12 @@ const classtable_elt_t VFT_ReduceAction477[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction477 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction477 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69110,7 +140959,6 @@ const classtable_elt_t VFT_ReduceAction477[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69118,33 +140966,81 @@ const classtable_elt_t VFT_ReduceAction477[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction477 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction477 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction477___action},
-  {(bigint) 2 /* 42: ReduceAction477 < ReduceAction477: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction477 < ReduceAction477: superclass init_table position */},
   {(bigint) parser___ReduceAction477___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction477(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction477(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction477;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction477(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction477;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction477___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction477();
-  parser___ReduceAction477___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction478[44] = {
-  {(bigint) 819 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction478 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction478 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 819 /* 3: ReduceAction478 < ReduceAction478: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction477(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction477;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction477_parser___ReduceAction477___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21955;
+  fra.me.meth = LOCATE_NEW_ReduceAction477_parser___ReduceAction477___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction477();
+  /* ./parser//parser.nit:21955 */
+  INIT_ATTRIBUTES__ReduceAction477(fra.me.REG[0]);
+  parser___ReduceAction477___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction477(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction478[50] = {
+  {(bigint) 2591 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction478 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction478 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2591 /* 4: ReduceAction478 < ReduceAction478: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69154,14 +141050,12 @@ const classtable_elt_t VFT_ReduceAction478[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction478 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction478 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69169,7 +141063,6 @@ const classtable_elt_t VFT_ReduceAction478[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69177,33 +141070,81 @@ const classtable_elt_t VFT_ReduceAction478[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction478 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction478 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction478___action},
-  {(bigint) 2 /* 42: ReduceAction478 < ReduceAction478: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction478 < ReduceAction478: superclass init_table position */},
   {(bigint) parser___ReduceAction478___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction478(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction478(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction478;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction478(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction478;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction478___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction478();
-  parser___ReduceAction478___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction479[44] = {
-  {(bigint) 815 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction479 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction479 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 815 /* 3: ReduceAction479 < ReduceAction479: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction478(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction478;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction478_parser___ReduceAction478___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 21986;
+  fra.me.meth = LOCATE_NEW_ReduceAction478_parser___ReduceAction478___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction478();
+  /* ./parser//parser.nit:21986 */
+  INIT_ATTRIBUTES__ReduceAction478(fra.me.REG[0]);
+  parser___ReduceAction478___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction478(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction479[50] = {
+  {(bigint) 2587 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction479 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction479 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2587 /* 4: ReduceAction479 < ReduceAction479: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69213,14 +141154,12 @@ const classtable_elt_t VFT_ReduceAction479[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction479 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction479 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69228,7 +141167,6 @@ const classtable_elt_t VFT_ReduceAction479[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69236,33 +141174,81 @@ const classtable_elt_t VFT_ReduceAction479[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction479 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction479 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction479___action},
-  {(bigint) 2 /* 42: ReduceAction479 < ReduceAction479: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction479 < ReduceAction479: superclass init_table position */},
   {(bigint) parser___ReduceAction479___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction479(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction479(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction479;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction479(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction479;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction479___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction479();
-  parser___ReduceAction479___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction480[44] = {
-  {(bigint) 807 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction480 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction480 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 807 /* 3: ReduceAction480 < ReduceAction480: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction479(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction479;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction479_parser___ReduceAction479___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22020;
+  fra.me.meth = LOCATE_NEW_ReduceAction479_parser___ReduceAction479___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction479();
+  /* ./parser//parser.nit:22020 */
+  INIT_ATTRIBUTES__ReduceAction479(fra.me.REG[0]);
+  parser___ReduceAction479___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction479(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction480[50] = {
+  {(bigint) 2579 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction480 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction480 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2579 /* 4: ReduceAction480 < ReduceAction480: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69272,14 +141258,12 @@ const classtable_elt_t VFT_ReduceAction480[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction480 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction480 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69287,7 +141271,6 @@ const classtable_elt_t VFT_ReduceAction480[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69295,33 +141278,81 @@ const classtable_elt_t VFT_ReduceAction480[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction480 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction480 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction480___action},
-  {(bigint) 2 /* 42: ReduceAction480 < ReduceAction480: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction480 < ReduceAction480: superclass init_table position */},
   {(bigint) parser___ReduceAction480___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction480(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction480(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction480;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction480(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction480;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction480___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction480();
-  parser___ReduceAction480___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction481[44] = {
-  {(bigint) 803 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction481 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction481 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 803 /* 3: ReduceAction481 < ReduceAction481: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction480(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction480;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction480_parser___ReduceAction480___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22052;
+  fra.me.meth = LOCATE_NEW_ReduceAction480_parser___ReduceAction480___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction480();
+  /* ./parser//parser.nit:22052 */
+  INIT_ATTRIBUTES__ReduceAction480(fra.me.REG[0]);
+  parser___ReduceAction480___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction480(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction481[50] = {
+  {(bigint) 2575 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction481 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction481 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2575 /* 4: ReduceAction481 < ReduceAction481: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69331,14 +141362,12 @@ const classtable_elt_t VFT_ReduceAction481[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction481 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction481 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69346,7 +141375,6 @@ const classtable_elt_t VFT_ReduceAction481[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69354,33 +141382,81 @@ const classtable_elt_t VFT_ReduceAction481[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction481 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction481 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction481___action},
-  {(bigint) 2 /* 42: ReduceAction481 < ReduceAction481: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction481 < ReduceAction481: superclass init_table position */},
   {(bigint) parser___ReduceAction481___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction481(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction481(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction481;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction481(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction481;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction481___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction481();
-  parser___ReduceAction481___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction482[44] = {
-  {(bigint) 799 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction482 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction482 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 799 /* 3: ReduceAction482 < ReduceAction482: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction481(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction481;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction481_parser___ReduceAction481___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22087;
+  fra.me.meth = LOCATE_NEW_ReduceAction481_parser___ReduceAction481___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction481();
+  /* ./parser//parser.nit:22087 */
+  INIT_ATTRIBUTES__ReduceAction481(fra.me.REG[0]);
+  parser___ReduceAction481___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction481(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction482[50] = {
+  {(bigint) 2571 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction482 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction482 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2571 /* 4: ReduceAction482 < ReduceAction482: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69390,14 +141466,12 @@ const classtable_elt_t VFT_ReduceAction482[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction482 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction482 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69405,7 +141479,6 @@ const classtable_elt_t VFT_ReduceAction482[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69413,33 +141486,81 @@ const classtable_elt_t VFT_ReduceAction482[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction482 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction482 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction482___action},
-  {(bigint) 2 /* 42: ReduceAction482 < ReduceAction482: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction482 < ReduceAction482: superclass init_table position */},
   {(bigint) parser___ReduceAction482___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction482(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction482(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction482;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction482(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction482;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction482___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction482();
-  parser___ReduceAction482___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction483[44] = {
-  {(bigint) 795 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction483 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction483 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 795 /* 3: ReduceAction483 < ReduceAction483: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction482(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction482;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction482_parser___ReduceAction482___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22104;
+  fra.me.meth = LOCATE_NEW_ReduceAction482_parser___ReduceAction482___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction482();
+  /* ./parser//parser.nit:22104 */
+  INIT_ATTRIBUTES__ReduceAction482(fra.me.REG[0]);
+  parser___ReduceAction482___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction482(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction483[50] = {
+  {(bigint) 2567 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction483 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction483 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2567 /* 4: ReduceAction483 < ReduceAction483: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69449,14 +141570,12 @@ const classtable_elt_t VFT_ReduceAction483[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction483 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction483 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69464,7 +141583,6 @@ const classtable_elt_t VFT_ReduceAction483[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69472,33 +141590,81 @@ const classtable_elt_t VFT_ReduceAction483[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction483 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction483 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction483___action},
-  {(bigint) 2 /* 42: ReduceAction483 < ReduceAction483: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction483 < ReduceAction483: superclass init_table position */},
   {(bigint) parser___ReduceAction483___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction483(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction483(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction483;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction483(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction483;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction483___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction483();
-  parser___ReduceAction483___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction484[44] = {
-  {(bigint) 791 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction484 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction484 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 791 /* 3: ReduceAction484 < ReduceAction484: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction483(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction483;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction483_parser___ReduceAction483___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22123;
+  fra.me.meth = LOCATE_NEW_ReduceAction483_parser___ReduceAction483___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction483();
+  /* ./parser//parser.nit:22123 */
+  INIT_ATTRIBUTES__ReduceAction483(fra.me.REG[0]);
+  parser___ReduceAction483___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction483(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction484[50] = {
+  {(bigint) 2563 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction484 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction484 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2563 /* 4: ReduceAction484 < ReduceAction484: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69508,14 +141674,12 @@ const classtable_elt_t VFT_ReduceAction484[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction484 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction484 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69523,7 +141687,6 @@ const classtable_elt_t VFT_ReduceAction484[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69531,33 +141694,81 @@ const classtable_elt_t VFT_ReduceAction484[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction484 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction484 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction484___action},
-  {(bigint) 2 /* 42: ReduceAction484 < ReduceAction484: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction484 < ReduceAction484: superclass init_table position */},
   {(bigint) parser___ReduceAction484___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction484(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction484(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction484;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction484(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction484;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction484___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction484();
-  parser___ReduceAction484___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction485[44] = {
-  {(bigint) 787 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction485 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction485 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 787 /* 3: ReduceAction485 < ReduceAction485: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction484(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction484;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction484_parser___ReduceAction484___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22145;
+  fra.me.meth = LOCATE_NEW_ReduceAction484_parser___ReduceAction484___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction484();
+  /* ./parser//parser.nit:22145 */
+  INIT_ATTRIBUTES__ReduceAction484(fra.me.REG[0]);
+  parser___ReduceAction484___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction484(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction485[50] = {
+  {(bigint) 2559 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction485 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction485 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2559 /* 4: ReduceAction485 < ReduceAction485: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69567,14 +141778,12 @@ const classtable_elt_t VFT_ReduceAction485[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction485 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction485 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69582,7 +141791,6 @@ const classtable_elt_t VFT_ReduceAction485[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69590,33 +141798,81 @@ const classtable_elt_t VFT_ReduceAction485[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction485 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction485 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction485___action},
-  {(bigint) 2 /* 42: ReduceAction485 < ReduceAction485: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction485 < ReduceAction485: superclass init_table position */},
   {(bigint) parser___ReduceAction485___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction485(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction485(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction485;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction485(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction485;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction485___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction485();
-  parser___ReduceAction485___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction486[44] = {
-  {(bigint) 783 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction486 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction486 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 783 /* 3: ReduceAction486 < ReduceAction486: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction485(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction485;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction485_parser___ReduceAction485___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22178;
+  fra.me.meth = LOCATE_NEW_ReduceAction485_parser___ReduceAction485___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction485();
+  /* ./parser//parser.nit:22178 */
+  INIT_ATTRIBUTES__ReduceAction485(fra.me.REG[0]);
+  parser___ReduceAction485___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction485(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction486[50] = {
+  {(bigint) 2555 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction486 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction486 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2555 /* 4: ReduceAction486 < ReduceAction486: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69626,14 +141882,12 @@ const classtable_elt_t VFT_ReduceAction486[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction486 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction486 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69641,7 +141895,6 @@ const classtable_elt_t VFT_ReduceAction486[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69649,33 +141902,81 @@ const classtable_elt_t VFT_ReduceAction486[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction486 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction486 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction486___action},
-  {(bigint) 2 /* 42: ReduceAction486 < ReduceAction486: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction486 < ReduceAction486: superclass init_table position */},
   {(bigint) parser___ReduceAction486___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction486(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction486(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction486;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction486(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction486;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction486___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction486();
-  parser___ReduceAction486___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction487[44] = {
-  {(bigint) 779 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction487 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction487 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 779 /* 3: ReduceAction487 < ReduceAction487: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction486(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction486;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction486_parser___ReduceAction486___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22214;
+  fra.me.meth = LOCATE_NEW_ReduceAction486_parser___ReduceAction486___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction486();
+  /* ./parser//parser.nit:22214 */
+  INIT_ATTRIBUTES__ReduceAction486(fra.me.REG[0]);
+  parser___ReduceAction486___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction486(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction487[50] = {
+  {(bigint) 2551 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction487 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction487 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2551 /* 4: ReduceAction487 < ReduceAction487: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69685,14 +141986,12 @@ const classtable_elt_t VFT_ReduceAction487[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction487 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction487 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69700,7 +141999,6 @@ const classtable_elt_t VFT_ReduceAction487[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69708,33 +142006,81 @@ const classtable_elt_t VFT_ReduceAction487[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction487 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction487 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction487___action},
-  {(bigint) 2 /* 42: ReduceAction487 < ReduceAction487: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction487 < ReduceAction487: superclass init_table position */},
   {(bigint) parser___ReduceAction487___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction487(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction487(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction487;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction487(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction487;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction487___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction487();
-  parser___ReduceAction487___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction488[44] = {
-  {(bigint) 775 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction488 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction488 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 775 /* 3: ReduceAction488 < ReduceAction488: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction487(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction487;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction487_parser___ReduceAction487___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22231;
+  fra.me.meth = LOCATE_NEW_ReduceAction487_parser___ReduceAction487___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction487();
+  /* ./parser//parser.nit:22231 */
+  INIT_ATTRIBUTES__ReduceAction487(fra.me.REG[0]);
+  parser___ReduceAction487___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction487(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction488[50] = {
+  {(bigint) 2547 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction488 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction488 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2547 /* 4: ReduceAction488 < ReduceAction488: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69744,14 +142090,12 @@ const classtable_elt_t VFT_ReduceAction488[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction488 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction488 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69759,7 +142103,6 @@ const classtable_elt_t VFT_ReduceAction488[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69767,33 +142110,81 @@ const classtable_elt_t VFT_ReduceAction488[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction488 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction488 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction488___action},
-  {(bigint) 2 /* 42: ReduceAction488 < ReduceAction488: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction488 < ReduceAction488: superclass init_table position */},
   {(bigint) parser___ReduceAction488___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction488(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction488(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction488;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction488(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction488;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction488___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction488();
-  parser___ReduceAction488___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction489[44] = {
-  {(bigint) 771 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction489 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction489 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 771 /* 3: ReduceAction489 < ReduceAction489: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction488(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction488;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction488_parser___ReduceAction488___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22258;
+  fra.me.meth = LOCATE_NEW_ReduceAction488_parser___ReduceAction488___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction488();
+  /* ./parser//parser.nit:22258 */
+  INIT_ATTRIBUTES__ReduceAction488(fra.me.REG[0]);
+  parser___ReduceAction488___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction488(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction489[50] = {
+  {(bigint) 2543 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction489 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction489 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2543 /* 4: ReduceAction489 < ReduceAction489: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69803,14 +142194,12 @@ const classtable_elt_t VFT_ReduceAction489[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction489 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction489 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69818,7 +142207,6 @@ const classtable_elt_t VFT_ReduceAction489[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69826,33 +142214,81 @@ const classtable_elt_t VFT_ReduceAction489[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction489 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction489 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction489___action},
-  {(bigint) 2 /* 42: ReduceAction489 < ReduceAction489: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction489 < ReduceAction489: superclass init_table position */},
   {(bigint) parser___ReduceAction489___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction489(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction489(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction489;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction489(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction489;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction489___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction489();
-  parser___ReduceAction489___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction490[44] = {
-  {(bigint) 763 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction490 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction490 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 763 /* 3: ReduceAction490 < ReduceAction490: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction489(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction489;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction489_parser___ReduceAction489___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22273;
+  fra.me.meth = LOCATE_NEW_ReduceAction489_parser___ReduceAction489___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction489();
+  /* ./parser//parser.nit:22273 */
+  INIT_ATTRIBUTES__ReduceAction489(fra.me.REG[0]);
+  parser___ReduceAction489___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction489(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction490[50] = {
+  {(bigint) 2535 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction490 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction490 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2535 /* 4: ReduceAction490 < ReduceAction490: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69862,14 +142298,12 @@ const classtable_elt_t VFT_ReduceAction490[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction490 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction490 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69877,7 +142311,6 @@ const classtable_elt_t VFT_ReduceAction490[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69885,33 +142318,81 @@ const classtable_elt_t VFT_ReduceAction490[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction490 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction490 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction490___action},
-  {(bigint) 2 /* 42: ReduceAction490 < ReduceAction490: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction490 < ReduceAction490: superclass init_table position */},
   {(bigint) parser___ReduceAction490___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction490(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction490(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction490;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction490(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction490;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction490___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction490();
-  parser___ReduceAction490___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction491[44] = {
-  {(bigint) 759 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction491 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction491 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 759 /* 3: ReduceAction491 < ReduceAction491: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction490(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction490;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction490_parser___ReduceAction490___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22288;
+  fra.me.meth = LOCATE_NEW_ReduceAction490_parser___ReduceAction490___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction490();
+  /* ./parser//parser.nit:22288 */
+  INIT_ATTRIBUTES__ReduceAction490(fra.me.REG[0]);
+  parser___ReduceAction490___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction490(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction491[50] = {
+  {(bigint) 2531 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction491 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction491 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2531 /* 4: ReduceAction491 < ReduceAction491: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69921,14 +142402,12 @@ const classtable_elt_t VFT_ReduceAction491[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction491 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction491 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69936,7 +142415,6 @@ const classtable_elt_t VFT_ReduceAction491[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -69944,33 +142422,81 @@ const classtable_elt_t VFT_ReduceAction491[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction491 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction491 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction491___action},
-  {(bigint) 2 /* 42: ReduceAction491 < ReduceAction491: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction491 < ReduceAction491: superclass init_table position */},
   {(bigint) parser___ReduceAction491___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction491(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction491(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction491;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction491(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction491;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction491___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction491();
-  parser___ReduceAction491___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction492[44] = {
-  {(bigint) 755 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction492 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction492 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 755 /* 3: ReduceAction492 < ReduceAction492: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction491(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction491;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction491_parser___ReduceAction491___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22311;
+  fra.me.meth = LOCATE_NEW_ReduceAction491_parser___ReduceAction491___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction491();
+  /* ./parser//parser.nit:22311 */
+  INIT_ATTRIBUTES__ReduceAction491(fra.me.REG[0]);
+  parser___ReduceAction491___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction491(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction492[50] = {
+  {(bigint) 2527 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction492 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction492 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2527 /* 4: ReduceAction492 < ReduceAction492: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69980,14 +142506,12 @@ const classtable_elt_t VFT_ReduceAction492[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction492 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction492 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -69995,7 +142519,6 @@ const classtable_elt_t VFT_ReduceAction492[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70003,33 +142526,81 @@ const classtable_elt_t VFT_ReduceAction492[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction492 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction492 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction492___action},
-  {(bigint) 2 /* 42: ReduceAction492 < ReduceAction492: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction492 < ReduceAction492: superclass init_table position */},
   {(bigint) parser___ReduceAction492___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction492(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction492(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction492;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction492(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction492;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction492___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction492();
-  parser___ReduceAction492___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction493[44] = {
-  {(bigint) 751 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction493 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction493 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 751 /* 3: ReduceAction493 < ReduceAction493: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction492(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction492;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction492_parser___ReduceAction492___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22344;
+  fra.me.meth = LOCATE_NEW_ReduceAction492_parser___ReduceAction492___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction492();
+  /* ./parser//parser.nit:22344 */
+  INIT_ATTRIBUTES__ReduceAction492(fra.me.REG[0]);
+  parser___ReduceAction492___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction492(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction493[50] = {
+  {(bigint) 2523 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction493 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction493 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2523 /* 4: ReduceAction493 < ReduceAction493: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70039,14 +142610,12 @@ const classtable_elt_t VFT_ReduceAction493[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction493 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction493 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70054,7 +142623,6 @@ const classtable_elt_t VFT_ReduceAction493[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70062,33 +142630,81 @@ const classtable_elt_t VFT_ReduceAction493[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction493 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction493 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction493___action},
-  {(bigint) 2 /* 42: ReduceAction493 < ReduceAction493: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction493 < ReduceAction493: superclass init_table position */},
   {(bigint) parser___ReduceAction493___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction493(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction493(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction493;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction493(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction493;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction493___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction493();
-  parser___ReduceAction493___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction494[44] = {
-  {(bigint) 747 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction494 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction494 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 747 /* 3: ReduceAction494 < ReduceAction494: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction493(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction493;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction493_parser___ReduceAction493___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22360;
+  fra.me.meth = LOCATE_NEW_ReduceAction493_parser___ReduceAction493___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction493();
+  /* ./parser//parser.nit:22360 */
+  INIT_ATTRIBUTES__ReduceAction493(fra.me.REG[0]);
+  parser___ReduceAction493___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction493(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction494[50] = {
+  {(bigint) 2519 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction494 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction494 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2519 /* 4: ReduceAction494 < ReduceAction494: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70098,14 +142714,12 @@ const classtable_elt_t VFT_ReduceAction494[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction494 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction494 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70113,7 +142727,6 @@ const classtable_elt_t VFT_ReduceAction494[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70121,33 +142734,81 @@ const classtable_elt_t VFT_ReduceAction494[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction494 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction494 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction494___action},
-  {(bigint) 2 /* 42: ReduceAction494 < ReduceAction494: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction494 < ReduceAction494: superclass init_table position */},
   {(bigint) parser___ReduceAction494___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction494(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction494(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction494;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction494(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction494;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction494___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction494();
-  parser___ReduceAction494___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction495[44] = {
-  {(bigint) 743 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction495 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction495 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 743 /* 3: ReduceAction495 < ReduceAction495: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction494(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction494;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction494_parser___ReduceAction494___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22375;
+  fra.me.meth = LOCATE_NEW_ReduceAction494_parser___ReduceAction494___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction494();
+  /* ./parser//parser.nit:22375 */
+  INIT_ATTRIBUTES__ReduceAction494(fra.me.REG[0]);
+  parser___ReduceAction494___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction494(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction495[50] = {
+  {(bigint) 2515 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction495 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction495 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2515 /* 4: ReduceAction495 < ReduceAction495: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70157,14 +142818,12 @@ const classtable_elt_t VFT_ReduceAction495[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction495 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction495 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70172,7 +142831,6 @@ const classtable_elt_t VFT_ReduceAction495[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70180,33 +142838,81 @@ const classtable_elt_t VFT_ReduceAction495[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction495 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction495 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction495___action},
-  {(bigint) 2 /* 42: ReduceAction495 < ReduceAction495: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction495 < ReduceAction495: superclass init_table position */},
   {(bigint) parser___ReduceAction495___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction495(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction495(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction495;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction495(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction495;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction495___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction495();
-  parser___ReduceAction495___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction496[44] = {
-  {(bigint) 739 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction496 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction496 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 739 /* 3: ReduceAction496 < ReduceAction496: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction495(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction495;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction495_parser___ReduceAction495___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22388;
+  fra.me.meth = LOCATE_NEW_ReduceAction495_parser___ReduceAction495___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction495();
+  /* ./parser//parser.nit:22388 */
+  INIT_ATTRIBUTES__ReduceAction495(fra.me.REG[0]);
+  parser___ReduceAction495___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction495(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction496[50] = {
+  {(bigint) 2511 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction496 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction496 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2511 /* 4: ReduceAction496 < ReduceAction496: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70216,14 +142922,12 @@ const classtable_elt_t VFT_ReduceAction496[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction496 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction496 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70231,7 +142935,6 @@ const classtable_elt_t VFT_ReduceAction496[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70239,33 +142942,81 @@ const classtable_elt_t VFT_ReduceAction496[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction496 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction496 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction496___action},
-  {(bigint) 2 /* 42: ReduceAction496 < ReduceAction496: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction496 < ReduceAction496: superclass init_table position */},
   {(bigint) parser___ReduceAction496___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction496(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction496(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction496;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction496(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction496;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction496___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction496();
-  parser___ReduceAction496___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction497[44] = {
-  {(bigint) 735 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction497 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction497 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 735 /* 3: ReduceAction497 < ReduceAction497: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction496(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction496;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction496_parser___ReduceAction496___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22402;
+  fra.me.meth = LOCATE_NEW_ReduceAction496_parser___ReduceAction496___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction496();
+  /* ./parser//parser.nit:22402 */
+  INIT_ATTRIBUTES__ReduceAction496(fra.me.REG[0]);
+  parser___ReduceAction496___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction496(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction497[50] = {
+  {(bigint) 2507 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction497 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction497 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2507 /* 4: ReduceAction497 < ReduceAction497: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70275,14 +143026,12 @@ const classtable_elt_t VFT_ReduceAction497[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction497 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction497 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70290,7 +143039,6 @@ const classtable_elt_t VFT_ReduceAction497[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70298,33 +143046,81 @@ const classtable_elt_t VFT_ReduceAction497[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction497 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction497 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction497___action},
-  {(bigint) 2 /* 42: ReduceAction497 < ReduceAction497: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction497 < ReduceAction497: superclass init_table position */},
   {(bigint) parser___ReduceAction497___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction497(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction497(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction497;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction497(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction497;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction497___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction497();
-  parser___ReduceAction497___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction498[44] = {
-  {(bigint) 731 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction498 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction498 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 731 /* 3: ReduceAction498 < ReduceAction498: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction497(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction497;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction497_parser___ReduceAction497___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22415;
+  fra.me.meth = LOCATE_NEW_ReduceAction497_parser___ReduceAction497___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction497();
+  /* ./parser//parser.nit:22415 */
+  INIT_ATTRIBUTES__ReduceAction497(fra.me.REG[0]);
+  parser___ReduceAction497___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction497(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction498[50] = {
+  {(bigint) 2503 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction498 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction498 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2503 /* 4: ReduceAction498 < ReduceAction498: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70334,14 +143130,12 @@ const classtable_elt_t VFT_ReduceAction498[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction498 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction498 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70349,7 +143143,6 @@ const classtable_elt_t VFT_ReduceAction498[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70357,33 +143150,81 @@ const classtable_elt_t VFT_ReduceAction498[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction498 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction498 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction498___action},
-  {(bigint) 2 /* 42: ReduceAction498 < ReduceAction498: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction498 < ReduceAction498: superclass init_table position */},
   {(bigint) parser___ReduceAction498___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction498(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction498(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction498;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction498(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction498;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction498___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction498();
-  parser___ReduceAction498___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction499[44] = {
-  {(bigint) 727 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction499 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction499 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 727 /* 3: ReduceAction499 < ReduceAction499: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction498(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction498;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction498_parser___ReduceAction498___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22428;
+  fra.me.meth = LOCATE_NEW_ReduceAction498_parser___ReduceAction498___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction498();
+  /* ./parser//parser.nit:22428 */
+  INIT_ATTRIBUTES__ReduceAction498(fra.me.REG[0]);
+  parser___ReduceAction498___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction498(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction499[50] = {
+  {(bigint) 2499 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction499 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction499 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2499 /* 4: ReduceAction499 < ReduceAction499: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70393,14 +143234,12 @@ const classtable_elt_t VFT_ReduceAction499[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction499 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction499 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70408,7 +143247,6 @@ const classtable_elt_t VFT_ReduceAction499[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70416,33 +143254,81 @@ const classtable_elt_t VFT_ReduceAction499[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction499 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction499 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction499___action},
-  {(bigint) 2 /* 42: ReduceAction499 < ReduceAction499: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction499 < ReduceAction499: superclass init_table position */},
   {(bigint) parser___ReduceAction499___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction499(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction499(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction499;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction499(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction499;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction499___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction499();
-  parser___ReduceAction499___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction500[44] = {
-  {(bigint) 715 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction500 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction500 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 715 /* 3: ReduceAction500 < ReduceAction500: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction499(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction499;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction499_parser___ReduceAction499___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22445;
+  fra.me.meth = LOCATE_NEW_ReduceAction499_parser___ReduceAction499___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction499();
+  /* ./parser//parser.nit:22445 */
+  INIT_ATTRIBUTES__ReduceAction499(fra.me.REG[0]);
+  parser___ReduceAction499___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction499(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction500[50] = {
+  {(bigint) 2487 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction500 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction500 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2487 /* 4: ReduceAction500 < ReduceAction500: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70452,14 +143338,12 @@ const classtable_elt_t VFT_ReduceAction500[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction500 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction500 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70467,7 +143351,6 @@ const classtable_elt_t VFT_ReduceAction500[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70475,33 +143358,81 @@ const classtable_elt_t VFT_ReduceAction500[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction500 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction500 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction500___action},
-  {(bigint) 2 /* 42: ReduceAction500 < ReduceAction500: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction500 < ReduceAction500: superclass init_table position */},
   {(bigint) parser___ReduceAction500___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction500(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction500(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction500;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction500(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction500;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction500___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction500();
-  parser___ReduceAction500___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction501[44] = {
-  {(bigint) 711 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction501 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction501 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 711 /* 3: ReduceAction501 < ReduceAction501: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction500(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction500;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction500_parser___ReduceAction500___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22465;
+  fra.me.meth = LOCATE_NEW_ReduceAction500_parser___ReduceAction500___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction500();
+  /* ./parser//parser.nit:22465 */
+  INIT_ATTRIBUTES__ReduceAction500(fra.me.REG[0]);
+  parser___ReduceAction500___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction500(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction501[50] = {
+  {(bigint) 2483 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction501 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction501 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2483 /* 4: ReduceAction501 < ReduceAction501: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70511,14 +143442,12 @@ const classtable_elt_t VFT_ReduceAction501[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction501 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction501 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70526,7 +143455,6 @@ const classtable_elt_t VFT_ReduceAction501[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70534,33 +143462,81 @@ const classtable_elt_t VFT_ReduceAction501[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction501 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction501___action},
-  {(bigint) 2 /* 42: ReduceAction501 < ReduceAction501: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction501 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction501___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction501 < ReduceAction501: superclass init_table position */},
   {(bigint) parser___ReduceAction501___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction501(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction501(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction501;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction501(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction501;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction501___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction501();
-  parser___ReduceAction501___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction502[44] = {
-  {(bigint) 707 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction502 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction502 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 707 /* 3: ReduceAction502 < ReduceAction502: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction501(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction501;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction501_parser___ReduceAction501___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22483;
+  fra.me.meth = LOCATE_NEW_ReduceAction501_parser___ReduceAction501___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction501();
+  /* ./parser//parser.nit:22483 */
+  INIT_ATTRIBUTES__ReduceAction501(fra.me.REG[0]);
+  parser___ReduceAction501___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction501(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction502[50] = {
+  {(bigint) 2479 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction502 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction502 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2479 /* 4: ReduceAction502 < ReduceAction502: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70570,14 +143546,12 @@ const classtable_elt_t VFT_ReduceAction502[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction502 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction502 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70585,7 +143559,6 @@ const classtable_elt_t VFT_ReduceAction502[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70593,33 +143566,81 @@ const classtable_elt_t VFT_ReduceAction502[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction502 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction502 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction502___action},
-  {(bigint) 2 /* 42: ReduceAction502 < ReduceAction502: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction502 < ReduceAction502: superclass init_table position */},
   {(bigint) parser___ReduceAction502___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction502(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction502(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction502;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction502(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction502;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction502___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction502();
-  parser___ReduceAction502___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction503[44] = {
-  {(bigint) 703 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction503 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction503 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 703 /* 3: ReduceAction503 < ReduceAction503: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction502(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction502;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction502_parser___ReduceAction502___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22504;
+  fra.me.meth = LOCATE_NEW_ReduceAction502_parser___ReduceAction502___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction502();
+  /* ./parser//parser.nit:22504 */
+  INIT_ATTRIBUTES__ReduceAction502(fra.me.REG[0]);
+  parser___ReduceAction502___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction502(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction503[50] = {
+  {(bigint) 2475 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction503 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction503 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2475 /* 4: ReduceAction503 < ReduceAction503: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70629,14 +143650,12 @@ const classtable_elt_t VFT_ReduceAction503[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction503 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction503 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70644,7 +143663,6 @@ const classtable_elt_t VFT_ReduceAction503[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70652,33 +143670,81 @@ const classtable_elt_t VFT_ReduceAction503[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction503 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction503 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction503___action},
-  {(bigint) 2 /* 42: ReduceAction503 < ReduceAction503: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction503 < ReduceAction503: superclass init_table position */},
   {(bigint) parser___ReduceAction503___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction503(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction503(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction503;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction503(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction503;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction503___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction503();
-  parser___ReduceAction503___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction504[44] = {
-  {(bigint) 699 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction504 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction504 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 699 /* 3: ReduceAction504 < ReduceAction504: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction503(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction503;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction503_parser___ReduceAction503___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22525;
+  fra.me.meth = LOCATE_NEW_ReduceAction503_parser___ReduceAction503___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction503();
+  /* ./parser//parser.nit:22525 */
+  INIT_ATTRIBUTES__ReduceAction503(fra.me.REG[0]);
+  parser___ReduceAction503___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction503(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction504[50] = {
+  {(bigint) 2471 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction504 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction504 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2471 /* 4: ReduceAction504 < ReduceAction504: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70688,14 +143754,12 @@ const classtable_elt_t VFT_ReduceAction504[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction504 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction504 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70703,7 +143767,6 @@ const classtable_elt_t VFT_ReduceAction504[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70711,33 +143774,81 @@ const classtable_elt_t VFT_ReduceAction504[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction504 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction504 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction504___action},
-  {(bigint) 2 /* 42: ReduceAction504 < ReduceAction504: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction504 < ReduceAction504: superclass init_table position */},
   {(bigint) parser___ReduceAction504___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction504(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction504(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction504;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction504(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction504;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction504___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction504();
-  parser___ReduceAction504___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction505[44] = {
-  {(bigint) 695 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction505 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction505 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 695 /* 3: ReduceAction505 < ReduceAction505: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction504(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction504;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction504_parser___ReduceAction504___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22549;
+  fra.me.meth = LOCATE_NEW_ReduceAction504_parser___ReduceAction504___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction504();
+  /* ./parser//parser.nit:22549 */
+  INIT_ATTRIBUTES__ReduceAction504(fra.me.REG[0]);
+  parser___ReduceAction504___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction504(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction505[50] = {
+  {(bigint) 2467 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction505 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction505 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2467 /* 4: ReduceAction505 < ReduceAction505: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70747,14 +143858,12 @@ const classtable_elt_t VFT_ReduceAction505[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction505 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction505 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70762,7 +143871,6 @@ const classtable_elt_t VFT_ReduceAction505[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70770,33 +143878,81 @@ const classtable_elt_t VFT_ReduceAction505[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction505 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction505 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction505___action},
-  {(bigint) 2 /* 42: ReduceAction505 < ReduceAction505: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction505 < ReduceAction505: superclass init_table position */},
   {(bigint) parser___ReduceAction505___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction505(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction505(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction505;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction505(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction505;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction505___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction505();
-  parser___ReduceAction505___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction506[44] = {
-  {(bigint) 691 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction506 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction506 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 691 /* 3: ReduceAction506 < ReduceAction506: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction505(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction505;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction505_parser___ReduceAction505___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22565;
+  fra.me.meth = LOCATE_NEW_ReduceAction505_parser___ReduceAction505___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction505();
+  /* ./parser//parser.nit:22565 */
+  INIT_ATTRIBUTES__ReduceAction505(fra.me.REG[0]);
+  parser___ReduceAction505___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction505(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction506[50] = {
+  {(bigint) 2463 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction506 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction506 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2463 /* 4: ReduceAction506 < ReduceAction506: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70806,14 +143962,12 @@ const classtable_elt_t VFT_ReduceAction506[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction506 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction506 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70821,7 +143975,6 @@ const classtable_elt_t VFT_ReduceAction506[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70829,33 +143982,81 @@ const classtable_elt_t VFT_ReduceAction506[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction506 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction506 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction506___action},
-  {(bigint) 2 /* 42: ReduceAction506 < ReduceAction506: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction506 < ReduceAction506: superclass init_table position */},
   {(bigint) parser___ReduceAction506___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction506(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction506(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction506;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction506(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction506;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction506___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction506();
-  parser___ReduceAction506___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction507[44] = {
-  {(bigint) 687 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction507 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction507 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 687 /* 3: ReduceAction507 < ReduceAction507: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction506(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction506;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction506_parser___ReduceAction506___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22583;
+  fra.me.meth = LOCATE_NEW_ReduceAction506_parser___ReduceAction506___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction506();
+  /* ./parser//parser.nit:22583 */
+  INIT_ATTRIBUTES__ReduceAction506(fra.me.REG[0]);
+  parser___ReduceAction506___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction506(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction507[50] = {
+  {(bigint) 2459 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction507 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction507 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2459 /* 4: ReduceAction507 < ReduceAction507: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70865,14 +144066,12 @@ const classtable_elt_t VFT_ReduceAction507[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction507 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction507 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70880,7 +144079,6 @@ const classtable_elt_t VFT_ReduceAction507[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70888,33 +144086,81 @@ const classtable_elt_t VFT_ReduceAction507[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction507 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction507 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction507___action},
-  {(bigint) 2 /* 42: ReduceAction507 < ReduceAction507: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction507 < ReduceAction507: superclass init_table position */},
   {(bigint) parser___ReduceAction507___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction507(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction507(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction507;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction507(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction507;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction507___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction507();
-  parser___ReduceAction507___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction508[44] = {
-  {(bigint) 683 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction508 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction508 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 683 /* 3: ReduceAction508 < ReduceAction508: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction507(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction507;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction507_parser___ReduceAction507___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22604;
+  fra.me.meth = LOCATE_NEW_ReduceAction507_parser___ReduceAction507___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction507();
+  /* ./parser//parser.nit:22604 */
+  INIT_ATTRIBUTES__ReduceAction507(fra.me.REG[0]);
+  parser___ReduceAction507___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction507(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction508[50] = {
+  {(bigint) 2455 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction508 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction508 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2455 /* 4: ReduceAction508 < ReduceAction508: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70924,14 +144170,12 @@ const classtable_elt_t VFT_ReduceAction508[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction508 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction508 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70939,7 +144183,6 @@ const classtable_elt_t VFT_ReduceAction508[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -70947,33 +144190,81 @@ const classtable_elt_t VFT_ReduceAction508[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction508 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction508 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction508___action},
-  {(bigint) 2 /* 42: ReduceAction508 < ReduceAction508: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction508 < ReduceAction508: superclass init_table position */},
   {(bigint) parser___ReduceAction508___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction508(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction508(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction508;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction508(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction508;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction508___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction508();
-  parser___ReduceAction508___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction509[44] = {
-  {(bigint) 679 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction509 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction509 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 679 /* 3: ReduceAction509 < ReduceAction509: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction508(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction508;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction508_parser___ReduceAction508___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22625;
+  fra.me.meth = LOCATE_NEW_ReduceAction508_parser___ReduceAction508___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction508();
+  /* ./parser//parser.nit:22625 */
+  INIT_ATTRIBUTES__ReduceAction508(fra.me.REG[0]);
+  parser___ReduceAction508___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction508(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction509[50] = {
+  {(bigint) 2451 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction509 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction509 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2451 /* 4: ReduceAction509 < ReduceAction509: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70983,14 +144274,12 @@ const classtable_elt_t VFT_ReduceAction509[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction509 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction509 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -70998,7 +144287,6 @@ const classtable_elt_t VFT_ReduceAction509[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71006,33 +144294,81 @@ const classtable_elt_t VFT_ReduceAction509[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction509 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction509 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction509___action},
-  {(bigint) 2 /* 42: ReduceAction509 < ReduceAction509: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction509 < ReduceAction509: superclass init_table position */},
   {(bigint) parser___ReduceAction509___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction509(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction509(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction509;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction509(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction509;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction509___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction509();
-  parser___ReduceAction509___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction510[44] = {
-  {(bigint) 671 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction510 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction510 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 671 /* 3: ReduceAction510 < ReduceAction510: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction509(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction509;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction509_parser___ReduceAction509___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22649;
+  fra.me.meth = LOCATE_NEW_ReduceAction509_parser___ReduceAction509___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction509();
+  /* ./parser//parser.nit:22649 */
+  INIT_ATTRIBUTES__ReduceAction509(fra.me.REG[0]);
+  parser___ReduceAction509___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction509(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction510[50] = {
+  {(bigint) 2443 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction510 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction510 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2443 /* 4: ReduceAction510 < ReduceAction510: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71042,14 +144378,12 @@ const classtable_elt_t VFT_ReduceAction510[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction510 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction510 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71057,7 +144391,6 @@ const classtable_elt_t VFT_ReduceAction510[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71065,33 +144398,81 @@ const classtable_elt_t VFT_ReduceAction510[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction510 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction510 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction510___action},
-  {(bigint) 2 /* 42: ReduceAction510 < ReduceAction510: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction510 < ReduceAction510: superclass init_table position */},
   {(bigint) parser___ReduceAction510___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction510(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction510(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction510;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction510(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction510;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction510___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction510();
-  parser___ReduceAction510___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction511[44] = {
-  {(bigint) 667 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction511 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction511 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 667 /* 3: ReduceAction511 < ReduceAction511: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction510(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction510;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction510_parser___ReduceAction510___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22662;
+  fra.me.meth = LOCATE_NEW_ReduceAction510_parser___ReduceAction510___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction510();
+  /* ./parser//parser.nit:22662 */
+  INIT_ATTRIBUTES__ReduceAction510(fra.me.REG[0]);
+  parser___ReduceAction510___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction510(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction511[50] = {
+  {(bigint) 2439 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction511 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction511 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2439 /* 4: ReduceAction511 < ReduceAction511: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71101,14 +144482,12 @@ const classtable_elt_t VFT_ReduceAction511[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction511 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction511 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71116,7 +144495,6 @@ const classtable_elt_t VFT_ReduceAction511[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71124,33 +144502,81 @@ const classtable_elt_t VFT_ReduceAction511[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction511 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction511 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction511___action},
-  {(bigint) 2 /* 42: ReduceAction511 < ReduceAction511: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction511 < ReduceAction511: superclass init_table position */},
   {(bigint) parser___ReduceAction511___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction511(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction511(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction511;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction511(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction511;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction511___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction511();
-  parser___ReduceAction511___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction512[44] = {
-  {(bigint) 663 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction512 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction512 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 663 /* 3: ReduceAction512 < ReduceAction512: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction511(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction511;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction511_parser___ReduceAction511___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22675;
+  fra.me.meth = LOCATE_NEW_ReduceAction511_parser___ReduceAction511___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction511();
+  /* ./parser//parser.nit:22675 */
+  INIT_ATTRIBUTES__ReduceAction511(fra.me.REG[0]);
+  parser___ReduceAction511___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction511(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction512[50] = {
+  {(bigint) 2435 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction512 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction512 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2435 /* 4: ReduceAction512 < ReduceAction512: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71160,14 +144586,12 @@ const classtable_elt_t VFT_ReduceAction512[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction512 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction512 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71175,7 +144599,6 @@ const classtable_elt_t VFT_ReduceAction512[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71183,33 +144606,81 @@ const classtable_elt_t VFT_ReduceAction512[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction512 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction512 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction512___action},
-  {(bigint) 2 /* 42: ReduceAction512 < ReduceAction512: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction512 < ReduceAction512: superclass init_table position */},
   {(bigint) parser___ReduceAction512___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction512(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction512(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction512;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction512(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction512;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction512___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction512();
-  parser___ReduceAction512___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction513[44] = {
-  {(bigint) 659 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction513 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction513 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 659 /* 3: ReduceAction513 < ReduceAction513: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction512(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction512;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction512_parser___ReduceAction512___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22688;
+  fra.me.meth = LOCATE_NEW_ReduceAction512_parser___ReduceAction512___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction512();
+  /* ./parser//parser.nit:22688 */
+  INIT_ATTRIBUTES__ReduceAction512(fra.me.REG[0]);
+  parser___ReduceAction512___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction512(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction513[50] = {
+  {(bigint) 2431 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction513 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction513 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2431 /* 4: ReduceAction513 < ReduceAction513: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71219,14 +144690,12 @@ const classtable_elt_t VFT_ReduceAction513[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction513 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction513 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71234,7 +144703,6 @@ const classtable_elt_t VFT_ReduceAction513[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71242,33 +144710,81 @@ const classtable_elt_t VFT_ReduceAction513[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction513 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction513 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction513___action},
-  {(bigint) 2 /* 42: ReduceAction513 < ReduceAction513: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction513 < ReduceAction513: superclass init_table position */},
   {(bigint) parser___ReduceAction513___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction513(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction513(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction513;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction513(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction513;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction513___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction513();
-  parser___ReduceAction513___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction514[44] = {
-  {(bigint) 655 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction514 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction514 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 655 /* 3: ReduceAction514 < ReduceAction514: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction513(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction513;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction513_parser___ReduceAction513___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22701;
+  fra.me.meth = LOCATE_NEW_ReduceAction513_parser___ReduceAction513___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction513();
+  /* ./parser//parser.nit:22701 */
+  INIT_ATTRIBUTES__ReduceAction513(fra.me.REG[0]);
+  parser___ReduceAction513___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction513(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction514[50] = {
+  {(bigint) 2427 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction514 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction514 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2427 /* 4: ReduceAction514 < ReduceAction514: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71278,14 +144794,12 @@ const classtable_elt_t VFT_ReduceAction514[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction514 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction514 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71293,7 +144807,6 @@ const classtable_elt_t VFT_ReduceAction514[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71301,33 +144814,81 @@ const classtable_elt_t VFT_ReduceAction514[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction514 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction514 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction514___action},
-  {(bigint) 2 /* 42: ReduceAction514 < ReduceAction514: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction514 < ReduceAction514: superclass init_table position */},
   {(bigint) parser___ReduceAction514___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction514(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction514(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction514;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction514(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction514;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction514___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction514();
-  parser___ReduceAction514___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction515[44] = {
-  {(bigint) 651 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction515 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction515 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 651 /* 3: ReduceAction515 < ReduceAction515: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction514(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction514;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction514_parser___ReduceAction514___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22714;
+  fra.me.meth = LOCATE_NEW_ReduceAction514_parser___ReduceAction514___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction514();
+  /* ./parser//parser.nit:22714 */
+  INIT_ATTRIBUTES__ReduceAction514(fra.me.REG[0]);
+  parser___ReduceAction514___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction514(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction515[50] = {
+  {(bigint) 2423 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction515 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction515 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2423 /* 4: ReduceAction515 < ReduceAction515: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71337,14 +144898,12 @@ const classtable_elt_t VFT_ReduceAction515[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction515 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction515 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71352,7 +144911,6 @@ const classtable_elt_t VFT_ReduceAction515[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71360,33 +144918,81 @@ const classtable_elt_t VFT_ReduceAction515[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction515 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction515 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction515___action},
-  {(bigint) 2 /* 42: ReduceAction515 < ReduceAction515: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction515 < ReduceAction515: superclass init_table position */},
   {(bigint) parser___ReduceAction515___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction515(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction515(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction515;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction515(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction515;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction515___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction515();
-  parser___ReduceAction515___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction516[44] = {
-  {(bigint) 647 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction516 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction516 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 647 /* 3: ReduceAction516 < ReduceAction516: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction515(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction515;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction515_parser___ReduceAction515___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22727;
+  fra.me.meth = LOCATE_NEW_ReduceAction515_parser___ReduceAction515___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction515();
+  /* ./parser//parser.nit:22727 */
+  INIT_ATTRIBUTES__ReduceAction515(fra.me.REG[0]);
+  parser___ReduceAction515___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction515(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction516[50] = {
+  {(bigint) 2419 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction516 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction516 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2419 /* 4: ReduceAction516 < ReduceAction516: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71396,14 +145002,12 @@ const classtable_elt_t VFT_ReduceAction516[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction516 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction516 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71411,7 +145015,6 @@ const classtable_elt_t VFT_ReduceAction516[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71419,33 +145022,81 @@ const classtable_elt_t VFT_ReduceAction516[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction516 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction516 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction516___action},
-  {(bigint) 2 /* 42: ReduceAction516 < ReduceAction516: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction516 < ReduceAction516: superclass init_table position */},
   {(bigint) parser___ReduceAction516___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction516(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction516(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction516;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction516(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction516;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction516___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction516();
-  parser___ReduceAction516___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction517[44] = {
-  {(bigint) 643 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction517 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction517 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 643 /* 3: ReduceAction517 < ReduceAction517: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction516(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction516;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction516_parser___ReduceAction516___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22763;
+  fra.me.meth = LOCATE_NEW_ReduceAction516_parser___ReduceAction516___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction516();
+  /* ./parser//parser.nit:22763 */
+  INIT_ATTRIBUTES__ReduceAction516(fra.me.REG[0]);
+  parser___ReduceAction516___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction516(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction517[50] = {
+  {(bigint) 2415 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction517 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction517 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2415 /* 4: ReduceAction517 < ReduceAction517: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71455,14 +145106,12 @@ const classtable_elt_t VFT_ReduceAction517[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction517 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction517 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71470,7 +145119,6 @@ const classtable_elt_t VFT_ReduceAction517[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71478,33 +145126,81 @@ const classtable_elt_t VFT_ReduceAction517[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction517 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction517 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction517___action},
-  {(bigint) 2 /* 42: ReduceAction517 < ReduceAction517: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction517 < ReduceAction517: superclass init_table position */},
   {(bigint) parser___ReduceAction517___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction517(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction517(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction517;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction517(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction517;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction517___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction517();
-  parser___ReduceAction517___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction518[44] = {
-  {(bigint) 639 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction518 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction518 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 639 /* 3: ReduceAction518 < ReduceAction518: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction517(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction517;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction517_parser___ReduceAction517___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22796;
+  fra.me.meth = LOCATE_NEW_ReduceAction517_parser___ReduceAction517___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction517();
+  /* ./parser//parser.nit:22796 */
+  INIT_ATTRIBUTES__ReduceAction517(fra.me.REG[0]);
+  parser___ReduceAction517___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction517(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction518[50] = {
+  {(bigint) 2411 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction518 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction518 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2411 /* 4: ReduceAction518 < ReduceAction518: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71514,14 +145210,12 @@ const classtable_elt_t VFT_ReduceAction518[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction518 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction518 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71529,7 +145223,6 @@ const classtable_elt_t VFT_ReduceAction518[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71537,33 +145230,81 @@ const classtable_elt_t VFT_ReduceAction518[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction518 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction518 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction518___action},
-  {(bigint) 2 /* 42: ReduceAction518 < ReduceAction518: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction518 < ReduceAction518: superclass init_table position */},
   {(bigint) parser___ReduceAction518___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction518(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction518(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction518;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction518(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction518;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction518___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction518();
-  parser___ReduceAction518___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction519[44] = {
-  {(bigint) 635 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction519 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction519 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 635 /* 3: ReduceAction519 < ReduceAction519: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction518(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction518;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction518_parser___ReduceAction518___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22842;
+  fra.me.meth = LOCATE_NEW_ReduceAction518_parser___ReduceAction518___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction518();
+  /* ./parser//parser.nit:22842 */
+  INIT_ATTRIBUTES__ReduceAction518(fra.me.REG[0]);
+  parser___ReduceAction518___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction518(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction519[50] = {
+  {(bigint) 2407 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction519 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction519 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2407 /* 4: ReduceAction519 < ReduceAction519: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71573,14 +145314,12 @@ const classtable_elt_t VFT_ReduceAction519[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction519 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction519 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71588,7 +145327,6 @@ const classtable_elt_t VFT_ReduceAction519[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71596,33 +145334,81 @@ const classtable_elt_t VFT_ReduceAction519[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction519 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction519 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction519___action},
-  {(bigint) 2 /* 42: ReduceAction519 < ReduceAction519: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction519 < ReduceAction519: superclass init_table position */},
   {(bigint) parser___ReduceAction519___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction519(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction519(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction519;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction519(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction519;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction519___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction519();
-  parser___ReduceAction519___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction520[44] = {
-  {(bigint) 627 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction520 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction520 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 627 /* 3: ReduceAction520 < ReduceAction520: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction519(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction519;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction519_parser___ReduceAction519___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22885;
+  fra.me.meth = LOCATE_NEW_ReduceAction519_parser___ReduceAction519___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction519();
+  /* ./parser//parser.nit:22885 */
+  INIT_ATTRIBUTES__ReduceAction519(fra.me.REG[0]);
+  parser___ReduceAction519___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction519(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction520[50] = {
+  {(bigint) 2399 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction520 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction520 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2399 /* 4: ReduceAction520 < ReduceAction520: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71632,14 +145418,12 @@ const classtable_elt_t VFT_ReduceAction520[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction520 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction520 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71647,7 +145431,6 @@ const classtable_elt_t VFT_ReduceAction520[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71655,33 +145438,81 @@ const classtable_elt_t VFT_ReduceAction520[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
-  {(bigint) math___Object___atan2},
-  {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction520 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction520 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction520___action},
-  {(bigint) 2 /* 42: ReduceAction520 < ReduceAction520: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction520 < ReduceAction520: superclass init_table position */},
   {(bigint) parser___ReduceAction520___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction520(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction520(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction520;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction520(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction520;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction520___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction520();
-  parser___ReduceAction520___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction521[44] = {
-  {(bigint) 623 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction521 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction521 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 623 /* 3: ReduceAction521 < ReduceAction521: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction520(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction520;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction520_parser___ReduceAction520___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22914;
+  fra.me.meth = LOCATE_NEW_ReduceAction520_parser___ReduceAction520___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction520();
+  /* ./parser//parser.nit:22914 */
+  INIT_ATTRIBUTES__ReduceAction520(fra.me.REG[0]);
+  parser___ReduceAction520___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction520(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction521[50] = {
+  {(bigint) 2395 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction521 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction521 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2395 /* 4: ReduceAction521 < ReduceAction521: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71691,14 +145522,12 @@ const classtable_elt_t VFT_ReduceAction521[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction521 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction521 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71706,7 +145535,6 @@ const classtable_elt_t VFT_ReduceAction521[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71714,33 +145542,81 @@ const classtable_elt_t VFT_ReduceAction521[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction521 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction521 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction521___action},
-  {(bigint) 2 /* 42: ReduceAction521 < ReduceAction521: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction521 < ReduceAction521: superclass init_table position */},
   {(bigint) parser___ReduceAction521___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction521(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction521(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction521;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction521(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction521;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction521___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction521();
-  parser___ReduceAction521___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction522[44] = {
-  {(bigint) 619 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction522 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction522 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 619 /* 3: ReduceAction522 < ReduceAction522: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction521(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction521;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction521_parser___ReduceAction521___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22946;
+  fra.me.meth = LOCATE_NEW_ReduceAction521_parser___ReduceAction521___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction521();
+  /* ./parser//parser.nit:22946 */
+  INIT_ATTRIBUTES__ReduceAction521(fra.me.REG[0]);
+  parser___ReduceAction521___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction521(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction522[50] = {
+  {(bigint) 2391 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction522 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction522 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2391 /* 4: ReduceAction522 < ReduceAction522: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71750,14 +145626,12 @@ const classtable_elt_t VFT_ReduceAction522[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction522 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction522 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71765,7 +145639,6 @@ const classtable_elt_t VFT_ReduceAction522[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71773,33 +145646,81 @@ const classtable_elt_t VFT_ReduceAction522[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction522 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction522 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction522___action},
-  {(bigint) 2 /* 42: ReduceAction522 < ReduceAction522: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction522 < ReduceAction522: superclass init_table position */},
   {(bigint) parser___ReduceAction522___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction522(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction522(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction522;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction522(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction522;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction522___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction522();
-  parser___ReduceAction522___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction523[44] = {
-  {(bigint) 615 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction523 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction523 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 615 /* 3: ReduceAction523 < ReduceAction523: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction522(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction522;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction522_parser___ReduceAction522___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 22980;
+  fra.me.meth = LOCATE_NEW_ReduceAction522_parser___ReduceAction522___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction522();
+  /* ./parser//parser.nit:22980 */
+  INIT_ATTRIBUTES__ReduceAction522(fra.me.REG[0]);
+  parser___ReduceAction522___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction522(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction523[50] = {
+  {(bigint) 2387 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction523 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction523 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2387 /* 4: ReduceAction523 < ReduceAction523: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71809,14 +145730,12 @@ const classtable_elt_t VFT_ReduceAction523[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction523 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction523 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71824,7 +145743,6 @@ const classtable_elt_t VFT_ReduceAction523[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71832,33 +145750,81 @@ const classtable_elt_t VFT_ReduceAction523[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction523 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction523 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction523___action},
-  {(bigint) 2 /* 42: ReduceAction523 < ReduceAction523: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction523 < ReduceAction523: superclass init_table position */},
   {(bigint) parser___ReduceAction523___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction523(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction523(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction523;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction523(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction523;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction523___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction523();
-  parser___ReduceAction523___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction524[44] = {
-  {(bigint) 611 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction524 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction524 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 611 /* 3: ReduceAction524 < ReduceAction524: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction523(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction523;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction523_parser___ReduceAction523___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23011;
+  fra.me.meth = LOCATE_NEW_ReduceAction523_parser___ReduceAction523___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction523();
+  /* ./parser//parser.nit:23011 */
+  INIT_ATTRIBUTES__ReduceAction523(fra.me.REG[0]);
+  parser___ReduceAction523___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction523(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction524[50] = {
+  {(bigint) 2383 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction524 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction524 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2383 /* 4: ReduceAction524 < ReduceAction524: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71868,14 +145834,12 @@ const classtable_elt_t VFT_ReduceAction524[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction524 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction524 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71883,7 +145847,6 @@ const classtable_elt_t VFT_ReduceAction524[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71891,33 +145854,81 @@ const classtable_elt_t VFT_ReduceAction524[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction524 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction524 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction524___action},
-  {(bigint) 2 /* 42: ReduceAction524 < ReduceAction524: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction524 < ReduceAction524: superclass init_table position */},
   {(bigint) parser___ReduceAction524___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction524(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction524(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction524;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction524(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction524;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction524___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction524();
-  parser___ReduceAction524___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction525[44] = {
-  {(bigint) 607 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction525 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction525 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 607 /* 3: ReduceAction525 < ReduceAction525: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction524(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction524;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction524_parser___ReduceAction524___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23031;
+  fra.me.meth = LOCATE_NEW_ReduceAction524_parser___ReduceAction524___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction524();
+  /* ./parser//parser.nit:23031 */
+  INIT_ATTRIBUTES__ReduceAction524(fra.me.REG[0]);
+  parser___ReduceAction524___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction524(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction525[50] = {
+  {(bigint) 2379 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction525 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction525 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2379 /* 4: ReduceAction525 < ReduceAction525: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71927,14 +145938,12 @@ const classtable_elt_t VFT_ReduceAction525[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction525 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction525 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -71942,7 +145951,6 @@ const classtable_elt_t VFT_ReduceAction525[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -71950,33 +145958,81 @@ const classtable_elt_t VFT_ReduceAction525[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction525 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction525 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction525___action},
-  {(bigint) 2 /* 42: ReduceAction525 < ReduceAction525: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction525 < ReduceAction525: superclass init_table position */},
   {(bigint) parser___ReduceAction525___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction525(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction525(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction525;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction525(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction525;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction525___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction525();
-  parser___ReduceAction525___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction526[44] = {
-  {(bigint) 603 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction526 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction526 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 603 /* 3: ReduceAction526 < ReduceAction526: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction525(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction525;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction525_parser___ReduceAction525___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23048;
+  fra.me.meth = LOCATE_NEW_ReduceAction525_parser___ReduceAction525___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction525();
+  /* ./parser//parser.nit:23048 */
+  INIT_ATTRIBUTES__ReduceAction525(fra.me.REG[0]);
+  parser___ReduceAction525___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction525(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction526[50] = {
+  {(bigint) 2375 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction526 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction526 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2375 /* 4: ReduceAction526 < ReduceAction526: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71986,14 +146042,12 @@ const classtable_elt_t VFT_ReduceAction526[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction526 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction526 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72001,7 +146055,6 @@ const classtable_elt_t VFT_ReduceAction526[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72009,33 +146062,81 @@ const classtable_elt_t VFT_ReduceAction526[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction526 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction526 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction526___action},
-  {(bigint) 2 /* 42: ReduceAction526 < ReduceAction526: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction526 < ReduceAction526: superclass init_table position */},
   {(bigint) parser___ReduceAction526___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction526(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction526(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction526;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction526(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction526;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction526___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction526();
-  parser___ReduceAction526___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction527[44] = {
-  {(bigint) 599 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction527 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction527 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 599 /* 3: ReduceAction527 < ReduceAction527: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction526(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction526;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction526_parser___ReduceAction526___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23075;
+  fra.me.meth = LOCATE_NEW_ReduceAction526_parser___ReduceAction526___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction526();
+  /* ./parser//parser.nit:23075 */
+  INIT_ATTRIBUTES__ReduceAction526(fra.me.REG[0]);
+  parser___ReduceAction526___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction526(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction527[50] = {
+  {(bigint) 2371 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction527 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction527 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2371 /* 4: ReduceAction527 < ReduceAction527: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72045,14 +146146,12 @@ const classtable_elt_t VFT_ReduceAction527[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction527 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction527 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72060,7 +146159,6 @@ const classtable_elt_t VFT_ReduceAction527[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72068,33 +146166,81 @@ const classtable_elt_t VFT_ReduceAction527[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction527 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction527 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction527___action},
-  {(bigint) 2 /* 42: ReduceAction527 < ReduceAction527: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction527 < ReduceAction527: superclass init_table position */},
   {(bigint) parser___ReduceAction527___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction527(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction527(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction527;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction527(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction527;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction527___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction527();
-  parser___ReduceAction527___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction528[44] = {
-  {(bigint) 595 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction528 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction528 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 595 /* 3: ReduceAction528 < ReduceAction528: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction527(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction527;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction527_parser___ReduceAction527___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23116;
+  fra.me.meth = LOCATE_NEW_ReduceAction527_parser___ReduceAction527___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction527();
+  /* ./parser//parser.nit:23116 */
+  INIT_ATTRIBUTES__ReduceAction527(fra.me.REG[0]);
+  parser___ReduceAction527___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction527(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction528[50] = {
+  {(bigint) 2367 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction528 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction528 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2367 /* 4: ReduceAction528 < ReduceAction528: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72104,14 +146250,12 @@ const classtable_elt_t VFT_ReduceAction528[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction528 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction528 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72119,7 +146263,6 @@ const classtable_elt_t VFT_ReduceAction528[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72127,33 +146270,81 @@ const classtable_elt_t VFT_ReduceAction528[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction528 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction528 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction528___action},
-  {(bigint) 2 /* 42: ReduceAction528 < ReduceAction528: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction528 < ReduceAction528: superclass init_table position */},
   {(bigint) parser___ReduceAction528___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction528(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction528(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction528;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction528(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction528;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction528___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction528();
-  parser___ReduceAction528___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction529[44] = {
-  {(bigint) 591 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction529 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction529 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 591 /* 3: ReduceAction529 < ReduceAction529: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction528(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction528;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction528_parser___ReduceAction528___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23167;
+  fra.me.meth = LOCATE_NEW_ReduceAction528_parser___ReduceAction528___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction528();
+  /* ./parser//parser.nit:23167 */
+  INIT_ATTRIBUTES__ReduceAction528(fra.me.REG[0]);
+  parser___ReduceAction528___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction528(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction529[50] = {
+  {(bigint) 2363 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction529 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction529 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2363 /* 4: ReduceAction529 < ReduceAction529: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72163,14 +146354,12 @@ const classtable_elt_t VFT_ReduceAction529[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction529 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction529 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72178,7 +146367,6 @@ const classtable_elt_t VFT_ReduceAction529[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72186,33 +146374,81 @@ const classtable_elt_t VFT_ReduceAction529[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction529 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction529 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction529___action},
-  {(bigint) 2 /* 42: ReduceAction529 < ReduceAction529: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction529 < ReduceAction529: superclass init_table position */},
   {(bigint) parser___ReduceAction529___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction529(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction529(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction529;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction529(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction529;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction529___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction529();
-  parser___ReduceAction529___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction530[44] = {
-  {(bigint) 583 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction530 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction530 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 583 /* 3: ReduceAction530 < ReduceAction530: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction529(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction529;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction529_parser___ReduceAction529___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23201;
+  fra.me.meth = LOCATE_NEW_ReduceAction529_parser___ReduceAction529___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction529();
+  /* ./parser//parser.nit:23201 */
+  INIT_ATTRIBUTES__ReduceAction529(fra.me.REG[0]);
+  parser___ReduceAction529___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction529(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction530[50] = {
+  {(bigint) 2355 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction530 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction530 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2355 /* 4: ReduceAction530 < ReduceAction530: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72222,14 +146458,12 @@ const classtable_elt_t VFT_ReduceAction530[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction530 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction530 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72237,7 +146471,6 @@ const classtable_elt_t VFT_ReduceAction530[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72245,33 +146478,81 @@ const classtable_elt_t VFT_ReduceAction530[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction530 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction530 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction530___action},
-  {(bigint) 2 /* 42: ReduceAction530 < ReduceAction530: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction530 < ReduceAction530: superclass init_table position */},
   {(bigint) parser___ReduceAction530___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction530(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction530(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction530;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction530(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction530;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction530___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction530();
-  parser___ReduceAction530___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction531[44] = {
-  {(bigint) 579 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction531 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction531 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 579 /* 3: ReduceAction531 < ReduceAction531: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction530(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction530;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction530_parser___ReduceAction530___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23234;
+  fra.me.meth = LOCATE_NEW_ReduceAction530_parser___ReduceAction530___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction530();
+  /* ./parser//parser.nit:23234 */
+  INIT_ATTRIBUTES__ReduceAction530(fra.me.REG[0]);
+  parser___ReduceAction530___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction530(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction531[50] = {
+  {(bigint) 2351 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction531 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction531 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2351 /* 4: ReduceAction531 < ReduceAction531: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72281,14 +146562,12 @@ const classtable_elt_t VFT_ReduceAction531[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction531 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction531 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72296,7 +146575,6 @@ const classtable_elt_t VFT_ReduceAction531[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72304,33 +146582,81 @@ const classtable_elt_t VFT_ReduceAction531[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction531 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction531 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction531___action},
-  {(bigint) 2 /* 42: ReduceAction531 < ReduceAction531: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction531 < ReduceAction531: superclass init_table position */},
   {(bigint) parser___ReduceAction531___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction531(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction531(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction531;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction531(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction531;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction531___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction531();
-  parser___ReduceAction531___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction532[44] = {
-  {(bigint) 575 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction532 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction532 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 575 /* 3: ReduceAction532 < ReduceAction532: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction531(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction531;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction531_parser___ReduceAction531___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23285;
+  fra.me.meth = LOCATE_NEW_ReduceAction531_parser___ReduceAction531___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction531();
+  /* ./parser//parser.nit:23285 */
+  INIT_ATTRIBUTES__ReduceAction531(fra.me.REG[0]);
+  parser___ReduceAction531___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction531(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction532[50] = {
+  {(bigint) 2347 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction532 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction532 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2347 /* 4: ReduceAction532 < ReduceAction532: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72340,14 +146666,12 @@ const classtable_elt_t VFT_ReduceAction532[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction532 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction532 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72355,7 +146679,6 @@ const classtable_elt_t VFT_ReduceAction532[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72363,33 +146686,81 @@ const classtable_elt_t VFT_ReduceAction532[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction532 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction532 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction532___action},
-  {(bigint) 2 /* 42: ReduceAction532 < ReduceAction532: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction532 < ReduceAction532: superclass init_table position */},
   {(bigint) parser___ReduceAction532___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction532(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction532(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction532;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction532(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction532;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction532___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction532();
-  parser___ReduceAction532___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction533[44] = {
-  {(bigint) 571 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction533 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction533 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 571 /* 3: ReduceAction533 < ReduceAction533: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction532(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction532;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction532_parser___ReduceAction532___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23346;
+  fra.me.meth = LOCATE_NEW_ReduceAction532_parser___ReduceAction532___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction532();
+  /* ./parser//parser.nit:23346 */
+  INIT_ATTRIBUTES__ReduceAction532(fra.me.REG[0]);
+  parser___ReduceAction532___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction532(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction533[50] = {
+  {(bigint) 2343 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction533 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction533 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2343 /* 4: ReduceAction533 < ReduceAction533: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72399,14 +146770,12 @@ const classtable_elt_t VFT_ReduceAction533[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction533 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction533 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72414,7 +146783,6 @@ const classtable_elt_t VFT_ReduceAction533[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72422,33 +146790,81 @@ const classtable_elt_t VFT_ReduceAction533[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction533 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction533 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction533___action},
-  {(bigint) 2 /* 42: ReduceAction533 < ReduceAction533: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction533 < ReduceAction533: superclass init_table position */},
   {(bigint) parser___ReduceAction533___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction533(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction533(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction533;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction533(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction533;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction533___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction533();
-  parser___ReduceAction533___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction534[44] = {
-  {(bigint) 567 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction534 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction534 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 567 /* 3: ReduceAction534 < ReduceAction534: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction533(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction533;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction533_parser___ReduceAction533___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23390;
+  fra.me.meth = LOCATE_NEW_ReduceAction533_parser___ReduceAction533___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction533();
+  /* ./parser//parser.nit:23390 */
+  INIT_ATTRIBUTES__ReduceAction533(fra.me.REG[0]);
+  parser___ReduceAction533___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction533(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction534[50] = {
+  {(bigint) 2339 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction534 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction534 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2339 /* 4: ReduceAction534 < ReduceAction534: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72458,14 +146874,12 @@ const classtable_elt_t VFT_ReduceAction534[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction534 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction534 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72473,7 +146887,6 @@ const classtable_elt_t VFT_ReduceAction534[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72481,33 +146894,81 @@ const classtable_elt_t VFT_ReduceAction534[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction534 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction534 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction534___action},
-  {(bigint) 2 /* 42: ReduceAction534 < ReduceAction534: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction534 < ReduceAction534: superclass init_table position */},
   {(bigint) parser___ReduceAction534___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction534(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction534(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction534;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction534(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction534;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction534___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction534();
-  parser___ReduceAction534___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction535[44] = {
-  {(bigint) 563 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction535 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction535 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 563 /* 3: ReduceAction535 < ReduceAction535: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction534(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction534;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction534_parser___ReduceAction534___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23433;
+  fra.me.meth = LOCATE_NEW_ReduceAction534_parser___ReduceAction534___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction534();
+  /* ./parser//parser.nit:23433 */
+  INIT_ATTRIBUTES__ReduceAction534(fra.me.REG[0]);
+  parser___ReduceAction534___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction534(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction535[50] = {
+  {(bigint) 2335 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction535 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction535 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2335 /* 4: ReduceAction535 < ReduceAction535: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72517,14 +146978,12 @@ const classtable_elt_t VFT_ReduceAction535[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction535 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction535 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72532,7 +146991,6 @@ const classtable_elt_t VFT_ReduceAction535[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72540,33 +146998,81 @@ const classtable_elt_t VFT_ReduceAction535[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction535 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction535 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction535___action},
-  {(bigint) 2 /* 42: ReduceAction535 < ReduceAction535: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction535 < ReduceAction535: superclass init_table position */},
   {(bigint) parser___ReduceAction535___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction535(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction535(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction535;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction535(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction535;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction535___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction535();
-  parser___ReduceAction535___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction536[44] = {
-  {(bigint) 559 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction536 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction536 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 559 /* 3: ReduceAction536 < ReduceAction536: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction535(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction535;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction535_parser___ReduceAction535___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23477;
+  fra.me.meth = LOCATE_NEW_ReduceAction535_parser___ReduceAction535___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction535();
+  /* ./parser//parser.nit:23477 */
+  INIT_ATTRIBUTES__ReduceAction535(fra.me.REG[0]);
+  parser___ReduceAction535___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction535(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction536[50] = {
+  {(bigint) 2331 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction536 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction536 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2331 /* 4: ReduceAction536 < ReduceAction536: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72576,14 +147082,12 @@ const classtable_elt_t VFT_ReduceAction536[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction536 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction536 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72591,7 +147095,6 @@ const classtable_elt_t VFT_ReduceAction536[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72599,33 +147102,81 @@ const classtable_elt_t VFT_ReduceAction536[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction536 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction536 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction536___action},
-  {(bigint) 2 /* 42: ReduceAction536 < ReduceAction536: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction536 < ReduceAction536: superclass init_table position */},
   {(bigint) parser___ReduceAction536___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction536(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction536(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction536;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction536(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction536;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction536___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction536();
-  parser___ReduceAction536___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction537[44] = {
-  {(bigint) 555 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction537 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction537 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 555 /* 3: ReduceAction537 < ReduceAction537: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction536(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction536;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction536_parser___ReduceAction536___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23531;
+  fra.me.meth = LOCATE_NEW_ReduceAction536_parser___ReduceAction536___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction536();
+  /* ./parser//parser.nit:23531 */
+  INIT_ATTRIBUTES__ReduceAction536(fra.me.REG[0]);
+  parser___ReduceAction536___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction536(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction537[50] = {
+  {(bigint) 2327 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction537 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction537 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2327 /* 4: ReduceAction537 < ReduceAction537: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72635,14 +147186,12 @@ const classtable_elt_t VFT_ReduceAction537[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction537 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction537 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72650,7 +147199,6 @@ const classtable_elt_t VFT_ReduceAction537[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72658,33 +147206,81 @@ const classtable_elt_t VFT_ReduceAction537[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction537 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction537 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction537___action},
-  {(bigint) 2 /* 42: ReduceAction537 < ReduceAction537: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction537 < ReduceAction537: superclass init_table position */},
   {(bigint) parser___ReduceAction537___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction537(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction537(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction537;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction537(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction537;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction537___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction537();
-  parser___ReduceAction537___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction538[44] = {
-  {(bigint) 551 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction538 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction538 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 551 /* 3: ReduceAction538 < ReduceAction538: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction537(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction537;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction537_parser___ReduceAction537___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23568;
+  fra.me.meth = LOCATE_NEW_ReduceAction537_parser___ReduceAction537___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction537();
+  /* ./parser//parser.nit:23568 */
+  INIT_ATTRIBUTES__ReduceAction537(fra.me.REG[0]);
+  parser___ReduceAction537___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction537(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction538[50] = {
+  {(bigint) 2323 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction538 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction538 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2323 /* 4: ReduceAction538 < ReduceAction538: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72694,14 +147290,12 @@ const classtable_elt_t VFT_ReduceAction538[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction538 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction538 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72709,7 +147303,6 @@ const classtable_elt_t VFT_ReduceAction538[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72717,33 +147310,81 @@ const classtable_elt_t VFT_ReduceAction538[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction538 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction538 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction538___action},
-  {(bigint) 2 /* 42: ReduceAction538 < ReduceAction538: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction538 < ReduceAction538: superclass init_table position */},
   {(bigint) parser___ReduceAction538___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction538(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction538(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction538;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction538(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction538;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction538___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction538();
-  parser___ReduceAction538___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction539[44] = {
-  {(bigint) 547 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction539 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction539 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 547 /* 3: ReduceAction539 < ReduceAction539: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction538(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction538;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction538_parser___ReduceAction538___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23604;
+  fra.me.meth = LOCATE_NEW_ReduceAction538_parser___ReduceAction538___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction538();
+  /* ./parser//parser.nit:23604 */
+  INIT_ATTRIBUTES__ReduceAction538(fra.me.REG[0]);
+  parser___ReduceAction538___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction538(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction539[50] = {
+  {(bigint) 2319 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction539 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction539 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2319 /* 4: ReduceAction539 < ReduceAction539: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72753,22 +147394,19 @@ const classtable_elt_t VFT_ReduceAction539[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction539 < Object: superclass init_table position */},
-  {(bigint) kernel___Object___object_id},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction539 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
   {(bigint) kernel___Object_____neq},
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72776,33 +147414,81 @@ const classtable_elt_t VFT_ReduceAction539[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction539 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction539 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction539___action},
-  {(bigint) 2 /* 42: ReduceAction539 < ReduceAction539: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction539 < ReduceAction539: superclass init_table position */},
   {(bigint) parser___ReduceAction539___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction539(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction539(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction539;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction539(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction539;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction539___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction539();
-  parser___ReduceAction539___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction540[44] = {
-  {(bigint) 539 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction540 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction540 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 539 /* 3: ReduceAction540 < ReduceAction540: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction539(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction539;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction539_parser___ReduceAction539___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23658;
+  fra.me.meth = LOCATE_NEW_ReduceAction539_parser___ReduceAction539___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction539();
+  /* ./parser//parser.nit:23658 */
+  INIT_ATTRIBUTES__ReduceAction539(fra.me.REG[0]);
+  parser___ReduceAction539___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction539(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction540[50] = {
+  {(bigint) 2311 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction540 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction540 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2311 /* 4: ReduceAction540 < ReduceAction540: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72812,14 +147498,12 @@ const classtable_elt_t VFT_ReduceAction540[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction540 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction540 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72827,7 +147511,6 @@ const classtable_elt_t VFT_ReduceAction540[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72835,33 +147518,81 @@ const classtable_elt_t VFT_ReduceAction540[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction540 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction540 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction540___action},
-  {(bigint) 2 /* 42: ReduceAction540 < ReduceAction540: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction540 < ReduceAction540: superclass init_table position */},
   {(bigint) parser___ReduceAction540___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction540(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction540(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction540;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction540(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction540;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction540___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction540();
-  parser___ReduceAction540___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction541[44] = {
-  {(bigint) 535 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction541 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction541 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 535 /* 3: ReduceAction541 < ReduceAction541: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction540(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction540;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction540_parser___ReduceAction540___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23722;
+  fra.me.meth = LOCATE_NEW_ReduceAction540_parser___ReduceAction540___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction540();
+  /* ./parser//parser.nit:23722 */
+  INIT_ATTRIBUTES__ReduceAction540(fra.me.REG[0]);
+  parser___ReduceAction540___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction540(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction541[50] = {
+  {(bigint) 2307 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction541 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction541 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2307 /* 4: ReduceAction541 < ReduceAction541: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72871,14 +147602,12 @@ const classtable_elt_t VFT_ReduceAction541[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction541 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction541 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72886,7 +147615,6 @@ const classtable_elt_t VFT_ReduceAction541[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72894,33 +147622,81 @@ const classtable_elt_t VFT_ReduceAction541[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction541 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction541 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction541___action},
-  {(bigint) 2 /* 42: ReduceAction541 < ReduceAction541: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction541 < ReduceAction541: superclass init_table position */},
   {(bigint) parser___ReduceAction541___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction541(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction541(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction541;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction541(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction541;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction541___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction541();
-  parser___ReduceAction541___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction542[44] = {
-  {(bigint) 531 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction542 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction542 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 531 /* 3: ReduceAction542 < ReduceAction542: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction541(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction541;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction541_parser___ReduceAction541___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23769;
+  fra.me.meth = LOCATE_NEW_ReduceAction541_parser___ReduceAction541___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction541();
+  /* ./parser//parser.nit:23769 */
+  INIT_ATTRIBUTES__ReduceAction541(fra.me.REG[0]);
+  parser___ReduceAction541___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction541(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction542[50] = {
+  {(bigint) 2303 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction542 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction542 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2303 /* 4: ReduceAction542 < ReduceAction542: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72930,14 +147706,12 @@ const classtable_elt_t VFT_ReduceAction542[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction542 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction542 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -72945,7 +147719,6 @@ const classtable_elt_t VFT_ReduceAction542[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -72953,33 +147726,81 @@ const classtable_elt_t VFT_ReduceAction542[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction542 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction542 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction542___action},
-  {(bigint) 2 /* 42: ReduceAction542 < ReduceAction542: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction542 < ReduceAction542: superclass init_table position */},
   {(bigint) parser___ReduceAction542___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction542(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction542(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction542;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction542(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction542;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction542___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction542();
-  parser___ReduceAction542___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction543[44] = {
-  {(bigint) 527 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction543 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction543 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 527 /* 3: ReduceAction543 < ReduceAction543: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction542(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction542;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction542_parser___ReduceAction542___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23815;
+  fra.me.meth = LOCATE_NEW_ReduceAction542_parser___ReduceAction542___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction542();
+  /* ./parser//parser.nit:23815 */
+  INIT_ATTRIBUTES__ReduceAction542(fra.me.REG[0]);
+  parser___ReduceAction542___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction542(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction543[50] = {
+  {(bigint) 2299 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction543 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction543 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2299 /* 4: ReduceAction543 < ReduceAction543: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72989,14 +147810,12 @@ const classtable_elt_t VFT_ReduceAction543[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction543 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction543 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73004,7 +147823,6 @@ const classtable_elt_t VFT_ReduceAction543[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73012,33 +147830,81 @@ const classtable_elt_t VFT_ReduceAction543[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction543 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction543 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction543___action},
-  {(bigint) 2 /* 42: ReduceAction543 < ReduceAction543: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction543 < ReduceAction543: superclass init_table position */},
   {(bigint) parser___ReduceAction543___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction543(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction543(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction543;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction543(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction543;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction543___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction543();
-  parser___ReduceAction543___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction544[44] = {
-  {(bigint) 523 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction544 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction544 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 523 /* 3: ReduceAction544 < ReduceAction544: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction543(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction543;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction543_parser___ReduceAction543___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23846;
+  fra.me.meth = LOCATE_NEW_ReduceAction543_parser___ReduceAction543___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction543();
+  /* ./parser//parser.nit:23846 */
+  INIT_ATTRIBUTES__ReduceAction543(fra.me.REG[0]);
+  parser___ReduceAction543___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction543(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction544[50] = {
+  {(bigint) 2295 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction544 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction544 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2295 /* 4: ReduceAction544 < ReduceAction544: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73048,14 +147914,12 @@ const classtable_elt_t VFT_ReduceAction544[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction544 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction544 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73063,7 +147927,6 @@ const classtable_elt_t VFT_ReduceAction544[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73071,33 +147934,81 @@ const classtable_elt_t VFT_ReduceAction544[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction544 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction544 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction544___action},
-  {(bigint) 2 /* 42: ReduceAction544 < ReduceAction544: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction544 < ReduceAction544: superclass init_table position */},
   {(bigint) parser___ReduceAction544___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction544(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction544(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction544;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction544(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction544;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction544___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction544();
-  parser___ReduceAction544___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction545[44] = {
-  {(bigint) 519 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction545 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction545 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 519 /* 3: ReduceAction545 < ReduceAction545: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction544(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction544;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction544_parser___ReduceAction544___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23887;
+  fra.me.meth = LOCATE_NEW_ReduceAction544_parser___ReduceAction544___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction544();
+  /* ./parser//parser.nit:23887 */
+  INIT_ATTRIBUTES__ReduceAction544(fra.me.REG[0]);
+  parser___ReduceAction544___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction544(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction545[50] = {
+  {(bigint) 2291 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction545 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction545 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2291 /* 4: ReduceAction545 < ReduceAction545: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73107,14 +148018,12 @@ const classtable_elt_t VFT_ReduceAction545[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction545 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction545 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73122,7 +148031,6 @@ const classtable_elt_t VFT_ReduceAction545[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73130,33 +148038,81 @@ const classtable_elt_t VFT_ReduceAction545[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction545 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction545 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction545___action},
-  {(bigint) 2 /* 42: ReduceAction545 < ReduceAction545: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction545 < ReduceAction545: superclass init_table position */},
   {(bigint) parser___ReduceAction545___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction545(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction545(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction545;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction545(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction545;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction545___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction545();
-  parser___ReduceAction545___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction546[44] = {
-  {(bigint) 515 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction546 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction546 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 515 /* 3: ReduceAction546 < ReduceAction546: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction545(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction545;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction545_parser___ReduceAction545___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23917;
+  fra.me.meth = LOCATE_NEW_ReduceAction545_parser___ReduceAction545___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction545();
+  /* ./parser//parser.nit:23917 */
+  INIT_ATTRIBUTES__ReduceAction545(fra.me.REG[0]);
+  parser___ReduceAction545___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction545(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction546[50] = {
+  {(bigint) 2287 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction546 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction546 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2287 /* 4: ReduceAction546 < ReduceAction546: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73166,14 +148122,12 @@ const classtable_elt_t VFT_ReduceAction546[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction546 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction546 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73181,7 +148135,6 @@ const classtable_elt_t VFT_ReduceAction546[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73189,33 +148142,81 @@ const classtable_elt_t VFT_ReduceAction546[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction546 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction546 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction546___action},
-  {(bigint) 2 /* 42: ReduceAction546 < ReduceAction546: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction546 < ReduceAction546: superclass init_table position */},
   {(bigint) parser___ReduceAction546___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction546(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction546(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction546;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction546(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction546;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction546___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction546();
-  parser___ReduceAction546___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction547[44] = {
-  {(bigint) 511 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction547 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction547 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 511 /* 3: ReduceAction547 < ReduceAction547: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction546(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction546;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction546_parser___ReduceAction546___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23957;
+  fra.me.meth = LOCATE_NEW_ReduceAction546_parser___ReduceAction546___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction546();
+  /* ./parser//parser.nit:23957 */
+  INIT_ATTRIBUTES__ReduceAction546(fra.me.REG[0]);
+  parser___ReduceAction546___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction546(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction547[50] = {
+  {(bigint) 2283 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction547 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction547 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2283 /* 4: ReduceAction547 < ReduceAction547: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73225,14 +148226,12 @@ const classtable_elt_t VFT_ReduceAction547[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction547 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction547 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73240,7 +148239,6 @@ const classtable_elt_t VFT_ReduceAction547[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73248,33 +148246,81 @@ const classtable_elt_t VFT_ReduceAction547[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction547 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction547 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction547___action},
-  {(bigint) 2 /* 42: ReduceAction547 < ReduceAction547: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction547 < ReduceAction547: superclass init_table position */},
   {(bigint) parser___ReduceAction547___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction547(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction547(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction547;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction547(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction547;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction547___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction547();
-  parser___ReduceAction547___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction548[44] = {
-  {(bigint) 507 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction548 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction548 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 507 /* 3: ReduceAction548 < ReduceAction548: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction547(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction547;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction547_parser___ReduceAction547___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 23997;
+  fra.me.meth = LOCATE_NEW_ReduceAction547_parser___ReduceAction547___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction547();
+  /* ./parser//parser.nit:23997 */
+  INIT_ATTRIBUTES__ReduceAction547(fra.me.REG[0]);
+  parser___ReduceAction547___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction547(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction548[50] = {
+  {(bigint) 2279 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction548 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction548 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2279 /* 4: ReduceAction548 < ReduceAction548: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73284,14 +148330,12 @@ const classtable_elt_t VFT_ReduceAction548[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction548 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction548 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73299,7 +148343,6 @@ const classtable_elt_t VFT_ReduceAction548[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73307,33 +148350,81 @@ const classtable_elt_t VFT_ReduceAction548[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction548 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction548 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction548___action},
-  {(bigint) 2 /* 42: ReduceAction548 < ReduceAction548: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction548 < ReduceAction548: superclass init_table position */},
   {(bigint) parser___ReduceAction548___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction548(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction548(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction548;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction548(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction548;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction548___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction548();
-  parser___ReduceAction548___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction549[44] = {
-  {(bigint) 503 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction549 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction549 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 503 /* 3: ReduceAction549 < ReduceAction549: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction548(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction548;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction548_parser___ReduceAction548___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24047;
+  fra.me.meth = LOCATE_NEW_ReduceAction548_parser___ReduceAction548___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction548();
+  /* ./parser//parser.nit:24047 */
+  INIT_ATTRIBUTES__ReduceAction548(fra.me.REG[0]);
+  parser___ReduceAction548___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction548(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction549[50] = {
+  {(bigint) 2275 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction549 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction549 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2275 /* 4: ReduceAction549 < ReduceAction549: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73343,14 +148434,12 @@ const classtable_elt_t VFT_ReduceAction549[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction549 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction549 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73358,7 +148447,6 @@ const classtable_elt_t VFT_ReduceAction549[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73366,33 +148454,81 @@ const classtable_elt_t VFT_ReduceAction549[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction549 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction549 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction549___action},
-  {(bigint) 2 /* 42: ReduceAction549 < ReduceAction549: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction549 < ReduceAction549: superclass init_table position */},
   {(bigint) parser___ReduceAction549___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction549(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction549(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction549;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction549(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction549;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction549___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction549();
-  parser___ReduceAction549___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction550[44] = {
-  {(bigint) 495 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction550 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction550 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 495 /* 3: ReduceAction550 < ReduceAction550: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction549(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction549;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction549_parser___ReduceAction549___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24097;
+  fra.me.meth = LOCATE_NEW_ReduceAction549_parser___ReduceAction549___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction549();
+  /* ./parser//parser.nit:24097 */
+  INIT_ATTRIBUTES__ReduceAction549(fra.me.REG[0]);
+  parser___ReduceAction549___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction549(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction550[50] = {
+  {(bigint) 2267 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction550 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction550 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2267 /* 4: ReduceAction550 < ReduceAction550: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73402,14 +148538,12 @@ const classtable_elt_t VFT_ReduceAction550[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction550 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction550 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73417,7 +148551,6 @@ const classtable_elt_t VFT_ReduceAction550[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73425,33 +148558,81 @@ const classtable_elt_t VFT_ReduceAction550[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction550 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction550 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction550___action},
-  {(bigint) 2 /* 42: ReduceAction550 < ReduceAction550: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction550 < ReduceAction550: superclass init_table position */},
   {(bigint) parser___ReduceAction550___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction550(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction550(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction550;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction550(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction550;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction550___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction550();
-  parser___ReduceAction550___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction551[44] = {
-  {(bigint) 491 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction551 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction551 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 491 /* 3: ReduceAction551 < ReduceAction551: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction550(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction550;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction550_parser___ReduceAction550___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24157;
+  fra.me.meth = LOCATE_NEW_ReduceAction550_parser___ReduceAction550___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction550();
+  /* ./parser//parser.nit:24157 */
+  INIT_ATTRIBUTES__ReduceAction550(fra.me.REG[0]);
+  parser___ReduceAction550___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction550(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction551[50] = {
+  {(bigint) 2263 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction551 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction551 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2263 /* 4: ReduceAction551 < ReduceAction551: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73461,14 +148642,12 @@ const classtable_elt_t VFT_ReduceAction551[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction551 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction551 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73476,7 +148655,6 @@ const classtable_elt_t VFT_ReduceAction551[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73484,33 +148662,81 @@ const classtable_elt_t VFT_ReduceAction551[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction551 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction551 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction551___action},
-  {(bigint) 2 /* 42: ReduceAction551 < ReduceAction551: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction551 < ReduceAction551: superclass init_table position */},
   {(bigint) parser___ReduceAction551___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction551(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction551(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction551;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction551(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction551;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction551___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction551();
-  parser___ReduceAction551___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction552[44] = {
-  {(bigint) 487 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction552 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction552 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 487 /* 3: ReduceAction552 < ReduceAction552: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction551(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction551;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction551_parser___ReduceAction551___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24186;
+  fra.me.meth = LOCATE_NEW_ReduceAction551_parser___ReduceAction551___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction551();
+  /* ./parser//parser.nit:24186 */
+  INIT_ATTRIBUTES__ReduceAction551(fra.me.REG[0]);
+  parser___ReduceAction551___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction551(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction552[50] = {
+  {(bigint) 2259 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction552 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction552 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2259 /* 4: ReduceAction552 < ReduceAction552: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73520,14 +148746,12 @@ const classtable_elt_t VFT_ReduceAction552[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction552 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction552 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73535,7 +148759,6 @@ const classtable_elt_t VFT_ReduceAction552[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73543,33 +148766,81 @@ const classtable_elt_t VFT_ReduceAction552[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction552 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction552 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction552___action},
-  {(bigint) 2 /* 42: ReduceAction552 < ReduceAction552: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction552 < ReduceAction552: superclass init_table position */},
   {(bigint) parser___ReduceAction552___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction552(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction552(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction552;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction552(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction552;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction552___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction552();
-  parser___ReduceAction552___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction553[44] = {
-  {(bigint) 483 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction553 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction553 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 483 /* 3: ReduceAction553 < ReduceAction553: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction552(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction552;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction552_parser___ReduceAction552___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24225;
+  fra.me.meth = LOCATE_NEW_ReduceAction552_parser___ReduceAction552___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction552();
+  /* ./parser//parser.nit:24225 */
+  INIT_ATTRIBUTES__ReduceAction552(fra.me.REG[0]);
+  parser___ReduceAction552___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction552(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction553[50] = {
+  {(bigint) 2255 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction553 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction553 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2255 /* 4: ReduceAction553 < ReduceAction553: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73579,14 +148850,12 @@ const classtable_elt_t VFT_ReduceAction553[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction553 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction553 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73594,7 +148863,6 @@ const classtable_elt_t VFT_ReduceAction553[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73602,33 +148870,81 @@ const classtable_elt_t VFT_ReduceAction553[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction553 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction553 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction553___action},
-  {(bigint) 2 /* 42: ReduceAction553 < ReduceAction553: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction553 < ReduceAction553: superclass init_table position */},
   {(bigint) parser___ReduceAction553___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction553(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction553(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction553;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction553(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction553;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction553___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction553();
-  parser___ReduceAction553___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction554[44] = {
-  {(bigint) 479 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction554 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction554 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 479 /* 3: ReduceAction554 < ReduceAction554: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction553(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction553;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction553_parser___ReduceAction553___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24241;
+  fra.me.meth = LOCATE_NEW_ReduceAction553_parser___ReduceAction553___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction553();
+  /* ./parser//parser.nit:24241 */
+  INIT_ATTRIBUTES__ReduceAction553(fra.me.REG[0]);
+  parser___ReduceAction553___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction553(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction554[50] = {
+  {(bigint) 2251 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction554 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction554 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2251 /* 4: ReduceAction554 < ReduceAction554: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73638,14 +148954,12 @@ const classtable_elt_t VFT_ReduceAction554[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction554 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction554 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73653,7 +148967,6 @@ const classtable_elt_t VFT_ReduceAction554[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73661,33 +148974,81 @@ const classtable_elt_t VFT_ReduceAction554[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction554 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction554 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction554___action},
-  {(bigint) 2 /* 42: ReduceAction554 < ReduceAction554: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction554 < ReduceAction554: superclass init_table position */},
   {(bigint) parser___ReduceAction554___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction554(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction554(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction554;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction554(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction554;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction554___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction554();
-  parser___ReduceAction554___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction555[44] = {
-  {(bigint) 475 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction555 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction555 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 475 /* 3: ReduceAction555 < ReduceAction555: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction554(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction554;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction554_parser___ReduceAction554___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24257;
+  fra.me.meth = LOCATE_NEW_ReduceAction554_parser___ReduceAction554___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction554();
+  /* ./parser//parser.nit:24257 */
+  INIT_ATTRIBUTES__ReduceAction554(fra.me.REG[0]);
+  parser___ReduceAction554___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction554(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction555[50] = {
+  {(bigint) 2247 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction555 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction555 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2247 /* 4: ReduceAction555 < ReduceAction555: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73697,14 +149058,12 @@ const classtable_elt_t VFT_ReduceAction555[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction555 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction555 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73712,7 +149071,6 @@ const classtable_elt_t VFT_ReduceAction555[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73720,33 +149078,81 @@ const classtable_elt_t VFT_ReduceAction555[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction555 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction555 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction555___action},
-  {(bigint) 2 /* 42: ReduceAction555 < ReduceAction555: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction555 < ReduceAction555: superclass init_table position */},
   {(bigint) parser___ReduceAction555___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction555(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction555(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction555;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction555(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction555;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction555___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction555();
-  parser___ReduceAction555___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction556[44] = {
-  {(bigint) 471 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction556 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction556 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 471 /* 3: ReduceAction556 < ReduceAction556: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction555(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction555;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction555_parser___ReduceAction555___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24275;
+  fra.me.meth = LOCATE_NEW_ReduceAction555_parser___ReduceAction555___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction555();
+  /* ./parser//parser.nit:24275 */
+  INIT_ATTRIBUTES__ReduceAction555(fra.me.REG[0]);
+  parser___ReduceAction555___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction555(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction556[50] = {
+  {(bigint) 2243 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction556 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction556 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2243 /* 4: ReduceAction556 < ReduceAction556: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73756,14 +149162,12 @@ const classtable_elt_t VFT_ReduceAction556[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction556 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction556 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73771,7 +149175,6 @@ const classtable_elt_t VFT_ReduceAction556[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73779,33 +149182,81 @@ const classtable_elt_t VFT_ReduceAction556[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction556 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction556 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction556___action},
-  {(bigint) 2 /* 42: ReduceAction556 < ReduceAction556: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction556 < ReduceAction556: superclass init_table position */},
   {(bigint) parser___ReduceAction556___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction556(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction556(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction556;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction556(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction556;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction556___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction556();
-  parser___ReduceAction556___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction557[44] = {
-  {(bigint) 467 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction557 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction557 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 467 /* 3: ReduceAction557 < ReduceAction557: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction556(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction556;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction556_parser___ReduceAction556___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24298;
+  fra.me.meth = LOCATE_NEW_ReduceAction556_parser___ReduceAction556___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction556();
+  /* ./parser//parser.nit:24298 */
+  INIT_ATTRIBUTES__ReduceAction556(fra.me.REG[0]);
+  parser___ReduceAction556___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction556(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction557[50] = {
+  {(bigint) 2239 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction557 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction557 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2239 /* 4: ReduceAction557 < ReduceAction557: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73815,14 +149266,12 @@ const classtable_elt_t VFT_ReduceAction557[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction557 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction557 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73830,7 +149279,6 @@ const classtable_elt_t VFT_ReduceAction557[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73838,33 +149286,81 @@ const classtable_elt_t VFT_ReduceAction557[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction557 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction557 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction557___action},
-  {(bigint) 2 /* 42: ReduceAction557 < ReduceAction557: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction557 < ReduceAction557: superclass init_table position */},
   {(bigint) parser___ReduceAction557___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction557(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction557(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction557;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction557(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction557;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction557___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction557();
-  parser___ReduceAction557___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction558[44] = {
-  {(bigint) 463 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction558 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction558 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 463 /* 3: ReduceAction558 < ReduceAction558: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction557(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction557;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction557_parser___ReduceAction557___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24324;
+  fra.me.meth = LOCATE_NEW_ReduceAction557_parser___ReduceAction557___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction557();
+  /* ./parser//parser.nit:24324 */
+  INIT_ATTRIBUTES__ReduceAction557(fra.me.REG[0]);
+  parser___ReduceAction557___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction557(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction558[50] = {
+  {(bigint) 2235 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction558 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction558 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2235 /* 4: ReduceAction558 < ReduceAction558: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73874,14 +149370,12 @@ const classtable_elt_t VFT_ReduceAction558[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction558 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction558 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73889,7 +149383,6 @@ const classtable_elt_t VFT_ReduceAction558[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73897,33 +149390,81 @@ const classtable_elt_t VFT_ReduceAction558[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction558 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction558 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction558___action},
-  {(bigint) 2 /* 42: ReduceAction558 < ReduceAction558: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction558 < ReduceAction558: superclass init_table position */},
   {(bigint) parser___ReduceAction558___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction558(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction558(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction558;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction558(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction558;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction558___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction558();
-  parser___ReduceAction558___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction559[44] = {
-  {(bigint) 459 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction559 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction559 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 459 /* 3: ReduceAction559 < ReduceAction559: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction558(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction558;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction558_parser___ReduceAction558___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24354;
+  fra.me.meth = LOCATE_NEW_ReduceAction558_parser___ReduceAction558___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction558();
+  /* ./parser//parser.nit:24354 */
+  INIT_ATTRIBUTES__ReduceAction558(fra.me.REG[0]);
+  parser___ReduceAction558___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction558(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction559[50] = {
+  {(bigint) 2231 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction559 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction559 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2231 /* 4: ReduceAction559 < ReduceAction559: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73933,14 +149474,12 @@ const classtable_elt_t VFT_ReduceAction559[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction559 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction559 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -73948,7 +149487,6 @@ const classtable_elt_t VFT_ReduceAction559[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -73956,33 +149494,81 @@ const classtable_elt_t VFT_ReduceAction559[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction559 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction559 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction559___action},
-  {(bigint) 2 /* 42: ReduceAction559 < ReduceAction559: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction559 < ReduceAction559: superclass init_table position */},
   {(bigint) parser___ReduceAction559___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction559(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction559(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction559;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction559(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction559;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction559___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction559();
-  parser___ReduceAction559___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction560[44] = {
-  {(bigint) 451 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction560 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction560 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 451 /* 3: ReduceAction560 < ReduceAction560: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction559(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction559;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction559_parser___ReduceAction559___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24387;
+  fra.me.meth = LOCATE_NEW_ReduceAction559_parser___ReduceAction559___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction559();
+  /* ./parser//parser.nit:24387 */
+  INIT_ATTRIBUTES__ReduceAction559(fra.me.REG[0]);
+  parser___ReduceAction559___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction559(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction560[50] = {
+  {(bigint) 2223 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction560 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction560 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2223 /* 4: ReduceAction560 < ReduceAction560: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73992,14 +149578,12 @@ const classtable_elt_t VFT_ReduceAction560[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction560 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction560 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74007,7 +149591,6 @@ const classtable_elt_t VFT_ReduceAction560[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74015,33 +149598,81 @@ const classtable_elt_t VFT_ReduceAction560[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction560 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction560 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction560___action},
-  {(bigint) 2 /* 42: ReduceAction560 < ReduceAction560: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction560 < ReduceAction560: superclass init_table position */},
   {(bigint) parser___ReduceAction560___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction560(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction560(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction560;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction560(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction560;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction560___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction560();
-  parser___ReduceAction560___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction561[44] = {
-  {(bigint) 447 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction561 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction561 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 447 /* 3: ReduceAction561 < ReduceAction561: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction560(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction560;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction560_parser___ReduceAction560___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24417;
+  fra.me.meth = LOCATE_NEW_ReduceAction560_parser___ReduceAction560___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction560();
+  /* ./parser//parser.nit:24417 */
+  INIT_ATTRIBUTES__ReduceAction560(fra.me.REG[0]);
+  parser___ReduceAction560___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction560(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction561[50] = {
+  {(bigint) 2219 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction561 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction561 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2219 /* 4: ReduceAction561 < ReduceAction561: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74051,14 +149682,12 @@ const classtable_elt_t VFT_ReduceAction561[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction561 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction561 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74066,7 +149695,6 @@ const classtable_elt_t VFT_ReduceAction561[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74074,33 +149702,81 @@ const classtable_elt_t VFT_ReduceAction561[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction561 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction561 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction561___action},
-  {(bigint) 2 /* 42: ReduceAction561 < ReduceAction561: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction561 < ReduceAction561: superclass init_table position */},
   {(bigint) parser___ReduceAction561___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction561(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction561(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction561;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction561(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction561;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction561___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction561();
-  parser___ReduceAction561___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction562[44] = {
-  {(bigint) 443 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction562 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction562 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 443 /* 3: ReduceAction562 < ReduceAction562: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction561(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction561;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction561_parser___ReduceAction561___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24444;
+  fra.me.meth = LOCATE_NEW_ReduceAction561_parser___ReduceAction561___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction561();
+  /* ./parser//parser.nit:24444 */
+  INIT_ATTRIBUTES__ReduceAction561(fra.me.REG[0]);
+  parser___ReduceAction561___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction561(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction562[50] = {
+  {(bigint) 2215 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction562 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction562 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2215 /* 4: ReduceAction562 < ReduceAction562: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74110,14 +149786,12 @@ const classtable_elt_t VFT_ReduceAction562[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction562 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction562 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74125,7 +149799,6 @@ const classtable_elt_t VFT_ReduceAction562[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74133,33 +149806,81 @@ const classtable_elt_t VFT_ReduceAction562[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction562 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction562 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction562___action},
-  {(bigint) 2 /* 42: ReduceAction562 < ReduceAction562: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction562 < ReduceAction562: superclass init_table position */},
   {(bigint) parser___ReduceAction562___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction562(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction562(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction562;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction562(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction562;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction562___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction562();
-  parser___ReduceAction562___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction563[44] = {
-  {(bigint) 439 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction563 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction563 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 439 /* 3: ReduceAction563 < ReduceAction563: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction562(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction562;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction562_parser___ReduceAction562___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24486;
+  fra.me.meth = LOCATE_NEW_ReduceAction562_parser___ReduceAction562___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction562();
+  /* ./parser//parser.nit:24486 */
+  INIT_ATTRIBUTES__ReduceAction562(fra.me.REG[0]);
+  parser___ReduceAction562___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction562(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction563[50] = {
+  {(bigint) 2211 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction563 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction563 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2211 /* 4: ReduceAction563 < ReduceAction563: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74169,14 +149890,12 @@ const classtable_elt_t VFT_ReduceAction563[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction563 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction563 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74184,7 +149903,6 @@ const classtable_elt_t VFT_ReduceAction563[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74192,33 +149910,81 @@ const classtable_elt_t VFT_ReduceAction563[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction563 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction563 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction563___action},
-  {(bigint) 2 /* 42: ReduceAction563 < ReduceAction563: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction563 < ReduceAction563: superclass init_table position */},
   {(bigint) parser___ReduceAction563___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction563(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction563(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction563;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction563(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction563;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction563___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction563();
-  parser___ReduceAction563___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction564[44] = {
-  {(bigint) 435 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction564 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction564 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 435 /* 3: ReduceAction564 < ReduceAction564: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction563(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction563;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction563_parser___ReduceAction563___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24525;
+  fra.me.meth = LOCATE_NEW_ReduceAction563_parser___ReduceAction563___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction563();
+  /* ./parser//parser.nit:24525 */
+  INIT_ATTRIBUTES__ReduceAction563(fra.me.REG[0]);
+  parser___ReduceAction563___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction563(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction564[50] = {
+  {(bigint) 2207 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction564 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction564 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2207 /* 4: ReduceAction564 < ReduceAction564: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74228,14 +149994,12 @@ const classtable_elt_t VFT_ReduceAction564[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction564 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction564 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74243,7 +150007,6 @@ const classtable_elt_t VFT_ReduceAction564[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74251,33 +150014,81 @@ const classtable_elt_t VFT_ReduceAction564[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction564 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction564 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction564___action},
-  {(bigint) 2 /* 42: ReduceAction564 < ReduceAction564: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction564 < ReduceAction564: superclass init_table position */},
   {(bigint) parser___ReduceAction564___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction564(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction564(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction564;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction564(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction564;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction564___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction564();
-  parser___ReduceAction564___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction565[44] = {
-  {(bigint) 431 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction565 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction565 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 431 /* 3: ReduceAction565 < ReduceAction565: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction564(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction564;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction564_parser___ReduceAction564___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24561;
+  fra.me.meth = LOCATE_NEW_ReduceAction564_parser___ReduceAction564___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction564();
+  /* ./parser//parser.nit:24561 */
+  INIT_ATTRIBUTES__ReduceAction564(fra.me.REG[0]);
+  parser___ReduceAction564___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction564(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction565[50] = {
+  {(bigint) 2203 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction565 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction565 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2203 /* 4: ReduceAction565 < ReduceAction565: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74287,14 +150098,12 @@ const classtable_elt_t VFT_ReduceAction565[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction565 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction565 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74302,7 +150111,6 @@ const classtable_elt_t VFT_ReduceAction565[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74310,33 +150118,81 @@ const classtable_elt_t VFT_ReduceAction565[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction565 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction565 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction565___action},
-  {(bigint) 2 /* 42: ReduceAction565 < ReduceAction565: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction565 < ReduceAction565: superclass init_table position */},
   {(bigint) parser___ReduceAction565___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction565(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction565(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction565;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction565(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction565;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction565___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction565();
-  parser___ReduceAction565___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction566[44] = {
-  {(bigint) 427 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction566 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction566 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 427 /* 3: ReduceAction566 < ReduceAction566: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction565(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction565;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction565_parser___ReduceAction565___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24591;
+  fra.me.meth = LOCATE_NEW_ReduceAction565_parser___ReduceAction565___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction565();
+  /* ./parser//parser.nit:24591 */
+  INIT_ATTRIBUTES__ReduceAction565(fra.me.REG[0]);
+  parser___ReduceAction565___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction565(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction566[50] = {
+  {(bigint) 2199 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction566 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction566 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2199 /* 4: ReduceAction566 < ReduceAction566: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74346,14 +150202,12 @@ const classtable_elt_t VFT_ReduceAction566[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction566 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction566 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74361,7 +150215,6 @@ const classtable_elt_t VFT_ReduceAction566[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74369,33 +150222,81 @@ const classtable_elt_t VFT_ReduceAction566[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction566 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction566 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction566___action},
-  {(bigint) 2 /* 42: ReduceAction566 < ReduceAction566: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction566 < ReduceAction566: superclass init_table position */},
   {(bigint) parser___ReduceAction566___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction566(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction566(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction566;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction566(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction566;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction566___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction566();
-  parser___ReduceAction566___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction567[44] = {
-  {(bigint) 423 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction567 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction567 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 423 /* 3: ReduceAction567 < ReduceAction567: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction566(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction566;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction566_parser___ReduceAction566___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24618;
+  fra.me.meth = LOCATE_NEW_ReduceAction566_parser___ReduceAction566___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction566();
+  /* ./parser//parser.nit:24618 */
+  INIT_ATTRIBUTES__ReduceAction566(fra.me.REG[0]);
+  parser___ReduceAction566___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction566(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction567[50] = {
+  {(bigint) 2195 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction567 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction567 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2195 /* 4: ReduceAction567 < ReduceAction567: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74405,14 +150306,12 @@ const classtable_elt_t VFT_ReduceAction567[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction567 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction567 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74420,7 +150319,6 @@ const classtable_elt_t VFT_ReduceAction567[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74428,33 +150326,81 @@ const classtable_elt_t VFT_ReduceAction567[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction567 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction567 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction567___action},
-  {(bigint) 2 /* 42: ReduceAction567 < ReduceAction567: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction567 < ReduceAction567: superclass init_table position */},
   {(bigint) parser___ReduceAction567___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction567(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction567(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction567;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction567(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction567;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction567___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction567();
-  parser___ReduceAction567___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction568[44] = {
-  {(bigint) 419 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction568 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction568 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 419 /* 3: ReduceAction568 < ReduceAction568: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction567(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction567;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction567_parser___ReduceAction567___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24660;
+  fra.me.meth = LOCATE_NEW_ReduceAction567_parser___ReduceAction567___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction567();
+  /* ./parser//parser.nit:24660 */
+  INIT_ATTRIBUTES__ReduceAction567(fra.me.REG[0]);
+  parser___ReduceAction567___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction567(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction568[50] = {
+  {(bigint) 2191 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction568 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction568 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2191 /* 4: ReduceAction568 < ReduceAction568: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74464,14 +150410,12 @@ const classtable_elt_t VFT_ReduceAction568[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction568 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction568 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74479,7 +150423,6 @@ const classtable_elt_t VFT_ReduceAction568[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74487,33 +150430,81 @@ const classtable_elt_t VFT_ReduceAction568[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction568 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction568 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction568___action},
-  {(bigint) 2 /* 42: ReduceAction568 < ReduceAction568: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction568 < ReduceAction568: superclass init_table position */},
   {(bigint) parser___ReduceAction568___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction568(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction568(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction568;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction568(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction568;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction568___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction568();
-  parser___ReduceAction568___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction569[44] = {
-  {(bigint) 415 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction569 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction569 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 415 /* 3: ReduceAction569 < ReduceAction569: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction568(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction568;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction568_parser___ReduceAction568___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24699;
+  fra.me.meth = LOCATE_NEW_ReduceAction568_parser___ReduceAction568___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction568();
+  /* ./parser//parser.nit:24699 */
+  INIT_ATTRIBUTES__ReduceAction568(fra.me.REG[0]);
+  parser___ReduceAction568___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction568(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction569[50] = {
+  {(bigint) 2187 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction569 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction569 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2187 /* 4: ReduceAction569 < ReduceAction569: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74523,14 +150514,12 @@ const classtable_elt_t VFT_ReduceAction569[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction569 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction569 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74538,7 +150527,6 @@ const classtable_elt_t VFT_ReduceAction569[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74546,33 +150534,81 @@ const classtable_elt_t VFT_ReduceAction569[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction569 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction569 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction569___action},
-  {(bigint) 2 /* 42: ReduceAction569 < ReduceAction569: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction569 < ReduceAction569: superclass init_table position */},
   {(bigint) parser___ReduceAction569___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction569(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction569(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction569;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction569(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction569;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction569___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction569();
-  parser___ReduceAction569___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction570[44] = {
-  {(bigint) 407 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction570 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction570 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 407 /* 3: ReduceAction570 < ReduceAction570: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction569(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction569;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction569_parser___ReduceAction569___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24735;
+  fra.me.meth = LOCATE_NEW_ReduceAction569_parser___ReduceAction569___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction569();
+  /* ./parser//parser.nit:24735 */
+  INIT_ATTRIBUTES__ReduceAction569(fra.me.REG[0]);
+  parser___ReduceAction569___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction569(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction570[50] = {
+  {(bigint) 2179 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction570 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction570 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2179 /* 4: ReduceAction570 < ReduceAction570: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74582,14 +150618,12 @@ const classtable_elt_t VFT_ReduceAction570[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction570 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction570 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74597,7 +150631,6 @@ const classtable_elt_t VFT_ReduceAction570[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74605,33 +150638,81 @@ const classtable_elt_t VFT_ReduceAction570[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction570 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction570 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction570___action},
-  {(bigint) 2 /* 42: ReduceAction570 < ReduceAction570: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction570 < ReduceAction570: superclass init_table position */},
   {(bigint) parser___ReduceAction570___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction570(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction570(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction570;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction570(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction570;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction570___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction570();
-  parser___ReduceAction570___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction571[44] = {
-  {(bigint) 403 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction571 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction571 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 403 /* 3: ReduceAction571 < ReduceAction571: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction570(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction570;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction570_parser___ReduceAction570___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24751;
+  fra.me.meth = LOCATE_NEW_ReduceAction570_parser___ReduceAction570___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction570();
+  /* ./parser//parser.nit:24751 */
+  INIT_ATTRIBUTES__ReduceAction570(fra.me.REG[0]);
+  parser___ReduceAction570___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction570(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction571[50] = {
+  {(bigint) 2175 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction571 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction571 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2175 /* 4: ReduceAction571 < ReduceAction571: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74641,14 +150722,12 @@ const classtable_elt_t VFT_ReduceAction571[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction571 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction571 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74656,7 +150735,6 @@ const classtable_elt_t VFT_ReduceAction571[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74664,33 +150742,81 @@ const classtable_elt_t VFT_ReduceAction571[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction571 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction571 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction571___action},
-  {(bigint) 2 /* 42: ReduceAction571 < ReduceAction571: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction571 < ReduceAction571: superclass init_table position */},
   {(bigint) parser___ReduceAction571___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction571(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction571(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction571;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction571(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction571;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction571___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction571();
-  parser___ReduceAction571___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ReduceAction572[44] = {
-  {(bigint) 399 /* 0: Identity */},
-  {(bigint) 3 /* 1: ReduceAction572 < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: ReduceAction572 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 399 /* 3: ReduceAction572 < ReduceAction572: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction571(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction571;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction571_parser___ReduceAction571___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24767;
+  fra.me.meth = LOCATE_NEW_ReduceAction571_parser___ReduceAction571___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction571();
+  /* ./parser//parser.nit:24767 */
+  INIT_ATTRIBUTES__ReduceAction571(fra.me.REG[0]);
+  parser___ReduceAction571___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction571(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction572[50] = {
+  {(bigint) 2171 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction572 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction572 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2171 /* 4: ReduceAction572 < ReduceAction572: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74700,14 +150826,12 @@ const classtable_elt_t VFT_ReduceAction572[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ReduceAction572 < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction572 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74715,7 +150839,6 @@ const classtable_elt_t VFT_ReduceAction572[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74723,50 +150846,96 @@ const classtable_elt_t VFT_ReduceAction572[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ReduceAction572 < ReduceAction: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction572 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction572___action},
-  {(bigint) 2 /* 42: ReduceAction572 < ReduceAction572: superclass init_table position */},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction572 < ReduceAction572: superclass init_table position */},
   {(bigint) parser___ReduceAction572___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ReduceAction572(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction572(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction572;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction572(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
+  obj = alloc(sizeof(val_t) * 2);
   obj->vft = (classtable_elt_t*)VFT_ReduceAction572;
-  return OBJ2VAL(obj);
-}
-val_t NEW_parser___ReduceAction572___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ReduceAction572();
-  parser___ReduceAction572___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_PartialOrder[80] = {
-  {(bigint) 2515 /* 0: Identity */},
-  {(bigint) 3 /* 1: PartialOrder < Object: superclass typecheck marker */},
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction572(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction572;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction572_parser___ReduceAction572___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24798;
+  fra.me.meth = LOCATE_NEW_ReduceAction572_parser___ReduceAction572___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction572();
+  /* ./parser//parser.nit:24798 */
+  INIT_ATTRIBUTES__ReduceAction572(fra.me.REG[0]);
+  parser___ReduceAction572___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction572(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction573[50] = {
+  {(bigint) 2167 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction573 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction573 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2167 /* 4: ReduceAction573 < ReduceAction573: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 163 /* 5: PartialOrder < Collection: superclass typecheck marker */},
-  {(bigint) 2515 /* 6: PartialOrder < PartialOrder: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Collection___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PartialOrder < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction573 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74774,7 +150943,6 @@ const classtable_elt_t VFT_PartialOrder[80] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74782,71 +150950,81 @@ const classtable_elt_t VFT_PartialOrder[80] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) string___Collection___join},
-  {(bigint) array___Collection___to_a},
-  {(bigint) 1 /* 58: PartialOrder < Collection: superclass init_table position */},
-  {(bigint) partial_order___PartialOrder___iterator},
-  {(bigint) partial_order___PartialOrder___is_empty},
-  {(bigint) partial_order___PartialOrder___length},
-  {(bigint) partial_order___PartialOrder___has},
-  {(bigint) partial_order___PartialOrder___has_only},
-  {(bigint) partial_order___PartialOrder___count},
-  {(bigint) partial_order___PartialOrder___first},
-  {(bigint) 2 /* 66: PartialOrder < PartialOrder: superclass init_table position */},
-  {(bigint) partial_order___PartialOrder___roots},
-  {(bigint) partial_order___PartialOrder_____bra},
-  {(bigint) partial_order___PartialOrder___to_dot},
-  {(bigint) partial_order___PartialOrder___to_dot_header},
-  {(bigint) partial_order___PartialOrder___to_dot_node},
-  {(bigint) partial_order___PartialOrder___to_dot_edge},
-  {(bigint) partial_order___PartialOrder___select_smallests},
-  {(bigint) partial_order___PartialOrder___add},
-  {(bigint) partial_order___PartialOrder___has_all},
-  {(bigint) partial_order___PartialOrder___new_poe},
-  {(bigint) partial_order___PartialOrder___add_to_smallests},
-  {(bigint) partial_order___PartialOrder___compute_smallers_for},
-  {(bigint) partial_order___PartialOrder___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction573 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction573___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction573 < ReduceAction573: superclass init_table position */},
+  {(bigint) parser___ReduceAction573___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute PartialOrder::_elements */
-/* 2: Attribute PartialOrder::_elements_list */
-/* 3: Attribute PartialOrder::_roots */
-val_t NEW_PartialOrder(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PartialOrder;
-  return OBJ2VAL(obj);
-}
-val_t NEW_partial_order___PartialOrder___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_PartialOrder();
-  partial_order___PartialOrder___init(self, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction573(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction573;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_PartialOrderElement[57] = {
-  {(bigint) 55 /* 0: Identity */},
-  {(bigint) 3 /* 1: PartialOrderElement < Object: superclass typecheck marker */},
-  {(bigint) 55 /* 2: PartialOrderElement < PartialOrderElement: superclass typecheck marker */},
+val_t NEW_ReduceAction573(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction573;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction573(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction573;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction573_parser___ReduceAction573___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24839;
+  fra.me.meth = LOCATE_NEW_ReduceAction573_parser___ReduceAction573___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction573();
+  /* ./parser//parser.nit:24839 */
+  INIT_ATTRIBUTES__ReduceAction573(fra.me.REG[0]);
+  parser___ReduceAction573___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction573(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction574[50] = {
+  {(bigint) 2163 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction574 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction574 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2163 /* 4: ReduceAction574 < ReduceAction574: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74857,14 +151035,11 @@ const classtable_elt_t VFT_PartialOrderElement[57] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PartialOrderElement < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction574 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74872,7 +151047,6 @@ const classtable_elt_t VFT_PartialOrderElement[57] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74880,58 +151054,81 @@ const classtable_elt_t VFT_PartialOrderElement[57] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: PartialOrderElement < PartialOrderElement: superclass init_table position */},
-  {(bigint) partial_order___PartialOrderElement___order},
-  {(bigint) partial_order___PartialOrderElement___value},
-  {(bigint) partial_order___PartialOrderElement___rank},
-  {(bigint) partial_order___PartialOrderElement___direct_greaters},
-  {(bigint) partial_order___PartialOrderElement___direct_smallers},
-  {(bigint) partial_order___PartialOrderElement___greaters},
-  {(bigint) partial_order___PartialOrderElement___greaters_and_self},
-  {(bigint) partial_order___PartialOrderElement___smallers},
-  {(bigint) partial_order___PartialOrderElement___linear_extension},
-  {(bigint) partial_order___PartialOrderElement___reverse_linear_extension},
-  {(bigint) partial_order___PartialOrderElement_____l},
-  {(bigint) partial_order___PartialOrderElement_____leq},
-  {(bigint) partial_order___PartialOrderElement_____g},
-  {(bigint) partial_order___PartialOrderElement_____geq},
-  {(bigint) partial_order___PartialOrderElement___register_direct_smallers},
-  {(bigint) partial_order___PartialOrderElement___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction574 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction574___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction574 < ReduceAction574: superclass init_table position */},
+  {(bigint) parser___ReduceAction574___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute PartialOrderElement::_order */
-/* 2: Attribute PartialOrderElement::_value */
-/* 3: Attribute PartialOrderElement::_rank */
-/* 4: Attribute PartialOrderElement::_direct_greaters */
-/* 5: Attribute PartialOrderElement::_direct_smallers */
-/* 6: Attribute PartialOrderElement::_greaters */
-/* 7: Attribute PartialOrderElement::_greaters_and_self_cache */
-/* 8: Attribute PartialOrderElement::_smallers_last_length */
-/* 9: Attribute PartialOrderElement::_smallers_cache */
-/* 10: Attribute PartialOrderElement::_linear_extension_cache */
-/* 11: Attribute PartialOrderElement::_reverse_linear_extension_cache */
-val_t NEW_PartialOrderElement(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
-  obj->vft = (classtable_elt_t*)VFT_PartialOrderElement;
-  ATTR_partial_order___PartialOrderElement____rank(obj) = TAG_Int((bigint)0);
-  ATTR_partial_order___PartialOrderElement____smallers_last_length(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_partial_order___PartialOrderElement___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_PartialOrderElement();
-  partial_order___PartialOrderElement___init(self, p0, p1, p2, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction574(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction574;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMContext[48] = {
-  {(bigint) 119 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMContext < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 2: MMContext < MMContext: superclass typecheck marker */},
+val_t NEW_ReduceAction574(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction574;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction574(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction574;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction574_parser___ReduceAction574___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24863;
+  fra.me.meth = LOCATE_NEW_ReduceAction574_parser___ReduceAction574___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction574();
+  /* ./parser//parser.nit:24863 */
+  INIT_ATTRIBUTES__ReduceAction574(fra.me.REG[0]);
+  parser___ReduceAction574___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction574(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction575[50] = {
+  {(bigint) 2159 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction575 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction575 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2159 /* 4: ReduceAction575 < ReduceAction575: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74942,14 +151139,115 @@ const classtable_elt_t VFT_MMContext[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction575 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMContext < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction575 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction575___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction575 < ReduceAction575: superclass init_table position */},
+  {(bigint) parser___ReduceAction575___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction575(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction575;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction575(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction575;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction575(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction575;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction575_parser___ReduceAction575___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24886;
+  fra.me.meth = LOCATE_NEW_ReduceAction575_parser___ReduceAction575___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction575();
+  /* ./parser//parser.nit:24886 */
+  INIT_ATTRIBUTES__ReduceAction575(fra.me.REG[0]);
+  parser___ReduceAction575___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction575(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction576[50] = {
+  {(bigint) 2155 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction576 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction576 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2155 /* 4: ReduceAction576 < ReduceAction576: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction576 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -74957,7 +151255,6 @@ const classtable_elt_t VFT_MMContext[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -74965,52 +151262,81 @@ const classtable_elt_t VFT_MMContext[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: MMContext < MMContext: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMContext___init},
-  {(bigint) abstractmetamodel___MMContext___module_hierarchy},
-  {(bigint) abstractmetamodel___MMContext___class_hierarchy},
-  {(bigint) abstractmetamodel___MMContext___modules},
-  {(bigint) abstractmetamodel___MMContext___add_module},
-  {(bigint) abstractmetamodel___MMContext___add_global_class},
-  {(bigint) abstractmetamodel___MMContext___add_local_class},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction576 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction576___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction576 < ReduceAction576: superclass init_table position */},
+  {(bigint) parser___ReduceAction576___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMContext::_module_hierarchy */
-/* 2: Attribute MMContext::_class_hierarchy */
-/* 3: Attribute MMContext::_global_classes */
-/* 4: Attribute MMContext::_modules */
-val_t NEW_MMContext(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  val_t variable3;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_MMContext;
-  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMContext____module_hierarchy(obj) = variable0;
-  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMContext____class_hierarchy(obj) = variable1;
-  variable2 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMContext____global_classes(obj) = variable2;
-  variable3 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMContext____modules(obj) = variable3;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction576(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction576;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_abstractmetamodel___MMContext___init() {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_MMContext();
-  abstractmetamodel___MMContext___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_MMDirectory[51] = {
-  {(bigint) 115 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMDirectory < Object: superclass typecheck marker */},
-  {(bigint) 115 /* 2: MMDirectory < MMDirectory: superclass typecheck marker */},
+val_t NEW_ReduceAction576(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction576;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction576(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction576;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction576_parser___ReduceAction576___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24920;
+  fra.me.meth = LOCATE_NEW_ReduceAction576_parser___ReduceAction576___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction576();
+  /* ./parser//parser.nit:24920 */
+  INIT_ATTRIBUTES__ReduceAction576(fra.me.REG[0]);
+  parser___ReduceAction576___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction576(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction577[50] = {
+  {(bigint) 2151 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction577 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction577 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2151 /* 4: ReduceAction577 < ReduceAction577: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75021,14 +151347,115 @@ const classtable_elt_t VFT_MMDirectory[51] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction577 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMDirectory < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction577 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction577___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction577 < ReduceAction577: superclass init_table position */},
+  {(bigint) parser___ReduceAction577___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction577(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction577;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction577(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction577;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction577(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction577;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction577_parser___ReduceAction577___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24964;
+  fra.me.meth = LOCATE_NEW_ReduceAction577_parser___ReduceAction577___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction577();
+  /* ./parser//parser.nit:24964 */
+  INIT_ATTRIBUTES__ReduceAction577(fra.me.REG[0]);
+  parser___ReduceAction577___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction577(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction578[50] = {
+  {(bigint) 2147 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction578 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction578 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2147 /* 4: ReduceAction578 < ReduceAction578: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction578 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75036,7 +151463,6 @@ const classtable_elt_t VFT_MMDirectory[51] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75044,48 +151470,81 @@ const classtable_elt_t VFT_MMDirectory[51] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: MMDirectory < MMDirectory: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMDirectory___name},
-  {(bigint) abstractmetamodel___MMDirectory___path},
-  {(bigint) abstractmetamodel___MMDirectory___parent},
-  {(bigint) abstractmetamodel___MMDirectory___owner},
-  {(bigint) abstractmetamodel___MMDirectory___owner__eq},
-  {(bigint) abstractmetamodel___MMDirectory___modules},
-  {(bigint) abstractmetamodel___MMDirectory___add_module},
-  {(bigint) abstractmetamodel___MMDirectory___dhe},
-  {(bigint) abstractmetamodel___MMDirectory___init},
-  {(bigint) abstractmetamodel___MMDirectory___full_name_for},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction578 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction578___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction578 < ReduceAction578: superclass init_table position */},
+  {(bigint) parser___ReduceAction578___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMDirectory::_name */
-/* 2: Attribute MMDirectory::_path */
-/* 3: Attribute MMDirectory::_parent */
-/* 4: Attribute MMDirectory::_owner */
-/* 5: Attribute MMDirectory::_modules */
-/* 6: Attribute MMDirectory::_dhe */
-val_t NEW_MMDirectory(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_MMDirectory;
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_abstractmetamodel___MMDirectory____modules(obj) = variable0;
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_MMDirectory();
-  abstractmetamodel___MMDirectory___init(self, p0, p1, p2, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction578(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction578;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMModule[70] = {
-  {(bigint) 95 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMModule < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMModule < MMModule: superclass typecheck marker */},
+val_t NEW_ReduceAction578(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction578;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction578(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction578;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction578_parser___ReduceAction578___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 24991;
+  fra.me.meth = LOCATE_NEW_ReduceAction578_parser___ReduceAction578___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction578();
+  /* ./parser//parser.nit:24991 */
+  INIT_ATTRIBUTES__ReduceAction578(fra.me.REG[0]);
+  parser___ReduceAction578___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction578(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction579[50] = {
+  {(bigint) 2143 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction579 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction579 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2143 /* 4: ReduceAction579 < ReduceAction579: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75096,14 +151555,11 @@ const classtable_elt_t VFT_MMModule[70] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMModule___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMModule < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction579 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75111,7 +151567,6 @@ const classtable_elt_t VFT_MMModule[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75119,108 +151574,81 @@ const classtable_elt_t VFT_MMModule[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) abstracttool___MMModule___dump_module_info},
-  {(bigint) mmloader___MMModule___filename},
-  {(bigint) mmloader___MMModule___filename__eq},
-  {(bigint) mmloader___MMModule___mtime},
-  {(bigint) mmloader___MMModule___mtime__eq},
-  {(bigint) mmloader___MMModule___import_supers_modules},
-  {(bigint) inheritance___MMModule___type_any},
-  {(bigint) inheritance___MMModule___import_global_classes},
-  {(bigint) inheritance___MMModule___import_local_classes},
-  {(bigint) static_type___MMModule___type_none},
-  {(bigint) 1 /* 50: MMModule < MMModule: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMModule___context},
-  {(bigint) abstractmetamodel___MMModule___name},
-  {(bigint) abstractmetamodel___MMModule___full_name},
-  {(bigint) abstractmetamodel___MMModule___directory},
-  {(bigint) abstractmetamodel___MMModule___mhe},
-  {(bigint) abstractmetamodel___MMModule___global_classes},
-  {(bigint) abstractmetamodel___MMModule___local_classes},
-  {(bigint) abstractmetamodel___MMModule___class_specialization_hierarchy},
-  {(bigint) abstractmetamodel___MMModule___explicit_imported_modules},
-  {(bigint) abstractmetamodel___MMModule___init},
-  {(bigint) abstractmetamodel___MMModule___add_super_module},
-  {(bigint) abstractmetamodel___MMModule___visibility_for},
-  {(bigint) abstractmetamodel___MMModule_____bra},
-  {(bigint) abstractmetamodel___MMModule___add_local_class},
-  {(bigint) abstractmetamodel___MMModule___class_by_name},
-  {(bigint) abstractmetamodel___MMModule___has_global_class_named},
-  {(bigint) abstractmetamodel___MMModule___global_class_named},
-  {(bigint) abstractmetamodel___MMModule___set_supers_class},
-  {(bigint) abstractmetamodel___MMModule___register_global_class},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction579 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction579___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction579 < ReduceAction579: superclass init_table position */},
+  {(bigint) parser___ReduceAction579___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMModule::_filename */
-/* 2: Attribute MMModule::_mtime */
-/* 3: Attribute MMModule::_type_none */
-/* 4: Attribute MMModule::_context */
-/* 5: Attribute MMModule::_name */
-/* 6: Attribute MMModule::_full_name */
-/* 7: Attribute MMModule::_directory */
-/* 8: Attribute MMModule::_mhe */
-/* 9: Attribute MMModule::_global_classes */
-/* 10: Attribute MMModule::_local_classes */
-/* 11: Attribute MMModule::_class_specialization_hierarchy */
-/* 12: Attribute MMModule::_intrude_modules */
-/* 13: Attribute MMModule::_public_modules */
-/* 14: Attribute MMModule::_private_modules */
-/* 15: Attribute MMModule::_explicit_imported_modules */
-/* 16: Attribute MMModule::_local_class_by_global */
-/* 17: Attribute MMModule::_global_class_by_name */
-val_t NEW_MMModule(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  val_t variable3;
-  val_t variable4;
-  val_t variable5;
-  val_t variable6;
-  val_t variable7;
-  val_t variable8;
-  val_t variable9;
-  val_t variable10;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 18);
-  obj->vft = (classtable_elt_t*)VFT_MMModule;
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMModule____global_classes(obj) = variable0;
-  variable1 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMModule____local_classes(obj) = variable1;
-  variable2 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(obj) = variable2;
-  variable3 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_abstractmetamodel___MMModule____intrude_modules(obj) = variable3;
-  variable4 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_abstractmetamodel___MMModule____public_modules(obj) = variable4;
-  variable5 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_abstractmetamodel___MMModule____private_modules(obj) = variable5;
-  variable6 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_abstractmetamodel___MMModule____explicit_imported_modules(obj) = variable6;
-  variable7 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_abstractmetamodel___MMModule____local_class_by_global(obj) = variable7;
-  variable8 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_abstractmetamodel___MMModule____global_class_by_name(obj) = variable8;
-  variable9 = OBJ2VAL(obj);
-  variable10 = NEW_static_type___MMTypeNone___init(variable9); /*new MMTypeNone*/
-  ATTR_static_type___MMModule____type_none(obj) = variable10;
-  ATTR_mmloader___MMModule____mtime(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_MMModule();
-  abstractmetamodel___MMModule___init(self, p0, p1, p2, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction579(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction579;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMGlobalClass[59] = {
-  {(bigint) 111 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMGlobalClass < Object: superclass typecheck marker */},
-  {(bigint) 111 /* 2: MMGlobalClass < MMGlobalClass: superclass typecheck marker */},
+val_t NEW_ReduceAction579(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction579;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction579(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction579;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction579_parser___ReduceAction579___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25017;
+  fra.me.meth = LOCATE_NEW_ReduceAction579_parser___ReduceAction579___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction579();
+  /* ./parser//parser.nit:25017 */
+  INIT_ATTRIBUTES__ReduceAction579(fra.me.REG[0]);
+  parser___ReduceAction579___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction579(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction580[50] = {
+  {(bigint) 2135 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction580 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction580 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2135 /* 4: ReduceAction580 < ReduceAction580: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75231,14 +151659,11 @@ const classtable_elt_t VFT_MMGlobalClass[59] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMGlobalClass___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMGlobalClass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction580 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75246,7 +151671,6 @@ const classtable_elt_t VFT_MMGlobalClass[59] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75254,60 +151678,81 @@ const classtable_elt_t VFT_MMGlobalClass[59] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_base___MMGlobalClass___id_id},
-  {(bigint) compiling_base___MMGlobalClass___color_id},
-  {(bigint) compiling_base___MMGlobalClass___init_table_pos_id},
-  {(bigint) syntax_base___MMGlobalClass___check_visibility},
-  {(bigint) 1 /* 44: MMGlobalClass < MMGlobalClass: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMGlobalClass___intro},
-  {(bigint) abstractmetamodel___MMGlobalClass___class_refinement_hierarchy},
-  {(bigint) abstractmetamodel___MMGlobalClass___init},
-  {(bigint) abstractmetamodel___MMGlobalClass___name},
-  {(bigint) abstractmetamodel___MMGlobalClass___module},
-  {(bigint) abstractmetamodel___MMGlobalClass___register_local_class},
-  {(bigint) abstractmetamodel___MMGlobalClass___is_interface},
-  {(bigint) abstractmetamodel___MMGlobalClass___is_interface__eq},
-  {(bigint) abstractmetamodel___MMGlobalClass___is_abstract},
-  {(bigint) abstractmetamodel___MMGlobalClass___is_abstract__eq},
-  {(bigint) abstractmetamodel___MMGlobalClass___is_universal},
-  {(bigint) abstractmetamodel___MMGlobalClass___is_universal__eq},
-  {(bigint) abstractmetamodel___MMGlobalClass___visibility_level},
-  {(bigint) abstractmetamodel___MMGlobalClass___visibility_level__eq},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction580 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction580___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction580 < ReduceAction580: superclass init_table position */},
+  {(bigint) parser___ReduceAction580___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMGlobalClass::_intro */
-/* 2: Attribute MMGlobalClass::_class_refinement_hierarchy */
-/* 3: Attribute MMGlobalClass::_is_interface */
-/* 4: Attribute MMGlobalClass::_is_abstract */
-/* 5: Attribute MMGlobalClass::_is_universal */
-/* 6: Attribute MMGlobalClass::_visibility_level */
-val_t NEW_MMGlobalClass(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_MMGlobalClass;
-  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(obj) = variable0;
-  ATTR_abstractmetamodel___MMGlobalClass____is_interface(obj) = TAG_Bool((int)0);
-  ATTR_abstractmetamodel___MMGlobalClass____is_abstract(obj) = TAG_Bool((int)0);
-  ATTR_abstractmetamodel___MMGlobalClass____is_universal(obj) = TAG_Bool((int)0);
-  ATTR_abstractmetamodel___MMGlobalClass____visibility_level(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstractmetamodel___MMGlobalClass___init(val_t p0) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_MMGlobalClass();
-  abstractmetamodel___MMGlobalClass___init(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction580(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction580;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMLocalClass[104] = {
-  {(bigint) 103 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 103 /* 2: MMLocalClass < MMLocalClass: superclass typecheck marker */},
+val_t NEW_ReduceAction580(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction580;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction580(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction580;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction580_parser___ReduceAction580___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25038;
+  fra.me.meth = LOCATE_NEW_ReduceAction580_parser___ReduceAction580___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction580();
+  /* ./parser//parser.nit:25038 */
+  INIT_ATTRIBUTES__ReduceAction580(fra.me.REG[0]);
+  parser___ReduceAction580___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction580(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction581[50] = {
+  {(bigint) 2131 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction581 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction581 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2131 /* 4: ReduceAction581 < ReduceAction581: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75318,14 +151763,11 @@ const classtable_elt_t VFT_MMLocalClass[104] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalClass___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMLocalClass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction581 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75333,7 +151775,6 @@ const classtable_elt_t VFT_MMLocalClass[104] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75341,124 +151782,81 @@ const classtable_elt_t VFT_MMLocalClass[104] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) abstracttool___MMLocalClass___dump_properties},
-  {(bigint) mmbuilder___MMLocalClass___accept_class_visitor},
-  {(bigint) mmbuilder___MMLocalClass___accept_properties_visitor},
-  {(bigint) genericity___MMLocalClass___get_formal},
-  {(bigint) genericity___MMLocalClass___register_formal},
-  {(bigint) genericity___MMLocalClass___get_instantiate_type},
-  {(bigint) genericity___MMLocalClass___formals_types},
-  {(bigint) static_type___MMLocalClass___get_type},
-  {(bigint) genericity___MMLocalClass___is_generic},
-  {(bigint) inheritance___MMLocalClass___compute_super_classes},
-  {(bigint) inheritance___MMLocalClass___compute_ancestors},
-  {(bigint) inheritance___MMLocalClass___inherit_global_properties},
-  {(bigint) inheritance___MMLocalClass___add_direct_parent},
-  {(bigint) inheritance___MMLocalClass___computed_super_classes},
-  {(bigint) inheritance___MMLocalClass___computed_ancestors},
-  {(bigint) inheritance___MMLocalClass___ancestor_for},
-  {(bigint) abstractmetamodel___MMLocalClass_____bra},
-  {(bigint) inheritance___MMLocalClass___add_default_any_class},
-  {(bigint) inheritance___MMLocalClass___add_super_classes},
-  {(bigint) inheritance___MMLocalClass___add_explicit_classes},
-  {(bigint) inheritance___MMLocalClass___compute_super_parents},
-  {(bigint) inheritance___MMLocalClass___build_ancestors},
-  {(bigint) inheritance___MMLocalClass___group_ancestors},
-  {(bigint) inheritance___MMLocalClass___merge_ancestors},
-  {(bigint) inheritance___MMLocalClass___inherit_local_property},
-  {(bigint) genericity___MMLocalClass___get_type},
-  {(bigint) static_type___MMLocalClass___add_ancestor},
-  {(bigint) static_type___MMLocalClass___ancestors},
-  {(bigint) static_type___MMLocalClass___ancestor},
-  {(bigint) 1 /* 69: MMLocalClass < MMLocalClass: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalClass___name},
-  {(bigint) abstractmetamodel___MMLocalClass___arity},
-  {(bigint) abstractmetamodel___MMLocalClass___module},
-  {(bigint) abstractmetamodel___MMLocalClass___abstract},
-  {(bigint) abstractmetamodel___MMLocalClass___abstract__eq},
-  {(bigint) abstractmetamodel___MMLocalClass___global},
-  {(bigint) abstractmetamodel___MMLocalClass___crhe},
-  {(bigint) abstractmetamodel___MMLocalClass___cshe},
-  {(bigint) abstractmetamodel___MMLocalClass___che},
-  {(bigint) abstractmetamodel___MMLocalClass___local_property_by_global},
-  {(bigint) abstractmetamodel___MMLocalClass___global_properties},
-  {(bigint) abstractmetamodel___MMLocalClass___properties_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___init},
-  {(bigint) abstractmetamodel___MMLocalClass___for_module},
-  {(bigint) abstractmetamodel___MMLocalClass___new_global},
-  {(bigint) abstractmetamodel___MMLocalClass___set_global},
-  {(bigint) abstractmetamodel___MMLocalClass___has_global_property_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___get_property_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___attribute},
-  {(bigint) abstractmetamodel___MMLocalClass___method},
-  {(bigint) abstractmetamodel___MMLocalClass___select_method},
-  {(bigint) abstractmetamodel___MMLocalClass___select_attribute},
-  {(bigint) abstractmetamodel___MMLocalClass___super_methods_named},
-  {(bigint) abstractmetamodel___MMLocalClass___register_local_property},
-  {(bigint) abstractmetamodel___MMLocalClass___register_global_property},
-  {(bigint) inheritance___MMLocalClass_____bra},
-  {(bigint) abstractmetamodel___MMLocalClass___context},
-  {(bigint) virtualtype___MMLocalClass___virtual_type},
-  {(bigint) virtualtype___MMLocalClass___select_virtual_type},
-  {(bigint) compiling_global___MMLocalClass___compare},
-  {(bigint) compiling_global___MMLocalClass___declare_tables_to_c},
-  {(bigint) compiling_global___MMLocalClass___compile_tables_to_c},
-  {(bigint) compiling_base___MMLocalClass___primitive_info},
-  {(bigint) compiling_base___MMLocalClass___primitive_ctypes},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute MMLocalClass::_types */
-/* 2: Attribute MMLocalClass::_formals_types */
-/* 3: Attribute MMLocalClass::_direct_parents */
-/* 4: Attribute MMLocalClass::_computing_super */
-/* 5: Attribute MMLocalClass::_base_type_cache */
-/* 6: Attribute MMLocalClass::_ancestors */
-/* 7: Attribute MMLocalClass::_name */
-/* 8: Attribute MMLocalClass::_arity */
-/* 9: Attribute MMLocalClass::_module */
-/* 10: Attribute MMLocalClass::_abstract */
-/* 11: Attribute MMLocalClass::_global */
-/* 12: Attribute MMLocalClass::_crhe */
-/* 13: Attribute MMLocalClass::_cshe */
-/* 14: Attribute MMLocalClass::_che */
-/* 15: Attribute MMLocalClass::_local_property_by_global */
-/* 16: Attribute MMLocalClass::_global_properties */
-/* 17: Attribute MMLocalClass::_properties_by_name */
-/* 18: Attribute MMLocalClass::_primitive_info_cache */
-/* 19: Attribute MMLocalClass::_primitive_info_b */
-val_t NEW_MMLocalClass(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 20);
-  obj->vft = (classtable_elt_t*)VFT_MMLocalClass;
-  ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((bigint)0);
-  ATTR_abstractmetamodel___MMLocalClass____abstract(obj) = TAG_Bool((int)0);
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_inheritance___MMLocalClass____direct_parents(obj) = variable0;
-  ATTR_inheritance___MMLocalClass____computing_super(obj) = TAG_Bool((int)0);
-  variable1 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_genericity___MMLocalClass____types(obj) = variable1;
-  variable2 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_genericity___MMLocalClass____formals_types(obj) = variable2;
-  ATTR_compiling_base___MMLocalClass____primitive_info_b(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_MMLocalClass();
-  abstractmetamodel___MMLocalClass___init(self, p0, p1, init_table);
-  return self;
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction581 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction581___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction581 < ReduceAction581: superclass init_table position */},
+  {(bigint) parser___ReduceAction581___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction581(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction581;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMGlobalProperty[59] = {
-  {(bigint) 107 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMGlobalProperty < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMGlobalProperty < MMGlobalProperty: superclass typecheck marker */},
+val_t NEW_ReduceAction581(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction581;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction581(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction581;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction581_parser___ReduceAction581___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25070;
+  fra.me.meth = LOCATE_NEW_ReduceAction581_parser___ReduceAction581___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction581();
+  /* ./parser//parser.nit:25070 */
+  INIT_ATTRIBUTES__ReduceAction581(fra.me.REG[0]);
+  parser___ReduceAction581___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction581(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction582[50] = {
+  {(bigint) 2127 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction582 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction582 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2127 /* 4: ReduceAction582 < ReduceAction582: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75469,14 +151867,11 @@ const classtable_elt_t VFT_MMGlobalProperty[59] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMGlobalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMGlobalProperty < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction582 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75484,7 +151879,6 @@ const classtable_elt_t VFT_MMGlobalProperty[59] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75492,58 +151886,81 @@ const classtable_elt_t VFT_MMGlobalProperty[59] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_global___MMGlobalProperty___pos_of},
-  {(bigint) compiling_global___MMGlobalProperty___pos_of__eq},
-  {(bigint) compiling_base___MMGlobalProperty___meth_call},
-  {(bigint) compiling_base___MMGlobalProperty___attr_access},
-  {(bigint) compiling_base___MMGlobalProperty___color_id},
-  {(bigint) syntax_base___MMGlobalProperty___check_visibility},
-  {(bigint) virtualtype___MMGlobalProperty___is_virtual_type},
-  {(bigint) 1 /* 47: MMGlobalProperty < MMGlobalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMGlobalProperty___intro},
-  {(bigint) abstractmetamodel___MMGlobalProperty___local_class},
-  {(bigint) abstractmetamodel___MMGlobalProperty___property_hierarchy},
-  {(bigint) abstractmetamodel___MMGlobalProperty___init},
-  {(bigint) abstractmetamodel___MMGlobalProperty___add_local_property},
-  {(bigint) abstractmetamodel___MMGlobalProperty___is_attribute},
-  {(bigint) abstractmetamodel___MMGlobalProperty___is_method},
-  {(bigint) abstractmetamodel___MMGlobalProperty___is_init},
-  {(bigint) abstractmetamodel___MMGlobalProperty___is_init__eq},
-  {(bigint) abstractmetamodel___MMGlobalProperty___visibility_level},
-  {(bigint) abstractmetamodel___MMGlobalProperty___visibility_level__eq},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction582 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction582___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction582 < ReduceAction582: superclass init_table position */},
+  {(bigint) parser___ReduceAction582___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMGlobalProperty::_pos_of */
-/* 2: Attribute MMGlobalProperty::_intro */
-/* 3: Attribute MMGlobalProperty::_property_hierarchy */
-/* 4: Attribute MMGlobalProperty::_is_init */
-/* 5: Attribute MMGlobalProperty::_visibility_level */
-val_t NEW_MMGlobalProperty(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_MMGlobalProperty;
-  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(obj) = variable0;
-  ATTR_abstractmetamodel___MMGlobalProperty____is_init(obj) = TAG_Bool((int)0);
-  ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(obj) = TAG_Int((bigint)0);
-  ATTR_compiling_global___MMGlobalProperty____pos_of(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstractmetamodel___MMGlobalProperty___init(val_t p0) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_MMGlobalProperty();
-  abstractmetamodel___MMGlobalProperty___init(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction582(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction582;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMLocalProperty[61] = {
-  {(bigint) 99 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMLocalProperty < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMLocalProperty < MMLocalProperty: superclass typecheck marker */},
+val_t NEW_ReduceAction582(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction582;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction582(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction582;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction582_parser___ReduceAction582___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25098;
+  fra.me.meth = LOCATE_NEW_ReduceAction582_parser___ReduceAction582___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction582();
+  /* ./parser//parser.nit:25098 */
+  INIT_ATTRIBUTES__ReduceAction582(fra.me.REG[0]);
+  parser___ReduceAction582___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction582(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction583[50] = {
+  {(bigint) 2123 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction583 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction583 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2123 /* 4: ReduceAction583 < ReduceAction583: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75554,14 +151971,11 @@ const classtable_elt_t VFT_MMLocalProperty[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMLocalProperty < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction583 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75569,7 +151983,6 @@ const classtable_elt_t VFT_MMLocalProperty[61] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75577,62 +151990,81 @@ const classtable_elt_t VFT_MMLocalProperty[61] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMLocalProperty___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMLocalProperty < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction583 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction583___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction583 < ReduceAction583: superclass init_table position */},
+  {(bigint) parser___ReduceAction583___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMLocalProperty::_cname_cache */
-/* 2: Attribute MMLocalProperty::_signature */
-/* 3: Attribute MMLocalProperty::_signatures_cache */
-/* 4: Attribute MMLocalProperty::_name */
-/* 5: Attribute MMLocalProperty::_local_class */
-/* 6: Attribute MMLocalProperty::_global */
-/* 7: Attribute MMLocalProperty::_prhe */
-/* 8: Attribute MMLocalProperty::_need_super */
-val_t NEW_MMLocalProperty(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_MMLocalProperty;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_MMLocalProperty();
-  abstractmetamodel___MMLocalProperty___init(self, p0, p1, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction583(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction583;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMAttribute[63] = {
-  {(bigint) 2599 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMAttribute < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMAttribute < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2599 /* 3: MMAttribute < MMAttribute: superclass typecheck marker */},
+val_t NEW_ReduceAction583(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction583;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction583(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction583;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction583_parser___ReduceAction583___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25138;
+  fra.me.meth = LOCATE_NEW_ReduceAction583_parser___ReduceAction583___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction583();
+  /* ./parser//parser.nit:25138 */
+  INIT_ATTRIBUTES__ReduceAction583(fra.me.REG[0]);
+  parser___ReduceAction583___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction583(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction584[50] = {
+  {(bigint) 2119 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction584 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction584 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2119 /* 4: ReduceAction584 < ReduceAction584: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75642,14 +152074,116 @@ const classtable_elt_t VFT_MMAttribute[63] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction584 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMAttribute < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction584 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction584___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction584 < ReduceAction584: superclass init_table position */},
+  {(bigint) parser___ReduceAction584___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction584(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction584;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction584(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction584;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction584(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction584;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction584_parser___ReduceAction584___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25188;
+  fra.me.meth = LOCATE_NEW_ReduceAction584_parser___ReduceAction584___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction584();
+  /* ./parser//parser.nit:25188 */
+  INIT_ATTRIBUTES__ReduceAction584(fra.me.REG[0]);
+  parser___ReduceAction584___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction584(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction585[50] = {
+  {(bigint) 2115 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction585 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction585 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2115 /* 4: ReduceAction585 < ReduceAction585: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction585 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75657,7 +152191,6 @@ const classtable_elt_t VFT_MMAttribute[63] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75665,58 +152198,76610 @@ const classtable_elt_t VFT_MMAttribute[63] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction585 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction585___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction585 < ReduceAction585: superclass init_table position */},
+  {(bigint) parser___ReduceAction585___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction585(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction585;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction585(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction585;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction585(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction585;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction585_parser___ReduceAction585___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25216;
+  fra.me.meth = LOCATE_NEW_ReduceAction585_parser___ReduceAction585___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction585();
+  /* ./parser//parser.nit:25216 */
+  INIT_ATTRIBUTES__ReduceAction585(fra.me.REG[0]);
+  parser___ReduceAction585___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction585(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction586[50] = {
+  {(bigint) 2111 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction586 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction586 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2111 /* 4: ReduceAction586 < ReduceAction586: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction586 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction586 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction586___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction586 < ReduceAction586: superclass init_table position */},
+  {(bigint) parser___ReduceAction586___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction586(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction586;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction586(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction586;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction586(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction586;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction586_parser___ReduceAction586___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25245;
+  fra.me.meth = LOCATE_NEW_ReduceAction586_parser___ReduceAction586___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction586();
+  /* ./parser//parser.nit:25245 */
+  INIT_ATTRIBUTES__ReduceAction586(fra.me.REG[0]);
+  parser___ReduceAction586___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction586(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction587[50] = {
+  {(bigint) 2107 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction587 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction587 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2107 /* 4: ReduceAction587 < ReduceAction587: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction587 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction587 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction587___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction587 < ReduceAction587: superclass init_table position */},
+  {(bigint) parser___ReduceAction587___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction587(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction587;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction587(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction587;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction587(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction587;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction587_parser___ReduceAction587___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25259;
+  fra.me.meth = LOCATE_NEW_ReduceAction587_parser___ReduceAction587___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction587();
+  /* ./parser//parser.nit:25259 */
+  INIT_ATTRIBUTES__ReduceAction587(fra.me.REG[0]);
+  parser___ReduceAction587___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction587(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction588[50] = {
+  {(bigint) 2103 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction588 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction588 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2103 /* 4: ReduceAction588 < ReduceAction588: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction588 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction588 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction588___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction588 < ReduceAction588: superclass init_table position */},
+  {(bigint) parser___ReduceAction588___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction588(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction588;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction588(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction588;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction588(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction588;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction588_parser___ReduceAction588___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25270;
+  fra.me.meth = LOCATE_NEW_ReduceAction588_parser___ReduceAction588___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction588();
+  /* ./parser//parser.nit:25270 */
+  INIT_ATTRIBUTES__ReduceAction588(fra.me.REG[0]);
+  parser___ReduceAction588___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction588(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction589[50] = {
+  {(bigint) 2099 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction589 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction589 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2099 /* 4: ReduceAction589 < ReduceAction589: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction589 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction589 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction589___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction589 < ReduceAction589: superclass init_table position */},
+  {(bigint) parser___ReduceAction589___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction589(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction589;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction589(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction589;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction589(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction589;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction589_parser___ReduceAction589___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25301;
+  fra.me.meth = LOCATE_NEW_ReduceAction589_parser___ReduceAction589___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction589();
+  /* ./parser//parser.nit:25301 */
+  INIT_ATTRIBUTES__ReduceAction589(fra.me.REG[0]);
+  parser___ReduceAction589___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction589(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction590[50] = {
+  {(bigint) 2091 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction590 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction590 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2091 /* 4: ReduceAction590 < ReduceAction590: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction590 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction590 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction590___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction590 < ReduceAction590: superclass init_table position */},
+  {(bigint) parser___ReduceAction590___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction590(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction590;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction590(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction590;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction590(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction590;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction590_parser___ReduceAction590___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25342;
+  fra.me.meth = LOCATE_NEW_ReduceAction590_parser___ReduceAction590___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction590();
+  /* ./parser//parser.nit:25342 */
+  INIT_ATTRIBUTES__ReduceAction590(fra.me.REG[0]);
+  parser___ReduceAction590___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction590(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction591[50] = {
+  {(bigint) 2087 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction591 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction591 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2087 /* 4: ReduceAction591 < ReduceAction591: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction591 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction591 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction591___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction591 < ReduceAction591: superclass init_table position */},
+  {(bigint) parser___ReduceAction591___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction591(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction591;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction591(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction591;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction591(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction591;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction591_parser___ReduceAction591___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25366;
+  fra.me.meth = LOCATE_NEW_ReduceAction591_parser___ReduceAction591___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction591();
+  /* ./parser//parser.nit:25366 */
+  INIT_ATTRIBUTES__ReduceAction591(fra.me.REG[0]);
+  parser___ReduceAction591___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction591(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction592[50] = {
+  {(bigint) 2083 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction592 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction592 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2083 /* 4: ReduceAction592 < ReduceAction592: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction592 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction592 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction592___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction592 < ReduceAction592: superclass init_table position */},
+  {(bigint) parser___ReduceAction592___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction592(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction592;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction592(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction592;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction592(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction592;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction592_parser___ReduceAction592___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25389;
+  fra.me.meth = LOCATE_NEW_ReduceAction592_parser___ReduceAction592___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction592();
+  /* ./parser//parser.nit:25389 */
+  INIT_ATTRIBUTES__ReduceAction592(fra.me.REG[0]);
+  parser___ReduceAction592___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction592(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction593[50] = {
+  {(bigint) 2079 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction593 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction593 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2079 /* 4: ReduceAction593 < ReduceAction593: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction593 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction593 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction593___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction593 < ReduceAction593: superclass init_table position */},
+  {(bigint) parser___ReduceAction593___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction593(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction593;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction593(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction593;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction593(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction593;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction593_parser___ReduceAction593___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25423;
+  fra.me.meth = LOCATE_NEW_ReduceAction593_parser___ReduceAction593___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction593();
+  /* ./parser//parser.nit:25423 */
+  INIT_ATTRIBUTES__ReduceAction593(fra.me.REG[0]);
+  parser___ReduceAction593___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction593(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction594[50] = {
+  {(bigint) 2075 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction594 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction594 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2075 /* 4: ReduceAction594 < ReduceAction594: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction594 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction594 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction594___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction594 < ReduceAction594: superclass init_table position */},
+  {(bigint) parser___ReduceAction594___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction594(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction594;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction594(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction594;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction594(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction594;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction594_parser___ReduceAction594___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25467;
+  fra.me.meth = LOCATE_NEW_ReduceAction594_parser___ReduceAction594___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction594();
+  /* ./parser//parser.nit:25467 */
+  INIT_ATTRIBUTES__ReduceAction594(fra.me.REG[0]);
+  parser___ReduceAction594___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction594(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction595[50] = {
+  {(bigint) 2071 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction595 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction595 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2071 /* 4: ReduceAction595 < ReduceAction595: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction595 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction595 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction595___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction595 < ReduceAction595: superclass init_table position */},
+  {(bigint) parser___ReduceAction595___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction595(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction595;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction595(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction595;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction595(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction595;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction595_parser___ReduceAction595___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25494;
+  fra.me.meth = LOCATE_NEW_ReduceAction595_parser___ReduceAction595___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction595();
+  /* ./parser//parser.nit:25494 */
+  INIT_ATTRIBUTES__ReduceAction595(fra.me.REG[0]);
+  parser___ReduceAction595___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction595(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction596[50] = {
+  {(bigint) 2067 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction596 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction596 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2067 /* 4: ReduceAction596 < ReduceAction596: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction596 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction596 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction596___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction596 < ReduceAction596: superclass init_table position */},
+  {(bigint) parser___ReduceAction596___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction596(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction596;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction596(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction596;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction596(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction596;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction596_parser___ReduceAction596___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25520;
+  fra.me.meth = LOCATE_NEW_ReduceAction596_parser___ReduceAction596___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction596();
+  /* ./parser//parser.nit:25520 */
+  INIT_ATTRIBUTES__ReduceAction596(fra.me.REG[0]);
+  parser___ReduceAction596___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction596(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction597[50] = {
+  {(bigint) 2063 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction597 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction597 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2063 /* 4: ReduceAction597 < ReduceAction597: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction597 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction597 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction597___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction597 < ReduceAction597: superclass init_table position */},
+  {(bigint) parser___ReduceAction597___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction597(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction597;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction597(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction597;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction597(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction597;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction597_parser___ReduceAction597___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25541;
+  fra.me.meth = LOCATE_NEW_ReduceAction597_parser___ReduceAction597___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction597();
+  /* ./parser//parser.nit:25541 */
+  INIT_ATTRIBUTES__ReduceAction597(fra.me.REG[0]);
+  parser___ReduceAction597___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction597(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction598[50] = {
+  {(bigint) 2059 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction598 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction598 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2059 /* 4: ReduceAction598 < ReduceAction598: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction598 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction598 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction598___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction598 < ReduceAction598: superclass init_table position */},
+  {(bigint) parser___ReduceAction598___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction598(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction598;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction598(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction598;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction598(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction598;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction598_parser___ReduceAction598___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25582;
+  fra.me.meth = LOCATE_NEW_ReduceAction598_parser___ReduceAction598___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction598();
+  /* ./parser//parser.nit:25582 */
+  INIT_ATTRIBUTES__ReduceAction598(fra.me.REG[0]);
+  parser___ReduceAction598___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction598(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction599[50] = {
+  {(bigint) 2055 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction599 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction599 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2055 /* 4: ReduceAction599 < ReduceAction599: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction599 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction599 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction599___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction599 < ReduceAction599: superclass init_table position */},
+  {(bigint) parser___ReduceAction599___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction599(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction599;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction599(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction599;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction599(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction599;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction599_parser___ReduceAction599___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25633;
+  fra.me.meth = LOCATE_NEW_ReduceAction599_parser___ReduceAction599___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction599();
+  /* ./parser//parser.nit:25633 */
+  INIT_ATTRIBUTES__ReduceAction599(fra.me.REG[0]);
+  parser___ReduceAction599___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction599(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction600[50] = {
+  {(bigint) 2043 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction600 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction600 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2043 /* 4: ReduceAction600 < ReduceAction600: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction600 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction600 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction600___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction600 < ReduceAction600: superclass init_table position */},
+  {(bigint) parser___ReduceAction600___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction600(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction600;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction600(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction600;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction600(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction600;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction600_parser___ReduceAction600___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25667;
+  fra.me.meth = LOCATE_NEW_ReduceAction600_parser___ReduceAction600___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction600();
+  /* ./parser//parser.nit:25667 */
+  INIT_ATTRIBUTES__ReduceAction600(fra.me.REG[0]);
+  parser___ReduceAction600___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction600(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction601[50] = {
+  {(bigint) 2039 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction601 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction601 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2039 /* 4: ReduceAction601 < ReduceAction601: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction601 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction601 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction601___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction601 < ReduceAction601: superclass init_table position */},
+  {(bigint) parser___ReduceAction601___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction601(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction601;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction601(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction601;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction601(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction601;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction601_parser___ReduceAction601___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25700;
+  fra.me.meth = LOCATE_NEW_ReduceAction601_parser___ReduceAction601___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction601();
+  /* ./parser//parser.nit:25700 */
+  INIT_ATTRIBUTES__ReduceAction601(fra.me.REG[0]);
+  parser___ReduceAction601___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction601(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction602[50] = {
+  {(bigint) 2035 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction602 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction602 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2035 /* 4: ReduceAction602 < ReduceAction602: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction602 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction602 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction602___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction602 < ReduceAction602: superclass init_table position */},
+  {(bigint) parser___ReduceAction602___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction602(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction602;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction602(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction602;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction602(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction602;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction602_parser___ReduceAction602___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25744;
+  fra.me.meth = LOCATE_NEW_ReduceAction602_parser___ReduceAction602___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction602();
+  /* ./parser//parser.nit:25744 */
+  INIT_ATTRIBUTES__ReduceAction602(fra.me.REG[0]);
+  parser___ReduceAction602___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction602(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction603[50] = {
+  {(bigint) 2031 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction603 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction603 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2031 /* 4: ReduceAction603 < ReduceAction603: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction603 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction603 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction603___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction603 < ReduceAction603: superclass init_table position */},
+  {(bigint) parser___ReduceAction603___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction603(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction603;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction603(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction603;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction603(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction603;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction603_parser___ReduceAction603___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25798;
+  fra.me.meth = LOCATE_NEW_ReduceAction603_parser___ReduceAction603___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction603();
+  /* ./parser//parser.nit:25798 */
+  INIT_ATTRIBUTES__ReduceAction603(fra.me.REG[0]);
+  parser___ReduceAction603___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction603(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction604[50] = {
+  {(bigint) 2027 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction604 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction604 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2027 /* 4: ReduceAction604 < ReduceAction604: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction604 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction604 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction604___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction604 < ReduceAction604: superclass init_table position */},
+  {(bigint) parser___ReduceAction604___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction604(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction604;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction604(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction604;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction604(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction604;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction604_parser___ReduceAction604___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25835;
+  fra.me.meth = LOCATE_NEW_ReduceAction604_parser___ReduceAction604___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction604();
+  /* ./parser//parser.nit:25835 */
+  INIT_ATTRIBUTES__ReduceAction604(fra.me.REG[0]);
+  parser___ReduceAction604___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction604(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction605[50] = {
+  {(bigint) 2023 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction605 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction605 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2023 /* 4: ReduceAction605 < ReduceAction605: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction605 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction605 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction605___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction605 < ReduceAction605: superclass init_table position */},
+  {(bigint) parser___ReduceAction605___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction605(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction605;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction605(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction605;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction605(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction605;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction605_parser___ReduceAction605___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25871;
+  fra.me.meth = LOCATE_NEW_ReduceAction605_parser___ReduceAction605___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction605();
+  /* ./parser//parser.nit:25871 */
+  INIT_ATTRIBUTES__ReduceAction605(fra.me.REG[0]);
+  parser___ReduceAction605___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction605(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction606[50] = {
+  {(bigint) 2019 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction606 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction606 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2019 /* 4: ReduceAction606 < ReduceAction606: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction606 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction606 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction606___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction606 < ReduceAction606: superclass init_table position */},
+  {(bigint) parser___ReduceAction606___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction606(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction606;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction606(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction606;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction606(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction606;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction606_parser___ReduceAction606___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25902;
+  fra.me.meth = LOCATE_NEW_ReduceAction606_parser___ReduceAction606___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction606();
+  /* ./parser//parser.nit:25902 */
+  INIT_ATTRIBUTES__ReduceAction606(fra.me.REG[0]);
+  parser___ReduceAction606___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction606(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction607[50] = {
+  {(bigint) 2015 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction607 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction607 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2015 /* 4: ReduceAction607 < ReduceAction607: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction607 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction607 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction607___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction607 < ReduceAction607: superclass init_table position */},
+  {(bigint) parser___ReduceAction607___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction607(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction607;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction607(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction607;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction607(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction607;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction607_parser___ReduceAction607___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 25950;
+  fra.me.meth = LOCATE_NEW_ReduceAction607_parser___ReduceAction607___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction607();
+  /* ./parser//parser.nit:25950 */
+  INIT_ATTRIBUTES__ReduceAction607(fra.me.REG[0]);
+  parser___ReduceAction607___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction607(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction608[50] = {
+  {(bigint) 2011 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction608 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction608 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2011 /* 4: ReduceAction608 < ReduceAction608: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction608 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction608 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction608___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction608 < ReduceAction608: superclass init_table position */},
+  {(bigint) parser___ReduceAction608___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction608(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction608;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction608(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction608;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction608(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction608;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction608_parser___ReduceAction608___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26008;
+  fra.me.meth = LOCATE_NEW_ReduceAction608_parser___ReduceAction608___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction608();
+  /* ./parser//parser.nit:26008 */
+  INIT_ATTRIBUTES__ReduceAction608(fra.me.REG[0]);
+  parser___ReduceAction608___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction608(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction609[50] = {
+  {(bigint) 2007 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction609 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction609 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2007 /* 4: ReduceAction609 < ReduceAction609: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction609 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction609 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction609___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction609 < ReduceAction609: superclass init_table position */},
+  {(bigint) parser___ReduceAction609___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction609(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction609;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction609(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction609;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction609(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction609;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction609_parser___ReduceAction609___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26049;
+  fra.me.meth = LOCATE_NEW_ReduceAction609_parser___ReduceAction609___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction609();
+  /* ./parser//parser.nit:26049 */
+  INIT_ATTRIBUTES__ReduceAction609(fra.me.REG[0]);
+  parser___ReduceAction609___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction609(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction610[50] = {
+  {(bigint) 1999 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction610 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction610 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1999 /* 4: ReduceAction610 < ReduceAction610: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction610 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction610 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction610___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction610 < ReduceAction610: superclass init_table position */},
+  {(bigint) parser___ReduceAction610___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction610(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction610;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction610(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction610;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction610(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction610;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction610_parser___ReduceAction610___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26089;
+  fra.me.meth = LOCATE_NEW_ReduceAction610_parser___ReduceAction610___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction610();
+  /* ./parser//parser.nit:26089 */
+  INIT_ATTRIBUTES__ReduceAction610(fra.me.REG[0]);
+  parser___ReduceAction610___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction610(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction611[50] = {
+  {(bigint) 1995 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction611 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction611 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1995 /* 4: ReduceAction611 < ReduceAction611: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction611 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction611 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction611___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction611 < ReduceAction611: superclass init_table position */},
+  {(bigint) parser___ReduceAction611___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction611(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction611;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction611(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction611;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction611(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction611;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction611_parser___ReduceAction611___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26140;
+  fra.me.meth = LOCATE_NEW_ReduceAction611_parser___ReduceAction611___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction611();
+  /* ./parser//parser.nit:26140 */
+  INIT_ATTRIBUTES__ReduceAction611(fra.me.REG[0]);
+  parser___ReduceAction611___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction611(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction612[50] = {
+  {(bigint) 1991 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction612 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction612 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1991 /* 4: ReduceAction612 < ReduceAction612: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction612 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction612 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction612___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction612 < ReduceAction612: superclass init_table position */},
+  {(bigint) parser___ReduceAction612___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction612(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction612;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction612(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction612;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction612(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction612;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction612_parser___ReduceAction612___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26201;
+  fra.me.meth = LOCATE_NEW_ReduceAction612_parser___ReduceAction612___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction612();
+  /* ./parser//parser.nit:26201 */
+  INIT_ATTRIBUTES__ReduceAction612(fra.me.REG[0]);
+  parser___ReduceAction612___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction612(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction613[50] = {
+  {(bigint) 1987 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction613 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction613 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1987 /* 4: ReduceAction613 < ReduceAction613: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction613 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction613 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction613___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction613 < ReduceAction613: superclass init_table position */},
+  {(bigint) parser___ReduceAction613___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction613(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction613;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction613(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction613;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction613(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction613;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction613_parser___ReduceAction613___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26245;
+  fra.me.meth = LOCATE_NEW_ReduceAction613_parser___ReduceAction613___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction613();
+  /* ./parser//parser.nit:26245 */
+  INIT_ATTRIBUTES__ReduceAction613(fra.me.REG[0]);
+  parser___ReduceAction613___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction613(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction614[50] = {
+  {(bigint) 1983 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction614 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction614 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1983 /* 4: ReduceAction614 < ReduceAction614: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction614 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction614 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction614___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction614 < ReduceAction614: superclass init_table position */},
+  {(bigint) parser___ReduceAction614___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction614(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction614;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction614(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction614;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction614(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction614;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction614_parser___ReduceAction614___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26288;
+  fra.me.meth = LOCATE_NEW_ReduceAction614_parser___ReduceAction614___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction614();
+  /* ./parser//parser.nit:26288 */
+  INIT_ATTRIBUTES__ReduceAction614(fra.me.REG[0]);
+  parser___ReduceAction614___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction614(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction615[50] = {
+  {(bigint) 1979 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction615 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction615 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1979 /* 4: ReduceAction615 < ReduceAction615: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction615 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction615 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction615___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction615 < ReduceAction615: superclass init_table position */},
+  {(bigint) parser___ReduceAction615___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction615(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction615;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction615(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction615;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction615(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction615;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction615_parser___ReduceAction615___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26326;
+  fra.me.meth = LOCATE_NEW_ReduceAction615_parser___ReduceAction615___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction615();
+  /* ./parser//parser.nit:26326 */
+  INIT_ATTRIBUTES__ReduceAction615(fra.me.REG[0]);
+  parser___ReduceAction615___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction615(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction616[50] = {
+  {(bigint) 1975 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction616 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction616 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1975 /* 4: ReduceAction616 < ReduceAction616: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction616 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction616 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction616___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction616 < ReduceAction616: superclass init_table position */},
+  {(bigint) parser___ReduceAction616___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction616(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction616;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction616(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction616;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction616(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction616;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction616_parser___ReduceAction616___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26352;
+  fra.me.meth = LOCATE_NEW_ReduceAction616_parser___ReduceAction616___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction616();
+  /* ./parser//parser.nit:26352 */
+  INIT_ATTRIBUTES__ReduceAction616(fra.me.REG[0]);
+  parser___ReduceAction616___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction616(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction617[50] = {
+  {(bigint) 1971 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction617 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction617 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1971 /* 4: ReduceAction617 < ReduceAction617: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction617 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction617 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction617___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction617 < ReduceAction617: superclass init_table position */},
+  {(bigint) parser___ReduceAction617___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction617(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction617;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction617(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction617;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction617(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction617;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction617_parser___ReduceAction617___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26381;
+  fra.me.meth = LOCATE_NEW_ReduceAction617_parser___ReduceAction617___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction617();
+  /* ./parser//parser.nit:26381 */
+  INIT_ATTRIBUTES__ReduceAction617(fra.me.REG[0]);
+  parser___ReduceAction617___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction617(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction618[50] = {
+  {(bigint) 1967 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction618 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction618 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1967 /* 4: ReduceAction618 < ReduceAction618: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction618 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction618 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction618___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction618 < ReduceAction618: superclass init_table position */},
+  {(bigint) parser___ReduceAction618___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction618(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction618;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction618(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction618;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction618(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction618;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction618_parser___ReduceAction618___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26403;
+  fra.me.meth = LOCATE_NEW_ReduceAction618_parser___ReduceAction618___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction618();
+  /* ./parser//parser.nit:26403 */
+  INIT_ATTRIBUTES__ReduceAction618(fra.me.REG[0]);
+  parser___ReduceAction618___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction618(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction619[50] = {
+  {(bigint) 1963 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction619 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction619 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1963 /* 4: ReduceAction619 < ReduceAction619: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction619 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction619 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction619___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction619 < ReduceAction619: superclass init_table position */},
+  {(bigint) parser___ReduceAction619___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction619(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction619;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction619(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction619;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction619(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction619;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction619_parser___ReduceAction619___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26428;
+  fra.me.meth = LOCATE_NEW_ReduceAction619_parser___ReduceAction619___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction619();
+  /* ./parser//parser.nit:26428 */
+  INIT_ATTRIBUTES__ReduceAction619(fra.me.REG[0]);
+  parser___ReduceAction619___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction619(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction620[50] = {
+  {(bigint) 1955 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction620 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction620 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1955 /* 4: ReduceAction620 < ReduceAction620: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction620 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction620 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction620___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction620 < ReduceAction620: superclass init_table position */},
+  {(bigint) parser___ReduceAction620___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction620(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction620;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction620(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction620;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction620(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction620;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction620_parser___ReduceAction620___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26442;
+  fra.me.meth = LOCATE_NEW_ReduceAction620_parser___ReduceAction620___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction620();
+  /* ./parser//parser.nit:26442 */
+  INIT_ATTRIBUTES__ReduceAction620(fra.me.REG[0]);
+  parser___ReduceAction620___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction620(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction621[50] = {
+  {(bigint) 1951 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction621 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction621 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1951 /* 4: ReduceAction621 < ReduceAction621: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction621 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction621 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction621___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction621 < ReduceAction621: superclass init_table position */},
+  {(bigint) parser___ReduceAction621___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction621(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction621;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction621(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction621;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction621(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction621;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction621_parser___ReduceAction621___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26455;
+  fra.me.meth = LOCATE_NEW_ReduceAction621_parser___ReduceAction621___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction621();
+  /* ./parser//parser.nit:26455 */
+  INIT_ATTRIBUTES__ReduceAction621(fra.me.REG[0]);
+  parser___ReduceAction621___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction621(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction622[50] = {
+  {(bigint) 1947 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction622 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction622 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1947 /* 4: ReduceAction622 < ReduceAction622: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction622 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction622 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction622___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction622 < ReduceAction622: superclass init_table position */},
+  {(bigint) parser___ReduceAction622___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction622(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction622;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction622(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction622;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction622(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction622;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction622_parser___ReduceAction622___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26501;
+  fra.me.meth = LOCATE_NEW_ReduceAction622_parser___ReduceAction622___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction622();
+  /* ./parser//parser.nit:26501 */
+  INIT_ATTRIBUTES__ReduceAction622(fra.me.REG[0]);
+  parser___ReduceAction622___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction622(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction623[50] = {
+  {(bigint) 1943 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction623 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction623 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1943 /* 4: ReduceAction623 < ReduceAction623: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction623 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction623 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction623___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction623 < ReduceAction623: superclass init_table position */},
+  {(bigint) parser___ReduceAction623___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction623(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction623;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction623(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction623;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction623(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction623;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction623_parser___ReduceAction623___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26544;
+  fra.me.meth = LOCATE_NEW_ReduceAction623_parser___ReduceAction623___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction623();
+  /* ./parser//parser.nit:26544 */
+  INIT_ATTRIBUTES__ReduceAction623(fra.me.REG[0]);
+  parser___ReduceAction623___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction623(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction624[50] = {
+  {(bigint) 1939 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction624 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction624 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1939 /* 4: ReduceAction624 < ReduceAction624: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction624 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction624 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction624___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction624 < ReduceAction624: superclass init_table position */},
+  {(bigint) parser___ReduceAction624___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction624(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction624;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction624(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction624;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction624(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction624;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction624_parser___ReduceAction624___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26584;
+  fra.me.meth = LOCATE_NEW_ReduceAction624_parser___ReduceAction624___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction624();
+  /* ./parser//parser.nit:26584 */
+  INIT_ATTRIBUTES__ReduceAction624(fra.me.REG[0]);
+  parser___ReduceAction624___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction624(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction625[50] = {
+  {(bigint) 1935 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction625 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction625 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1935 /* 4: ReduceAction625 < ReduceAction625: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction625 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction625 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction625___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction625 < ReduceAction625: superclass init_table position */},
+  {(bigint) parser___ReduceAction625___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction625(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction625;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction625(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction625;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction625(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction625;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction625_parser___ReduceAction625___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26597;
+  fra.me.meth = LOCATE_NEW_ReduceAction625_parser___ReduceAction625___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction625();
+  /* ./parser//parser.nit:26597 */
+  INIT_ATTRIBUTES__ReduceAction625(fra.me.REG[0]);
+  parser___ReduceAction625___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction625(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction626[50] = {
+  {(bigint) 1931 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction626 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction626 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1931 /* 4: ReduceAction626 < ReduceAction626: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction626 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction626 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction626___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction626 < ReduceAction626: superclass init_table position */},
+  {(bigint) parser___ReduceAction626___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction626(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction626;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction626(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction626;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction626(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction626;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction626_parser___ReduceAction626___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26638;
+  fra.me.meth = LOCATE_NEW_ReduceAction626_parser___ReduceAction626___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction626();
+  /* ./parser//parser.nit:26638 */
+  INIT_ATTRIBUTES__ReduceAction626(fra.me.REG[0]);
+  parser___ReduceAction626___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction626(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction627[50] = {
+  {(bigint) 1927 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction627 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction627 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1927 /* 4: ReduceAction627 < ReduceAction627: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction627 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction627 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction627___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction627 < ReduceAction627: superclass init_table position */},
+  {(bigint) parser___ReduceAction627___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction627(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction627;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction627(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction627;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction627(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction627;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction627_parser___ReduceAction627___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26651;
+  fra.me.meth = LOCATE_NEW_ReduceAction627_parser___ReduceAction627___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction627();
+  /* ./parser//parser.nit:26651 */
+  INIT_ATTRIBUTES__ReduceAction627(fra.me.REG[0]);
+  parser___ReduceAction627___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction627(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction628[50] = {
+  {(bigint) 1923 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction628 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction628 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1923 /* 4: ReduceAction628 < ReduceAction628: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction628 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction628 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction628___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction628 < ReduceAction628: superclass init_table position */},
+  {(bigint) parser___ReduceAction628___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction628(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction628;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction628(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction628;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction628(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction628;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction628_parser___ReduceAction628___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26673;
+  fra.me.meth = LOCATE_NEW_ReduceAction628_parser___ReduceAction628___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction628();
+  /* ./parser//parser.nit:26673 */
+  INIT_ATTRIBUTES__ReduceAction628(fra.me.REG[0]);
+  parser___ReduceAction628___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction628(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction629[50] = {
+  {(bigint) 1919 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction629 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction629 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1919 /* 4: ReduceAction629 < ReduceAction629: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction629 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction629 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction629___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction629 < ReduceAction629: superclass init_table position */},
+  {(bigint) parser___ReduceAction629___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction629(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction629;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction629(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction629;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction629(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction629;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction629_parser___ReduceAction629___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26695;
+  fra.me.meth = LOCATE_NEW_ReduceAction629_parser___ReduceAction629___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction629();
+  /* ./parser//parser.nit:26695 */
+  INIT_ATTRIBUTES__ReduceAction629(fra.me.REG[0]);
+  parser___ReduceAction629___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction629(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction630[50] = {
+  {(bigint) 1911 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction630 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction630 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1911 /* 4: ReduceAction630 < ReduceAction630: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction630 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction630 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction630___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction630 < ReduceAction630: superclass init_table position */},
+  {(bigint) parser___ReduceAction630___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction630(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction630;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction630(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction630;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction630(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction630;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction630_parser___ReduceAction630___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26708;
+  fra.me.meth = LOCATE_NEW_ReduceAction630_parser___ReduceAction630___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction630();
+  /* ./parser//parser.nit:26708 */
+  INIT_ATTRIBUTES__ReduceAction630(fra.me.REG[0]);
+  parser___ReduceAction630___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction630(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction631[50] = {
+  {(bigint) 1907 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction631 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction631 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1907 /* 4: ReduceAction631 < ReduceAction631: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction631 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction631 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction631___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction631 < ReduceAction631: superclass init_table position */},
+  {(bigint) parser___ReduceAction631___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction631(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction631;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction631(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction631;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction631(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction631;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction631_parser___ReduceAction631___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26729;
+  fra.me.meth = LOCATE_NEW_ReduceAction631_parser___ReduceAction631___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction631();
+  /* ./parser//parser.nit:26729 */
+  INIT_ATTRIBUTES__ReduceAction631(fra.me.REG[0]);
+  parser___ReduceAction631___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction631(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction632[50] = {
+  {(bigint) 1903 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction632 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction632 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1903 /* 4: ReduceAction632 < ReduceAction632: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction632 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction632 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction632___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction632 < ReduceAction632: superclass init_table position */},
+  {(bigint) parser___ReduceAction632___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction632(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction632;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction632(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction632;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction632(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction632;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction632_parser___ReduceAction632___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26742;
+  fra.me.meth = LOCATE_NEW_ReduceAction632_parser___ReduceAction632___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction632();
+  /* ./parser//parser.nit:26742 */
+  INIT_ATTRIBUTES__ReduceAction632(fra.me.REG[0]);
+  parser___ReduceAction632___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction632(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction633[50] = {
+  {(bigint) 1899 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction633 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction633 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1899 /* 4: ReduceAction633 < ReduceAction633: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction633 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction633 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction633___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction633 < ReduceAction633: superclass init_table position */},
+  {(bigint) parser___ReduceAction633___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction633(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction633;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction633(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction633;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction633(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction633;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction633_parser___ReduceAction633___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26764;
+  fra.me.meth = LOCATE_NEW_ReduceAction633_parser___ReduceAction633___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction633();
+  /* ./parser//parser.nit:26764 */
+  INIT_ATTRIBUTES__ReduceAction633(fra.me.REG[0]);
+  parser___ReduceAction633___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction633(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction634[50] = {
+  {(bigint) 1895 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction634 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction634 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1895 /* 4: ReduceAction634 < ReduceAction634: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction634 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction634 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction634___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction634 < ReduceAction634: superclass init_table position */},
+  {(bigint) parser___ReduceAction634___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction634(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction634;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction634(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction634;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction634(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction634;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction634_parser___ReduceAction634___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26786;
+  fra.me.meth = LOCATE_NEW_ReduceAction634_parser___ReduceAction634___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction634();
+  /* ./parser//parser.nit:26786 */
+  INIT_ATTRIBUTES__ReduceAction634(fra.me.REG[0]);
+  parser___ReduceAction634___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction634(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction635[50] = {
+  {(bigint) 1891 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction635 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction635 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1891 /* 4: ReduceAction635 < ReduceAction635: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction635 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction635 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction635___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction635 < ReduceAction635: superclass init_table position */},
+  {(bigint) parser___ReduceAction635___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction635(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction635;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction635(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction635;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction635(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction635;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction635_parser___ReduceAction635___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26808;
+  fra.me.meth = LOCATE_NEW_ReduceAction635_parser___ReduceAction635___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction635();
+  /* ./parser//parser.nit:26808 */
+  INIT_ATTRIBUTES__ReduceAction635(fra.me.REG[0]);
+  parser___ReduceAction635___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction635(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction636[50] = {
+  {(bigint) 1887 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction636 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction636 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1887 /* 4: ReduceAction636 < ReduceAction636: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction636 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction636 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction636___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction636 < ReduceAction636: superclass init_table position */},
+  {(bigint) parser___ReduceAction636___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction636(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction636;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction636(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction636;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction636(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction636;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction636_parser___ReduceAction636___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26830;
+  fra.me.meth = LOCATE_NEW_ReduceAction636_parser___ReduceAction636___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction636();
+  /* ./parser//parser.nit:26830 */
+  INIT_ATTRIBUTES__ReduceAction636(fra.me.REG[0]);
+  parser___ReduceAction636___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction636(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction637[50] = {
+  {(bigint) 1883 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction637 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction637 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1883 /* 4: ReduceAction637 < ReduceAction637: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction637 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction637 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction637___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction637 < ReduceAction637: superclass init_table position */},
+  {(bigint) parser___ReduceAction637___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction637(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction637;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction637(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction637;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction637(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction637;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction637_parser___ReduceAction637___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26852;
+  fra.me.meth = LOCATE_NEW_ReduceAction637_parser___ReduceAction637___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction637();
+  /* ./parser//parser.nit:26852 */
+  INIT_ATTRIBUTES__ReduceAction637(fra.me.REG[0]);
+  parser___ReduceAction637___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction637(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction638[50] = {
+  {(bigint) 1879 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction638 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction638 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1879 /* 4: ReduceAction638 < ReduceAction638: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction638 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction638 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction638___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction638 < ReduceAction638: superclass init_table position */},
+  {(bigint) parser___ReduceAction638___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction638(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction638;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction638(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction638;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction638(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction638;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction638_parser___ReduceAction638___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26874;
+  fra.me.meth = LOCATE_NEW_ReduceAction638_parser___ReduceAction638___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction638();
+  /* ./parser//parser.nit:26874 */
+  INIT_ATTRIBUTES__ReduceAction638(fra.me.REG[0]);
+  parser___ReduceAction638___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction638(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction639[50] = {
+  {(bigint) 1875 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction639 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction639 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1875 /* 4: ReduceAction639 < ReduceAction639: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction639 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction639 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction639___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction639 < ReduceAction639: superclass init_table position */},
+  {(bigint) parser___ReduceAction639___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction639(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction639;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction639(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction639;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction639(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction639;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction639_parser___ReduceAction639___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26896;
+  fra.me.meth = LOCATE_NEW_ReduceAction639_parser___ReduceAction639___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction639();
+  /* ./parser//parser.nit:26896 */
+  INIT_ATTRIBUTES__ReduceAction639(fra.me.REG[0]);
+  parser___ReduceAction639___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction639(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction640[50] = {
+  {(bigint) 1867 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction640 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction640 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1867 /* 4: ReduceAction640 < ReduceAction640: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction640 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction640 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction640___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction640 < ReduceAction640: superclass init_table position */},
+  {(bigint) parser___ReduceAction640___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction640(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction640;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction640(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction640;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction640(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction640;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction640_parser___ReduceAction640___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26918;
+  fra.me.meth = LOCATE_NEW_ReduceAction640_parser___ReduceAction640___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction640();
+  /* ./parser//parser.nit:26918 */
+  INIT_ATTRIBUTES__ReduceAction640(fra.me.REG[0]);
+  parser___ReduceAction640___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction640(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction641[50] = {
+  {(bigint) 1863 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction641 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction641 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1863 /* 4: ReduceAction641 < ReduceAction641: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction641 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction641 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction641___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction641 < ReduceAction641: superclass init_table position */},
+  {(bigint) parser___ReduceAction641___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction641(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction641;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction641(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction641;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction641(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction641;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction641_parser___ReduceAction641___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26940;
+  fra.me.meth = LOCATE_NEW_ReduceAction641_parser___ReduceAction641___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction641();
+  /* ./parser//parser.nit:26940 */
+  INIT_ATTRIBUTES__ReduceAction641(fra.me.REG[0]);
+  parser___ReduceAction641___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction641(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction642[50] = {
+  {(bigint) 1859 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction642 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction642 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1859 /* 4: ReduceAction642 < ReduceAction642: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction642 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction642 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction642___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction642 < ReduceAction642: superclass init_table position */},
+  {(bigint) parser___ReduceAction642___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction642(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction642;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction642(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction642;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction642(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction642;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction642_parser___ReduceAction642___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26953;
+  fra.me.meth = LOCATE_NEW_ReduceAction642_parser___ReduceAction642___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction642();
+  /* ./parser//parser.nit:26953 */
+  INIT_ATTRIBUTES__ReduceAction642(fra.me.REG[0]);
+  parser___ReduceAction642___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction642(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction643[50] = {
+  {(bigint) 1855 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction643 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction643 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1855 /* 4: ReduceAction643 < ReduceAction643: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction643 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction643 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction643___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction643 < ReduceAction643: superclass init_table position */},
+  {(bigint) parser___ReduceAction643___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction643(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction643;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction643(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction643;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction643(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction643;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction643_parser___ReduceAction643___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26975;
+  fra.me.meth = LOCATE_NEW_ReduceAction643_parser___ReduceAction643___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction643();
+  /* ./parser//parser.nit:26975 */
+  INIT_ATTRIBUTES__ReduceAction643(fra.me.REG[0]);
+  parser___ReduceAction643___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction643(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction644[50] = {
+  {(bigint) 1851 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction644 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction644 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1851 /* 4: ReduceAction644 < ReduceAction644: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction644 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction644 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction644___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction644 < ReduceAction644: superclass init_table position */},
+  {(bigint) parser___ReduceAction644___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction644(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction644;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction644(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction644;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction644(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction644;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction644_parser___ReduceAction644___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 26997;
+  fra.me.meth = LOCATE_NEW_ReduceAction644_parser___ReduceAction644___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction644();
+  /* ./parser//parser.nit:26997 */
+  INIT_ATTRIBUTES__ReduceAction644(fra.me.REG[0]);
+  parser___ReduceAction644___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction644(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction645[50] = {
+  {(bigint) 1847 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction645 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction645 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1847 /* 4: ReduceAction645 < ReduceAction645: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction645 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction645 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction645___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction645 < ReduceAction645: superclass init_table position */},
+  {(bigint) parser___ReduceAction645___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction645(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction645;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction645(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction645;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction645(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction645;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction645_parser___ReduceAction645___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27010;
+  fra.me.meth = LOCATE_NEW_ReduceAction645_parser___ReduceAction645___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction645();
+  /* ./parser//parser.nit:27010 */
+  INIT_ATTRIBUTES__ReduceAction645(fra.me.REG[0]);
+  parser___ReduceAction645___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction645(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction646[50] = {
+  {(bigint) 1843 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction646 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction646 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1843 /* 4: ReduceAction646 < ReduceAction646: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction646 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction646 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction646___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction646 < ReduceAction646: superclass init_table position */},
+  {(bigint) parser___ReduceAction646___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction646(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction646;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction646(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction646;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction646(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction646;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction646_parser___ReduceAction646___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27032;
+  fra.me.meth = LOCATE_NEW_ReduceAction646_parser___ReduceAction646___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction646();
+  /* ./parser//parser.nit:27032 */
+  INIT_ATTRIBUTES__ReduceAction646(fra.me.REG[0]);
+  parser___ReduceAction646___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction646(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction647[50] = {
+  {(bigint) 1839 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction647 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction647 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1839 /* 4: ReduceAction647 < ReduceAction647: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction647 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction647 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction647___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction647 < ReduceAction647: superclass init_table position */},
+  {(bigint) parser___ReduceAction647___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction647(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction647;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction647(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction647;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction647(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction647;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction647_parser___ReduceAction647___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27054;
+  fra.me.meth = LOCATE_NEW_ReduceAction647_parser___ReduceAction647___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction647();
+  /* ./parser//parser.nit:27054 */
+  INIT_ATTRIBUTES__ReduceAction647(fra.me.REG[0]);
+  parser___ReduceAction647___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction647(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction648[50] = {
+  {(bigint) 1835 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction648 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction648 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1835 /* 4: ReduceAction648 < ReduceAction648: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction648 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction648 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction648___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction648 < ReduceAction648: superclass init_table position */},
+  {(bigint) parser___ReduceAction648___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction648(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction648;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction648(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction648;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction648(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction648;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction648_parser___ReduceAction648___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27076;
+  fra.me.meth = LOCATE_NEW_ReduceAction648_parser___ReduceAction648___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction648();
+  /* ./parser//parser.nit:27076 */
+  INIT_ATTRIBUTES__ReduceAction648(fra.me.REG[0]);
+  parser___ReduceAction648___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction648(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction649[50] = {
+  {(bigint) 1831 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction649 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction649 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1831 /* 4: ReduceAction649 < ReduceAction649: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction649 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction649 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction649___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction649 < ReduceAction649: superclass init_table position */},
+  {(bigint) parser___ReduceAction649___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction649(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction649;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction649(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction649;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction649(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction649;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction649_parser___ReduceAction649___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27089;
+  fra.me.meth = LOCATE_NEW_ReduceAction649_parser___ReduceAction649___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction649();
+  /* ./parser//parser.nit:27089 */
+  INIT_ATTRIBUTES__ReduceAction649(fra.me.REG[0]);
+  parser___ReduceAction649___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction649(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction650[50] = {
+  {(bigint) 1823 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction650 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction650 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1823 /* 4: ReduceAction650 < ReduceAction650: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction650 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction650 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction650___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction650 < ReduceAction650: superclass init_table position */},
+  {(bigint) parser___ReduceAction650___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction650(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction650;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction650(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction650;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction650(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction650;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction650_parser___ReduceAction650___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27110;
+  fra.me.meth = LOCATE_NEW_ReduceAction650_parser___ReduceAction650___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction650();
+  /* ./parser//parser.nit:27110 */
+  INIT_ATTRIBUTES__ReduceAction650(fra.me.REG[0]);
+  parser___ReduceAction650___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction650(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction651[50] = {
+  {(bigint) 1819 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction651 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction651 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1819 /* 4: ReduceAction651 < ReduceAction651: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction651 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction651 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction651___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction651 < ReduceAction651: superclass init_table position */},
+  {(bigint) parser___ReduceAction651___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction651(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction651;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction651(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction651;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction651(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction651;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction651_parser___ReduceAction651___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27131;
+  fra.me.meth = LOCATE_NEW_ReduceAction651_parser___ReduceAction651___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction651();
+  /* ./parser//parser.nit:27131 */
+  INIT_ATTRIBUTES__ReduceAction651(fra.me.REG[0]);
+  parser___ReduceAction651___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction651(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction652[50] = {
+  {(bigint) 1815 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction652 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction652 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1815 /* 4: ReduceAction652 < ReduceAction652: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction652 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction652 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction652___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction652 < ReduceAction652: superclass init_table position */},
+  {(bigint) parser___ReduceAction652___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction652(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction652;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction652(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction652;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction652(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction652;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction652_parser___ReduceAction652___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27144;
+  fra.me.meth = LOCATE_NEW_ReduceAction652_parser___ReduceAction652___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction652();
+  /* ./parser//parser.nit:27144 */
+  INIT_ATTRIBUTES__ReduceAction652(fra.me.REG[0]);
+  parser___ReduceAction652___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction652(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction653[50] = {
+  {(bigint) 1811 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction653 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction653 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1811 /* 4: ReduceAction653 < ReduceAction653: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction653 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction653 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction653___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction653 < ReduceAction653: superclass init_table position */},
+  {(bigint) parser___ReduceAction653___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction653(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction653;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction653(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction653;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction653(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction653;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction653_parser___ReduceAction653___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27178;
+  fra.me.meth = LOCATE_NEW_ReduceAction653_parser___ReduceAction653___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction653();
+  /* ./parser//parser.nit:27178 */
+  INIT_ATTRIBUTES__ReduceAction653(fra.me.REG[0]);
+  parser___ReduceAction653___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction653(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction654[50] = {
+  {(bigint) 1807 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction654 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction654 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1807 /* 4: ReduceAction654 < ReduceAction654: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction654 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction654 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction654___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction654 < ReduceAction654: superclass init_table position */},
+  {(bigint) parser___ReduceAction654___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction654(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction654;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction654(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction654;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction654(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction654;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction654_parser___ReduceAction654___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27204;
+  fra.me.meth = LOCATE_NEW_ReduceAction654_parser___ReduceAction654___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction654();
+  /* ./parser//parser.nit:27204 */
+  INIT_ATTRIBUTES__ReduceAction654(fra.me.REG[0]);
+  parser___ReduceAction654___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction654(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction655[50] = {
+  {(bigint) 1803 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction655 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction655 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1803 /* 4: ReduceAction655 < ReduceAction655: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction655 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction655 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction655___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction655 < ReduceAction655: superclass init_table position */},
+  {(bigint) parser___ReduceAction655___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction655(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction655;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction655(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction655;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction655(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction655;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction655_parser___ReduceAction655___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27227;
+  fra.me.meth = LOCATE_NEW_ReduceAction655_parser___ReduceAction655___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction655();
+  /* ./parser//parser.nit:27227 */
+  INIT_ATTRIBUTES__ReduceAction655(fra.me.REG[0]);
+  parser___ReduceAction655___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction655(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction656[50] = {
+  {(bigint) 1799 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction656 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction656 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1799 /* 4: ReduceAction656 < ReduceAction656: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction656 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction656 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction656___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction656 < ReduceAction656: superclass init_table position */},
+  {(bigint) parser___ReduceAction656___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction656(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction656;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction656(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction656;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction656(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction656;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction656_parser___ReduceAction656___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27249;
+  fra.me.meth = LOCATE_NEW_ReduceAction656_parser___ReduceAction656___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction656();
+  /* ./parser//parser.nit:27249 */
+  INIT_ATTRIBUTES__ReduceAction656(fra.me.REG[0]);
+  parser___ReduceAction656___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction656(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction657[50] = {
+  {(bigint) 1795 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction657 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction657 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1795 /* 4: ReduceAction657 < ReduceAction657: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction657 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction657 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction657___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction657 < ReduceAction657: superclass init_table position */},
+  {(bigint) parser___ReduceAction657___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction657(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction657;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction657(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction657;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction657(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction657;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction657_parser___ReduceAction657___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27268;
+  fra.me.meth = LOCATE_NEW_ReduceAction657_parser___ReduceAction657___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction657();
+  /* ./parser//parser.nit:27268 */
+  INIT_ATTRIBUTES__ReduceAction657(fra.me.REG[0]);
+  parser___ReduceAction657___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction657(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction658[50] = {
+  {(bigint) 1791 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction658 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction658 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1791 /* 4: ReduceAction658 < ReduceAction658: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction658 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction658 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction658___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction658 < ReduceAction658: superclass init_table position */},
+  {(bigint) parser___ReduceAction658___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction658(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction658;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction658(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction658;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction658(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction658;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction658_parser___ReduceAction658___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27304;
+  fra.me.meth = LOCATE_NEW_ReduceAction658_parser___ReduceAction658___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction658();
+  /* ./parser//parser.nit:27304 */
+  INIT_ATTRIBUTES__ReduceAction658(fra.me.REG[0]);
+  parser___ReduceAction658___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction658(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction659[50] = {
+  {(bigint) 1787 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction659 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction659 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1787 /* 4: ReduceAction659 < ReduceAction659: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction659 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction659 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction659___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction659 < ReduceAction659: superclass init_table position */},
+  {(bigint) parser___ReduceAction659___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction659(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction659;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction659(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction659;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction659(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction659;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction659_parser___ReduceAction659___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27337;
+  fra.me.meth = LOCATE_NEW_ReduceAction659_parser___ReduceAction659___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction659();
+  /* ./parser//parser.nit:27337 */
+  INIT_ATTRIBUTES__ReduceAction659(fra.me.REG[0]);
+  parser___ReduceAction659___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction659(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction660[50] = {
+  {(bigint) 1779 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction660 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction660 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1779 /* 4: ReduceAction660 < ReduceAction660: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction660 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction660 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction660___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction660 < ReduceAction660: superclass init_table position */},
+  {(bigint) parser___ReduceAction660___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction660(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction660;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction660(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction660;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction660(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction660;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction660_parser___ReduceAction660___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27366;
+  fra.me.meth = LOCATE_NEW_ReduceAction660_parser___ReduceAction660___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction660();
+  /* ./parser//parser.nit:27366 */
+  INIT_ATTRIBUTES__ReduceAction660(fra.me.REG[0]);
+  parser___ReduceAction660___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction660(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction661[50] = {
+  {(bigint) 1775 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction661 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction661 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1775 /* 4: ReduceAction661 < ReduceAction661: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction661 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction661 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction661___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction661 < ReduceAction661: superclass init_table position */},
+  {(bigint) parser___ReduceAction661___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction661(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction661;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction661(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction661;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction661(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction661;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction661_parser___ReduceAction661___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27398;
+  fra.me.meth = LOCATE_NEW_ReduceAction661_parser___ReduceAction661___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction661();
+  /* ./parser//parser.nit:27398 */
+  INIT_ATTRIBUTES__ReduceAction661(fra.me.REG[0]);
+  parser___ReduceAction661___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction661(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction662[50] = {
+  {(bigint) 1771 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction662 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction662 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1771 /* 4: ReduceAction662 < ReduceAction662: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction662 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction662 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction662___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction662 < ReduceAction662: superclass init_table position */},
+  {(bigint) parser___ReduceAction662___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction662(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction662;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction662(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction662;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction662(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction662;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction662_parser___ReduceAction662___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27432;
+  fra.me.meth = LOCATE_NEW_ReduceAction662_parser___ReduceAction662___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction662();
+  /* ./parser//parser.nit:27432 */
+  INIT_ATTRIBUTES__ReduceAction662(fra.me.REG[0]);
+  parser___ReduceAction662___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction662(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction663[50] = {
+  {(bigint) 1767 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction663 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction663 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1767 /* 4: ReduceAction663 < ReduceAction663: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction663 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction663 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction663___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction663 < ReduceAction663: superclass init_table position */},
+  {(bigint) parser___ReduceAction663___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction663(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction663;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction663(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction663;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction663(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction663;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction663_parser___ReduceAction663___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27463;
+  fra.me.meth = LOCATE_NEW_ReduceAction663_parser___ReduceAction663___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction663();
+  /* ./parser//parser.nit:27463 */
+  INIT_ATTRIBUTES__ReduceAction663(fra.me.REG[0]);
+  parser___ReduceAction663___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction663(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction664[50] = {
+  {(bigint) 1763 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction664 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction664 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1763 /* 4: ReduceAction664 < ReduceAction664: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction664 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction664 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction664___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction664 < ReduceAction664: superclass init_table position */},
+  {(bigint) parser___ReduceAction664___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction664(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction664;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction664(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction664;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction664(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction664;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction664_parser___ReduceAction664___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27493;
+  fra.me.meth = LOCATE_NEW_ReduceAction664_parser___ReduceAction664___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction664();
+  /* ./parser//parser.nit:27493 */
+  INIT_ATTRIBUTES__ReduceAction664(fra.me.REG[0]);
+  parser___ReduceAction664___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction664(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction665[50] = {
+  {(bigint) 1759 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction665 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction665 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1759 /* 4: ReduceAction665 < ReduceAction665: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction665 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction665 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction665___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction665 < ReduceAction665: superclass init_table position */},
+  {(bigint) parser___ReduceAction665___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction665(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction665;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction665(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction665;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction665(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction665;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction665_parser___ReduceAction665___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27532;
+  fra.me.meth = LOCATE_NEW_ReduceAction665_parser___ReduceAction665___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction665();
+  /* ./parser//parser.nit:27532 */
+  INIT_ATTRIBUTES__ReduceAction665(fra.me.REG[0]);
+  parser___ReduceAction665___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction665(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction666[50] = {
+  {(bigint) 1755 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction666 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction666 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1755 /* 4: ReduceAction666 < ReduceAction666: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction666 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction666 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction666___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction666 < ReduceAction666: superclass init_table position */},
+  {(bigint) parser___ReduceAction666___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction666(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction666;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction666(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction666;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction666(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction666;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction666_parser___ReduceAction666___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27559;
+  fra.me.meth = LOCATE_NEW_ReduceAction666_parser___ReduceAction666___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction666();
+  /* ./parser//parser.nit:27559 */
+  INIT_ATTRIBUTES__ReduceAction666(fra.me.REG[0]);
+  parser___ReduceAction666___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction666(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction667[50] = {
+  {(bigint) 1751 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction667 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction667 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1751 /* 4: ReduceAction667 < ReduceAction667: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction667 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction667 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction667___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction667 < ReduceAction667: superclass init_table position */},
+  {(bigint) parser___ReduceAction667___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction667(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction667;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction667(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction667;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction667(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction667;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction667_parser___ReduceAction667___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27586;
+  fra.me.meth = LOCATE_NEW_ReduceAction667_parser___ReduceAction667___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction667();
+  /* ./parser//parser.nit:27586 */
+  INIT_ATTRIBUTES__ReduceAction667(fra.me.REG[0]);
+  parser___ReduceAction667___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction667(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction668[50] = {
+  {(bigint) 1747 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction668 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction668 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1747 /* 4: ReduceAction668 < ReduceAction668: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction668 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction668 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction668___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction668 < ReduceAction668: superclass init_table position */},
+  {(bigint) parser___ReduceAction668___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction668(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction668;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction668(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction668;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction668(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction668;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction668_parser___ReduceAction668___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27610;
+  fra.me.meth = LOCATE_NEW_ReduceAction668_parser___ReduceAction668___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction668();
+  /* ./parser//parser.nit:27610 */
+  INIT_ATTRIBUTES__ReduceAction668(fra.me.REG[0]);
+  parser___ReduceAction668___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction668(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction669[50] = {
+  {(bigint) 1743 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction669 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction669 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1743 /* 4: ReduceAction669 < ReduceAction669: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction669 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction669 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction669___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction669 < ReduceAction669: superclass init_table position */},
+  {(bigint) parser___ReduceAction669___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction669(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction669;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction669(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction669;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction669(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction669;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction669_parser___ReduceAction669___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27626;
+  fra.me.meth = LOCATE_NEW_ReduceAction669_parser___ReduceAction669___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction669();
+  /* ./parser//parser.nit:27626 */
+  INIT_ATTRIBUTES__ReduceAction669(fra.me.REG[0]);
+  parser___ReduceAction669___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction669(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction670[50] = {
+  {(bigint) 1735 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction670 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction670 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1735 /* 4: ReduceAction670 < ReduceAction670: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction670 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction670 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction670___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction670 < ReduceAction670: superclass init_table position */},
+  {(bigint) parser___ReduceAction670___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction670(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction670;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction670(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction670;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction670(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction670;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction670_parser___ReduceAction670___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27642;
+  fra.me.meth = LOCATE_NEW_ReduceAction670_parser___ReduceAction670___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction670();
+  /* ./parser//parser.nit:27642 */
+  INIT_ATTRIBUTES__ReduceAction670(fra.me.REG[0]);
+  parser___ReduceAction670___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction670(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction671[50] = {
+  {(bigint) 1731 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction671 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction671 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1731 /* 4: ReduceAction671 < ReduceAction671: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction671 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction671 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction671___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction671 < ReduceAction671: superclass init_table position */},
+  {(bigint) parser___ReduceAction671___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction671(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction671;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction671(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction671;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction671(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction671;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction671_parser___ReduceAction671___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27658;
+  fra.me.meth = LOCATE_NEW_ReduceAction671_parser___ReduceAction671___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction671();
+  /* ./parser//parser.nit:27658 */
+  INIT_ATTRIBUTES__ReduceAction671(fra.me.REG[0]);
+  parser___ReduceAction671___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction671(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction672[50] = {
+  {(bigint) 1727 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction672 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction672 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1727 /* 4: ReduceAction672 < ReduceAction672: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction672 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction672 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction672___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction672 < ReduceAction672: superclass init_table position */},
+  {(bigint) parser___ReduceAction672___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction672(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction672;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction672(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction672;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction672(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction672;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction672_parser___ReduceAction672___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27674;
+  fra.me.meth = LOCATE_NEW_ReduceAction672_parser___ReduceAction672___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction672();
+  /* ./parser//parser.nit:27674 */
+  INIT_ATTRIBUTES__ReduceAction672(fra.me.REG[0]);
+  parser___ReduceAction672___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction672(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction673[50] = {
+  {(bigint) 1723 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction673 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction673 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1723 /* 4: ReduceAction673 < ReduceAction673: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction673 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction673 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction673___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction673 < ReduceAction673: superclass init_table position */},
+  {(bigint) parser___ReduceAction673___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction673(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction673;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction673(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction673;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction673(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction673;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction673_parser___ReduceAction673___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27690;
+  fra.me.meth = LOCATE_NEW_ReduceAction673_parser___ReduceAction673___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction673();
+  /* ./parser//parser.nit:27690 */
+  INIT_ATTRIBUTES__ReduceAction673(fra.me.REG[0]);
+  parser___ReduceAction673___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction673(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction674[50] = {
+  {(bigint) 1719 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction674 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction674 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1719 /* 4: ReduceAction674 < ReduceAction674: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction674 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction674 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction674___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction674 < ReduceAction674: superclass init_table position */},
+  {(bigint) parser___ReduceAction674___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction674(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction674;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction674(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction674;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction674(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction674;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction674_parser___ReduceAction674___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27706;
+  fra.me.meth = LOCATE_NEW_ReduceAction674_parser___ReduceAction674___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction674();
+  /* ./parser//parser.nit:27706 */
+  INIT_ATTRIBUTES__ReduceAction674(fra.me.REG[0]);
+  parser___ReduceAction674___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction674(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction675[50] = {
+  {(bigint) 1715 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction675 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction675 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1715 /* 4: ReduceAction675 < ReduceAction675: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction675 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction675 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction675___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction675 < ReduceAction675: superclass init_table position */},
+  {(bigint) parser___ReduceAction675___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction675(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction675;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction675(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction675;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction675(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction675;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction675_parser___ReduceAction675___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27722;
+  fra.me.meth = LOCATE_NEW_ReduceAction675_parser___ReduceAction675___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction675();
+  /* ./parser//parser.nit:27722 */
+  INIT_ATTRIBUTES__ReduceAction675(fra.me.REG[0]);
+  parser___ReduceAction675___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction675(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction676[50] = {
+  {(bigint) 1711 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction676 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction676 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1711 /* 4: ReduceAction676 < ReduceAction676: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction676 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction676 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction676___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction676 < ReduceAction676: superclass init_table position */},
+  {(bigint) parser___ReduceAction676___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction676(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction676;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction676(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction676;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction676(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction676;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction676_parser___ReduceAction676___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27738;
+  fra.me.meth = LOCATE_NEW_ReduceAction676_parser___ReduceAction676___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction676();
+  /* ./parser//parser.nit:27738 */
+  INIT_ATTRIBUTES__ReduceAction676(fra.me.REG[0]);
+  parser___ReduceAction676___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction676(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction677[50] = {
+  {(bigint) 1707 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction677 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction677 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1707 /* 4: ReduceAction677 < ReduceAction677: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction677 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction677 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction677___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction677 < ReduceAction677: superclass init_table position */},
+  {(bigint) parser___ReduceAction677___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction677(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction677;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction677(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction677;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction677(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction677;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction677_parser___ReduceAction677___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27751;
+  fra.me.meth = LOCATE_NEW_ReduceAction677_parser___ReduceAction677___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction677();
+  /* ./parser//parser.nit:27751 */
+  INIT_ATTRIBUTES__ReduceAction677(fra.me.REG[0]);
+  parser___ReduceAction677___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction677(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction678[50] = {
+  {(bigint) 1703 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction678 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction678 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1703 /* 4: ReduceAction678 < ReduceAction678: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction678 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction678 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction678___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction678 < ReduceAction678: superclass init_table position */},
+  {(bigint) parser___ReduceAction678___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction678(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction678;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction678(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction678;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction678(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction678;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction678_parser___ReduceAction678___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27766;
+  fra.me.meth = LOCATE_NEW_ReduceAction678_parser___ReduceAction678___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction678();
+  /* ./parser//parser.nit:27766 */
+  INIT_ATTRIBUTES__ReduceAction678(fra.me.REG[0]);
+  parser___ReduceAction678___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction678(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction679[50] = {
+  {(bigint) 1699 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction679 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction679 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1699 /* 4: ReduceAction679 < ReduceAction679: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction679 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction679 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction679___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction679 < ReduceAction679: superclass init_table position */},
+  {(bigint) parser___ReduceAction679___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction679(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction679;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction679(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction679;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction679(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction679;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction679_parser___ReduceAction679___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27797;
+  fra.me.meth = LOCATE_NEW_ReduceAction679_parser___ReduceAction679___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction679();
+  /* ./parser//parser.nit:27797 */
+  INIT_ATTRIBUTES__ReduceAction679(fra.me.REG[0]);
+  parser___ReduceAction679___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction679(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction680[50] = {
+  {(bigint) 1691 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction680 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction680 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1691 /* 4: ReduceAction680 < ReduceAction680: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction680 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction680 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction680___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction680 < ReduceAction680: superclass init_table position */},
+  {(bigint) parser___ReduceAction680___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction680(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction680;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction680(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction680;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction680(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction680;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction680_parser___ReduceAction680___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27833;
+  fra.me.meth = LOCATE_NEW_ReduceAction680_parser___ReduceAction680___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction680();
+  /* ./parser//parser.nit:27833 */
+  INIT_ATTRIBUTES__ReduceAction680(fra.me.REG[0]);
+  parser___ReduceAction680___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction680(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction681[50] = {
+  {(bigint) 1687 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction681 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction681 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1687 /* 4: ReduceAction681 < ReduceAction681: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction681 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction681 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction681___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction681 < ReduceAction681: superclass init_table position */},
+  {(bigint) parser___ReduceAction681___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction681(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction681;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction681(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction681;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction681(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction681;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction681_parser___ReduceAction681___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27863;
+  fra.me.meth = LOCATE_NEW_ReduceAction681_parser___ReduceAction681___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction681();
+  /* ./parser//parser.nit:27863 */
+  INIT_ATTRIBUTES__ReduceAction681(fra.me.REG[0]);
+  parser___ReduceAction681___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction681(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction682[50] = {
+  {(bigint) 1683 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction682 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction682 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1683 /* 4: ReduceAction682 < ReduceAction682: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction682 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction682 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction682___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction682 < ReduceAction682: superclass init_table position */},
+  {(bigint) parser___ReduceAction682___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction682(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction682;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction682(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction682;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction682(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction682;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction682_parser___ReduceAction682___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27903;
+  fra.me.meth = LOCATE_NEW_ReduceAction682_parser___ReduceAction682___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction682();
+  /* ./parser//parser.nit:27903 */
+  INIT_ATTRIBUTES__ReduceAction682(fra.me.REG[0]);
+  parser___ReduceAction682___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction682(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction683[50] = {
+  {(bigint) 1679 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction683 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction683 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1679 /* 4: ReduceAction683 < ReduceAction683: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction683 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction683 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction683___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction683 < ReduceAction683: superclass init_table position */},
+  {(bigint) parser___ReduceAction683___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction683(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction683;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction683(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction683;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction683(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction683;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction683_parser___ReduceAction683___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27928;
+  fra.me.meth = LOCATE_NEW_ReduceAction683_parser___ReduceAction683___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction683();
+  /* ./parser//parser.nit:27928 */
+  INIT_ATTRIBUTES__ReduceAction683(fra.me.REG[0]);
+  parser___ReduceAction683___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction683(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction684[50] = {
+  {(bigint) 1675 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction684 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction684 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1675 /* 4: ReduceAction684 < ReduceAction684: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction684 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction684 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction684___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction684 < ReduceAction684: superclass init_table position */},
+  {(bigint) parser___ReduceAction684___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction684(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction684;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction684(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction684;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction684(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction684;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction684_parser___ReduceAction684___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27944;
+  fra.me.meth = LOCATE_NEW_ReduceAction684_parser___ReduceAction684___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction684();
+  /* ./parser//parser.nit:27944 */
+  INIT_ATTRIBUTES__ReduceAction684(fra.me.REG[0]);
+  parser___ReduceAction684___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction684(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction685[50] = {
+  {(bigint) 1671 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction685 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction685 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1671 /* 4: ReduceAction685 < ReduceAction685: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction685 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction685 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction685___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction685 < ReduceAction685: superclass init_table position */},
+  {(bigint) parser___ReduceAction685___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction685(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction685;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction685(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction685;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction685(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction685;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction685_parser___ReduceAction685___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27969;
+  fra.me.meth = LOCATE_NEW_ReduceAction685_parser___ReduceAction685___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction685();
+  /* ./parser//parser.nit:27969 */
+  INIT_ATTRIBUTES__ReduceAction685(fra.me.REG[0]);
+  parser___ReduceAction685___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction685(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction686[50] = {
+  {(bigint) 1667 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction686 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction686 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1667 /* 4: ReduceAction686 < ReduceAction686: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction686 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction686 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction686___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction686 < ReduceAction686: superclass init_table position */},
+  {(bigint) parser___ReduceAction686___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction686(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction686;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction686(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction686;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction686(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction686;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction686_parser___ReduceAction686___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27985;
+  fra.me.meth = LOCATE_NEW_ReduceAction686_parser___ReduceAction686___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction686();
+  /* ./parser//parser.nit:27985 */
+  INIT_ATTRIBUTES__ReduceAction686(fra.me.REG[0]);
+  parser___ReduceAction686___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction686(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction687[50] = {
+  {(bigint) 1663 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction687 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction687 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1663 /* 4: ReduceAction687 < ReduceAction687: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction687 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction687 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction687___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction687 < ReduceAction687: superclass init_table position */},
+  {(bigint) parser___ReduceAction687___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction687(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction687;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction687(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction687;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction687(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction687;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction687_parser___ReduceAction687___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28001;
+  fra.me.meth = LOCATE_NEW_ReduceAction687_parser___ReduceAction687___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction687();
+  /* ./parser//parser.nit:28001 */
+  INIT_ATTRIBUTES__ReduceAction687(fra.me.REG[0]);
+  parser___ReduceAction687___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction687(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction688[50] = {
+  {(bigint) 1659 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction688 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction688 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1659 /* 4: ReduceAction688 < ReduceAction688: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction688 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction688 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction688___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction688 < ReduceAction688: superclass init_table position */},
+  {(bigint) parser___ReduceAction688___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction688(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction688;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction688(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction688;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction688(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction688;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction688_parser___ReduceAction688___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28022;
+  fra.me.meth = LOCATE_NEW_ReduceAction688_parser___ReduceAction688___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction688();
+  /* ./parser//parser.nit:28022 */
+  INIT_ATTRIBUTES__ReduceAction688(fra.me.REG[0]);
+  parser___ReduceAction688___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction688(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction689[50] = {
+  {(bigint) 1655 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction689 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction689 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1655 /* 4: ReduceAction689 < ReduceAction689: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction689 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction689 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction689___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction689 < ReduceAction689: superclass init_table position */},
+  {(bigint) parser___ReduceAction689___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction689(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction689;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction689(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction689;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction689(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction689;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction689_parser___ReduceAction689___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28053;
+  fra.me.meth = LOCATE_NEW_ReduceAction689_parser___ReduceAction689___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction689();
+  /* ./parser//parser.nit:28053 */
+  INIT_ATTRIBUTES__ReduceAction689(fra.me.REG[0]);
+  parser___ReduceAction689___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction689(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction690[50] = {
+  {(bigint) 1647 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction690 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction690 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1647 /* 4: ReduceAction690 < ReduceAction690: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction690 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction690 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction690___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction690 < ReduceAction690: superclass init_table position */},
+  {(bigint) parser___ReduceAction690___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction690(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction690;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction690(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction690;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction690(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction690;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction690_parser___ReduceAction690___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28067;
+  fra.me.meth = LOCATE_NEW_ReduceAction690_parser___ReduceAction690___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction690();
+  /* ./parser//parser.nit:28067 */
+  INIT_ATTRIBUTES__ReduceAction690(fra.me.REG[0]);
+  parser___ReduceAction690___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction690(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction691[50] = {
+  {(bigint) 1643 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction691 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction691 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1643 /* 4: ReduceAction691 < ReduceAction691: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction691 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction691 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction691___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction691 < ReduceAction691: superclass init_table position */},
+  {(bigint) parser___ReduceAction691___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction691(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction691;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction691(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction691;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction691(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction691;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction691_parser___ReduceAction691___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28078;
+  fra.me.meth = LOCATE_NEW_ReduceAction691_parser___ReduceAction691___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction691();
+  /* ./parser//parser.nit:28078 */
+  INIT_ATTRIBUTES__ReduceAction691(fra.me.REG[0]);
+  parser___ReduceAction691___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction691(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction692[50] = {
+  {(bigint) 1639 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction692 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction692 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1639 /* 4: ReduceAction692 < ReduceAction692: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction692 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction692 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction692___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction692 < ReduceAction692: superclass init_table position */},
+  {(bigint) parser___ReduceAction692___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction692(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction692;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction692(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction692;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction692(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction692;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction692_parser___ReduceAction692___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28099;
+  fra.me.meth = LOCATE_NEW_ReduceAction692_parser___ReduceAction692___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction692();
+  /* ./parser//parser.nit:28099 */
+  INIT_ATTRIBUTES__ReduceAction692(fra.me.REG[0]);
+  parser___ReduceAction692___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction692(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction693[50] = {
+  {(bigint) 1635 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction693 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction693 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1635 /* 4: ReduceAction693 < ReduceAction693: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction693 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction693 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction693___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction693 < ReduceAction693: superclass init_table position */},
+  {(bigint) parser___ReduceAction693___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction693(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction693;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction693(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction693;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction693(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction693;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction693_parser___ReduceAction693___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28130;
+  fra.me.meth = LOCATE_NEW_ReduceAction693_parser___ReduceAction693___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction693();
+  /* ./parser//parser.nit:28130 */
+  INIT_ATTRIBUTES__ReduceAction693(fra.me.REG[0]);
+  parser___ReduceAction693___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction693(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction694[50] = {
+  {(bigint) 1631 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction694 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction694 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1631 /* 4: ReduceAction694 < ReduceAction694: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction694 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction694 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction694___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction694 < ReduceAction694: superclass init_table position */},
+  {(bigint) parser___ReduceAction694___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction694(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction694;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction694(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction694;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction694(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction694;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction694_parser___ReduceAction694___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28147;
+  fra.me.meth = LOCATE_NEW_ReduceAction694_parser___ReduceAction694___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction694();
+  /* ./parser//parser.nit:28147 */
+  INIT_ATTRIBUTES__ReduceAction694(fra.me.REG[0]);
+  parser___ReduceAction694___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction694(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction695[50] = {
+  {(bigint) 1627 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction695 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction695 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1627 /* 4: ReduceAction695 < ReduceAction695: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction695 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction695 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction695___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction695 < ReduceAction695: superclass init_table position */},
+  {(bigint) parser___ReduceAction695___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction695(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction695;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction695(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction695;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction695(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction695;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction695_parser___ReduceAction695___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28161;
+  fra.me.meth = LOCATE_NEW_ReduceAction695_parser___ReduceAction695___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction695();
+  /* ./parser//parser.nit:28161 */
+  INIT_ATTRIBUTES__ReduceAction695(fra.me.REG[0]);
+  parser___ReduceAction695___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction695(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction696[50] = {
+  {(bigint) 1623 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction696 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction696 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1623 /* 4: ReduceAction696 < ReduceAction696: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction696 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction696 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction696___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction696 < ReduceAction696: superclass init_table position */},
+  {(bigint) parser___ReduceAction696___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction696(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction696;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction696(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction696;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction696(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction696;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction696_parser___ReduceAction696___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28172;
+  fra.me.meth = LOCATE_NEW_ReduceAction696_parser___ReduceAction696___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction696();
+  /* ./parser//parser.nit:28172 */
+  INIT_ATTRIBUTES__ReduceAction696(fra.me.REG[0]);
+  parser___ReduceAction696___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction696(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction697[50] = {
+  {(bigint) 1619 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction697 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction697 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1619 /* 4: ReduceAction697 < ReduceAction697: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction697 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction697 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction697___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction697 < ReduceAction697: superclass init_table position */},
+  {(bigint) parser___ReduceAction697___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction697(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction697;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction697(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction697;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction697(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction697;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction697_parser___ReduceAction697___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28193;
+  fra.me.meth = LOCATE_NEW_ReduceAction697_parser___ReduceAction697___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction697();
+  /* ./parser//parser.nit:28193 */
+  INIT_ATTRIBUTES__ReduceAction697(fra.me.REG[0]);
+  parser___ReduceAction697___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction697(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction698[50] = {
+  {(bigint) 1615 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction698 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction698 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1615 /* 4: ReduceAction698 < ReduceAction698: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction698 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction698 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction698___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction698 < ReduceAction698: superclass init_table position */},
+  {(bigint) parser___ReduceAction698___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction698(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction698;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction698(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction698;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction698(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction698;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction698_parser___ReduceAction698___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28224;
+  fra.me.meth = LOCATE_NEW_ReduceAction698_parser___ReduceAction698___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction698();
+  /* ./parser//parser.nit:28224 */
+  INIT_ATTRIBUTES__ReduceAction698(fra.me.REG[0]);
+  parser___ReduceAction698___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction698(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction699[50] = {
+  {(bigint) 1611 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction699 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction699 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1611 /* 4: ReduceAction699 < ReduceAction699: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction699 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction699 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction699___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction699 < ReduceAction699: superclass init_table position */},
+  {(bigint) parser___ReduceAction699___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction699(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction699;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction699(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction699;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction699(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction699;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction699_parser___ReduceAction699___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28240;
+  fra.me.meth = LOCATE_NEW_ReduceAction699_parser___ReduceAction699___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction699();
+  /* ./parser//parser.nit:28240 */
+  INIT_ATTRIBUTES__ReduceAction699(fra.me.REG[0]);
+  parser___ReduceAction699___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction699(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction700[50] = {
+  {(bigint) 1599 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction700 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction700 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1599 /* 4: ReduceAction700 < ReduceAction700: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction700 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction700 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction700___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction700 < ReduceAction700: superclass init_table position */},
+  {(bigint) parser___ReduceAction700___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction700(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction700;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction700(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction700;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction700(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction700;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction700_parser___ReduceAction700___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28263;
+  fra.me.meth = LOCATE_NEW_ReduceAction700_parser___ReduceAction700___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction700();
+  /* ./parser//parser.nit:28263 */
+  INIT_ATTRIBUTES__ReduceAction700(fra.me.REG[0]);
+  parser___ReduceAction700___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction700(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction701[50] = {
+  {(bigint) 1595 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction701 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction701 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1595 /* 4: ReduceAction701 < ReduceAction701: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction701 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction701 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction701___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction701 < ReduceAction701: superclass init_table position */},
+  {(bigint) parser___ReduceAction701___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction701(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction701;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction701(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction701;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction701(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction701;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction701_parser___ReduceAction701___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28284;
+  fra.me.meth = LOCATE_NEW_ReduceAction701_parser___ReduceAction701___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction701();
+  /* ./parser//parser.nit:28284 */
+  INIT_ATTRIBUTES__ReduceAction701(fra.me.REG[0]);
+  parser___ReduceAction701___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction701(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction702[50] = {
+  {(bigint) 1591 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction702 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction702 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1591 /* 4: ReduceAction702 < ReduceAction702: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction702 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction702 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction702___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction702 < ReduceAction702: superclass init_table position */},
+  {(bigint) parser___ReduceAction702___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction702(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction702;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction702(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction702;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction702(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction702;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction702_parser___ReduceAction702___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28301;
+  fra.me.meth = LOCATE_NEW_ReduceAction702_parser___ReduceAction702___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction702();
+  /* ./parser//parser.nit:28301 */
+  INIT_ATTRIBUTES__ReduceAction702(fra.me.REG[0]);
+  parser___ReduceAction702___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction702(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction703[50] = {
+  {(bigint) 1587 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction703 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction703 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1587 /* 4: ReduceAction703 < ReduceAction703: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction703 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction703 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction703___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction703 < ReduceAction703: superclass init_table position */},
+  {(bigint) parser___ReduceAction703___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction703(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction703;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction703(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction703;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction703(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction703;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction703_parser___ReduceAction703___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28331;
+  fra.me.meth = LOCATE_NEW_ReduceAction703_parser___ReduceAction703___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction703();
+  /* ./parser//parser.nit:28331 */
+  INIT_ATTRIBUTES__ReduceAction703(fra.me.REG[0]);
+  parser___ReduceAction703___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction703(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction704[50] = {
+  {(bigint) 1583 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction704 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction704 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1583 /* 4: ReduceAction704 < ReduceAction704: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction704 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction704 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction704___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction704 < ReduceAction704: superclass init_table position */},
+  {(bigint) parser___ReduceAction704___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction704(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction704;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction704(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction704;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction704(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction704;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction704_parser___ReduceAction704___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28349;
+  fra.me.meth = LOCATE_NEW_ReduceAction704_parser___ReduceAction704___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction704();
+  /* ./parser//parser.nit:28349 */
+  INIT_ATTRIBUTES__ReduceAction704(fra.me.REG[0]);
+  parser___ReduceAction704___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction704(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction705[50] = {
+  {(bigint) 1579 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction705 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction705 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1579 /* 4: ReduceAction705 < ReduceAction705: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction705 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction705 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction705___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction705 < ReduceAction705: superclass init_table position */},
+  {(bigint) parser___ReduceAction705___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction705(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction705;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction705(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction705;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction705(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction705;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction705_parser___ReduceAction705___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28377;
+  fra.me.meth = LOCATE_NEW_ReduceAction705_parser___ReduceAction705___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction705();
+  /* ./parser//parser.nit:28377 */
+  INIT_ATTRIBUTES__ReduceAction705(fra.me.REG[0]);
+  parser___ReduceAction705___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction705(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction706[50] = {
+  {(bigint) 1575 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction706 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction706 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1575 /* 4: ReduceAction706 < ReduceAction706: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction706 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction706 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction706___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction706 < ReduceAction706: superclass init_table position */},
+  {(bigint) parser___ReduceAction706___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction706(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction706;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction706(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction706;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction706(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction706;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction706_parser___ReduceAction706___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28402;
+  fra.me.meth = LOCATE_NEW_ReduceAction706_parser___ReduceAction706___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction706();
+  /* ./parser//parser.nit:28402 */
+  INIT_ATTRIBUTES__ReduceAction706(fra.me.REG[0]);
+  parser___ReduceAction706___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction706(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction707[50] = {
+  {(bigint) 1571 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction707 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction707 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1571 /* 4: ReduceAction707 < ReduceAction707: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction707 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction707 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction707___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction707 < ReduceAction707: superclass init_table position */},
+  {(bigint) parser___ReduceAction707___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction707(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction707;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction707(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction707;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction707(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction707;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction707_parser___ReduceAction707___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28417;
+  fra.me.meth = LOCATE_NEW_ReduceAction707_parser___ReduceAction707___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction707();
+  /* ./parser//parser.nit:28417 */
+  INIT_ATTRIBUTES__ReduceAction707(fra.me.REG[0]);
+  parser___ReduceAction707___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction707(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction708[50] = {
+  {(bigint) 1567 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction708 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction708 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1567 /* 4: ReduceAction708 < ReduceAction708: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction708 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction708 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction708___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction708 < ReduceAction708: superclass init_table position */},
+  {(bigint) parser___ReduceAction708___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction708(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction708;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction708(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction708;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction708(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction708;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction708_parser___ReduceAction708___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28432;
+  fra.me.meth = LOCATE_NEW_ReduceAction708_parser___ReduceAction708___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction708();
+  /* ./parser//parser.nit:28432 */
+  INIT_ATTRIBUTES__ReduceAction708(fra.me.REG[0]);
+  parser___ReduceAction708___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction708(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction709[50] = {
+  {(bigint) 1563 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction709 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction709 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1563 /* 4: ReduceAction709 < ReduceAction709: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction709 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction709 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction709___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction709 < ReduceAction709: superclass init_table position */},
+  {(bigint) parser___ReduceAction709___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction709(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction709;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction709(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction709;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction709(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction709;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction709_parser___ReduceAction709___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28442;
+  fra.me.meth = LOCATE_NEW_ReduceAction709_parser___ReduceAction709___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction709();
+  /* ./parser//parser.nit:28442 */
+  INIT_ATTRIBUTES__ReduceAction709(fra.me.REG[0]);
+  parser___ReduceAction709___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction709(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction710[50] = {
+  {(bigint) 1555 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction710 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction710 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1555 /* 4: ReduceAction710 < ReduceAction710: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction710 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction710 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction710___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction710 < ReduceAction710: superclass init_table position */},
+  {(bigint) parser___ReduceAction710___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction710(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction710;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction710(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction710;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction710(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction710;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction710_parser___ReduceAction710___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28452;
+  fra.me.meth = LOCATE_NEW_ReduceAction710_parser___ReduceAction710___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction710();
+  /* ./parser//parser.nit:28452 */
+  INIT_ATTRIBUTES__ReduceAction710(fra.me.REG[0]);
+  parser___ReduceAction710___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction710(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction711[50] = {
+  {(bigint) 1551 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction711 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction711 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1551 /* 4: ReduceAction711 < ReduceAction711: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction711 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction711 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction711___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction711 < ReduceAction711: superclass init_table position */},
+  {(bigint) parser___ReduceAction711___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction711(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction711;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction711(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction711;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction711(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction711;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction711_parser___ReduceAction711___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28476;
+  fra.me.meth = LOCATE_NEW_ReduceAction711_parser___ReduceAction711___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction711();
+  /* ./parser//parser.nit:28476 */
+  INIT_ATTRIBUTES__ReduceAction711(fra.me.REG[0]);
+  parser___ReduceAction711___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction711(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction712[50] = {
+  {(bigint) 1547 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction712 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction712 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1547 /* 4: ReduceAction712 < ReduceAction712: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction712 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction712 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction712___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction712 < ReduceAction712: superclass init_table position */},
+  {(bigint) parser___ReduceAction712___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction712(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction712;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction712(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction712;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction712(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction712;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction712_parser___ReduceAction712___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28501;
+  fra.me.meth = LOCATE_NEW_ReduceAction712_parser___ReduceAction712___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction712();
+  /* ./parser//parser.nit:28501 */
+  INIT_ATTRIBUTES__ReduceAction712(fra.me.REG[0]);
+  parser___ReduceAction712___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction712(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction713[50] = {
+  {(bigint) 1543 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction713 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction713 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1543 /* 4: ReduceAction713 < ReduceAction713: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction713 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction713 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction713___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction713 < ReduceAction713: superclass init_table position */},
+  {(bigint) parser___ReduceAction713___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction713(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction713;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction713(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction713;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction713(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction713;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction713_parser___ReduceAction713___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28512;
+  fra.me.meth = LOCATE_NEW_ReduceAction713_parser___ReduceAction713___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction713();
+  /* ./parser//parser.nit:28512 */
+  INIT_ATTRIBUTES__ReduceAction713(fra.me.REG[0]);
+  parser___ReduceAction713___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction713(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction714[50] = {
+  {(bigint) 1539 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction714 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction714 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1539 /* 4: ReduceAction714 < ReduceAction714: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction714 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction714 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction714___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction714 < ReduceAction714: superclass init_table position */},
+  {(bigint) parser___ReduceAction714___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction714(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction714;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction714(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction714;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction714(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction714;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction714_parser___ReduceAction714___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28522;
+  fra.me.meth = LOCATE_NEW_ReduceAction714_parser___ReduceAction714___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction714();
+  /* ./parser//parser.nit:28522 */
+  INIT_ATTRIBUTES__ReduceAction714(fra.me.REG[0]);
+  parser___ReduceAction714___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction714(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction715[50] = {
+  {(bigint) 1535 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction715 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction715 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1535 /* 4: ReduceAction715 < ReduceAction715: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction715 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction715 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction715___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction715 < ReduceAction715: superclass init_table position */},
+  {(bigint) parser___ReduceAction715___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction715(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction715;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction715(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction715;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction715(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction715;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction715_parser___ReduceAction715___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28535;
+  fra.me.meth = LOCATE_NEW_ReduceAction715_parser___ReduceAction715___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction715();
+  /* ./parser//parser.nit:28535 */
+  INIT_ATTRIBUTES__ReduceAction715(fra.me.REG[0]);
+  parser___ReduceAction715___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction715(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction716[50] = {
+  {(bigint) 1531 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction716 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction716 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1531 /* 4: ReduceAction716 < ReduceAction716: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction716 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction716 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction716___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction716 < ReduceAction716: superclass init_table position */},
+  {(bigint) parser___ReduceAction716___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction716(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction716;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction716(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction716;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction716(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction716;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction716_parser___ReduceAction716___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28546;
+  fra.me.meth = LOCATE_NEW_ReduceAction716_parser___ReduceAction716___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction716();
+  /* ./parser//parser.nit:28546 */
+  INIT_ATTRIBUTES__ReduceAction716(fra.me.REG[0]);
+  parser___ReduceAction716___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction716(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction717[50] = {
+  {(bigint) 1527 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction717 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction717 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1527 /* 4: ReduceAction717 < ReduceAction717: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction717 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction717 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction717___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction717 < ReduceAction717: superclass init_table position */},
+  {(bigint) parser___ReduceAction717___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction717(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction717;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction717(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction717;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction717(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction717;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction717_parser___ReduceAction717___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28558;
+  fra.me.meth = LOCATE_NEW_ReduceAction717_parser___ReduceAction717___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction717();
+  /* ./parser//parser.nit:28558 */
+  INIT_ATTRIBUTES__ReduceAction717(fra.me.REG[0]);
+  parser___ReduceAction717___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction717(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction718[50] = {
+  {(bigint) 1523 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction718 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction718 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1523 /* 4: ReduceAction718 < ReduceAction718: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction718 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction718 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction718___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction718 < ReduceAction718: superclass init_table position */},
+  {(bigint) parser___ReduceAction718___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction718(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction718;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction718(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction718;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction718(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction718;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction718_parser___ReduceAction718___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28568;
+  fra.me.meth = LOCATE_NEW_ReduceAction718_parser___ReduceAction718___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction718();
+  /* ./parser//parser.nit:28568 */
+  INIT_ATTRIBUTES__ReduceAction718(fra.me.REG[0]);
+  parser___ReduceAction718___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction718(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction719[50] = {
+  {(bigint) 1519 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction719 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction719 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1519 /* 4: ReduceAction719 < ReduceAction719: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction719 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction719 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction719___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction719 < ReduceAction719: superclass init_table position */},
+  {(bigint) parser___ReduceAction719___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction719(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction719;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction719(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction719;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction719(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction719;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction719_parser___ReduceAction719___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28582;
+  fra.me.meth = LOCATE_NEW_ReduceAction719_parser___ReduceAction719___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction719();
+  /* ./parser//parser.nit:28582 */
+  INIT_ATTRIBUTES__ReduceAction719(fra.me.REG[0]);
+  parser___ReduceAction719___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction719(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction720[50] = {
+  {(bigint) 1511 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction720 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction720 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1511 /* 4: ReduceAction720 < ReduceAction720: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction720 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction720 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction720___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction720 < ReduceAction720: superclass init_table position */},
+  {(bigint) parser___ReduceAction720___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction720(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction720;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction720(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction720;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction720(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction720;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction720_parser___ReduceAction720___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28623;
+  fra.me.meth = LOCATE_NEW_ReduceAction720_parser___ReduceAction720___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction720();
+  /* ./parser//parser.nit:28623 */
+  INIT_ATTRIBUTES__ReduceAction720(fra.me.REG[0]);
+  parser___ReduceAction720___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction720(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction721[50] = {
+  {(bigint) 1507 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction721 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction721 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1507 /* 4: ReduceAction721 < ReduceAction721: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction721 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction721 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction721___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction721 < ReduceAction721: superclass init_table position */},
+  {(bigint) parser___ReduceAction721___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction721(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction721;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction721(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction721;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction721(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction721;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction721_parser___ReduceAction721___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28664;
+  fra.me.meth = LOCATE_NEW_ReduceAction721_parser___ReduceAction721___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction721();
+  /* ./parser//parser.nit:28664 */
+  INIT_ATTRIBUTES__ReduceAction721(fra.me.REG[0]);
+  parser___ReduceAction721___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction721(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction722[50] = {
+  {(bigint) 1503 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction722 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction722 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1503 /* 4: ReduceAction722 < ReduceAction722: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction722 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction722 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction722___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction722 < ReduceAction722: superclass init_table position */},
+  {(bigint) parser___ReduceAction722___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction722(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction722;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction722(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction722;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction722(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction722;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction722_parser___ReduceAction722___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28705;
+  fra.me.meth = LOCATE_NEW_ReduceAction722_parser___ReduceAction722___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction722();
+  /* ./parser//parser.nit:28705 */
+  INIT_ATTRIBUTES__ReduceAction722(fra.me.REG[0]);
+  parser___ReduceAction722___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction722(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction723[50] = {
+  {(bigint) 1499 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction723 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction723 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1499 /* 4: ReduceAction723 < ReduceAction723: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction723 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction723 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction723___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction723 < ReduceAction723: superclass init_table position */},
+  {(bigint) parser___ReduceAction723___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction723(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction723;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction723(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction723;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction723(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction723;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction723_parser___ReduceAction723___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28746;
+  fra.me.meth = LOCATE_NEW_ReduceAction723_parser___ReduceAction723___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction723();
+  /* ./parser//parser.nit:28746 */
+  INIT_ATTRIBUTES__ReduceAction723(fra.me.REG[0]);
+  parser___ReduceAction723___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction723(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction724[50] = {
+  {(bigint) 1495 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction724 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction724 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1495 /* 4: ReduceAction724 < ReduceAction724: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction724 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction724 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction724___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction724 < ReduceAction724: superclass init_table position */},
+  {(bigint) parser___ReduceAction724___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction724(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction724;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction724(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction724;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction724(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction724;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction724_parser___ReduceAction724___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28787;
+  fra.me.meth = LOCATE_NEW_ReduceAction724_parser___ReduceAction724___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction724();
+  /* ./parser//parser.nit:28787 */
+  INIT_ATTRIBUTES__ReduceAction724(fra.me.REG[0]);
+  parser___ReduceAction724___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction724(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction725[50] = {
+  {(bigint) 1491 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction725 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction725 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1491 /* 4: ReduceAction725 < ReduceAction725: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction725 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction725 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction725___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction725 < ReduceAction725: superclass init_table position */},
+  {(bigint) parser___ReduceAction725___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction725(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction725;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction725(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction725;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction725(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction725;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction725_parser___ReduceAction725___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28828;
+  fra.me.meth = LOCATE_NEW_ReduceAction725_parser___ReduceAction725___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction725();
+  /* ./parser//parser.nit:28828 */
+  INIT_ATTRIBUTES__ReduceAction725(fra.me.REG[0]);
+  parser___ReduceAction725___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction725(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction726[50] = {
+  {(bigint) 1487 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction726 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction726 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1487 /* 4: ReduceAction726 < ReduceAction726: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction726 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction726 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction726___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction726 < ReduceAction726: superclass init_table position */},
+  {(bigint) parser___ReduceAction726___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction726(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction726;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction726(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction726;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction726(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction726;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction726_parser___ReduceAction726___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28869;
+  fra.me.meth = LOCATE_NEW_ReduceAction726_parser___ReduceAction726___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction726();
+  /* ./parser//parser.nit:28869 */
+  INIT_ATTRIBUTES__ReduceAction726(fra.me.REG[0]);
+  parser___ReduceAction726___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction726(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction727[50] = {
+  {(bigint) 1483 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction727 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction727 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1483 /* 4: ReduceAction727 < ReduceAction727: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction727 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction727 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction727___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction727 < ReduceAction727: superclass init_table position */},
+  {(bigint) parser___ReduceAction727___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction727(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction727;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction727(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction727;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction727(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction727;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction727_parser___ReduceAction727___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28910;
+  fra.me.meth = LOCATE_NEW_ReduceAction727_parser___ReduceAction727___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction727();
+  /* ./parser//parser.nit:28910 */
+  INIT_ATTRIBUTES__ReduceAction727(fra.me.REG[0]);
+  parser___ReduceAction727___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction727(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction728[50] = {
+  {(bigint) 1479 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction728 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction728 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1479 /* 4: ReduceAction728 < ReduceAction728: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction728 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction728 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction728___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction728 < ReduceAction728: superclass init_table position */},
+  {(bigint) parser___ReduceAction728___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction728(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction728;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction728(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction728;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction728(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction728;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction728_parser___ReduceAction728___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28951;
+  fra.me.meth = LOCATE_NEW_ReduceAction728_parser___ReduceAction728___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction728();
+  /* ./parser//parser.nit:28951 */
+  INIT_ATTRIBUTES__ReduceAction728(fra.me.REG[0]);
+  parser___ReduceAction728___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction728(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction729[50] = {
+  {(bigint) 1475 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction729 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction729 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1475 /* 4: ReduceAction729 < ReduceAction729: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction729 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction729 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction729___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction729 < ReduceAction729: superclass init_table position */},
+  {(bigint) parser___ReduceAction729___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction729(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction729;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction729(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction729;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction729(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction729;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction729_parser___ReduceAction729___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 28992;
+  fra.me.meth = LOCATE_NEW_ReduceAction729_parser___ReduceAction729___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction729();
+  /* ./parser//parser.nit:28992 */
+  INIT_ATTRIBUTES__ReduceAction729(fra.me.REG[0]);
+  parser___ReduceAction729___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction729(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction730[50] = {
+  {(bigint) 1467 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction730 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction730 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1467 /* 4: ReduceAction730 < ReduceAction730: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction730 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction730 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction730___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction730 < ReduceAction730: superclass init_table position */},
+  {(bigint) parser___ReduceAction730___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction730(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction730;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction730(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction730;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction730(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction730;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction730_parser___ReduceAction730___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29033;
+  fra.me.meth = LOCATE_NEW_ReduceAction730_parser___ReduceAction730___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction730();
+  /* ./parser//parser.nit:29033 */
+  INIT_ATTRIBUTES__ReduceAction730(fra.me.REG[0]);
+  parser___ReduceAction730___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction730(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction731[50] = {
+  {(bigint) 1463 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction731 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction731 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1463 /* 4: ReduceAction731 < ReduceAction731: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction731 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction731 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction731___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction731 < ReduceAction731: superclass init_table position */},
+  {(bigint) parser___ReduceAction731___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction731(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction731;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction731(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction731;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction731(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction731;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction731_parser___ReduceAction731___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29074;
+  fra.me.meth = LOCATE_NEW_ReduceAction731_parser___ReduceAction731___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction731();
+  /* ./parser//parser.nit:29074 */
+  INIT_ATTRIBUTES__ReduceAction731(fra.me.REG[0]);
+  parser___ReduceAction731___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction731(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction732[50] = {
+  {(bigint) 1459 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction732 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction732 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1459 /* 4: ReduceAction732 < ReduceAction732: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction732 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction732 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction732___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction732 < ReduceAction732: superclass init_table position */},
+  {(bigint) parser___ReduceAction732___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction732(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction732;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction732(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction732;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction732(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction732;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction732_parser___ReduceAction732___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29119;
+  fra.me.meth = LOCATE_NEW_ReduceAction732_parser___ReduceAction732___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction732();
+  /* ./parser//parser.nit:29119 */
+  INIT_ATTRIBUTES__ReduceAction732(fra.me.REG[0]);
+  parser___ReduceAction732___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction732(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction733[50] = {
+  {(bigint) 1455 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction733 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction733 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1455 /* 4: ReduceAction733 < ReduceAction733: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction733 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction733 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction733___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction733 < ReduceAction733: superclass init_table position */},
+  {(bigint) parser___ReduceAction733___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction733(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction733;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction733(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction733;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction733(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction733;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction733_parser___ReduceAction733___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29160;
+  fra.me.meth = LOCATE_NEW_ReduceAction733_parser___ReduceAction733___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction733();
+  /* ./parser//parser.nit:29160 */
+  INIT_ATTRIBUTES__ReduceAction733(fra.me.REG[0]);
+  parser___ReduceAction733___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction733(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction734[50] = {
+  {(bigint) 1451 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction734 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction734 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1451 /* 4: ReduceAction734 < ReduceAction734: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction734 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction734 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction734___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction734 < ReduceAction734: superclass init_table position */},
+  {(bigint) parser___ReduceAction734___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction734(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction734;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction734(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction734;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction734(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction734;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction734_parser___ReduceAction734___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29205;
+  fra.me.meth = LOCATE_NEW_ReduceAction734_parser___ReduceAction734___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction734();
+  /* ./parser//parser.nit:29205 */
+  INIT_ATTRIBUTES__ReduceAction734(fra.me.REG[0]);
+  parser___ReduceAction734___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction734(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction735[50] = {
+  {(bigint) 1447 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction735 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction735 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1447 /* 4: ReduceAction735 < ReduceAction735: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction735 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction735 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction735___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction735 < ReduceAction735: superclass init_table position */},
+  {(bigint) parser___ReduceAction735___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction735(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction735;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction735(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction735;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction735(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction735;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction735_parser___ReduceAction735___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29254;
+  fra.me.meth = LOCATE_NEW_ReduceAction735_parser___ReduceAction735___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction735();
+  /* ./parser//parser.nit:29254 */
+  INIT_ATTRIBUTES__ReduceAction735(fra.me.REG[0]);
+  parser___ReduceAction735___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction735(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction736[50] = {
+  {(bigint) 1443 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction736 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction736 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1443 /* 4: ReduceAction736 < ReduceAction736: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction736 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction736 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction736___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction736 < ReduceAction736: superclass init_table position */},
+  {(bigint) parser___ReduceAction736___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction736(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction736;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction736(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction736;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction736(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction736;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction736_parser___ReduceAction736___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29298;
+  fra.me.meth = LOCATE_NEW_ReduceAction736_parser___ReduceAction736___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction736();
+  /* ./parser//parser.nit:29298 */
+  INIT_ATTRIBUTES__ReduceAction736(fra.me.REG[0]);
+  parser___ReduceAction736___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction736(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction737[50] = {
+  {(bigint) 1439 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction737 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction737 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1439 /* 4: ReduceAction737 < ReduceAction737: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction737 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction737 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction737___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction737 < ReduceAction737: superclass init_table position */},
+  {(bigint) parser___ReduceAction737___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction737(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction737;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction737(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction737;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction737(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction737;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction737_parser___ReduceAction737___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29342;
+  fra.me.meth = LOCATE_NEW_ReduceAction737_parser___ReduceAction737___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction737();
+  /* ./parser//parser.nit:29342 */
+  INIT_ATTRIBUTES__ReduceAction737(fra.me.REG[0]);
+  parser___ReduceAction737___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction737(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction738[50] = {
+  {(bigint) 1435 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction738 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction738 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1435 /* 4: ReduceAction738 < ReduceAction738: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction738 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction738 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction738___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction738 < ReduceAction738: superclass init_table position */},
+  {(bigint) parser___ReduceAction738___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction738(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction738;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction738(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction738;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction738(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction738;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction738_parser___ReduceAction738___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29386;
+  fra.me.meth = LOCATE_NEW_ReduceAction738_parser___ReduceAction738___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction738();
+  /* ./parser//parser.nit:29386 */
+  INIT_ATTRIBUTES__ReduceAction738(fra.me.REG[0]);
+  parser___ReduceAction738___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction738(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction739[50] = {
+  {(bigint) 1431 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction739 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction739 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1431 /* 4: ReduceAction739 < ReduceAction739: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction739 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction739 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction739___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction739 < ReduceAction739: superclass init_table position */},
+  {(bigint) parser___ReduceAction739___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction739(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction739;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction739(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction739;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction739(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction739;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction739_parser___ReduceAction739___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29430;
+  fra.me.meth = LOCATE_NEW_ReduceAction739_parser___ReduceAction739___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction739();
+  /* ./parser//parser.nit:29430 */
+  INIT_ATTRIBUTES__ReduceAction739(fra.me.REG[0]);
+  parser___ReduceAction739___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction739(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction740[50] = {
+  {(bigint) 1423 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction740 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction740 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1423 /* 4: ReduceAction740 < ReduceAction740: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction740 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction740 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction740___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction740 < ReduceAction740: superclass init_table position */},
+  {(bigint) parser___ReduceAction740___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction740(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction740;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction740(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction740;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction740(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction740;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction740_parser___ReduceAction740___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29474;
+  fra.me.meth = LOCATE_NEW_ReduceAction740_parser___ReduceAction740___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction740();
+  /* ./parser//parser.nit:29474 */
+  INIT_ATTRIBUTES__ReduceAction740(fra.me.REG[0]);
+  parser___ReduceAction740___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction740(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction741[50] = {
+  {(bigint) 1419 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction741 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction741 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1419 /* 4: ReduceAction741 < ReduceAction741: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction741 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction741 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction741___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction741 < ReduceAction741: superclass init_table position */},
+  {(bigint) parser___ReduceAction741___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction741(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction741;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction741(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction741;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction741(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction741;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction741_parser___ReduceAction741___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29518;
+  fra.me.meth = LOCATE_NEW_ReduceAction741_parser___ReduceAction741___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction741();
+  /* ./parser//parser.nit:29518 */
+  INIT_ATTRIBUTES__ReduceAction741(fra.me.REG[0]);
+  parser___ReduceAction741___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction741(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction742[50] = {
+  {(bigint) 1415 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction742 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction742 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1415 /* 4: ReduceAction742 < ReduceAction742: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction742 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction742 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction742___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction742 < ReduceAction742: superclass init_table position */},
+  {(bigint) parser___ReduceAction742___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction742(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction742;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction742(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction742;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction742(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction742;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction742_parser___ReduceAction742___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29562;
+  fra.me.meth = LOCATE_NEW_ReduceAction742_parser___ReduceAction742___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction742();
+  /* ./parser//parser.nit:29562 */
+  INIT_ATTRIBUTES__ReduceAction742(fra.me.REG[0]);
+  parser___ReduceAction742___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction742(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction743[50] = {
+  {(bigint) 1411 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction743 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction743 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1411 /* 4: ReduceAction743 < ReduceAction743: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction743 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction743 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction743___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction743 < ReduceAction743: superclass init_table position */},
+  {(bigint) parser___ReduceAction743___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction743(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction743;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction743(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction743;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction743(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction743;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction743_parser___ReduceAction743___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29606;
+  fra.me.meth = LOCATE_NEW_ReduceAction743_parser___ReduceAction743___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction743();
+  /* ./parser//parser.nit:29606 */
+  INIT_ATTRIBUTES__ReduceAction743(fra.me.REG[0]);
+  parser___ReduceAction743___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction743(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction744[50] = {
+  {(bigint) 1407 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction744 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction744 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1407 /* 4: ReduceAction744 < ReduceAction744: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction744 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction744 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction744___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction744 < ReduceAction744: superclass init_table position */},
+  {(bigint) parser___ReduceAction744___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction744(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction744;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction744(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction744;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction744(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction744;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction744_parser___ReduceAction744___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29650;
+  fra.me.meth = LOCATE_NEW_ReduceAction744_parser___ReduceAction744___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction744();
+  /* ./parser//parser.nit:29650 */
+  INIT_ATTRIBUTES__ReduceAction744(fra.me.REG[0]);
+  parser___ReduceAction744___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction744(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction745[50] = {
+  {(bigint) 1403 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction745 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction745 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1403 /* 4: ReduceAction745 < ReduceAction745: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction745 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction745 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction745___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction745 < ReduceAction745: superclass init_table position */},
+  {(bigint) parser___ReduceAction745___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction745(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction745;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction745(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction745;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction745(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction745;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction745_parser___ReduceAction745___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29694;
+  fra.me.meth = LOCATE_NEW_ReduceAction745_parser___ReduceAction745___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction745();
+  /* ./parser//parser.nit:29694 */
+  INIT_ATTRIBUTES__ReduceAction745(fra.me.REG[0]);
+  parser___ReduceAction745___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction745(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction746[50] = {
+  {(bigint) 1399 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction746 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction746 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1399 /* 4: ReduceAction746 < ReduceAction746: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction746 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction746 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction746___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction746 < ReduceAction746: superclass init_table position */},
+  {(bigint) parser___ReduceAction746___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction746(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction746;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction746(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction746;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction746(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction746;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction746_parser___ReduceAction746___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29738;
+  fra.me.meth = LOCATE_NEW_ReduceAction746_parser___ReduceAction746___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction746();
+  /* ./parser//parser.nit:29738 */
+  INIT_ATTRIBUTES__ReduceAction746(fra.me.REG[0]);
+  parser___ReduceAction746___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction746(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction747[50] = {
+  {(bigint) 1395 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction747 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction747 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1395 /* 4: ReduceAction747 < ReduceAction747: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction747 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction747 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction747___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction747 < ReduceAction747: superclass init_table position */},
+  {(bigint) parser___ReduceAction747___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction747(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction747;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction747(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction747;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction747(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction747;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction747_parser___ReduceAction747___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29782;
+  fra.me.meth = LOCATE_NEW_ReduceAction747_parser___ReduceAction747___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction747();
+  /* ./parser//parser.nit:29782 */
+  INIT_ATTRIBUTES__ReduceAction747(fra.me.REG[0]);
+  parser___ReduceAction747___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction747(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction748[50] = {
+  {(bigint) 1391 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction748 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction748 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1391 /* 4: ReduceAction748 < ReduceAction748: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction748 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction748 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction748___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction748 < ReduceAction748: superclass init_table position */},
+  {(bigint) parser___ReduceAction748___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction748(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction748;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction748(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction748;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction748(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction748;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction748_parser___ReduceAction748___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29830;
+  fra.me.meth = LOCATE_NEW_ReduceAction748_parser___ReduceAction748___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction748();
+  /* ./parser//parser.nit:29830 */
+  INIT_ATTRIBUTES__ReduceAction748(fra.me.REG[0]);
+  parser___ReduceAction748___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction748(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction749[50] = {
+  {(bigint) 1387 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction749 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction749 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1387 /* 4: ReduceAction749 < ReduceAction749: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction749 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction749 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction749___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction749 < ReduceAction749: superclass init_table position */},
+  {(bigint) parser___ReduceAction749___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction749(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction749;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction749(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction749;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction749(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction749;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction749_parser___ReduceAction749___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29874;
+  fra.me.meth = LOCATE_NEW_ReduceAction749_parser___ReduceAction749___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction749();
+  /* ./parser//parser.nit:29874 */
+  INIT_ATTRIBUTES__ReduceAction749(fra.me.REG[0]);
+  parser___ReduceAction749___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction749(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction750[50] = {
+  {(bigint) 1379 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction750 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction750 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1379 /* 4: ReduceAction750 < ReduceAction750: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction750 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction750 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction750___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction750 < ReduceAction750: superclass init_table position */},
+  {(bigint) parser___ReduceAction750___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction750(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction750;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction750(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction750;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction750(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction750;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction750_parser___ReduceAction750___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29922;
+  fra.me.meth = LOCATE_NEW_ReduceAction750_parser___ReduceAction750___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction750();
+  /* ./parser//parser.nit:29922 */
+  INIT_ATTRIBUTES__ReduceAction750(fra.me.REG[0]);
+  parser___ReduceAction750___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction750(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction751[50] = {
+  {(bigint) 1375 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction751 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction751 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1375 /* 4: ReduceAction751 < ReduceAction751: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction751 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction751 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction751___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction751 < ReduceAction751: superclass init_table position */},
+  {(bigint) parser___ReduceAction751___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction751(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction751;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction751(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction751;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction751(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction751;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction751_parser___ReduceAction751___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29974;
+  fra.me.meth = LOCATE_NEW_ReduceAction751_parser___ReduceAction751___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction751();
+  /* ./parser//parser.nit:29974 */
+  INIT_ATTRIBUTES__ReduceAction751(fra.me.REG[0]);
+  parser___ReduceAction751___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction751(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction752[50] = {
+  {(bigint) 1371 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction752 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction752 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1371 /* 4: ReduceAction752 < ReduceAction752: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction752 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction752 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction752___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction752 < ReduceAction752: superclass init_table position */},
+  {(bigint) parser___ReduceAction752___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction752(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction752;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction752(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction752;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction752(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction752;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction752_parser___ReduceAction752___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30016;
+  fra.me.meth = LOCATE_NEW_ReduceAction752_parser___ReduceAction752___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction752();
+  /* ./parser//parser.nit:30016 */
+  INIT_ATTRIBUTES__ReduceAction752(fra.me.REG[0]);
+  parser___ReduceAction752___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction752(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction753[50] = {
+  {(bigint) 1367 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction753 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction753 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1367 /* 4: ReduceAction753 < ReduceAction753: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction753 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction753 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction753___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction753 < ReduceAction753: superclass init_table position */},
+  {(bigint) parser___ReduceAction753___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction753(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction753;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction753(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction753;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction753(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction753;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction753_parser___ReduceAction753___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30058;
+  fra.me.meth = LOCATE_NEW_ReduceAction753_parser___ReduceAction753___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction753();
+  /* ./parser//parser.nit:30058 */
+  INIT_ATTRIBUTES__ReduceAction753(fra.me.REG[0]);
+  parser___ReduceAction753___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction753(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction754[50] = {
+  {(bigint) 1363 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction754 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction754 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1363 /* 4: ReduceAction754 < ReduceAction754: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction754 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction754 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction754___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction754 < ReduceAction754: superclass init_table position */},
+  {(bigint) parser___ReduceAction754___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction754(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction754;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction754(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction754;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction754(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction754;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction754_parser___ReduceAction754___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30100;
+  fra.me.meth = LOCATE_NEW_ReduceAction754_parser___ReduceAction754___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction754();
+  /* ./parser//parser.nit:30100 */
+  INIT_ATTRIBUTES__ReduceAction754(fra.me.REG[0]);
+  parser___ReduceAction754___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction754(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction755[50] = {
+  {(bigint) 1359 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction755 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction755 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1359 /* 4: ReduceAction755 < ReduceAction755: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction755 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction755 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction755___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction755 < ReduceAction755: superclass init_table position */},
+  {(bigint) parser___ReduceAction755___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction755(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction755;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction755(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction755;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction755(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction755;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction755_parser___ReduceAction755___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30142;
+  fra.me.meth = LOCATE_NEW_ReduceAction755_parser___ReduceAction755___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction755();
+  /* ./parser//parser.nit:30142 */
+  INIT_ATTRIBUTES__ReduceAction755(fra.me.REG[0]);
+  parser___ReduceAction755___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction755(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction756[50] = {
+  {(bigint) 1355 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction756 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction756 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1355 /* 4: ReduceAction756 < ReduceAction756: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction756 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction756 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction756___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction756 < ReduceAction756: superclass init_table position */},
+  {(bigint) parser___ReduceAction756___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction756(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction756;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction756(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction756;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction756(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction756;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction756_parser___ReduceAction756___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30184;
+  fra.me.meth = LOCATE_NEW_ReduceAction756_parser___ReduceAction756___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction756();
+  /* ./parser//parser.nit:30184 */
+  INIT_ATTRIBUTES__ReduceAction756(fra.me.REG[0]);
+  parser___ReduceAction756___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction756(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction757[50] = {
+  {(bigint) 1351 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction757 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction757 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1351 /* 4: ReduceAction757 < ReduceAction757: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction757 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction757 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction757___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction757 < ReduceAction757: superclass init_table position */},
+  {(bigint) parser___ReduceAction757___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction757(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction757;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction757(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction757;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction757(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction757;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction757_parser___ReduceAction757___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30226;
+  fra.me.meth = LOCATE_NEW_ReduceAction757_parser___ReduceAction757___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction757();
+  /* ./parser//parser.nit:30226 */
+  INIT_ATTRIBUTES__ReduceAction757(fra.me.REG[0]);
+  parser___ReduceAction757___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction757(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction758[50] = {
+  {(bigint) 1347 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction758 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction758 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1347 /* 4: ReduceAction758 < ReduceAction758: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction758 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction758 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction758___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction758 < ReduceAction758: superclass init_table position */},
+  {(bigint) parser___ReduceAction758___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction758(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction758;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction758(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction758;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction758(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction758;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction758_parser___ReduceAction758___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30268;
+  fra.me.meth = LOCATE_NEW_ReduceAction758_parser___ReduceAction758___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction758();
+  /* ./parser//parser.nit:30268 */
+  INIT_ATTRIBUTES__ReduceAction758(fra.me.REG[0]);
+  parser___ReduceAction758___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction758(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction759[50] = {
+  {(bigint) 1343 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction759 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction759 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1343 /* 4: ReduceAction759 < ReduceAction759: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction759 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction759 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction759___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction759 < ReduceAction759: superclass init_table position */},
+  {(bigint) parser___ReduceAction759___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction759(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction759;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction759(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction759;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction759(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction759;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction759_parser___ReduceAction759___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30310;
+  fra.me.meth = LOCATE_NEW_ReduceAction759_parser___ReduceAction759___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction759();
+  /* ./parser//parser.nit:30310 */
+  INIT_ATTRIBUTES__ReduceAction759(fra.me.REG[0]);
+  parser___ReduceAction759___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction759(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction760[50] = {
+  {(bigint) 1335 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction760 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction760 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1335 /* 4: ReduceAction760 < ReduceAction760: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction760 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction760 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction760___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction760 < ReduceAction760: superclass init_table position */},
+  {(bigint) parser___ReduceAction760___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction760(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction760;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction760(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction760;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction760(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction760;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction760_parser___ReduceAction760___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30352;
+  fra.me.meth = LOCATE_NEW_ReduceAction760_parser___ReduceAction760___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction760();
+  /* ./parser//parser.nit:30352 */
+  INIT_ATTRIBUTES__ReduceAction760(fra.me.REG[0]);
+  parser___ReduceAction760___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction760(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction761[50] = {
+  {(bigint) 1331 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction761 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction761 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1331 /* 4: ReduceAction761 < ReduceAction761: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction761 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction761 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction761___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction761 < ReduceAction761: superclass init_table position */},
+  {(bigint) parser___ReduceAction761___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction761(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction761;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction761(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction761;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction761(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction761;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction761_parser___ReduceAction761___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30394;
+  fra.me.meth = LOCATE_NEW_ReduceAction761_parser___ReduceAction761___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction761();
+  /* ./parser//parser.nit:30394 */
+  INIT_ATTRIBUTES__ReduceAction761(fra.me.REG[0]);
+  parser___ReduceAction761___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction761(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction762[50] = {
+  {(bigint) 1327 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction762 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction762 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1327 /* 4: ReduceAction762 < ReduceAction762: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction762 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction762 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction762___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction762 < ReduceAction762: superclass init_table position */},
+  {(bigint) parser___ReduceAction762___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction762(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction762;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction762(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction762;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction762(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction762;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction762_parser___ReduceAction762___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30436;
+  fra.me.meth = LOCATE_NEW_ReduceAction762_parser___ReduceAction762___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction762();
+  /* ./parser//parser.nit:30436 */
+  INIT_ATTRIBUTES__ReduceAction762(fra.me.REG[0]);
+  parser___ReduceAction762___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction762(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction763[50] = {
+  {(bigint) 1323 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction763 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction763 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1323 /* 4: ReduceAction763 < ReduceAction763: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction763 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction763 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction763___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction763 < ReduceAction763: superclass init_table position */},
+  {(bigint) parser___ReduceAction763___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction763(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction763;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction763(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction763;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction763(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction763;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction763_parser___ReduceAction763___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30478;
+  fra.me.meth = LOCATE_NEW_ReduceAction763_parser___ReduceAction763___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction763();
+  /* ./parser//parser.nit:30478 */
+  INIT_ATTRIBUTES__ReduceAction763(fra.me.REG[0]);
+  parser___ReduceAction763___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction763(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction764[50] = {
+  {(bigint) 1319 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction764 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction764 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1319 /* 4: ReduceAction764 < ReduceAction764: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction764 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction764 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction764___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction764 < ReduceAction764: superclass init_table position */},
+  {(bigint) parser___ReduceAction764___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction764(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction764;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction764(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction764;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction764(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction764;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction764_parser___ReduceAction764___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30524;
+  fra.me.meth = LOCATE_NEW_ReduceAction764_parser___ReduceAction764___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction764();
+  /* ./parser//parser.nit:30524 */
+  INIT_ATTRIBUTES__ReduceAction764(fra.me.REG[0]);
+  parser___ReduceAction764___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction764(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction765[50] = {
+  {(bigint) 1315 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction765 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction765 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1315 /* 4: ReduceAction765 < ReduceAction765: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction765 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction765 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction765___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction765 < ReduceAction765: superclass init_table position */},
+  {(bigint) parser___ReduceAction765___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction765(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction765;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction765(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction765;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction765(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction765;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction765_parser___ReduceAction765___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30566;
+  fra.me.meth = LOCATE_NEW_ReduceAction765_parser___ReduceAction765___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction765();
+  /* ./parser//parser.nit:30566 */
+  INIT_ATTRIBUTES__ReduceAction765(fra.me.REG[0]);
+  parser___ReduceAction765___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction765(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction766[50] = {
+  {(bigint) 1311 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction766 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction766 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1311 /* 4: ReduceAction766 < ReduceAction766: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction766 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction766 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction766___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction766 < ReduceAction766: superclass init_table position */},
+  {(bigint) parser___ReduceAction766___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction766(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction766;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction766(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction766;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction766(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction766;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction766_parser___ReduceAction766___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30612;
+  fra.me.meth = LOCATE_NEW_ReduceAction766_parser___ReduceAction766___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction766();
+  /* ./parser//parser.nit:30612 */
+  INIT_ATTRIBUTES__ReduceAction766(fra.me.REG[0]);
+  parser___ReduceAction766___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction766(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction767[50] = {
+  {(bigint) 1307 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction767 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction767 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1307 /* 4: ReduceAction767 < ReduceAction767: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction767 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction767 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction767___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction767 < ReduceAction767: superclass init_table position */},
+  {(bigint) parser___ReduceAction767___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction767(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction767;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction767(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction767;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction767(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction767;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction767_parser___ReduceAction767___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30662;
+  fra.me.meth = LOCATE_NEW_ReduceAction767_parser___ReduceAction767___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction767();
+  /* ./parser//parser.nit:30662 */
+  INIT_ATTRIBUTES__ReduceAction767(fra.me.REG[0]);
+  parser___ReduceAction767___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction767(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction768[50] = {
+  {(bigint) 1303 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction768 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction768 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1303 /* 4: ReduceAction768 < ReduceAction768: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction768 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction768 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction768___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction768 < ReduceAction768: superclass init_table position */},
+  {(bigint) parser___ReduceAction768___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction768(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction768;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction768(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction768;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction768(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction768;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction768_parser___ReduceAction768___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30707;
+  fra.me.meth = LOCATE_NEW_ReduceAction768_parser___ReduceAction768___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction768();
+  /* ./parser//parser.nit:30707 */
+  INIT_ATTRIBUTES__ReduceAction768(fra.me.REG[0]);
+  parser___ReduceAction768___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction768(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction769[50] = {
+  {(bigint) 1299 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction769 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction769 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1299 /* 4: ReduceAction769 < ReduceAction769: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction769 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction769 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction769___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction769 < ReduceAction769: superclass init_table position */},
+  {(bigint) parser___ReduceAction769___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction769(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction769;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction769(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction769;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction769(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction769;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction769_parser___ReduceAction769___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30752;
+  fra.me.meth = LOCATE_NEW_ReduceAction769_parser___ReduceAction769___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction769();
+  /* ./parser//parser.nit:30752 */
+  INIT_ATTRIBUTES__ReduceAction769(fra.me.REG[0]);
+  parser___ReduceAction769___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction769(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction770[50] = {
+  {(bigint) 1291 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction770 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction770 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1291 /* 4: ReduceAction770 < ReduceAction770: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction770 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction770 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction770___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction770 < ReduceAction770: superclass init_table position */},
+  {(bigint) parser___ReduceAction770___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction770(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction770;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction770(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction770;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction770(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction770;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction770_parser___ReduceAction770___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30797;
+  fra.me.meth = LOCATE_NEW_ReduceAction770_parser___ReduceAction770___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction770();
+  /* ./parser//parser.nit:30797 */
+  INIT_ATTRIBUTES__ReduceAction770(fra.me.REG[0]);
+  parser___ReduceAction770___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction770(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction771[50] = {
+  {(bigint) 1287 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction771 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction771 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1287 /* 4: ReduceAction771 < ReduceAction771: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction771 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction771 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction771___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction771 < ReduceAction771: superclass init_table position */},
+  {(bigint) parser___ReduceAction771___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction771(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction771;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction771(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction771;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction771(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction771;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction771_parser___ReduceAction771___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30842;
+  fra.me.meth = LOCATE_NEW_ReduceAction771_parser___ReduceAction771___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction771();
+  /* ./parser//parser.nit:30842 */
+  INIT_ATTRIBUTES__ReduceAction771(fra.me.REG[0]);
+  parser___ReduceAction771___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction771(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction772[50] = {
+  {(bigint) 1283 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction772 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction772 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1283 /* 4: ReduceAction772 < ReduceAction772: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction772 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction772 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction772___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction772 < ReduceAction772: superclass init_table position */},
+  {(bigint) parser___ReduceAction772___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction772(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction772;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction772(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction772;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction772(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction772;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction772_parser___ReduceAction772___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30887;
+  fra.me.meth = LOCATE_NEW_ReduceAction772_parser___ReduceAction772___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction772();
+  /* ./parser//parser.nit:30887 */
+  INIT_ATTRIBUTES__ReduceAction772(fra.me.REG[0]);
+  parser___ReduceAction772___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction772(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction773[50] = {
+  {(bigint) 1279 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction773 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction773 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1279 /* 4: ReduceAction773 < ReduceAction773: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction773 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction773 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction773___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction773 < ReduceAction773: superclass init_table position */},
+  {(bigint) parser___ReduceAction773___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction773(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction773;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction773(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction773;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction773(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction773;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction773_parser___ReduceAction773___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30932;
+  fra.me.meth = LOCATE_NEW_ReduceAction773_parser___ReduceAction773___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction773();
+  /* ./parser//parser.nit:30932 */
+  INIT_ATTRIBUTES__ReduceAction773(fra.me.REG[0]);
+  parser___ReduceAction773___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction773(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction774[50] = {
+  {(bigint) 1275 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction774 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction774 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1275 /* 4: ReduceAction774 < ReduceAction774: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction774 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction774 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction774___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction774 < ReduceAction774: superclass init_table position */},
+  {(bigint) parser___ReduceAction774___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction774(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction774;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction774(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction774;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction774(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction774;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction774_parser___ReduceAction774___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 30977;
+  fra.me.meth = LOCATE_NEW_ReduceAction774_parser___ReduceAction774___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction774();
+  /* ./parser//parser.nit:30977 */
+  INIT_ATTRIBUTES__ReduceAction774(fra.me.REG[0]);
+  parser___ReduceAction774___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction774(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction775[50] = {
+  {(bigint) 1271 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction775 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction775 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1271 /* 4: ReduceAction775 < ReduceAction775: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction775 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction775 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction775___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction775 < ReduceAction775: superclass init_table position */},
+  {(bigint) parser___ReduceAction775___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction775(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction775;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction775(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction775;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction775(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction775;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction775_parser___ReduceAction775___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31022;
+  fra.me.meth = LOCATE_NEW_ReduceAction775_parser___ReduceAction775___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction775();
+  /* ./parser//parser.nit:31022 */
+  INIT_ATTRIBUTES__ReduceAction775(fra.me.REG[0]);
+  parser___ReduceAction775___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction775(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction776[50] = {
+  {(bigint) 1267 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction776 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction776 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1267 /* 4: ReduceAction776 < ReduceAction776: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction776 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction776 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction776___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction776 < ReduceAction776: superclass init_table position */},
+  {(bigint) parser___ReduceAction776___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction776(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction776;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction776(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction776;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction776(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction776;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction776_parser___ReduceAction776___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31067;
+  fra.me.meth = LOCATE_NEW_ReduceAction776_parser___ReduceAction776___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction776();
+  /* ./parser//parser.nit:31067 */
+  INIT_ATTRIBUTES__ReduceAction776(fra.me.REG[0]);
+  parser___ReduceAction776___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction776(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction777[50] = {
+  {(bigint) 1263 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction777 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction777 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1263 /* 4: ReduceAction777 < ReduceAction777: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction777 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction777 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction777___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction777 < ReduceAction777: superclass init_table position */},
+  {(bigint) parser___ReduceAction777___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction777(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction777;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction777(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction777;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction777(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction777;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction777_parser___ReduceAction777___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31112;
+  fra.me.meth = LOCATE_NEW_ReduceAction777_parser___ReduceAction777___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction777();
+  /* ./parser//parser.nit:31112 */
+  INIT_ATTRIBUTES__ReduceAction777(fra.me.REG[0]);
+  parser___ReduceAction777___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction777(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction778[50] = {
+  {(bigint) 1259 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction778 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction778 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1259 /* 4: ReduceAction778 < ReduceAction778: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction778 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction778 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction778___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction778 < ReduceAction778: superclass init_table position */},
+  {(bigint) parser___ReduceAction778___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction778(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction778;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction778(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction778;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction778(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction778;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction778_parser___ReduceAction778___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31157;
+  fra.me.meth = LOCATE_NEW_ReduceAction778_parser___ReduceAction778___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction778();
+  /* ./parser//parser.nit:31157 */
+  INIT_ATTRIBUTES__ReduceAction778(fra.me.REG[0]);
+  parser___ReduceAction778___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction778(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction779[50] = {
+  {(bigint) 1255 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction779 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction779 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1255 /* 4: ReduceAction779 < ReduceAction779: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction779 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction779 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction779___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction779 < ReduceAction779: superclass init_table position */},
+  {(bigint) parser___ReduceAction779___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction779(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction779;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction779(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction779;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction779(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction779;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction779_parser___ReduceAction779___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31202;
+  fra.me.meth = LOCATE_NEW_ReduceAction779_parser___ReduceAction779___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction779();
+  /* ./parser//parser.nit:31202 */
+  INIT_ATTRIBUTES__ReduceAction779(fra.me.REG[0]);
+  parser___ReduceAction779___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction779(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction780[50] = {
+  {(bigint) 1247 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction780 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction780 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1247 /* 4: ReduceAction780 < ReduceAction780: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction780 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction780 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction780___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction780 < ReduceAction780: superclass init_table position */},
+  {(bigint) parser___ReduceAction780___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction780(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction780;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction780(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction780;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction780(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction780;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction780_parser___ReduceAction780___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31251;
+  fra.me.meth = LOCATE_NEW_ReduceAction780_parser___ReduceAction780___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction780();
+  /* ./parser//parser.nit:31251 */
+  INIT_ATTRIBUTES__ReduceAction780(fra.me.REG[0]);
+  parser___ReduceAction780___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction780(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction781[50] = {
+  {(bigint) 1243 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction781 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction781 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1243 /* 4: ReduceAction781 < ReduceAction781: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction781 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction781 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction781___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction781 < ReduceAction781: superclass init_table position */},
+  {(bigint) parser___ReduceAction781___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction781(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction781;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction781(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction781;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction781(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction781;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction781_parser___ReduceAction781___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31296;
+  fra.me.meth = LOCATE_NEW_ReduceAction781_parser___ReduceAction781___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction781();
+  /* ./parser//parser.nit:31296 */
+  INIT_ATTRIBUTES__ReduceAction781(fra.me.REG[0]);
+  parser___ReduceAction781___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction781(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction782[50] = {
+  {(bigint) 1239 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction782 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction782 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1239 /* 4: ReduceAction782 < ReduceAction782: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction782 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction782 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction782___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction782 < ReduceAction782: superclass init_table position */},
+  {(bigint) parser___ReduceAction782___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction782(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction782;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction782(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction782;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction782(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction782;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction782_parser___ReduceAction782___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31345;
+  fra.me.meth = LOCATE_NEW_ReduceAction782_parser___ReduceAction782___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction782();
+  /* ./parser//parser.nit:31345 */
+  INIT_ATTRIBUTES__ReduceAction782(fra.me.REG[0]);
+  parser___ReduceAction782___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction782(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction783[50] = {
+  {(bigint) 1235 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction783 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction783 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1235 /* 4: ReduceAction783 < ReduceAction783: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction783 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction783 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction783___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction783 < ReduceAction783: superclass init_table position */},
+  {(bigint) parser___ReduceAction783___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction783(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction783;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction783(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction783;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction783(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction783;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction783_parser___ReduceAction783___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31398;
+  fra.me.meth = LOCATE_NEW_ReduceAction783_parser___ReduceAction783___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction783();
+  /* ./parser//parser.nit:31398 */
+  INIT_ATTRIBUTES__ReduceAction783(fra.me.REG[0]);
+  parser___ReduceAction783___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction783(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction784[50] = {
+  {(bigint) 1231 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction784 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction784 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1231 /* 4: ReduceAction784 < ReduceAction784: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction784 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction784 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction784___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction784 < ReduceAction784: superclass init_table position */},
+  {(bigint) parser___ReduceAction784___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction784(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction784;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction784(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction784;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction784(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction784;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction784_parser___ReduceAction784___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31440;
+  fra.me.meth = LOCATE_NEW_ReduceAction784_parser___ReduceAction784___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction784();
+  /* ./parser//parser.nit:31440 */
+  INIT_ATTRIBUTES__ReduceAction784(fra.me.REG[0]);
+  parser___ReduceAction784___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction784(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction785[50] = {
+  {(bigint) 1227 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction785 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction785 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1227 /* 4: ReduceAction785 < ReduceAction785: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction785 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction785 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction785___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction785 < ReduceAction785: superclass init_table position */},
+  {(bigint) parser___ReduceAction785___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction785(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction785;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction785(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction785;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction785(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction785;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction785_parser___ReduceAction785___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31482;
+  fra.me.meth = LOCATE_NEW_ReduceAction785_parser___ReduceAction785___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction785();
+  /* ./parser//parser.nit:31482 */
+  INIT_ATTRIBUTES__ReduceAction785(fra.me.REG[0]);
+  parser___ReduceAction785___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction785(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction786[50] = {
+  {(bigint) 1223 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction786 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction786 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1223 /* 4: ReduceAction786 < ReduceAction786: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction786 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction786 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction786___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction786 < ReduceAction786: superclass init_table position */},
+  {(bigint) parser___ReduceAction786___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction786(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction786;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction786(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction786;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction786(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction786;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction786_parser___ReduceAction786___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31524;
+  fra.me.meth = LOCATE_NEW_ReduceAction786_parser___ReduceAction786___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction786();
+  /* ./parser//parser.nit:31524 */
+  INIT_ATTRIBUTES__ReduceAction786(fra.me.REG[0]);
+  parser___ReduceAction786___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction786(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction787[50] = {
+  {(bigint) 1219 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction787 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction787 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1219 /* 4: ReduceAction787 < ReduceAction787: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction787 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction787 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction787___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction787 < ReduceAction787: superclass init_table position */},
+  {(bigint) parser___ReduceAction787___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction787(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction787;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction787(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction787;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction787(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction787;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction787_parser___ReduceAction787___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31566;
+  fra.me.meth = LOCATE_NEW_ReduceAction787_parser___ReduceAction787___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction787();
+  /* ./parser//parser.nit:31566 */
+  INIT_ATTRIBUTES__ReduceAction787(fra.me.REG[0]);
+  parser___ReduceAction787___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction787(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction788[50] = {
+  {(bigint) 1215 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction788 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction788 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1215 /* 4: ReduceAction788 < ReduceAction788: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction788 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction788 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction788___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction788 < ReduceAction788: superclass init_table position */},
+  {(bigint) parser___ReduceAction788___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction788(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction788;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction788(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction788;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction788(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction788;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction788_parser___ReduceAction788___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31608;
+  fra.me.meth = LOCATE_NEW_ReduceAction788_parser___ReduceAction788___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction788();
+  /* ./parser//parser.nit:31608 */
+  INIT_ATTRIBUTES__ReduceAction788(fra.me.REG[0]);
+  parser___ReduceAction788___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction788(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction789[50] = {
+  {(bigint) 1211 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction789 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction789 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1211 /* 4: ReduceAction789 < ReduceAction789: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction789 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction789 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction789___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction789 < ReduceAction789: superclass init_table position */},
+  {(bigint) parser___ReduceAction789___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction789(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction789;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction789(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction789;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction789(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction789;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction789_parser___ReduceAction789___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31650;
+  fra.me.meth = LOCATE_NEW_ReduceAction789_parser___ReduceAction789___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction789();
+  /* ./parser//parser.nit:31650 */
+  INIT_ATTRIBUTES__ReduceAction789(fra.me.REG[0]);
+  parser___ReduceAction789___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction789(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction790[50] = {
+  {(bigint) 1203 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction790 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction790 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1203 /* 4: ReduceAction790 < ReduceAction790: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction790 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction790 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction790___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction790 < ReduceAction790: superclass init_table position */},
+  {(bigint) parser___ReduceAction790___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction790(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction790;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction790(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction790;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction790(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction790;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction790_parser___ReduceAction790___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31692;
+  fra.me.meth = LOCATE_NEW_ReduceAction790_parser___ReduceAction790___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction790();
+  /* ./parser//parser.nit:31692 */
+  INIT_ATTRIBUTES__ReduceAction790(fra.me.REG[0]);
+  parser___ReduceAction790___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction790(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction791[50] = {
+  {(bigint) 1199 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction791 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction791 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1199 /* 4: ReduceAction791 < ReduceAction791: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction791 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction791 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction791___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction791 < ReduceAction791: superclass init_table position */},
+  {(bigint) parser___ReduceAction791___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction791(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction791;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction791(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction791;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction791(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction791;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction791_parser___ReduceAction791___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31734;
+  fra.me.meth = LOCATE_NEW_ReduceAction791_parser___ReduceAction791___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction791();
+  /* ./parser//parser.nit:31734 */
+  INIT_ATTRIBUTES__ReduceAction791(fra.me.REG[0]);
+  parser___ReduceAction791___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction791(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction792[50] = {
+  {(bigint) 1195 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction792 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction792 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1195 /* 4: ReduceAction792 < ReduceAction792: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction792 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction792 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction792___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction792 < ReduceAction792: superclass init_table position */},
+  {(bigint) parser___ReduceAction792___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction792(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction792;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction792(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction792;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction792(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction792;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction792_parser___ReduceAction792___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31776;
+  fra.me.meth = LOCATE_NEW_ReduceAction792_parser___ReduceAction792___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction792();
+  /* ./parser//parser.nit:31776 */
+  INIT_ATTRIBUTES__ReduceAction792(fra.me.REG[0]);
+  parser___ReduceAction792___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction792(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction793[50] = {
+  {(bigint) 1191 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction793 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction793 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1191 /* 4: ReduceAction793 < ReduceAction793: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction793 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction793 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction793___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction793 < ReduceAction793: superclass init_table position */},
+  {(bigint) parser___ReduceAction793___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction793(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction793;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction793(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction793;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction793(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction793;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction793_parser___ReduceAction793___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31818;
+  fra.me.meth = LOCATE_NEW_ReduceAction793_parser___ReduceAction793___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction793();
+  /* ./parser//parser.nit:31818 */
+  INIT_ATTRIBUTES__ReduceAction793(fra.me.REG[0]);
+  parser___ReduceAction793___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction793(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction794[50] = {
+  {(bigint) 1187 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction794 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction794 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1187 /* 4: ReduceAction794 < ReduceAction794: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction794 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction794 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction794___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction794 < ReduceAction794: superclass init_table position */},
+  {(bigint) parser___ReduceAction794___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction794(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction794;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction794(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction794;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction794(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction794;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction794_parser___ReduceAction794___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31860;
+  fra.me.meth = LOCATE_NEW_ReduceAction794_parser___ReduceAction794___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction794();
+  /* ./parser//parser.nit:31860 */
+  INIT_ATTRIBUTES__ReduceAction794(fra.me.REG[0]);
+  parser___ReduceAction794___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction794(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction795[50] = {
+  {(bigint) 1183 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction795 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction795 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1183 /* 4: ReduceAction795 < ReduceAction795: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction795 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction795 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction795___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction795 < ReduceAction795: superclass init_table position */},
+  {(bigint) parser___ReduceAction795___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction795(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction795;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction795(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction795;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction795(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction795;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction795_parser___ReduceAction795___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31902;
+  fra.me.meth = LOCATE_NEW_ReduceAction795_parser___ReduceAction795___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction795();
+  /* ./parser//parser.nit:31902 */
+  INIT_ATTRIBUTES__ReduceAction795(fra.me.REG[0]);
+  parser___ReduceAction795___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction795(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction796[50] = {
+  {(bigint) 1179 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction796 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction796 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1179 /* 4: ReduceAction796 < ReduceAction796: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction796 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction796 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction796___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction796 < ReduceAction796: superclass init_table position */},
+  {(bigint) parser___ReduceAction796___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction796(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction796;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction796(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction796;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction796(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction796;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction796_parser___ReduceAction796___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31948;
+  fra.me.meth = LOCATE_NEW_ReduceAction796_parser___ReduceAction796___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction796();
+  /* ./parser//parser.nit:31948 */
+  INIT_ATTRIBUTES__ReduceAction796(fra.me.REG[0]);
+  parser___ReduceAction796___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction796(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction797[50] = {
+  {(bigint) 1175 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction797 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction797 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1175 /* 4: ReduceAction797 < ReduceAction797: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction797 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction797 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction797___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction797 < ReduceAction797: superclass init_table position */},
+  {(bigint) parser___ReduceAction797___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction797(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction797;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction797(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction797;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction797(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction797;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction797_parser___ReduceAction797___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 31990;
+  fra.me.meth = LOCATE_NEW_ReduceAction797_parser___ReduceAction797___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction797();
+  /* ./parser//parser.nit:31990 */
+  INIT_ATTRIBUTES__ReduceAction797(fra.me.REG[0]);
+  parser___ReduceAction797___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction797(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction798[50] = {
+  {(bigint) 1171 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction798 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction798 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1171 /* 4: ReduceAction798 < ReduceAction798: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction798 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction798 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction798___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction798 < ReduceAction798: superclass init_table position */},
+  {(bigint) parser___ReduceAction798___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction798(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction798;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction798(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction798;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction798(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction798;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction798_parser___ReduceAction798___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32035;
+  fra.me.meth = LOCATE_NEW_ReduceAction798_parser___ReduceAction798___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction798();
+  /* ./parser//parser.nit:32035 */
+  INIT_ATTRIBUTES__ReduceAction798(fra.me.REG[0]);
+  parser___ReduceAction798___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction798(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction799[50] = {
+  {(bigint) 1167 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction799 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction799 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1167 /* 4: ReduceAction799 < ReduceAction799: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction799 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction799 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction799___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction799 < ReduceAction799: superclass init_table position */},
+  {(bigint) parser___ReduceAction799___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction799(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction799;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction799(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction799;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction799(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction799;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction799_parser___ReduceAction799___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32080;
+  fra.me.meth = LOCATE_NEW_ReduceAction799_parser___ReduceAction799___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction799();
+  /* ./parser//parser.nit:32080 */
+  INIT_ATTRIBUTES__ReduceAction799(fra.me.REG[0]);
+  parser___ReduceAction799___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction799(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction800[50] = {
+  {(bigint) 1155 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction800 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction800 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1155 /* 4: ReduceAction800 < ReduceAction800: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction800 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction800 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction800___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction800 < ReduceAction800: superclass init_table position */},
+  {(bigint) parser___ReduceAction800___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction800(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction800;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction800(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction800;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction800(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction800;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction800_parser___ReduceAction800___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32125;
+  fra.me.meth = LOCATE_NEW_ReduceAction800_parser___ReduceAction800___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction800();
+  /* ./parser//parser.nit:32125 */
+  INIT_ATTRIBUTES__ReduceAction800(fra.me.REG[0]);
+  parser___ReduceAction800___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction800(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction801[50] = {
+  {(bigint) 1151 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction801 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction801 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1151 /* 4: ReduceAction801 < ReduceAction801: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction801 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction801 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction801___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction801 < ReduceAction801: superclass init_table position */},
+  {(bigint) parser___ReduceAction801___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction801(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction801;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction801(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction801;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction801(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction801;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction801_parser___ReduceAction801___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32170;
+  fra.me.meth = LOCATE_NEW_ReduceAction801_parser___ReduceAction801___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction801();
+  /* ./parser//parser.nit:32170 */
+  INIT_ATTRIBUTES__ReduceAction801(fra.me.REG[0]);
+  parser___ReduceAction801___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction801(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction802[50] = {
+  {(bigint) 1147 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction802 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction802 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1147 /* 4: ReduceAction802 < ReduceAction802: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction802 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction802 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction802___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction802 < ReduceAction802: superclass init_table position */},
+  {(bigint) parser___ReduceAction802___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction802(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction802;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction802(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction802;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction802(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction802;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction802_parser___ReduceAction802___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32215;
+  fra.me.meth = LOCATE_NEW_ReduceAction802_parser___ReduceAction802___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction802();
+  /* ./parser//parser.nit:32215 */
+  INIT_ATTRIBUTES__ReduceAction802(fra.me.REG[0]);
+  parser___ReduceAction802___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction802(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction803[50] = {
+  {(bigint) 1143 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction803 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction803 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1143 /* 4: ReduceAction803 < ReduceAction803: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction803 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction803 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction803___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction803 < ReduceAction803: superclass init_table position */},
+  {(bigint) parser___ReduceAction803___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction803(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction803;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction803(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction803;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction803(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction803;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction803_parser___ReduceAction803___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32260;
+  fra.me.meth = LOCATE_NEW_ReduceAction803_parser___ReduceAction803___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction803();
+  /* ./parser//parser.nit:32260 */
+  INIT_ATTRIBUTES__ReduceAction803(fra.me.REG[0]);
+  parser___ReduceAction803___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction803(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction804[50] = {
+  {(bigint) 1139 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction804 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction804 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1139 /* 4: ReduceAction804 < ReduceAction804: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction804 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction804 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction804___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction804 < ReduceAction804: superclass init_table position */},
+  {(bigint) parser___ReduceAction804___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction804(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction804;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction804(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction804;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction804(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction804;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction804_parser___ReduceAction804___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32305;
+  fra.me.meth = LOCATE_NEW_ReduceAction804_parser___ReduceAction804___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction804();
+  /* ./parser//parser.nit:32305 */
+  INIT_ATTRIBUTES__ReduceAction804(fra.me.REG[0]);
+  parser___ReduceAction804___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction804(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction805[50] = {
+  {(bigint) 1135 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction805 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction805 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1135 /* 4: ReduceAction805 < ReduceAction805: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction805 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction805 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction805___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction805 < ReduceAction805: superclass init_table position */},
+  {(bigint) parser___ReduceAction805___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction805(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction805;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction805(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction805;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction805(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction805;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction805_parser___ReduceAction805___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32350;
+  fra.me.meth = LOCATE_NEW_ReduceAction805_parser___ReduceAction805___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction805();
+  /* ./parser//parser.nit:32350 */
+  INIT_ATTRIBUTES__ReduceAction805(fra.me.REG[0]);
+  parser___ReduceAction805___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction805(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction806[50] = {
+  {(bigint) 1131 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction806 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction806 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1131 /* 4: ReduceAction806 < ReduceAction806: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction806 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction806 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction806___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction806 < ReduceAction806: superclass init_table position */},
+  {(bigint) parser___ReduceAction806___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction806(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction806;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction806(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction806;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction806(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction806;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction806_parser___ReduceAction806___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32395;
+  fra.me.meth = LOCATE_NEW_ReduceAction806_parser___ReduceAction806___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction806();
+  /* ./parser//parser.nit:32395 */
+  INIT_ATTRIBUTES__ReduceAction806(fra.me.REG[0]);
+  parser___ReduceAction806___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction806(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction807[50] = {
+  {(bigint) 1127 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction807 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction807 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1127 /* 4: ReduceAction807 < ReduceAction807: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction807 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction807 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction807___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction807 < ReduceAction807: superclass init_table position */},
+  {(bigint) parser___ReduceAction807___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction807(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction807;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction807(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction807;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction807(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction807;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction807_parser___ReduceAction807___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32440;
+  fra.me.meth = LOCATE_NEW_ReduceAction807_parser___ReduceAction807___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction807();
+  /* ./parser//parser.nit:32440 */
+  INIT_ATTRIBUTES__ReduceAction807(fra.me.REG[0]);
+  parser___ReduceAction807___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction807(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction808[50] = {
+  {(bigint) 1123 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction808 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction808 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1123 /* 4: ReduceAction808 < ReduceAction808: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction808 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction808 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction808___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction808 < ReduceAction808: superclass init_table position */},
+  {(bigint) parser___ReduceAction808___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction808(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction808;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction808(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction808;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction808(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction808;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction808_parser___ReduceAction808___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32485;
+  fra.me.meth = LOCATE_NEW_ReduceAction808_parser___ReduceAction808___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction808();
+  /* ./parser//parser.nit:32485 */
+  INIT_ATTRIBUTES__ReduceAction808(fra.me.REG[0]);
+  parser___ReduceAction808___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction808(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction809[50] = {
+  {(bigint) 1119 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction809 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction809 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1119 /* 4: ReduceAction809 < ReduceAction809: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction809 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction809 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction809___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction809 < ReduceAction809: superclass init_table position */},
+  {(bigint) parser___ReduceAction809___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction809(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction809;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction809(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction809;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction809(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction809;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction809_parser___ReduceAction809___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32530;
+  fra.me.meth = LOCATE_NEW_ReduceAction809_parser___ReduceAction809___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction809();
+  /* ./parser//parser.nit:32530 */
+  INIT_ATTRIBUTES__ReduceAction809(fra.me.REG[0]);
+  parser___ReduceAction809___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction809(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction810[50] = {
+  {(bigint) 1111 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction810 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction810 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1111 /* 4: ReduceAction810 < ReduceAction810: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction810 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction810 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction810___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction810 < ReduceAction810: superclass init_table position */},
+  {(bigint) parser___ReduceAction810___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction810(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction810;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction810(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction810;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction810(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction810;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction810_parser___ReduceAction810___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32579;
+  fra.me.meth = LOCATE_NEW_ReduceAction810_parser___ReduceAction810___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction810();
+  /* ./parser//parser.nit:32579 */
+  INIT_ATTRIBUTES__ReduceAction810(fra.me.REG[0]);
+  parser___ReduceAction810___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction810(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction811[50] = {
+  {(bigint) 1107 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction811 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction811 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1107 /* 4: ReduceAction811 < ReduceAction811: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction811 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction811 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction811___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction811 < ReduceAction811: superclass init_table position */},
+  {(bigint) parser___ReduceAction811___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction811(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction811;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction811(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction811;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction811(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction811;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction811_parser___ReduceAction811___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32624;
+  fra.me.meth = LOCATE_NEW_ReduceAction811_parser___ReduceAction811___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction811();
+  /* ./parser//parser.nit:32624 */
+  INIT_ATTRIBUTES__ReduceAction811(fra.me.REG[0]);
+  parser___ReduceAction811___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction811(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction812[50] = {
+  {(bigint) 1103 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction812 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction812 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1103 /* 4: ReduceAction812 < ReduceAction812: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction812 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction812 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction812___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction812 < ReduceAction812: superclass init_table position */},
+  {(bigint) parser___ReduceAction812___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction812(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction812;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction812(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction812;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction812(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction812;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction812_parser___ReduceAction812___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32663;
+  fra.me.meth = LOCATE_NEW_ReduceAction812_parser___ReduceAction812___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction812();
+  /* ./parser//parser.nit:32663 */
+  INIT_ATTRIBUTES__ReduceAction812(fra.me.REG[0]);
+  parser___ReduceAction812___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction812(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction813[50] = {
+  {(bigint) 1099 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction813 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction813 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1099 /* 4: ReduceAction813 < ReduceAction813: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction813 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction813 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction813___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction813 < ReduceAction813: superclass init_table position */},
+  {(bigint) parser___ReduceAction813___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction813(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction813;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction813(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction813;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction813(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction813;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction813_parser___ReduceAction813___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32702;
+  fra.me.meth = LOCATE_NEW_ReduceAction813_parser___ReduceAction813___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction813();
+  /* ./parser//parser.nit:32702 */
+  INIT_ATTRIBUTES__ReduceAction813(fra.me.REG[0]);
+  parser___ReduceAction813___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction813(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction814[50] = {
+  {(bigint) 1095 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction814 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction814 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1095 /* 4: ReduceAction814 < ReduceAction814: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction814 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction814 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction814___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction814 < ReduceAction814: superclass init_table position */},
+  {(bigint) parser___ReduceAction814___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction814(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction814;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction814(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction814;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction814(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction814;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction814_parser___ReduceAction814___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32741;
+  fra.me.meth = LOCATE_NEW_ReduceAction814_parser___ReduceAction814___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction814();
+  /* ./parser//parser.nit:32741 */
+  INIT_ATTRIBUTES__ReduceAction814(fra.me.REG[0]);
+  parser___ReduceAction814___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction814(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction815[50] = {
+  {(bigint) 1091 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction815 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction815 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1091 /* 4: ReduceAction815 < ReduceAction815: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction815 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction815 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction815___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction815 < ReduceAction815: superclass init_table position */},
+  {(bigint) parser___ReduceAction815___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction815(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction815;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction815(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction815;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction815(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction815;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction815_parser___ReduceAction815___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32780;
+  fra.me.meth = LOCATE_NEW_ReduceAction815_parser___ReduceAction815___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction815();
+  /* ./parser//parser.nit:32780 */
+  INIT_ATTRIBUTES__ReduceAction815(fra.me.REG[0]);
+  parser___ReduceAction815___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction815(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction816[50] = {
+  {(bigint) 1087 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction816 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction816 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1087 /* 4: ReduceAction816 < ReduceAction816: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction816 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction816 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction816___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction816 < ReduceAction816: superclass init_table position */},
+  {(bigint) parser___ReduceAction816___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction816(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction816;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction816(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction816;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction816(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction816;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction816_parser___ReduceAction816___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32819;
+  fra.me.meth = LOCATE_NEW_ReduceAction816_parser___ReduceAction816___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction816();
+  /* ./parser//parser.nit:32819 */
+  INIT_ATTRIBUTES__ReduceAction816(fra.me.REG[0]);
+  parser___ReduceAction816___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction816(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction817[50] = {
+  {(bigint) 1083 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction817 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction817 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1083 /* 4: ReduceAction817 < ReduceAction817: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction817 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction817 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction817___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction817 < ReduceAction817: superclass init_table position */},
+  {(bigint) parser___ReduceAction817___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction817(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction817;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction817(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction817;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction817(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction817;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction817_parser___ReduceAction817___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32858;
+  fra.me.meth = LOCATE_NEW_ReduceAction817_parser___ReduceAction817___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction817();
+  /* ./parser//parser.nit:32858 */
+  INIT_ATTRIBUTES__ReduceAction817(fra.me.REG[0]);
+  parser___ReduceAction817___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction817(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction818[50] = {
+  {(bigint) 1079 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction818 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction818 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1079 /* 4: ReduceAction818 < ReduceAction818: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction818 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction818 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction818___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction818 < ReduceAction818: superclass init_table position */},
+  {(bigint) parser___ReduceAction818___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction818(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction818;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction818(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction818;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction818(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction818;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction818_parser___ReduceAction818___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32897;
+  fra.me.meth = LOCATE_NEW_ReduceAction818_parser___ReduceAction818___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction818();
+  /* ./parser//parser.nit:32897 */
+  INIT_ATTRIBUTES__ReduceAction818(fra.me.REG[0]);
+  parser___ReduceAction818___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction818(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction819[50] = {
+  {(bigint) 1075 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction819 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction819 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1075 /* 4: ReduceAction819 < ReduceAction819: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction819 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction819 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction819___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction819 < ReduceAction819: superclass init_table position */},
+  {(bigint) parser___ReduceAction819___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction819(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction819;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction819(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction819;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction819(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction819;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction819_parser___ReduceAction819___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32936;
+  fra.me.meth = LOCATE_NEW_ReduceAction819_parser___ReduceAction819___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction819();
+  /* ./parser//parser.nit:32936 */
+  INIT_ATTRIBUTES__ReduceAction819(fra.me.REG[0]);
+  parser___ReduceAction819___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction819(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction820[50] = {
+  {(bigint) 1067 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction820 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction820 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1067 /* 4: ReduceAction820 < ReduceAction820: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction820 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction820 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction820___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction820 < ReduceAction820: superclass init_table position */},
+  {(bigint) parser___ReduceAction820___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction820(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction820;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction820(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction820;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction820(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction820;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction820_parser___ReduceAction820___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32975;
+  fra.me.meth = LOCATE_NEW_ReduceAction820_parser___ReduceAction820___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction820();
+  /* ./parser//parser.nit:32975 */
+  INIT_ATTRIBUTES__ReduceAction820(fra.me.REG[0]);
+  parser___ReduceAction820___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction820(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction821[50] = {
+  {(bigint) 1063 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction821 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction821 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1063 /* 4: ReduceAction821 < ReduceAction821: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction821 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction821 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction821___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction821 < ReduceAction821: superclass init_table position */},
+  {(bigint) parser___ReduceAction821___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction821(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction821;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction821(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction821;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction821(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction821;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction821_parser___ReduceAction821___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33014;
+  fra.me.meth = LOCATE_NEW_ReduceAction821_parser___ReduceAction821___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction821();
+  /* ./parser//parser.nit:33014 */
+  INIT_ATTRIBUTES__ReduceAction821(fra.me.REG[0]);
+  parser___ReduceAction821___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction821(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction822[50] = {
+  {(bigint) 1059 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction822 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction822 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1059 /* 4: ReduceAction822 < ReduceAction822: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction822 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction822 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction822___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction822 < ReduceAction822: superclass init_table position */},
+  {(bigint) parser___ReduceAction822___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction822(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction822;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction822(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction822;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction822(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction822;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction822_parser___ReduceAction822___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33053;
+  fra.me.meth = LOCATE_NEW_ReduceAction822_parser___ReduceAction822___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction822();
+  /* ./parser//parser.nit:33053 */
+  INIT_ATTRIBUTES__ReduceAction822(fra.me.REG[0]);
+  parser___ReduceAction822___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction822(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction823[50] = {
+  {(bigint) 1055 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction823 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction823 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1055 /* 4: ReduceAction823 < ReduceAction823: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction823 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction823 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction823___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction823 < ReduceAction823: superclass init_table position */},
+  {(bigint) parser___ReduceAction823___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction823(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction823;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction823(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction823;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction823(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction823;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction823_parser___ReduceAction823___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33092;
+  fra.me.meth = LOCATE_NEW_ReduceAction823_parser___ReduceAction823___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction823();
+  /* ./parser//parser.nit:33092 */
+  INIT_ATTRIBUTES__ReduceAction823(fra.me.REG[0]);
+  parser___ReduceAction823___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction823(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction824[50] = {
+  {(bigint) 1051 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction824 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction824 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1051 /* 4: ReduceAction824 < ReduceAction824: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction824 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction824 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction824___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction824 < ReduceAction824: superclass init_table position */},
+  {(bigint) parser___ReduceAction824___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction824(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction824;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction824(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction824;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction824(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction824;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction824_parser___ReduceAction824___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33135;
+  fra.me.meth = LOCATE_NEW_ReduceAction824_parser___ReduceAction824___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction824();
+  /* ./parser//parser.nit:33135 */
+  INIT_ATTRIBUTES__ReduceAction824(fra.me.REG[0]);
+  parser___ReduceAction824___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction824(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction825[50] = {
+  {(bigint) 1047 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction825 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction825 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1047 /* 4: ReduceAction825 < ReduceAction825: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction825 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction825 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction825___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction825 < ReduceAction825: superclass init_table position */},
+  {(bigint) parser___ReduceAction825___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction825(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction825;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction825(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction825;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction825(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction825;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction825_parser___ReduceAction825___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33174;
+  fra.me.meth = LOCATE_NEW_ReduceAction825_parser___ReduceAction825___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction825();
+  /* ./parser//parser.nit:33174 */
+  INIT_ATTRIBUTES__ReduceAction825(fra.me.REG[0]);
+  parser___ReduceAction825___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction825(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction826[50] = {
+  {(bigint) 1043 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction826 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction826 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1043 /* 4: ReduceAction826 < ReduceAction826: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction826 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction826 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction826___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction826 < ReduceAction826: superclass init_table position */},
+  {(bigint) parser___ReduceAction826___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction826(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction826;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction826(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction826;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction826(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction826;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction826_parser___ReduceAction826___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33217;
+  fra.me.meth = LOCATE_NEW_ReduceAction826_parser___ReduceAction826___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction826();
+  /* ./parser//parser.nit:33217 */
+  INIT_ATTRIBUTES__ReduceAction826(fra.me.REG[0]);
+  parser___ReduceAction826___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction826(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction827[50] = {
+  {(bigint) 1039 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction827 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction827 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1039 /* 4: ReduceAction827 < ReduceAction827: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction827 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction827 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction827___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction827 < ReduceAction827: superclass init_table position */},
+  {(bigint) parser___ReduceAction827___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction827(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction827;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction827(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction827;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction827(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction827;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction827_parser___ReduceAction827___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33264;
+  fra.me.meth = LOCATE_NEW_ReduceAction827_parser___ReduceAction827___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction827();
+  /* ./parser//parser.nit:33264 */
+  INIT_ATTRIBUTES__ReduceAction827(fra.me.REG[0]);
+  parser___ReduceAction827___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction827(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction828[50] = {
+  {(bigint) 1035 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction828 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction828 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1035 /* 4: ReduceAction828 < ReduceAction828: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction828 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction828 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction828___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction828 < ReduceAction828: superclass init_table position */},
+  {(bigint) parser___ReduceAction828___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction828(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction828;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction828(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction828;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction828(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction828;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction828_parser___ReduceAction828___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33306;
+  fra.me.meth = LOCATE_NEW_ReduceAction828_parser___ReduceAction828___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction828();
+  /* ./parser//parser.nit:33306 */
+  INIT_ATTRIBUTES__ReduceAction828(fra.me.REG[0]);
+  parser___ReduceAction828___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction828(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction829[50] = {
+  {(bigint) 1031 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction829 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction829 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1031 /* 4: ReduceAction829 < ReduceAction829: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction829 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction829 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction829___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction829 < ReduceAction829: superclass init_table position */},
+  {(bigint) parser___ReduceAction829___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction829(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction829;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction829(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction829;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction829(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction829;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction829_parser___ReduceAction829___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33348;
+  fra.me.meth = LOCATE_NEW_ReduceAction829_parser___ReduceAction829___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction829();
+  /* ./parser//parser.nit:33348 */
+  INIT_ATTRIBUTES__ReduceAction829(fra.me.REG[0]);
+  parser___ReduceAction829___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction829(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction830[50] = {
+  {(bigint) 1023 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction830 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction830 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1023 /* 4: ReduceAction830 < ReduceAction830: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction830 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction830 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction830___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction830 < ReduceAction830: superclass init_table position */},
+  {(bigint) parser___ReduceAction830___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction830(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction830;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction830(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction830;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction830(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction830;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction830_parser___ReduceAction830___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33390;
+  fra.me.meth = LOCATE_NEW_ReduceAction830_parser___ReduceAction830___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction830();
+  /* ./parser//parser.nit:33390 */
+  INIT_ATTRIBUTES__ReduceAction830(fra.me.REG[0]);
+  parser___ReduceAction830___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction830(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction831[50] = {
+  {(bigint) 1019 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction831 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction831 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1019 /* 4: ReduceAction831 < ReduceAction831: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction831 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction831 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction831___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction831 < ReduceAction831: superclass init_table position */},
+  {(bigint) parser___ReduceAction831___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction831(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction831;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction831(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction831;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction831(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction831;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction831_parser___ReduceAction831___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33432;
+  fra.me.meth = LOCATE_NEW_ReduceAction831_parser___ReduceAction831___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction831();
+  /* ./parser//parser.nit:33432 */
+  INIT_ATTRIBUTES__ReduceAction831(fra.me.REG[0]);
+  parser___ReduceAction831___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction831(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction832[50] = {
+  {(bigint) 1015 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction832 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction832 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1015 /* 4: ReduceAction832 < ReduceAction832: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction832 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction832 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction832___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction832 < ReduceAction832: superclass init_table position */},
+  {(bigint) parser___ReduceAction832___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction832(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction832;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction832(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction832;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction832(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction832;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction832_parser___ReduceAction832___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33474;
+  fra.me.meth = LOCATE_NEW_ReduceAction832_parser___ReduceAction832___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction832();
+  /* ./parser//parser.nit:33474 */
+  INIT_ATTRIBUTES__ReduceAction832(fra.me.REG[0]);
+  parser___ReduceAction832___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction832(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction833[50] = {
+  {(bigint) 1011 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction833 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction833 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1011 /* 4: ReduceAction833 < ReduceAction833: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction833 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction833 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction833___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction833 < ReduceAction833: superclass init_table position */},
+  {(bigint) parser___ReduceAction833___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction833(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction833;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction833(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction833;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction833(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction833;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction833_parser___ReduceAction833___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33516;
+  fra.me.meth = LOCATE_NEW_ReduceAction833_parser___ReduceAction833___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction833();
+  /* ./parser//parser.nit:33516 */
+  INIT_ATTRIBUTES__ReduceAction833(fra.me.REG[0]);
+  parser___ReduceAction833___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction833(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction834[50] = {
+  {(bigint) 1007 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction834 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction834 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1007 /* 4: ReduceAction834 < ReduceAction834: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction834 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction834 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction834___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction834 < ReduceAction834: superclass init_table position */},
+  {(bigint) parser___ReduceAction834___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction834(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction834;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction834(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction834;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction834(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction834;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction834_parser___ReduceAction834___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33558;
+  fra.me.meth = LOCATE_NEW_ReduceAction834_parser___ReduceAction834___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction834();
+  /* ./parser//parser.nit:33558 */
+  INIT_ATTRIBUTES__ReduceAction834(fra.me.REG[0]);
+  parser___ReduceAction834___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction834(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction835[50] = {
+  {(bigint) 1003 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction835 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction835 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1003 /* 4: ReduceAction835 < ReduceAction835: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction835 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction835 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction835___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction835 < ReduceAction835: superclass init_table position */},
+  {(bigint) parser___ReduceAction835___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction835(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction835;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction835(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction835;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction835(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction835;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction835_parser___ReduceAction835___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33600;
+  fra.me.meth = LOCATE_NEW_ReduceAction835_parser___ReduceAction835___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction835();
+  /* ./parser//parser.nit:33600 */
+  INIT_ATTRIBUTES__ReduceAction835(fra.me.REG[0]);
+  parser___ReduceAction835___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction835(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction836[50] = {
+  {(bigint) 999 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction836 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction836 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 999 /* 4: ReduceAction836 < ReduceAction836: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction836 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction836 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction836___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction836 < ReduceAction836: superclass init_table position */},
+  {(bigint) parser___ReduceAction836___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction836(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction836;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction836(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction836;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction836(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction836;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction836_parser___ReduceAction836___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33642;
+  fra.me.meth = LOCATE_NEW_ReduceAction836_parser___ReduceAction836___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction836();
+  /* ./parser//parser.nit:33642 */
+  INIT_ATTRIBUTES__ReduceAction836(fra.me.REG[0]);
+  parser___ReduceAction836___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction836(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction837[50] = {
+  {(bigint) 995 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction837 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction837 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 995 /* 4: ReduceAction837 < ReduceAction837: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction837 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction837 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction837___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction837 < ReduceAction837: superclass init_table position */},
+  {(bigint) parser___ReduceAction837___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction837(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction837;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction837(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction837;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction837(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction837;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction837_parser___ReduceAction837___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33684;
+  fra.me.meth = LOCATE_NEW_ReduceAction837_parser___ReduceAction837___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction837();
+  /* ./parser//parser.nit:33684 */
+  INIT_ATTRIBUTES__ReduceAction837(fra.me.REG[0]);
+  parser___ReduceAction837___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction837(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction838[50] = {
+  {(bigint) 991 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction838 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction838 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 991 /* 4: ReduceAction838 < ReduceAction838: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction838 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction838 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction838___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction838 < ReduceAction838: superclass init_table position */},
+  {(bigint) parser___ReduceAction838___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction838(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction838;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction838(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction838;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction838(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction838;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction838_parser___ReduceAction838___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33726;
+  fra.me.meth = LOCATE_NEW_ReduceAction838_parser___ReduceAction838___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction838();
+  /* ./parser//parser.nit:33726 */
+  INIT_ATTRIBUTES__ReduceAction838(fra.me.REG[0]);
+  parser___ReduceAction838___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction838(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction839[50] = {
+  {(bigint) 987 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction839 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction839 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 987 /* 4: ReduceAction839 < ReduceAction839: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction839 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction839 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction839___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction839 < ReduceAction839: superclass init_table position */},
+  {(bigint) parser___ReduceAction839___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction839(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction839;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction839(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction839;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction839(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction839;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction839_parser___ReduceAction839___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33768;
+  fra.me.meth = LOCATE_NEW_ReduceAction839_parser___ReduceAction839___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction839();
+  /* ./parser//parser.nit:33768 */
+  INIT_ATTRIBUTES__ReduceAction839(fra.me.REG[0]);
+  parser___ReduceAction839___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction839(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction840[50] = {
+  {(bigint) 979 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction840 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction840 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 979 /* 4: ReduceAction840 < ReduceAction840: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction840 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction840 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction840___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction840 < ReduceAction840: superclass init_table position */},
+  {(bigint) parser___ReduceAction840___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction840(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction840;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction840(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction840;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction840(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction840;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction840_parser___ReduceAction840___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33814;
+  fra.me.meth = LOCATE_NEW_ReduceAction840_parser___ReduceAction840___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction840();
+  /* ./parser//parser.nit:33814 */
+  INIT_ATTRIBUTES__ReduceAction840(fra.me.REG[0]);
+  parser___ReduceAction840___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction840(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction841[50] = {
+  {(bigint) 975 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction841 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction841 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 975 /* 4: ReduceAction841 < ReduceAction841: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction841 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction841 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction841___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction841 < ReduceAction841: superclass init_table position */},
+  {(bigint) parser___ReduceAction841___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction841(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction841;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction841(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction841;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction841(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction841;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction841_parser___ReduceAction841___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33856;
+  fra.me.meth = LOCATE_NEW_ReduceAction841_parser___ReduceAction841___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction841();
+  /* ./parser//parser.nit:33856 */
+  INIT_ATTRIBUTES__ReduceAction841(fra.me.REG[0]);
+  parser___ReduceAction841___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction841(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction842[50] = {
+  {(bigint) 971 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction842 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction842 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 971 /* 4: ReduceAction842 < ReduceAction842: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction842 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction842 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction842___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction842 < ReduceAction842: superclass init_table position */},
+  {(bigint) parser___ReduceAction842___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction842(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction842;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction842(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction842;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction842(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction842;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction842_parser___ReduceAction842___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33902;
+  fra.me.meth = LOCATE_NEW_ReduceAction842_parser___ReduceAction842___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction842();
+  /* ./parser//parser.nit:33902 */
+  INIT_ATTRIBUTES__ReduceAction842(fra.me.REG[0]);
+  parser___ReduceAction842___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction842(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction843[50] = {
+  {(bigint) 967 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction843 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction843 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 967 /* 4: ReduceAction843 < ReduceAction843: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction843 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction843 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction843___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction843 < ReduceAction843: superclass init_table position */},
+  {(bigint) parser___ReduceAction843___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction843(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction843;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction843(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction843;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction843(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction843;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction843_parser___ReduceAction843___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33952;
+  fra.me.meth = LOCATE_NEW_ReduceAction843_parser___ReduceAction843___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction843();
+  /* ./parser//parser.nit:33952 */
+  INIT_ATTRIBUTES__ReduceAction843(fra.me.REG[0]);
+  parser___ReduceAction843___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction843(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction844[50] = {
+  {(bigint) 963 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction844 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction844 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 963 /* 4: ReduceAction844 < ReduceAction844: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction844 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction844 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction844___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction844 < ReduceAction844: superclass init_table position */},
+  {(bigint) parser___ReduceAction844___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction844(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction844;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction844(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction844;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction844(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction844;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction844_parser___ReduceAction844___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33994;
+  fra.me.meth = LOCATE_NEW_ReduceAction844_parser___ReduceAction844___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction844();
+  /* ./parser//parser.nit:33994 */
+  INIT_ATTRIBUTES__ReduceAction844(fra.me.REG[0]);
+  parser___ReduceAction844___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction844(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction845[50] = {
+  {(bigint) 959 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction845 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction845 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 959 /* 4: ReduceAction845 < ReduceAction845: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction845 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction845 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction845___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction845 < ReduceAction845: superclass init_table position */},
+  {(bigint) parser___ReduceAction845___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction845(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction845;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction845(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction845;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction845(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction845;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction845_parser___ReduceAction845___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34036;
+  fra.me.meth = LOCATE_NEW_ReduceAction845_parser___ReduceAction845___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction845();
+  /* ./parser//parser.nit:34036 */
+  INIT_ATTRIBUTES__ReduceAction845(fra.me.REG[0]);
+  parser___ReduceAction845___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction845(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction846[50] = {
+  {(bigint) 955 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction846 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction846 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 955 /* 4: ReduceAction846 < ReduceAction846: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction846 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction846 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction846___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction846 < ReduceAction846: superclass init_table position */},
+  {(bigint) parser___ReduceAction846___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction846(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction846;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction846(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction846;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction846(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction846;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction846_parser___ReduceAction846___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34078;
+  fra.me.meth = LOCATE_NEW_ReduceAction846_parser___ReduceAction846___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction846();
+  /* ./parser//parser.nit:34078 */
+  INIT_ATTRIBUTES__ReduceAction846(fra.me.REG[0]);
+  parser___ReduceAction846___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction846(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction847[50] = {
+  {(bigint) 951 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction847 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction847 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 951 /* 4: ReduceAction847 < ReduceAction847: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction847 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction847 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction847___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction847 < ReduceAction847: superclass init_table position */},
+  {(bigint) parser___ReduceAction847___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction847(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction847;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction847(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction847;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction847(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction847;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction847_parser___ReduceAction847___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34120;
+  fra.me.meth = LOCATE_NEW_ReduceAction847_parser___ReduceAction847___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction847();
+  /* ./parser//parser.nit:34120 */
+  INIT_ATTRIBUTES__ReduceAction847(fra.me.REG[0]);
+  parser___ReduceAction847___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction847(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction848[50] = {
+  {(bigint) 947 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction848 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction848 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 947 /* 4: ReduceAction848 < ReduceAction848: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction848 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction848 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction848___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction848 < ReduceAction848: superclass init_table position */},
+  {(bigint) parser___ReduceAction848___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction848(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction848;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction848(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction848;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction848(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction848;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction848_parser___ReduceAction848___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34162;
+  fra.me.meth = LOCATE_NEW_ReduceAction848_parser___ReduceAction848___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction848();
+  /* ./parser//parser.nit:34162 */
+  INIT_ATTRIBUTES__ReduceAction848(fra.me.REG[0]);
+  parser___ReduceAction848___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction848(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction849[50] = {
+  {(bigint) 943 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction849 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction849 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 943 /* 4: ReduceAction849 < ReduceAction849: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction849 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction849 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction849___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction849 < ReduceAction849: superclass init_table position */},
+  {(bigint) parser___ReduceAction849___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction849(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction849;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction849(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction849;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction849(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction849;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction849_parser___ReduceAction849___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34204;
+  fra.me.meth = LOCATE_NEW_ReduceAction849_parser___ReduceAction849___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction849();
+  /* ./parser//parser.nit:34204 */
+  INIT_ATTRIBUTES__ReduceAction849(fra.me.REG[0]);
+  parser___ReduceAction849___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction849(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction850[50] = {
+  {(bigint) 935 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction850 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction850 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 935 /* 4: ReduceAction850 < ReduceAction850: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction850 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction850 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction850___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction850 < ReduceAction850: superclass init_table position */},
+  {(bigint) parser___ReduceAction850___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction850(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction850;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction850(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction850;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction850(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction850;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction850_parser___ReduceAction850___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34246;
+  fra.me.meth = LOCATE_NEW_ReduceAction850_parser___ReduceAction850___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction850();
+  /* ./parser//parser.nit:34246 */
+  INIT_ATTRIBUTES__ReduceAction850(fra.me.REG[0]);
+  parser___ReduceAction850___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction850(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction851[50] = {
+  {(bigint) 931 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction851 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction851 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 931 /* 4: ReduceAction851 < ReduceAction851: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction851 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction851 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction851___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction851 < ReduceAction851: superclass init_table position */},
+  {(bigint) parser___ReduceAction851___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction851(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction851;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction851(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction851;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction851(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction851;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction851_parser___ReduceAction851___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34288;
+  fra.me.meth = LOCATE_NEW_ReduceAction851_parser___ReduceAction851___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction851();
+  /* ./parser//parser.nit:34288 */
+  INIT_ATTRIBUTES__ReduceAction851(fra.me.REG[0]);
+  parser___ReduceAction851___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction851(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction852[50] = {
+  {(bigint) 927 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction852 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction852 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 927 /* 4: ReduceAction852 < ReduceAction852: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction852 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction852 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction852___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction852 < ReduceAction852: superclass init_table position */},
+  {(bigint) parser___ReduceAction852___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction852(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction852;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction852(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction852;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction852(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction852;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction852_parser___ReduceAction852___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34330;
+  fra.me.meth = LOCATE_NEW_ReduceAction852_parser___ReduceAction852___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction852();
+  /* ./parser//parser.nit:34330 */
+  INIT_ATTRIBUTES__ReduceAction852(fra.me.REG[0]);
+  parser___ReduceAction852___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction852(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction853[50] = {
+  {(bigint) 923 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction853 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction853 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 923 /* 4: ReduceAction853 < ReduceAction853: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction853 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction853 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction853___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction853 < ReduceAction853: superclass init_table position */},
+  {(bigint) parser___ReduceAction853___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction853(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction853;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction853(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction853;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction853(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction853;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction853_parser___ReduceAction853___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34372;
+  fra.me.meth = LOCATE_NEW_ReduceAction853_parser___ReduceAction853___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction853();
+  /* ./parser//parser.nit:34372 */
+  INIT_ATTRIBUTES__ReduceAction853(fra.me.REG[0]);
+  parser___ReduceAction853___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction853(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction854[50] = {
+  {(bigint) 919 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction854 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction854 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 919 /* 4: ReduceAction854 < ReduceAction854: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction854 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction854 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction854___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction854 < ReduceAction854: superclass init_table position */},
+  {(bigint) parser___ReduceAction854___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction854(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction854;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction854(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction854;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction854(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction854;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction854_parser___ReduceAction854___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34414;
+  fra.me.meth = LOCATE_NEW_ReduceAction854_parser___ReduceAction854___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction854();
+  /* ./parser//parser.nit:34414 */
+  INIT_ATTRIBUTES__ReduceAction854(fra.me.REG[0]);
+  parser___ReduceAction854___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction854(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction855[50] = {
+  {(bigint) 915 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction855 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction855 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 915 /* 4: ReduceAction855 < ReduceAction855: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction855 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction855 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction855___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction855 < ReduceAction855: superclass init_table position */},
+  {(bigint) parser___ReduceAction855___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction855(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction855;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction855(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction855;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction855(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction855;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction855_parser___ReduceAction855___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34456;
+  fra.me.meth = LOCATE_NEW_ReduceAction855_parser___ReduceAction855___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction855();
+  /* ./parser//parser.nit:34456 */
+  INIT_ATTRIBUTES__ReduceAction855(fra.me.REG[0]);
+  parser___ReduceAction855___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction855(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction856[50] = {
+  {(bigint) 911 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction856 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction856 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 911 /* 4: ReduceAction856 < ReduceAction856: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction856 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction856 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction856___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction856 < ReduceAction856: superclass init_table position */},
+  {(bigint) parser___ReduceAction856___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction856(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction856;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction856(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction856;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction856(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction856;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction856_parser___ReduceAction856___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34502;
+  fra.me.meth = LOCATE_NEW_ReduceAction856_parser___ReduceAction856___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction856();
+  /* ./parser//parser.nit:34502 */
+  INIT_ATTRIBUTES__ReduceAction856(fra.me.REG[0]);
+  parser___ReduceAction856___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction856(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction857[50] = {
+  {(bigint) 907 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction857 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction857 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 907 /* 4: ReduceAction857 < ReduceAction857: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction857 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction857 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction857___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction857 < ReduceAction857: superclass init_table position */},
+  {(bigint) parser___ReduceAction857___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction857(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction857;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction857(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction857;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction857(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction857;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction857_parser___ReduceAction857___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34544;
+  fra.me.meth = LOCATE_NEW_ReduceAction857_parser___ReduceAction857___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction857();
+  /* ./parser//parser.nit:34544 */
+  INIT_ATTRIBUTES__ReduceAction857(fra.me.REG[0]);
+  parser___ReduceAction857___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction857(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction858[50] = {
+  {(bigint) 903 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction858 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction858 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 903 /* 4: ReduceAction858 < ReduceAction858: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction858 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction858 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction858___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction858 < ReduceAction858: superclass init_table position */},
+  {(bigint) parser___ReduceAction858___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction858(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction858;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction858(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction858;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction858(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction858;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction858_parser___ReduceAction858___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34590;
+  fra.me.meth = LOCATE_NEW_ReduceAction858_parser___ReduceAction858___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction858();
+  /* ./parser//parser.nit:34590 */
+  INIT_ATTRIBUTES__ReduceAction858(fra.me.REG[0]);
+  parser___ReduceAction858___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction858(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction859[50] = {
+  {(bigint) 899 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction859 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction859 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 899 /* 4: ReduceAction859 < ReduceAction859: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction859 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction859 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction859___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction859 < ReduceAction859: superclass init_table position */},
+  {(bigint) parser___ReduceAction859___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction859(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction859;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction859(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction859;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction859(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction859;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction859_parser___ReduceAction859___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34640;
+  fra.me.meth = LOCATE_NEW_ReduceAction859_parser___ReduceAction859___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction859();
+  /* ./parser//parser.nit:34640 */
+  INIT_ATTRIBUTES__ReduceAction859(fra.me.REG[0]);
+  parser___ReduceAction859___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction859(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction860[50] = {
+  {(bigint) 891 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction860 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction860 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 891 /* 4: ReduceAction860 < ReduceAction860: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction860 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction860 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction860___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction860 < ReduceAction860: superclass init_table position */},
+  {(bigint) parser___ReduceAction860___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction860(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction860;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction860(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction860;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction860(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction860;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction860_parser___ReduceAction860___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34685;
+  fra.me.meth = LOCATE_NEW_ReduceAction860_parser___ReduceAction860___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction860();
+  /* ./parser//parser.nit:34685 */
+  INIT_ATTRIBUTES__ReduceAction860(fra.me.REG[0]);
+  parser___ReduceAction860___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction860(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction861[50] = {
+  {(bigint) 887 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction861 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction861 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 887 /* 4: ReduceAction861 < ReduceAction861: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction861 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction861 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction861___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction861 < ReduceAction861: superclass init_table position */},
+  {(bigint) parser___ReduceAction861___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction861(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction861;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction861(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction861;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction861(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction861;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction861_parser___ReduceAction861___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34730;
+  fra.me.meth = LOCATE_NEW_ReduceAction861_parser___ReduceAction861___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction861();
+  /* ./parser//parser.nit:34730 */
+  INIT_ATTRIBUTES__ReduceAction861(fra.me.REG[0]);
+  parser___ReduceAction861___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction861(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction862[50] = {
+  {(bigint) 883 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction862 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction862 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 883 /* 4: ReduceAction862 < ReduceAction862: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction862 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction862 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction862___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction862 < ReduceAction862: superclass init_table position */},
+  {(bigint) parser___ReduceAction862___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction862(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction862;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction862(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction862;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction862(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction862;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction862_parser___ReduceAction862___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34775;
+  fra.me.meth = LOCATE_NEW_ReduceAction862_parser___ReduceAction862___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction862();
+  /* ./parser//parser.nit:34775 */
+  INIT_ATTRIBUTES__ReduceAction862(fra.me.REG[0]);
+  parser___ReduceAction862___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction862(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction863[50] = {
+  {(bigint) 879 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction863 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction863 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 879 /* 4: ReduceAction863 < ReduceAction863: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction863 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction863 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction863___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction863 < ReduceAction863: superclass init_table position */},
+  {(bigint) parser___ReduceAction863___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction863(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction863;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction863(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction863;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction863(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction863;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction863_parser___ReduceAction863___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34820;
+  fra.me.meth = LOCATE_NEW_ReduceAction863_parser___ReduceAction863___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction863();
+  /* ./parser//parser.nit:34820 */
+  INIT_ATTRIBUTES__ReduceAction863(fra.me.REG[0]);
+  parser___ReduceAction863___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction863(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction864[50] = {
+  {(bigint) 875 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction864 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction864 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 875 /* 4: ReduceAction864 < ReduceAction864: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction864 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction864 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction864___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction864 < ReduceAction864: superclass init_table position */},
+  {(bigint) parser___ReduceAction864___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction864(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction864;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction864(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction864;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction864(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction864;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction864_parser___ReduceAction864___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34865;
+  fra.me.meth = LOCATE_NEW_ReduceAction864_parser___ReduceAction864___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction864();
+  /* ./parser//parser.nit:34865 */
+  INIT_ATTRIBUTES__ReduceAction864(fra.me.REG[0]);
+  parser___ReduceAction864___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction864(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction865[50] = {
+  {(bigint) 871 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction865 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction865 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 871 /* 4: ReduceAction865 < ReduceAction865: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction865 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction865 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction865___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction865 < ReduceAction865: superclass init_table position */},
+  {(bigint) parser___ReduceAction865___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction865(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction865;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction865(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction865;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction865(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction865;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction865_parser___ReduceAction865___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34910;
+  fra.me.meth = LOCATE_NEW_ReduceAction865_parser___ReduceAction865___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction865();
+  /* ./parser//parser.nit:34910 */
+  INIT_ATTRIBUTES__ReduceAction865(fra.me.REG[0]);
+  parser___ReduceAction865___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction865(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction866[50] = {
+  {(bigint) 867 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction866 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction866 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 867 /* 4: ReduceAction866 < ReduceAction866: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction866 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction866 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction866___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction866 < ReduceAction866: superclass init_table position */},
+  {(bigint) parser___ReduceAction866___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction866(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction866;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction866(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction866;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction866(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction866;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction866_parser___ReduceAction866___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 34955;
+  fra.me.meth = LOCATE_NEW_ReduceAction866_parser___ReduceAction866___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction866();
+  /* ./parser//parser.nit:34955 */
+  INIT_ATTRIBUTES__ReduceAction866(fra.me.REG[0]);
+  parser___ReduceAction866___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction866(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction867[50] = {
+  {(bigint) 863 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction867 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction867 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 863 /* 4: ReduceAction867 < ReduceAction867: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction867 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction867 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction867___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction867 < ReduceAction867: superclass init_table position */},
+  {(bigint) parser___ReduceAction867___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction867(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction867;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction867(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction867;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction867(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction867;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction867_parser___ReduceAction867___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35000;
+  fra.me.meth = LOCATE_NEW_ReduceAction867_parser___ReduceAction867___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction867();
+  /* ./parser//parser.nit:35000 */
+  INIT_ATTRIBUTES__ReduceAction867(fra.me.REG[0]);
+  parser___ReduceAction867___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction867(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction868[50] = {
+  {(bigint) 859 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction868 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction868 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 859 /* 4: ReduceAction868 < ReduceAction868: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction868 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction868 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction868___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction868 < ReduceAction868: superclass init_table position */},
+  {(bigint) parser___ReduceAction868___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction868(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction868;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction868(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction868;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction868(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction868;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction868_parser___ReduceAction868___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35045;
+  fra.me.meth = LOCATE_NEW_ReduceAction868_parser___ReduceAction868___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction868();
+  /* ./parser//parser.nit:35045 */
+  INIT_ATTRIBUTES__ReduceAction868(fra.me.REG[0]);
+  parser___ReduceAction868___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction868(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction869[50] = {
+  {(bigint) 855 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction869 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction869 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 855 /* 4: ReduceAction869 < ReduceAction869: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction869 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction869 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction869___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction869 < ReduceAction869: superclass init_table position */},
+  {(bigint) parser___ReduceAction869___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction869(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction869;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction869(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction869;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction869(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction869;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction869_parser___ReduceAction869___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35090;
+  fra.me.meth = LOCATE_NEW_ReduceAction869_parser___ReduceAction869___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction869();
+  /* ./parser//parser.nit:35090 */
+  INIT_ATTRIBUTES__ReduceAction869(fra.me.REG[0]);
+  parser___ReduceAction869___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction869(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction870[50] = {
+  {(bigint) 847 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction870 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction870 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 847 /* 4: ReduceAction870 < ReduceAction870: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction870 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction870 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction870___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction870 < ReduceAction870: superclass init_table position */},
+  {(bigint) parser___ReduceAction870___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction870(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction870;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction870(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction870;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction870(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction870;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction870_parser___ReduceAction870___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35135;
+  fra.me.meth = LOCATE_NEW_ReduceAction870_parser___ReduceAction870___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction870();
+  /* ./parser//parser.nit:35135 */
+  INIT_ATTRIBUTES__ReduceAction870(fra.me.REG[0]);
+  parser___ReduceAction870___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction870(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction871[50] = {
+  {(bigint) 843 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction871 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction871 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 843 /* 4: ReduceAction871 < ReduceAction871: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction871 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction871 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction871___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction871 < ReduceAction871: superclass init_table position */},
+  {(bigint) parser___ReduceAction871___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction871(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction871;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction871(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction871;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction871(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction871;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction871_parser___ReduceAction871___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35180;
+  fra.me.meth = LOCATE_NEW_ReduceAction871_parser___ReduceAction871___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction871();
+  /* ./parser//parser.nit:35180 */
+  INIT_ATTRIBUTES__ReduceAction871(fra.me.REG[0]);
+  parser___ReduceAction871___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction871(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction872[50] = {
+  {(bigint) 839 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction872 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction872 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 839 /* 4: ReduceAction872 < ReduceAction872: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction872 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction872 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction872___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction872 < ReduceAction872: superclass init_table position */},
+  {(bigint) parser___ReduceAction872___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction872(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction872;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction872(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction872;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction872(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction872;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction872_parser___ReduceAction872___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35229;
+  fra.me.meth = LOCATE_NEW_ReduceAction872_parser___ReduceAction872___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction872();
+  /* ./parser//parser.nit:35229 */
+  INIT_ATTRIBUTES__ReduceAction872(fra.me.REG[0]);
+  parser___ReduceAction872___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction872(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction873[50] = {
+  {(bigint) 835 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction873 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction873 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 835 /* 4: ReduceAction873 < ReduceAction873: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction873 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction873 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction873___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction873 < ReduceAction873: superclass init_table position */},
+  {(bigint) parser___ReduceAction873___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction873(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction873;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction873(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction873;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction873(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction873;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction873_parser___ReduceAction873___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35274;
+  fra.me.meth = LOCATE_NEW_ReduceAction873_parser___ReduceAction873___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction873();
+  /* ./parser//parser.nit:35274 */
+  INIT_ATTRIBUTES__ReduceAction873(fra.me.REG[0]);
+  parser___ReduceAction873___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction873(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction874[50] = {
+  {(bigint) 831 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction874 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction874 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 831 /* 4: ReduceAction874 < ReduceAction874: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction874 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction874 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction874___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction874 < ReduceAction874: superclass init_table position */},
+  {(bigint) parser___ReduceAction874___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction874(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction874;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction874(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction874;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction874(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction874;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction874_parser___ReduceAction874___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35323;
+  fra.me.meth = LOCATE_NEW_ReduceAction874_parser___ReduceAction874___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction874();
+  /* ./parser//parser.nit:35323 */
+  INIT_ATTRIBUTES__ReduceAction874(fra.me.REG[0]);
+  parser___ReduceAction874___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction874(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction875[50] = {
+  {(bigint) 827 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction875 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction875 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 827 /* 4: ReduceAction875 < ReduceAction875: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction875 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction875 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction875___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction875 < ReduceAction875: superclass init_table position */},
+  {(bigint) parser___ReduceAction875___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction875(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction875;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction875(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction875;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction875(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction875;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction875_parser___ReduceAction875___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35376;
+  fra.me.meth = LOCATE_NEW_ReduceAction875_parser___ReduceAction875___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction875();
+  /* ./parser//parser.nit:35376 */
+  INIT_ATTRIBUTES__ReduceAction875(fra.me.REG[0]);
+  parser___ReduceAction875___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction875(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction876[50] = {
+  {(bigint) 823 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction876 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction876 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 823 /* 4: ReduceAction876 < ReduceAction876: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction876 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction876 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction876___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction876 < ReduceAction876: superclass init_table position */},
+  {(bigint) parser___ReduceAction876___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction876(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction876;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction876(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction876;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction876(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction876;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction876_parser___ReduceAction876___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35406;
+  fra.me.meth = LOCATE_NEW_ReduceAction876_parser___ReduceAction876___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction876();
+  /* ./parser//parser.nit:35406 */
+  INIT_ATTRIBUTES__ReduceAction876(fra.me.REG[0]);
+  parser___ReduceAction876___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction876(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction877[50] = {
+  {(bigint) 819 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction877 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction877 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 819 /* 4: ReduceAction877 < ReduceAction877: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction877 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction877 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction877___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction877 < ReduceAction877: superclass init_table position */},
+  {(bigint) parser___ReduceAction877___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction877(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction877;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction877(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction877;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction877(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction877;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction877_parser___ReduceAction877___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35446;
+  fra.me.meth = LOCATE_NEW_ReduceAction877_parser___ReduceAction877___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction877();
+  /* ./parser//parser.nit:35446 */
+  INIT_ATTRIBUTES__ReduceAction877(fra.me.REG[0]);
+  parser___ReduceAction877___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction877(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction878[50] = {
+  {(bigint) 815 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction878 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction878 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 815 /* 4: ReduceAction878 < ReduceAction878: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction878 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction878 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction878___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction878 < ReduceAction878: superclass init_table position */},
+  {(bigint) parser___ReduceAction878___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction878(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction878;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction878(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction878;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction878(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction878;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction878_parser___ReduceAction878___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35467;
+  fra.me.meth = LOCATE_NEW_ReduceAction878_parser___ReduceAction878___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction878();
+  /* ./parser//parser.nit:35467 */
+  INIT_ATTRIBUTES__ReduceAction878(fra.me.REG[0]);
+  parser___ReduceAction878___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction878(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction879[50] = {
+  {(bigint) 811 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction879 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction879 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 811 /* 4: ReduceAction879 < ReduceAction879: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction879 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction879 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction879___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction879 < ReduceAction879: superclass init_table position */},
+  {(bigint) parser___ReduceAction879___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction879(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction879;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction879(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction879;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction879(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction879;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction879_parser___ReduceAction879___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35498;
+  fra.me.meth = LOCATE_NEW_ReduceAction879_parser___ReduceAction879___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction879();
+  /* ./parser//parser.nit:35498 */
+  INIT_ATTRIBUTES__ReduceAction879(fra.me.REG[0]);
+  parser___ReduceAction879___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction879(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction880[50] = {
+  {(bigint) 803 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction880 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction880 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 803 /* 4: ReduceAction880 < ReduceAction880: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction880 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction880 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction880___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction880 < ReduceAction880: superclass init_table position */},
+  {(bigint) parser___ReduceAction880___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction880(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction880;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction880(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction880;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction880(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction880;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction880_parser___ReduceAction880___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35517;
+  fra.me.meth = LOCATE_NEW_ReduceAction880_parser___ReduceAction880___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction880();
+  /* ./parser//parser.nit:35517 */
+  INIT_ATTRIBUTES__ReduceAction880(fra.me.REG[0]);
+  parser___ReduceAction880___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction880(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction881[50] = {
+  {(bigint) 799 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction881 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction881 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 799 /* 4: ReduceAction881 < ReduceAction881: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction881 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction881 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction881___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction881 < ReduceAction881: superclass init_table position */},
+  {(bigint) parser___ReduceAction881___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction881(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction881;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction881(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction881;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction881(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction881;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction881_parser___ReduceAction881___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35539;
+  fra.me.meth = LOCATE_NEW_ReduceAction881_parser___ReduceAction881___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction881();
+  /* ./parser//parser.nit:35539 */
+  INIT_ATTRIBUTES__ReduceAction881(fra.me.REG[0]);
+  parser___ReduceAction881___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction881(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction882[50] = {
+  {(bigint) 795 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction882 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction882 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 795 /* 4: ReduceAction882 < ReduceAction882: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction882 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction882 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction882___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction882 < ReduceAction882: superclass init_table position */},
+  {(bigint) parser___ReduceAction882___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction882(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction882;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction882(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction882;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction882(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction882;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction882_parser___ReduceAction882___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35552;
+  fra.me.meth = LOCATE_NEW_ReduceAction882_parser___ReduceAction882___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction882();
+  /* ./parser//parser.nit:35552 */
+  INIT_ATTRIBUTES__ReduceAction882(fra.me.REG[0]);
+  parser___ReduceAction882___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction882(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction883[50] = {
+  {(bigint) 791 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction883 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction883 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 791 /* 4: ReduceAction883 < ReduceAction883: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction883 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction883 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction883___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction883 < ReduceAction883: superclass init_table position */},
+  {(bigint) parser___ReduceAction883___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction883(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction883;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction883(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction883;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction883(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction883;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction883_parser___ReduceAction883___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35598;
+  fra.me.meth = LOCATE_NEW_ReduceAction883_parser___ReduceAction883___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction883();
+  /* ./parser//parser.nit:35598 */
+  INIT_ATTRIBUTES__ReduceAction883(fra.me.REG[0]);
+  parser___ReduceAction883___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction883(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction884[50] = {
+  {(bigint) 787 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction884 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction884 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 787 /* 4: ReduceAction884 < ReduceAction884: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction884 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction884 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction884___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction884 < ReduceAction884: superclass init_table position */},
+  {(bigint) parser___ReduceAction884___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction884(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction884;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction884(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction884;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction884(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction884;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction884_parser___ReduceAction884___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35641;
+  fra.me.meth = LOCATE_NEW_ReduceAction884_parser___ReduceAction884___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction884();
+  /* ./parser//parser.nit:35641 */
+  INIT_ATTRIBUTES__ReduceAction884(fra.me.REG[0]);
+  parser___ReduceAction884___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction884(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction885[50] = {
+  {(bigint) 783 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction885 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction885 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 783 /* 4: ReduceAction885 < ReduceAction885: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction885 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction885 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction885___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction885 < ReduceAction885: superclass init_table position */},
+  {(bigint) parser___ReduceAction885___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction885(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction885;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction885(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction885;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction885(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction885;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction885_parser___ReduceAction885___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35654;
+  fra.me.meth = LOCATE_NEW_ReduceAction885_parser___ReduceAction885___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction885();
+  /* ./parser//parser.nit:35654 */
+  INIT_ATTRIBUTES__ReduceAction885(fra.me.REG[0]);
+  parser___ReduceAction885___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction885(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction886[50] = {
+  {(bigint) 779 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction886 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction886 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 779 /* 4: ReduceAction886 < ReduceAction886: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction886 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction886 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction886___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction886 < ReduceAction886: superclass init_table position */},
+  {(bigint) parser___ReduceAction886___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction886(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction886;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction886(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction886;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction886(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction886;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction886_parser___ReduceAction886___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35695;
+  fra.me.meth = LOCATE_NEW_ReduceAction886_parser___ReduceAction886___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction886();
+  /* ./parser//parser.nit:35695 */
+  INIT_ATTRIBUTES__ReduceAction886(fra.me.REG[0]);
+  parser___ReduceAction886___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction886(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction887[50] = {
+  {(bigint) 775 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction887 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction887 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 775 /* 4: ReduceAction887 < ReduceAction887: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction887 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction887 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction887___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction887 < ReduceAction887: superclass init_table position */},
+  {(bigint) parser___ReduceAction887___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction887(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction887;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction887(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction887;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction887(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction887;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction887_parser___ReduceAction887___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35708;
+  fra.me.meth = LOCATE_NEW_ReduceAction887_parser___ReduceAction887___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction887();
+  /* ./parser//parser.nit:35708 */
+  INIT_ATTRIBUTES__ReduceAction887(fra.me.REG[0]);
+  parser___ReduceAction887___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction887(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction888[50] = {
+  {(bigint) 771 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction888 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction888 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 771 /* 4: ReduceAction888 < ReduceAction888: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction888 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction888 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction888___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction888 < ReduceAction888: superclass init_table position */},
+  {(bigint) parser___ReduceAction888___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction888(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction888;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction888(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction888;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction888(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction888;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction888_parser___ReduceAction888___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35730;
+  fra.me.meth = LOCATE_NEW_ReduceAction888_parser___ReduceAction888___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction888();
+  /* ./parser//parser.nit:35730 */
+  INIT_ATTRIBUTES__ReduceAction888(fra.me.REG[0]);
+  parser___ReduceAction888___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction888(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction889[50] = {
+  {(bigint) 767 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction889 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction889 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 767 /* 4: ReduceAction889 < ReduceAction889: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction889 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction889 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction889___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction889 < ReduceAction889: superclass init_table position */},
+  {(bigint) parser___ReduceAction889___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction889(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction889;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction889(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction889;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction889(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction889;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction889_parser___ReduceAction889___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35752;
+  fra.me.meth = LOCATE_NEW_ReduceAction889_parser___ReduceAction889___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction889();
+  /* ./parser//parser.nit:35752 */
+  INIT_ATTRIBUTES__ReduceAction889(fra.me.REG[0]);
+  parser___ReduceAction889___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction889(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction890[50] = {
+  {(bigint) 759 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction890 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction890 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 759 /* 4: ReduceAction890 < ReduceAction890: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction890 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction890 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction890___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction890 < ReduceAction890: superclass init_table position */},
+  {(bigint) parser___ReduceAction890___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction890(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction890;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction890(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction890;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction890(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction890;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction890_parser___ReduceAction890___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35765;
+  fra.me.meth = LOCATE_NEW_ReduceAction890_parser___ReduceAction890___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction890();
+  /* ./parser//parser.nit:35765 */
+  INIT_ATTRIBUTES__ReduceAction890(fra.me.REG[0]);
+  parser___ReduceAction890___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction890(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction891[50] = {
+  {(bigint) 755 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction891 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction891 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 755 /* 4: ReduceAction891 < ReduceAction891: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction891 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction891 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction891___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction891 < ReduceAction891: superclass init_table position */},
+  {(bigint) parser___ReduceAction891___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction891(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction891;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction891(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction891;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction891(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction891;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction891_parser___ReduceAction891___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35786;
+  fra.me.meth = LOCATE_NEW_ReduceAction891_parser___ReduceAction891___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction891();
+  /* ./parser//parser.nit:35786 */
+  INIT_ATTRIBUTES__ReduceAction891(fra.me.REG[0]);
+  parser___ReduceAction891___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction891(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction892[50] = {
+  {(bigint) 751 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction892 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction892 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 751 /* 4: ReduceAction892 < ReduceAction892: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction892 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction892 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction892___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction892 < ReduceAction892: superclass init_table position */},
+  {(bigint) parser___ReduceAction892___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction892(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction892;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction892(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction892;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction892(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction892;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction892_parser___ReduceAction892___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35799;
+  fra.me.meth = LOCATE_NEW_ReduceAction892_parser___ReduceAction892___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction892();
+  /* ./parser//parser.nit:35799 */
+  INIT_ATTRIBUTES__ReduceAction892(fra.me.REG[0]);
+  parser___ReduceAction892___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction892(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction893[50] = {
+  {(bigint) 747 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction893 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction893 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 747 /* 4: ReduceAction893 < ReduceAction893: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction893 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction893 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction893___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction893 < ReduceAction893: superclass init_table position */},
+  {(bigint) parser___ReduceAction893___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction893(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction893;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction893(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction893;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction893(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction893;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction893_parser___ReduceAction893___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35821;
+  fra.me.meth = LOCATE_NEW_ReduceAction893_parser___ReduceAction893___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction893();
+  /* ./parser//parser.nit:35821 */
+  INIT_ATTRIBUTES__ReduceAction893(fra.me.REG[0]);
+  parser___ReduceAction893___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction893(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction894[50] = {
+  {(bigint) 743 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction894 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction894 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 743 /* 4: ReduceAction894 < ReduceAction894: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction894 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction894 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction894___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction894 < ReduceAction894: superclass init_table position */},
+  {(bigint) parser___ReduceAction894___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction894(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction894;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction894(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction894;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction894(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction894;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction894_parser___ReduceAction894___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35843;
+  fra.me.meth = LOCATE_NEW_ReduceAction894_parser___ReduceAction894___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction894();
+  /* ./parser//parser.nit:35843 */
+  INIT_ATTRIBUTES__ReduceAction894(fra.me.REG[0]);
+  parser___ReduceAction894___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction894(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction895[50] = {
+  {(bigint) 739 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction895 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction895 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 739 /* 4: ReduceAction895 < ReduceAction895: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction895 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction895 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction895___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction895 < ReduceAction895: superclass init_table position */},
+  {(bigint) parser___ReduceAction895___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction895(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction895;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction895(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction895;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction895(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction895;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction895_parser___ReduceAction895___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35865;
+  fra.me.meth = LOCATE_NEW_ReduceAction895_parser___ReduceAction895___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction895();
+  /* ./parser//parser.nit:35865 */
+  INIT_ATTRIBUTES__ReduceAction895(fra.me.REG[0]);
+  parser___ReduceAction895___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction895(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction896[50] = {
+  {(bigint) 735 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction896 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction896 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 735 /* 4: ReduceAction896 < ReduceAction896: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction896 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction896 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction896___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction896 < ReduceAction896: superclass init_table position */},
+  {(bigint) parser___ReduceAction896___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction896(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction896;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction896(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction896;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction896(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction896;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction896_parser___ReduceAction896___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35887;
+  fra.me.meth = LOCATE_NEW_ReduceAction896_parser___ReduceAction896___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction896();
+  /* ./parser//parser.nit:35887 */
+  INIT_ATTRIBUTES__ReduceAction896(fra.me.REG[0]);
+  parser___ReduceAction896___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction896(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction897[50] = {
+  {(bigint) 731 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction897 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction897 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 731 /* 4: ReduceAction897 < ReduceAction897: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction897 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction897 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction897___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction897 < ReduceAction897: superclass init_table position */},
+  {(bigint) parser___ReduceAction897___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction897(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction897;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction897(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction897;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction897(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction897;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction897_parser___ReduceAction897___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35909;
+  fra.me.meth = LOCATE_NEW_ReduceAction897_parser___ReduceAction897___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction897();
+  /* ./parser//parser.nit:35909 */
+  INIT_ATTRIBUTES__ReduceAction897(fra.me.REG[0]);
+  parser___ReduceAction897___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction897(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction898[50] = {
+  {(bigint) 727 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction898 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction898 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 727 /* 4: ReduceAction898 < ReduceAction898: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction898 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction898 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction898___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction898 < ReduceAction898: superclass init_table position */},
+  {(bigint) parser___ReduceAction898___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction898(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction898;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction898(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction898;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction898(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction898;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction898_parser___ReduceAction898___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35931;
+  fra.me.meth = LOCATE_NEW_ReduceAction898_parser___ReduceAction898___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction898();
+  /* ./parser//parser.nit:35931 */
+  INIT_ATTRIBUTES__ReduceAction898(fra.me.REG[0]);
+  parser___ReduceAction898___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction898(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction899[50] = {
+  {(bigint) 723 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction899 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction899 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 723 /* 4: ReduceAction899 < ReduceAction899: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction899 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction899 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction899___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction899 < ReduceAction899: superclass init_table position */},
+  {(bigint) parser___ReduceAction899___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction899(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction899;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction899(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction899;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction899(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction899;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction899_parser___ReduceAction899___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35953;
+  fra.me.meth = LOCATE_NEW_ReduceAction899_parser___ReduceAction899___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction899();
+  /* ./parser//parser.nit:35953 */
+  INIT_ATTRIBUTES__ReduceAction899(fra.me.REG[0]);
+  parser___ReduceAction899___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction899(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction900[50] = {
+  {(bigint) 711 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction900 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction900 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 711 /* 4: ReduceAction900 < ReduceAction900: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction900 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction900 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction900___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction900 < ReduceAction900: superclass init_table position */},
+  {(bigint) parser___ReduceAction900___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction900(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction900;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction900(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction900;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction900(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction900;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction900_parser___ReduceAction900___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35975;
+  fra.me.meth = LOCATE_NEW_ReduceAction900_parser___ReduceAction900___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction900();
+  /* ./parser//parser.nit:35975 */
+  INIT_ATTRIBUTES__ReduceAction900(fra.me.REG[0]);
+  parser___ReduceAction900___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction900(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction901[50] = {
+  {(bigint) 707 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction901 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction901 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 707 /* 4: ReduceAction901 < ReduceAction901: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction901 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction901 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction901___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction901 < ReduceAction901: superclass init_table position */},
+  {(bigint) parser___ReduceAction901___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction901(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction901;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction901(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction901;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction901(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction901;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction901_parser___ReduceAction901___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 35997;
+  fra.me.meth = LOCATE_NEW_ReduceAction901_parser___ReduceAction901___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction901();
+  /* ./parser//parser.nit:35997 */
+  INIT_ATTRIBUTES__ReduceAction901(fra.me.REG[0]);
+  parser___ReduceAction901___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction901(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction902[50] = {
+  {(bigint) 703 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction902 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction902 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 703 /* 4: ReduceAction902 < ReduceAction902: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction902 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction902 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction902___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction902 < ReduceAction902: superclass init_table position */},
+  {(bigint) parser___ReduceAction902___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction902(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction902;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction902(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction902;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction902(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction902;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction902_parser___ReduceAction902___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36010;
+  fra.me.meth = LOCATE_NEW_ReduceAction902_parser___ReduceAction902___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction902();
+  /* ./parser//parser.nit:36010 */
+  INIT_ATTRIBUTES__ReduceAction902(fra.me.REG[0]);
+  parser___ReduceAction902___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction902(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction903[50] = {
+  {(bigint) 699 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction903 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction903 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 699 /* 4: ReduceAction903 < ReduceAction903: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction903 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction903 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction903___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction903 < ReduceAction903: superclass init_table position */},
+  {(bigint) parser___ReduceAction903___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction903(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction903;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction903(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction903;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction903(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction903;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction903_parser___ReduceAction903___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36032;
+  fra.me.meth = LOCATE_NEW_ReduceAction903_parser___ReduceAction903___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction903();
+  /* ./parser//parser.nit:36032 */
+  INIT_ATTRIBUTES__ReduceAction903(fra.me.REG[0]);
+  parser___ReduceAction903___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction903(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction904[50] = {
+  {(bigint) 695 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction904 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction904 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 695 /* 4: ReduceAction904 < ReduceAction904: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction904 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction904 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction904___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction904 < ReduceAction904: superclass init_table position */},
+  {(bigint) parser___ReduceAction904___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction904(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction904;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction904(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction904;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction904(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction904;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction904_parser___ReduceAction904___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36054;
+  fra.me.meth = LOCATE_NEW_ReduceAction904_parser___ReduceAction904___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction904();
+  /* ./parser//parser.nit:36054 */
+  INIT_ATTRIBUTES__ReduceAction904(fra.me.REG[0]);
+  parser___ReduceAction904___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction904(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction905[50] = {
+  {(bigint) 691 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction905 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction905 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 691 /* 4: ReduceAction905 < ReduceAction905: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction905 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction905 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction905___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction905 < ReduceAction905: superclass init_table position */},
+  {(bigint) parser___ReduceAction905___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction905(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction905;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction905(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction905;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction905(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction905;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction905_parser___ReduceAction905___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36067;
+  fra.me.meth = LOCATE_NEW_ReduceAction905_parser___ReduceAction905___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction905();
+  /* ./parser//parser.nit:36067 */
+  INIT_ATTRIBUTES__ReduceAction905(fra.me.REG[0]);
+  parser___ReduceAction905___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction905(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction906[50] = {
+  {(bigint) 687 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction906 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction906 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 687 /* 4: ReduceAction906 < ReduceAction906: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction906 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction906 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction906___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction906 < ReduceAction906: superclass init_table position */},
+  {(bigint) parser___ReduceAction906___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction906(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction906;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction906(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction906;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction906(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction906;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction906_parser___ReduceAction906___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36089;
+  fra.me.meth = LOCATE_NEW_ReduceAction906_parser___ReduceAction906___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction906();
+  /* ./parser//parser.nit:36089 */
+  INIT_ATTRIBUTES__ReduceAction906(fra.me.REG[0]);
+  parser___ReduceAction906___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction906(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction907[50] = {
+  {(bigint) 683 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction907 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction907 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 683 /* 4: ReduceAction907 < ReduceAction907: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction907 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction907 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction907___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction907 < ReduceAction907: superclass init_table position */},
+  {(bigint) parser___ReduceAction907___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction907(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction907;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction907(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction907;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction907(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction907;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction907_parser___ReduceAction907___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36111;
+  fra.me.meth = LOCATE_NEW_ReduceAction907_parser___ReduceAction907___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction907();
+  /* ./parser//parser.nit:36111 */
+  INIT_ATTRIBUTES__ReduceAction907(fra.me.REG[0]);
+  parser___ReduceAction907___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction907(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction908[50] = {
+  {(bigint) 679 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction908 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction908 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 679 /* 4: ReduceAction908 < ReduceAction908: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction908 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction908 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction908___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction908 < ReduceAction908: superclass init_table position */},
+  {(bigint) parser___ReduceAction908___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction908(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction908;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction908(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction908;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction908(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction908;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction908_parser___ReduceAction908___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36133;
+  fra.me.meth = LOCATE_NEW_ReduceAction908_parser___ReduceAction908___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction908();
+  /* ./parser//parser.nit:36133 */
+  INIT_ATTRIBUTES__ReduceAction908(fra.me.REG[0]);
+  parser___ReduceAction908___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction908(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction909[50] = {
+  {(bigint) 675 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction909 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction909 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 675 /* 4: ReduceAction909 < ReduceAction909: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction909 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction909 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction909___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction909 < ReduceAction909: superclass init_table position */},
+  {(bigint) parser___ReduceAction909___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction909(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction909;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction909(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction909;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction909(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction909;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction909_parser___ReduceAction909___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36146;
+  fra.me.meth = LOCATE_NEW_ReduceAction909_parser___ReduceAction909___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction909();
+  /* ./parser//parser.nit:36146 */
+  INIT_ATTRIBUTES__ReduceAction909(fra.me.REG[0]);
+  parser___ReduceAction909___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction909(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction910[50] = {
+  {(bigint) 667 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction910 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction910 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 667 /* 4: ReduceAction910 < ReduceAction910: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction910 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction910 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction910___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction910 < ReduceAction910: superclass init_table position */},
+  {(bigint) parser___ReduceAction910___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction910(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction910;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction910(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction910;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction910(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction910;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction910_parser___ReduceAction910___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36167;
+  fra.me.meth = LOCATE_NEW_ReduceAction910_parser___ReduceAction910___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction910();
+  /* ./parser//parser.nit:36167 */
+  INIT_ATTRIBUTES__ReduceAction910(fra.me.REG[0]);
+  parser___ReduceAction910___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction910(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction911[50] = {
+  {(bigint) 663 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction911 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction911 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 663 /* 4: ReduceAction911 < ReduceAction911: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction911 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction911 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction911___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction911 < ReduceAction911: superclass init_table position */},
+  {(bigint) parser___ReduceAction911___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction911(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction911;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction911(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction911;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction911(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction911;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction911_parser___ReduceAction911___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36188;
+  fra.me.meth = LOCATE_NEW_ReduceAction911_parser___ReduceAction911___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction911();
+  /* ./parser//parser.nit:36188 */
+  INIT_ATTRIBUTES__ReduceAction911(fra.me.REG[0]);
+  parser___ReduceAction911___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction911(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction912[50] = {
+  {(bigint) 659 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction912 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction912 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 659 /* 4: ReduceAction912 < ReduceAction912: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction912 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction912 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction912___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction912 < ReduceAction912: superclass init_table position */},
+  {(bigint) parser___ReduceAction912___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction912(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction912;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction912(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction912;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction912(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction912;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction912_parser___ReduceAction912___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36201;
+  fra.me.meth = LOCATE_NEW_ReduceAction912_parser___ReduceAction912___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction912();
+  /* ./parser//parser.nit:36201 */
+  INIT_ATTRIBUTES__ReduceAction912(fra.me.REG[0]);
+  parser___ReduceAction912___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction912(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction913[50] = {
+  {(bigint) 655 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction913 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction913 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 655 /* 4: ReduceAction913 < ReduceAction913: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction913 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction913 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction913___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction913 < ReduceAction913: superclass init_table position */},
+  {(bigint) parser___ReduceAction913___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction913(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction913;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction913(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction913;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction913(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction913;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction913_parser___ReduceAction913___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36235;
+  fra.me.meth = LOCATE_NEW_ReduceAction913_parser___ReduceAction913___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction913();
+  /* ./parser//parser.nit:36235 */
+  INIT_ATTRIBUTES__ReduceAction913(fra.me.REG[0]);
+  parser___ReduceAction913___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction913(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction914[50] = {
+  {(bigint) 651 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction914 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction914 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 651 /* 4: ReduceAction914 < ReduceAction914: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction914 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction914 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction914___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction914 < ReduceAction914: superclass init_table position */},
+  {(bigint) parser___ReduceAction914___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction914(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction914;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction914(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction914;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction914(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction914;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction914_parser___ReduceAction914___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36261;
+  fra.me.meth = LOCATE_NEW_ReduceAction914_parser___ReduceAction914___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction914();
+  /* ./parser//parser.nit:36261 */
+  INIT_ATTRIBUTES__ReduceAction914(fra.me.REG[0]);
+  parser___ReduceAction914___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction914(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction915[50] = {
+  {(bigint) 647 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction915 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction915 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 647 /* 4: ReduceAction915 < ReduceAction915: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction915 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction915 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction915___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction915 < ReduceAction915: superclass init_table position */},
+  {(bigint) parser___ReduceAction915___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction915(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction915;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction915(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction915;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction915(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction915;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction915_parser___ReduceAction915___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36284;
+  fra.me.meth = LOCATE_NEW_ReduceAction915_parser___ReduceAction915___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction915();
+  /* ./parser//parser.nit:36284 */
+  INIT_ATTRIBUTES__ReduceAction915(fra.me.REG[0]);
+  parser___ReduceAction915___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction915(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction916[50] = {
+  {(bigint) 643 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction916 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction916 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 643 /* 4: ReduceAction916 < ReduceAction916: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction916 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction916 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction916___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction916 < ReduceAction916: superclass init_table position */},
+  {(bigint) parser___ReduceAction916___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction916(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction916;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction916(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction916;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction916(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction916;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction916_parser___ReduceAction916___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36306;
+  fra.me.meth = LOCATE_NEW_ReduceAction916_parser___ReduceAction916___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction916();
+  /* ./parser//parser.nit:36306 */
+  INIT_ATTRIBUTES__ReduceAction916(fra.me.REG[0]);
+  parser___ReduceAction916___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction916(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction917[50] = {
+  {(bigint) 639 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction917 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction917 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 639 /* 4: ReduceAction917 < ReduceAction917: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction917 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction917 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction917___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction917 < ReduceAction917: superclass init_table position */},
+  {(bigint) parser___ReduceAction917___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction917(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction917;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction917(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction917;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction917(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction917;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction917_parser___ReduceAction917___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36325;
+  fra.me.meth = LOCATE_NEW_ReduceAction917_parser___ReduceAction917___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction917();
+  /* ./parser//parser.nit:36325 */
+  INIT_ATTRIBUTES__ReduceAction917(fra.me.REG[0]);
+  parser___ReduceAction917___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction917(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction918[50] = {
+  {(bigint) 635 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction918 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction918 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 635 /* 4: ReduceAction918 < ReduceAction918: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction918 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction918 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction918___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction918 < ReduceAction918: superclass init_table position */},
+  {(bigint) parser___ReduceAction918___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction918(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction918;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction918(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction918;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction918(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction918;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction918_parser___ReduceAction918___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36361;
+  fra.me.meth = LOCATE_NEW_ReduceAction918_parser___ReduceAction918___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction918();
+  /* ./parser//parser.nit:36361 */
+  INIT_ATTRIBUTES__ReduceAction918(fra.me.REG[0]);
+  parser___ReduceAction918___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction918(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction919[50] = {
+  {(bigint) 631 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction919 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction919 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 631 /* 4: ReduceAction919 < ReduceAction919: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction919 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction919 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction919___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction919 < ReduceAction919: superclass init_table position */},
+  {(bigint) parser___ReduceAction919___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction919(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction919;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction919(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction919;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction919(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction919;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction919_parser___ReduceAction919___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36394;
+  fra.me.meth = LOCATE_NEW_ReduceAction919_parser___ReduceAction919___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction919();
+  /* ./parser//parser.nit:36394 */
+  INIT_ATTRIBUTES__ReduceAction919(fra.me.REG[0]);
+  parser___ReduceAction919___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction919(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction920[50] = {
+  {(bigint) 623 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction920 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction920 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 623 /* 4: ReduceAction920 < ReduceAction920: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction920 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction920 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction920___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction920 < ReduceAction920: superclass init_table position */},
+  {(bigint) parser___ReduceAction920___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction920(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction920;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction920(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction920;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction920(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction920;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction920_parser___ReduceAction920___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36423;
+  fra.me.meth = LOCATE_NEW_ReduceAction920_parser___ReduceAction920___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction920();
+  /* ./parser//parser.nit:36423 */
+  INIT_ATTRIBUTES__ReduceAction920(fra.me.REG[0]);
+  parser___ReduceAction920___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction920(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction921[50] = {
+  {(bigint) 619 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction921 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction921 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 619 /* 4: ReduceAction921 < ReduceAction921: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction921 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction921 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction921___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction921 < ReduceAction921: superclass init_table position */},
+  {(bigint) parser___ReduceAction921___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction921(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction921;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction921(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction921;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction921(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction921;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction921_parser___ReduceAction921___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36455;
+  fra.me.meth = LOCATE_NEW_ReduceAction921_parser___ReduceAction921___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction921();
+  /* ./parser//parser.nit:36455 */
+  INIT_ATTRIBUTES__ReduceAction921(fra.me.REG[0]);
+  parser___ReduceAction921___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction921(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction922[50] = {
+  {(bigint) 615 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction922 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction922 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 615 /* 4: ReduceAction922 < ReduceAction922: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction922 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction922 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction922___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction922 < ReduceAction922: superclass init_table position */},
+  {(bigint) parser___ReduceAction922___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction922(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction922;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction922(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction922;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction922(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction922;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction922_parser___ReduceAction922___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36489;
+  fra.me.meth = LOCATE_NEW_ReduceAction922_parser___ReduceAction922___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction922();
+  /* ./parser//parser.nit:36489 */
+  INIT_ATTRIBUTES__ReduceAction922(fra.me.REG[0]);
+  parser___ReduceAction922___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction922(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction923[50] = {
+  {(bigint) 611 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction923 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction923 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 611 /* 4: ReduceAction923 < ReduceAction923: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction923 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction923 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction923___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction923 < ReduceAction923: superclass init_table position */},
+  {(bigint) parser___ReduceAction923___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction923(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction923;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction923(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction923;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction923(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction923;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction923_parser___ReduceAction923___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36520;
+  fra.me.meth = LOCATE_NEW_ReduceAction923_parser___ReduceAction923___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction923();
+  /* ./parser//parser.nit:36520 */
+  INIT_ATTRIBUTES__ReduceAction923(fra.me.REG[0]);
+  parser___ReduceAction923___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction923(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction924[50] = {
+  {(bigint) 607 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction924 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction924 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 607 /* 4: ReduceAction924 < ReduceAction924: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction924 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction924 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction924___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction924 < ReduceAction924: superclass init_table position */},
+  {(bigint) parser___ReduceAction924___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction924(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction924;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction924(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction924;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction924(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction924;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction924_parser___ReduceAction924___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36559;
+  fra.me.meth = LOCATE_NEW_ReduceAction924_parser___ReduceAction924___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction924();
+  /* ./parser//parser.nit:36559 */
+  INIT_ATTRIBUTES__ReduceAction924(fra.me.REG[0]);
+  parser___ReduceAction924___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction924(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction925[50] = {
+  {(bigint) 603 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction925 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction925 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 603 /* 4: ReduceAction925 < ReduceAction925: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction925 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction925 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction925___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction925 < ReduceAction925: superclass init_table position */},
+  {(bigint) parser___ReduceAction925___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction925(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction925;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction925(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction925;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction925(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction925;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction925_parser___ReduceAction925___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36575;
+  fra.me.meth = LOCATE_NEW_ReduceAction925_parser___ReduceAction925___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction925();
+  /* ./parser//parser.nit:36575 */
+  INIT_ATTRIBUTES__ReduceAction925(fra.me.REG[0]);
+  parser___ReduceAction925___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction925(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction926[50] = {
+  {(bigint) 599 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction926 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction926 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 599 /* 4: ReduceAction926 < ReduceAction926: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction926 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction926 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction926___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction926 < ReduceAction926: superclass init_table position */},
+  {(bigint) parser___ReduceAction926___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction926(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction926;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction926(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction926;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction926(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction926;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction926_parser___ReduceAction926___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36591;
+  fra.me.meth = LOCATE_NEW_ReduceAction926_parser___ReduceAction926___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction926();
+  /* ./parser//parser.nit:36591 */
+  INIT_ATTRIBUTES__ReduceAction926(fra.me.REG[0]);
+  parser___ReduceAction926___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction926(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction927[50] = {
+  {(bigint) 595 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction927 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction927 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 595 /* 4: ReduceAction927 < ReduceAction927: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction927 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction927 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction927___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction927 < ReduceAction927: superclass init_table position */},
+  {(bigint) parser___ReduceAction927___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction927(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction927;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction927(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction927;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction927(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction927;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction927_parser___ReduceAction927___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36607;
+  fra.me.meth = LOCATE_NEW_ReduceAction927_parser___ReduceAction927___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction927();
+  /* ./parser//parser.nit:36607 */
+  INIT_ATTRIBUTES__ReduceAction927(fra.me.REG[0]);
+  parser___ReduceAction927___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction927(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction928[50] = {
+  {(bigint) 591 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction928 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction928 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 591 /* 4: ReduceAction928 < ReduceAction928: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction928 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction928 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction928___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction928 < ReduceAction928: superclass init_table position */},
+  {(bigint) parser___ReduceAction928___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction928(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction928;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction928(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction928;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction928(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction928;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction928_parser___ReduceAction928___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36623;
+  fra.me.meth = LOCATE_NEW_ReduceAction928_parser___ReduceAction928___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction928();
+  /* ./parser//parser.nit:36623 */
+  INIT_ATTRIBUTES__ReduceAction928(fra.me.REG[0]);
+  parser___ReduceAction928___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction928(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction929[50] = {
+  {(bigint) 587 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction929 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction929 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 587 /* 4: ReduceAction929 < ReduceAction929: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction929 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction929 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction929___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction929 < ReduceAction929: superclass init_table position */},
+  {(bigint) parser___ReduceAction929___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction929(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction929;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction929(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction929;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction929(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction929;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction929_parser___ReduceAction929___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36639;
+  fra.me.meth = LOCATE_NEW_ReduceAction929_parser___ReduceAction929___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction929();
+  /* ./parser//parser.nit:36639 */
+  INIT_ATTRIBUTES__ReduceAction929(fra.me.REG[0]);
+  parser___ReduceAction929___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction929(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction930[50] = {
+  {(bigint) 579 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction930 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction930 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 579 /* 4: ReduceAction930 < ReduceAction930: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction930 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction930 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction930___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction930 < ReduceAction930: superclass init_table position */},
+  {(bigint) parser___ReduceAction930___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction930(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction930;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction930(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction930;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction930(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction930;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction930_parser___ReduceAction930___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36655;
+  fra.me.meth = LOCATE_NEW_ReduceAction930_parser___ReduceAction930___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction930();
+  /* ./parser//parser.nit:36655 */
+  INIT_ATTRIBUTES__ReduceAction930(fra.me.REG[0]);
+  parser___ReduceAction930___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction930(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction931[50] = {
+  {(bigint) 575 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction931 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction931 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 575 /* 4: ReduceAction931 < ReduceAction931: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction931 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction931 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction931___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction931 < ReduceAction931: superclass init_table position */},
+  {(bigint) parser___ReduceAction931___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction931(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction931;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction931(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction931;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction931(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction931;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction931_parser___ReduceAction931___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36671;
+  fra.me.meth = LOCATE_NEW_ReduceAction931_parser___ReduceAction931___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction931();
+  /* ./parser//parser.nit:36671 */
+  INIT_ATTRIBUTES__ReduceAction931(fra.me.REG[0]);
+  parser___ReduceAction931___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction931(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction932[50] = {
+  {(bigint) 571 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction932 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction932 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 571 /* 4: ReduceAction932 < ReduceAction932: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction932 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction932 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction932___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction932 < ReduceAction932: superclass init_table position */},
+  {(bigint) parser___ReduceAction932___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction932(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction932;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction932(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction932;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction932(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction932;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction932_parser___ReduceAction932___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36687;
+  fra.me.meth = LOCATE_NEW_ReduceAction932_parser___ReduceAction932___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction932();
+  /* ./parser//parser.nit:36687 */
+  INIT_ATTRIBUTES__ReduceAction932(fra.me.REG[0]);
+  parser___ReduceAction932___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction932(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction933[50] = {
+  {(bigint) 567 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction933 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction933 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 567 /* 4: ReduceAction933 < ReduceAction933: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction933 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction933 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction933___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction933 < ReduceAction933: superclass init_table position */},
+  {(bigint) parser___ReduceAction933___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction933(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction933;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction933(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction933;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction933(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction933;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction933_parser___ReduceAction933___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36700;
+  fra.me.meth = LOCATE_NEW_ReduceAction933_parser___ReduceAction933___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction933();
+  /* ./parser//parser.nit:36700 */
+  INIT_ATTRIBUTES__ReduceAction933(fra.me.REG[0]);
+  parser___ReduceAction933___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction933(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction934[50] = {
+  {(bigint) 563 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction934 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction934 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 563 /* 4: ReduceAction934 < ReduceAction934: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction934 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction934 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction934___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction934 < ReduceAction934: superclass init_table position */},
+  {(bigint) parser___ReduceAction934___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction934(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction934;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction934(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction934;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction934(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction934;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction934_parser___ReduceAction934___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36715;
+  fra.me.meth = LOCATE_NEW_ReduceAction934_parser___ReduceAction934___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction934();
+  /* ./parser//parser.nit:36715 */
+  INIT_ATTRIBUTES__ReduceAction934(fra.me.REG[0]);
+  parser___ReduceAction934___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction934(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction935[50] = {
+  {(bigint) 559 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction935 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction935 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 559 /* 4: ReduceAction935 < ReduceAction935: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction935 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction935 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction935___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction935 < ReduceAction935: superclass init_table position */},
+  {(bigint) parser___ReduceAction935___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction935(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction935;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction935(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction935;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction935(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction935;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction935_parser___ReduceAction935___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36746;
+  fra.me.meth = LOCATE_NEW_ReduceAction935_parser___ReduceAction935___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction935();
+  /* ./parser//parser.nit:36746 */
+  INIT_ATTRIBUTES__ReduceAction935(fra.me.REG[0]);
+  parser___ReduceAction935___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction935(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction936[50] = {
+  {(bigint) 555 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction936 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction936 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 555 /* 4: ReduceAction936 < ReduceAction936: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction936 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction936 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction936___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction936 < ReduceAction936: superclass init_table position */},
+  {(bigint) parser___ReduceAction936___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction936(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction936;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction936(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction936;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction936(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction936;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction936_parser___ReduceAction936___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36782;
+  fra.me.meth = LOCATE_NEW_ReduceAction936_parser___ReduceAction936___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction936();
+  /* ./parser//parser.nit:36782 */
+  INIT_ATTRIBUTES__ReduceAction936(fra.me.REG[0]);
+  parser___ReduceAction936___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction936(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction937[50] = {
+  {(bigint) 551 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction937 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction937 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 551 /* 4: ReduceAction937 < ReduceAction937: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction937 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction937 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction937___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction937 < ReduceAction937: superclass init_table position */},
+  {(bigint) parser___ReduceAction937___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction937(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction937;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction937(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction937;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction937(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction937;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction937_parser___ReduceAction937___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36805;
+  fra.me.meth = LOCATE_NEW_ReduceAction937_parser___ReduceAction937___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction937();
+  /* ./parser//parser.nit:36805 */
+  INIT_ATTRIBUTES__ReduceAction937(fra.me.REG[0]);
+  parser___ReduceAction937___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction937(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction938[50] = {
+  {(bigint) 547 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction938 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction938 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 547 /* 4: ReduceAction938 < ReduceAction938: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction938 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction938 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction938___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction938 < ReduceAction938: superclass init_table position */},
+  {(bigint) parser___ReduceAction938___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction938(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction938;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction938(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction938;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction938(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction938;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction938_parser___ReduceAction938___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36838;
+  fra.me.meth = LOCATE_NEW_ReduceAction938_parser___ReduceAction938___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction938();
+  /* ./parser//parser.nit:36838 */
+  INIT_ATTRIBUTES__ReduceAction938(fra.me.REG[0]);
+  parser___ReduceAction938___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction938(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction939[50] = {
+  {(bigint) 543 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction939 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction939 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 543 /* 4: ReduceAction939 < ReduceAction939: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction939 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction939 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction939___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction939 < ReduceAction939: superclass init_table position */},
+  {(bigint) parser___ReduceAction939___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction939(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction939;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction939(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction939;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction939(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction939;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction939_parser___ReduceAction939___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36854;
+  fra.me.meth = LOCATE_NEW_ReduceAction939_parser___ReduceAction939___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction939();
+  /* ./parser//parser.nit:36854 */
+  INIT_ATTRIBUTES__ReduceAction939(fra.me.REG[0]);
+  parser___ReduceAction939___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction939(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction940[50] = {
+  {(bigint) 535 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction940 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction940 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 535 /* 4: ReduceAction940 < ReduceAction940: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction940 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction940 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction940___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction940 < ReduceAction940: superclass init_table position */},
+  {(bigint) parser___ReduceAction940___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction940(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction940;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction940(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction940;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction940(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction940;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction940_parser___ReduceAction940___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36869;
+  fra.me.meth = LOCATE_NEW_ReduceAction940_parser___ReduceAction940___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction940();
+  /* ./parser//parser.nit:36869 */
+  INIT_ATTRIBUTES__ReduceAction940(fra.me.REG[0]);
+  parser___ReduceAction940___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction940(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction941[50] = {
+  {(bigint) 531 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction941 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction941 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 531 /* 4: ReduceAction941 < ReduceAction941: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction941 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction941 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction941___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction941 < ReduceAction941: superclass init_table position */},
+  {(bigint) parser___ReduceAction941___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction941(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction941;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction941(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction941;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction941(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction941;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction941_parser___ReduceAction941___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36882;
+  fra.me.meth = LOCATE_NEW_ReduceAction941_parser___ReduceAction941___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction941();
+  /* ./parser//parser.nit:36882 */
+  INIT_ATTRIBUTES__ReduceAction941(fra.me.REG[0]);
+  parser___ReduceAction941___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction941(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction942[50] = {
+  {(bigint) 527 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction942 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction942 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 527 /* 4: ReduceAction942 < ReduceAction942: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction942 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction942 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction942___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction942 < ReduceAction942: superclass init_table position */},
+  {(bigint) parser___ReduceAction942___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction942(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction942;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction942(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction942;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction942(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction942;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction942_parser___ReduceAction942___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36895;
+  fra.me.meth = LOCATE_NEW_ReduceAction942_parser___ReduceAction942___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction942();
+  /* ./parser//parser.nit:36895 */
+  INIT_ATTRIBUTES__ReduceAction942(fra.me.REG[0]);
+  parser___ReduceAction942___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction942(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction943[50] = {
+  {(bigint) 523 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction943 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction943 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 523 /* 4: ReduceAction943 < ReduceAction943: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction943 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction943 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction943___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction943 < ReduceAction943: superclass init_table position */},
+  {(bigint) parser___ReduceAction943___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction943(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction943;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction943(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction943;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction943(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction943;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction943_parser___ReduceAction943___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36908;
+  fra.me.meth = LOCATE_NEW_ReduceAction943_parser___ReduceAction943___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction943();
+  /* ./parser//parser.nit:36908 */
+  INIT_ATTRIBUTES__ReduceAction943(fra.me.REG[0]);
+  parser___ReduceAction943___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction943(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction944[50] = {
+  {(bigint) 519 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction944 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction944 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 519 /* 4: ReduceAction944 < ReduceAction944: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction944 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction944 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction944___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction944 < ReduceAction944: superclass init_table position */},
+  {(bigint) parser___ReduceAction944___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction944(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction944;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction944(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction944;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction944(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction944;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction944_parser___ReduceAction944___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36925;
+  fra.me.meth = LOCATE_NEW_ReduceAction944_parser___ReduceAction944___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction944();
+  /* ./parser//parser.nit:36925 */
+  INIT_ATTRIBUTES__ReduceAction944(fra.me.REG[0]);
+  parser___ReduceAction944___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction944(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction945[50] = {
+  {(bigint) 515 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction945 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction945 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 515 /* 4: ReduceAction945 < ReduceAction945: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction945 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction945 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction945___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction945 < ReduceAction945: superclass init_table position */},
+  {(bigint) parser___ReduceAction945___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction945(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction945;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction945(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction945;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction945(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction945;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction945_parser___ReduceAction945___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36945;
+  fra.me.meth = LOCATE_NEW_ReduceAction945_parser___ReduceAction945___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction945();
+  /* ./parser//parser.nit:36945 */
+  INIT_ATTRIBUTES__ReduceAction945(fra.me.REG[0]);
+  parser___ReduceAction945___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction945(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction946[50] = {
+  {(bigint) 511 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction946 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction946 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 511 /* 4: ReduceAction946 < ReduceAction946: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction946 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction946 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction946___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction946 < ReduceAction946: superclass init_table position */},
+  {(bigint) parser___ReduceAction946___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction946(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction946;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction946(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction946;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction946(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction946;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction946_parser___ReduceAction946___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36963;
+  fra.me.meth = LOCATE_NEW_ReduceAction946_parser___ReduceAction946___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction946();
+  /* ./parser//parser.nit:36963 */
+  INIT_ATTRIBUTES__ReduceAction946(fra.me.REG[0]);
+  parser___ReduceAction946___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction946(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction947[50] = {
+  {(bigint) 507 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction947 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction947 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 507 /* 4: ReduceAction947 < ReduceAction947: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction947 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction947 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction947___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction947 < ReduceAction947: superclass init_table position */},
+  {(bigint) parser___ReduceAction947___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction947(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction947;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction947(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction947;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction947(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction947;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction947_parser___ReduceAction947___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 36984;
+  fra.me.meth = LOCATE_NEW_ReduceAction947_parser___ReduceAction947___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction947();
+  /* ./parser//parser.nit:36984 */
+  INIT_ATTRIBUTES__ReduceAction947(fra.me.REG[0]);
+  parser___ReduceAction947___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction947(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction948[50] = {
+  {(bigint) 503 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction948 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction948 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 503 /* 4: ReduceAction948 < ReduceAction948: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction948 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction948 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction948___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction948 < ReduceAction948: superclass init_table position */},
+  {(bigint) parser___ReduceAction948___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction948(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction948;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction948(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction948;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction948(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction948;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction948_parser___ReduceAction948___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37005;
+  fra.me.meth = LOCATE_NEW_ReduceAction948_parser___ReduceAction948___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction948();
+  /* ./parser//parser.nit:37005 */
+  INIT_ATTRIBUTES__ReduceAction948(fra.me.REG[0]);
+  parser___ReduceAction948___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction948(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction949[50] = {
+  {(bigint) 499 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction949 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction949 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 499 /* 4: ReduceAction949 < ReduceAction949: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction949 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction949 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction949___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction949 < ReduceAction949: superclass init_table position */},
+  {(bigint) parser___ReduceAction949___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction949(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction949;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction949(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction949;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction949(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction949;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction949_parser___ReduceAction949___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37029;
+  fra.me.meth = LOCATE_NEW_ReduceAction949_parser___ReduceAction949___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction949();
+  /* ./parser//parser.nit:37029 */
+  INIT_ATTRIBUTES__ReduceAction949(fra.me.REG[0]);
+  parser___ReduceAction949___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction949(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction950[50] = {
+  {(bigint) 491 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction950 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction950 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 491 /* 4: ReduceAction950 < ReduceAction950: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction950 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction950 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction950___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction950 < ReduceAction950: superclass init_table position */},
+  {(bigint) parser___ReduceAction950___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction950(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction950;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction950(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction950;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction950(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction950;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction950_parser___ReduceAction950___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37045;
+  fra.me.meth = LOCATE_NEW_ReduceAction950_parser___ReduceAction950___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction950();
+  /* ./parser//parser.nit:37045 */
+  INIT_ATTRIBUTES__ReduceAction950(fra.me.REG[0]);
+  parser___ReduceAction950___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction950(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction951[50] = {
+  {(bigint) 487 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction951 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction951 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 487 /* 4: ReduceAction951 < ReduceAction951: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction951 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction951 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction951___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction951 < ReduceAction951: superclass init_table position */},
+  {(bigint) parser___ReduceAction951___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction951(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction951;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction951(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction951;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction951(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction951;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction951_parser___ReduceAction951___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37063;
+  fra.me.meth = LOCATE_NEW_ReduceAction951_parser___ReduceAction951___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction951();
+  /* ./parser//parser.nit:37063 */
+  INIT_ATTRIBUTES__ReduceAction951(fra.me.REG[0]);
+  parser___ReduceAction951___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction951(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction952[50] = {
+  {(bigint) 483 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction952 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction952 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 483 /* 4: ReduceAction952 < ReduceAction952: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction952 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction952 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction952___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction952 < ReduceAction952: superclass init_table position */},
+  {(bigint) parser___ReduceAction952___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction952(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction952;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction952(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction952;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction952(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction952;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction952_parser___ReduceAction952___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37084;
+  fra.me.meth = LOCATE_NEW_ReduceAction952_parser___ReduceAction952___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction952();
+  /* ./parser//parser.nit:37084 */
+  INIT_ATTRIBUTES__ReduceAction952(fra.me.REG[0]);
+  parser___ReduceAction952___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction952(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction953[50] = {
+  {(bigint) 479 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction953 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction953 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 479 /* 4: ReduceAction953 < ReduceAction953: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction953 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction953 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction953___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction953 < ReduceAction953: superclass init_table position */},
+  {(bigint) parser___ReduceAction953___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction953(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction953;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction953(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction953;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction953(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction953;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction953_parser___ReduceAction953___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37105;
+  fra.me.meth = LOCATE_NEW_ReduceAction953_parser___ReduceAction953___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction953();
+  /* ./parser//parser.nit:37105 */
+  INIT_ATTRIBUTES__ReduceAction953(fra.me.REG[0]);
+  parser___ReduceAction953___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction953(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction954[50] = {
+  {(bigint) 475 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction954 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction954 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 475 /* 4: ReduceAction954 < ReduceAction954: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction954 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction954 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction954___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction954 < ReduceAction954: superclass init_table position */},
+  {(bigint) parser___ReduceAction954___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction954(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction954;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction954(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction954;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction954(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction954;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction954_parser___ReduceAction954___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37129;
+  fra.me.meth = LOCATE_NEW_ReduceAction954_parser___ReduceAction954___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction954();
+  /* ./parser//parser.nit:37129 */
+  INIT_ATTRIBUTES__ReduceAction954(fra.me.REG[0]);
+  parser___ReduceAction954___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction954(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction955[50] = {
+  {(bigint) 471 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction955 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction955 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 471 /* 4: ReduceAction955 < ReduceAction955: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction955 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction955 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction955___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction955 < ReduceAction955: superclass init_table position */},
+  {(bigint) parser___ReduceAction955___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction955(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction955;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction955(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction955;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction955(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction955;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction955_parser___ReduceAction955___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37142;
+  fra.me.meth = LOCATE_NEW_ReduceAction955_parser___ReduceAction955___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction955();
+  /* ./parser//parser.nit:37142 */
+  INIT_ATTRIBUTES__ReduceAction955(fra.me.REG[0]);
+  parser___ReduceAction955___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction955(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction956[50] = {
+  {(bigint) 467 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction956 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction956 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 467 /* 4: ReduceAction956 < ReduceAction956: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction956 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction956 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction956___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction956 < ReduceAction956: superclass init_table position */},
+  {(bigint) parser___ReduceAction956___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction956(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction956;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction956(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction956;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction956(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction956;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction956_parser___ReduceAction956___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37155;
+  fra.me.meth = LOCATE_NEW_ReduceAction956_parser___ReduceAction956___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction956();
+  /* ./parser//parser.nit:37155 */
+  INIT_ATTRIBUTES__ReduceAction956(fra.me.REG[0]);
+  parser___ReduceAction956___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction956(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction957[50] = {
+  {(bigint) 463 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction957 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction957 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 463 /* 4: ReduceAction957 < ReduceAction957: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction957 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction957 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction957___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction957 < ReduceAction957: superclass init_table position */},
+  {(bigint) parser___ReduceAction957___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction957(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction957;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction957(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction957;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction957(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction957;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction957_parser___ReduceAction957___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37168;
+  fra.me.meth = LOCATE_NEW_ReduceAction957_parser___ReduceAction957___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction957();
+  /* ./parser//parser.nit:37168 */
+  INIT_ATTRIBUTES__ReduceAction957(fra.me.REG[0]);
+  parser___ReduceAction957___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction957(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction958[50] = {
+  {(bigint) 459 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction958 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction958 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 459 /* 4: ReduceAction958 < ReduceAction958: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction958 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction958 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction958___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction958 < ReduceAction958: superclass init_table position */},
+  {(bigint) parser___ReduceAction958___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction958(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction958;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction958(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction958;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction958(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction958;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction958_parser___ReduceAction958___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37181;
+  fra.me.meth = LOCATE_NEW_ReduceAction958_parser___ReduceAction958___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction958();
+  /* ./parser//parser.nit:37181 */
+  INIT_ATTRIBUTES__ReduceAction958(fra.me.REG[0]);
+  parser___ReduceAction958___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction958(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction959[50] = {
+  {(bigint) 455 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction959 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction959 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 455 /* 4: ReduceAction959 < ReduceAction959: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction959 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction959 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction959___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction959 < ReduceAction959: superclass init_table position */},
+  {(bigint) parser___ReduceAction959___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction959(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction959;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction959(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction959;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction959(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction959;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction959_parser___ReduceAction959___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37194;
+  fra.me.meth = LOCATE_NEW_ReduceAction959_parser___ReduceAction959___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction959();
+  /* ./parser//parser.nit:37194 */
+  INIT_ATTRIBUTES__ReduceAction959(fra.me.REG[0]);
+  parser___ReduceAction959___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction959(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction960[50] = {
+  {(bigint) 447 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction960 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction960 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 447 /* 4: ReduceAction960 < ReduceAction960: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction960 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction960 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction960___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction960 < ReduceAction960: superclass init_table position */},
+  {(bigint) parser___ReduceAction960___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction960(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction960;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction960(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction960;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction960(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction960;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction960_parser___ReduceAction960___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37207;
+  fra.me.meth = LOCATE_NEW_ReduceAction960_parser___ReduceAction960___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction960();
+  /* ./parser//parser.nit:37207 */
+  INIT_ATTRIBUTES__ReduceAction960(fra.me.REG[0]);
+  parser___ReduceAction960___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction960(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction961[50] = {
+  {(bigint) 443 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction961 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction961 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 443 /* 4: ReduceAction961 < ReduceAction961: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction961 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction961 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction961___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction961 < ReduceAction961: superclass init_table position */},
+  {(bigint) parser___ReduceAction961___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction961(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction961;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction961(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction961;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction961(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction961;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction961_parser___ReduceAction961___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37243;
+  fra.me.meth = LOCATE_NEW_ReduceAction961_parser___ReduceAction961___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction961();
+  /* ./parser//parser.nit:37243 */
+  INIT_ATTRIBUTES__ReduceAction961(fra.me.REG[0]);
+  parser___ReduceAction961___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction961(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction962[50] = {
+  {(bigint) 439 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction962 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction962 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 439 /* 4: ReduceAction962 < ReduceAction962: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction962 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction962 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction962___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction962 < ReduceAction962: superclass init_table position */},
+  {(bigint) parser___ReduceAction962___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction962(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction962;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction962(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction962;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction962(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction962;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction962_parser___ReduceAction962___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37276;
+  fra.me.meth = LOCATE_NEW_ReduceAction962_parser___ReduceAction962___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction962();
+  /* ./parser//parser.nit:37276 */
+  INIT_ATTRIBUTES__ReduceAction962(fra.me.REG[0]);
+  parser___ReduceAction962___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction962(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction963[50] = {
+  {(bigint) 435 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction963 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction963 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 435 /* 4: ReduceAction963 < ReduceAction963: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction963 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction963 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction963___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction963 < ReduceAction963: superclass init_table position */},
+  {(bigint) parser___ReduceAction963___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction963(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction963;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction963(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction963;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction963(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction963;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction963_parser___ReduceAction963___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37322;
+  fra.me.meth = LOCATE_NEW_ReduceAction963_parser___ReduceAction963___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction963();
+  /* ./parser//parser.nit:37322 */
+  INIT_ATTRIBUTES__ReduceAction963(fra.me.REG[0]);
+  parser___ReduceAction963___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction963(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction964[50] = {
+  {(bigint) 431 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction964 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction964 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 431 /* 4: ReduceAction964 < ReduceAction964: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction964 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction964 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction964___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction964 < ReduceAction964: superclass init_table position */},
+  {(bigint) parser___ReduceAction964___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction964(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction964;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction964(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction964;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction964(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction964;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction964_parser___ReduceAction964___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37365;
+  fra.me.meth = LOCATE_NEW_ReduceAction964_parser___ReduceAction964___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction964();
+  /* ./parser//parser.nit:37365 */
+  INIT_ATTRIBUTES__ReduceAction964(fra.me.REG[0]);
+  parser___ReduceAction964___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction964(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction965[50] = {
+  {(bigint) 427 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction965 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction965 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 427 /* 4: ReduceAction965 < ReduceAction965: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction965 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction965 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction965___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction965 < ReduceAction965: superclass init_table position */},
+  {(bigint) parser___ReduceAction965___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction965(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction965;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction965(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction965;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction965(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction965;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction965_parser___ReduceAction965___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37394;
+  fra.me.meth = LOCATE_NEW_ReduceAction965_parser___ReduceAction965___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction965();
+  /* ./parser//parser.nit:37394 */
+  INIT_ATTRIBUTES__ReduceAction965(fra.me.REG[0]);
+  parser___ReduceAction965___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction965(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction966[50] = {
+  {(bigint) 423 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction966 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction966 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 423 /* 4: ReduceAction966 < ReduceAction966: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction966 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction966 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction966___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction966 < ReduceAction966: superclass init_table position */},
+  {(bigint) parser___ReduceAction966___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction966(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction966;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction966(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction966;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction966(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction966;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction966_parser___ReduceAction966___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37426;
+  fra.me.meth = LOCATE_NEW_ReduceAction966_parser___ReduceAction966___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction966();
+  /* ./parser//parser.nit:37426 */
+  INIT_ATTRIBUTES__ReduceAction966(fra.me.REG[0]);
+  parser___ReduceAction966___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction966(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction967[50] = {
+  {(bigint) 419 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction967 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction967 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 419 /* 4: ReduceAction967 < ReduceAction967: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction967 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction967 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction967___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction967 < ReduceAction967: superclass init_table position */},
+  {(bigint) parser___ReduceAction967___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction967(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction967;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction967(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction967;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction967(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction967;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction967_parser___ReduceAction967___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37460;
+  fra.me.meth = LOCATE_NEW_ReduceAction967_parser___ReduceAction967___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction967();
+  /* ./parser//parser.nit:37460 */
+  INIT_ATTRIBUTES__ReduceAction967(fra.me.REG[0]);
+  parser___ReduceAction967___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction967(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction968[50] = {
+  {(bigint) 415 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction968 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction968 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 415 /* 4: ReduceAction968 < ReduceAction968: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction968 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction968 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction968___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction968 < ReduceAction968: superclass init_table position */},
+  {(bigint) parser___ReduceAction968___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction968(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction968;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction968(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction968;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction968(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction968;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction968_parser___ReduceAction968___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37491;
+  fra.me.meth = LOCATE_NEW_ReduceAction968_parser___ReduceAction968___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction968();
+  /* ./parser//parser.nit:37491 */
+  INIT_ATTRIBUTES__ReduceAction968(fra.me.REG[0]);
+  parser___ReduceAction968___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction968(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction969[50] = {
+  {(bigint) 411 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction969 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction969 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 411 /* 4: ReduceAction969 < ReduceAction969: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction969 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction969 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction969___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction969 < ReduceAction969: superclass init_table position */},
+  {(bigint) parser___ReduceAction969___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction969(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction969;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction969(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction969;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction969(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction969;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction969_parser___ReduceAction969___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37508;
+  fra.me.meth = LOCATE_NEW_ReduceAction969_parser___ReduceAction969___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction969();
+  /* ./parser//parser.nit:37508 */
+  INIT_ATTRIBUTES__ReduceAction969(fra.me.REG[0]);
+  parser___ReduceAction969___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction969(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction970[50] = {
+  {(bigint) 403 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction970 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction970 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 403 /* 4: ReduceAction970 < ReduceAction970: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction970 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction970 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction970___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction970 < ReduceAction970: superclass init_table position */},
+  {(bigint) parser___ReduceAction970___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction970(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction970;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction970(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction970;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction970(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction970;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction970_parser___ReduceAction970___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37535;
+  fra.me.meth = LOCATE_NEW_ReduceAction970_parser___ReduceAction970___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction970();
+  /* ./parser//parser.nit:37535 */
+  INIT_ATTRIBUTES__ReduceAction970(fra.me.REG[0]);
+  parser___ReduceAction970___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction970(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction971[50] = {
+  {(bigint) 399 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction971 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction971 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 399 /* 4: ReduceAction971 < ReduceAction971: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction971 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction971 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction971___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction971 < ReduceAction971: superclass init_table position */},
+  {(bigint) parser___ReduceAction971___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction971(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction971;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction971(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction971;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction971(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction971;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction971_parser___ReduceAction971___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37576;
+  fra.me.meth = LOCATE_NEW_ReduceAction971_parser___ReduceAction971___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction971();
+  /* ./parser//parser.nit:37576 */
+  INIT_ATTRIBUTES__ReduceAction971(fra.me.REG[0]);
+  parser___ReduceAction971___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction971(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction972[50] = {
+  {(bigint) 395 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction972 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction972 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 395 /* 4: ReduceAction972 < ReduceAction972: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction972 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction972 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction972___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction972 < ReduceAction972: superclass init_table position */},
+  {(bigint) parser___ReduceAction972___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction972(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction972;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction972(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction972;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction972(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction972;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction972_parser___ReduceAction972___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37627;
+  fra.me.meth = LOCATE_NEW_ReduceAction972_parser___ReduceAction972___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction972();
+  /* ./parser//parser.nit:37627 */
+  INIT_ATTRIBUTES__ReduceAction972(fra.me.REG[0]);
+  parser___ReduceAction972___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction972(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction973[50] = {
+  {(bigint) 391 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction973 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction973 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 391 /* 4: ReduceAction973 < ReduceAction973: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction973 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction973 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction973___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction973 < ReduceAction973: superclass init_table position */},
+  {(bigint) parser___ReduceAction973___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction973(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction973;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction973(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction973;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction973(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction973;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction973_parser___ReduceAction973___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37661;
+  fra.me.meth = LOCATE_NEW_ReduceAction973_parser___ReduceAction973___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction973();
+  /* ./parser//parser.nit:37661 */
+  INIT_ATTRIBUTES__ReduceAction973(fra.me.REG[0]);
+  parser___ReduceAction973___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction973(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction974[50] = {
+  {(bigint) 387 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction974 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction974 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 387 /* 4: ReduceAction974 < ReduceAction974: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction974 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction974 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction974___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction974 < ReduceAction974: superclass init_table position */},
+  {(bigint) parser___ReduceAction974___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction974(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction974;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction974(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction974;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction974(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction974;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction974_parser___ReduceAction974___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37694;
+  fra.me.meth = LOCATE_NEW_ReduceAction974_parser___ReduceAction974___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction974();
+  /* ./parser//parser.nit:37694 */
+  INIT_ATTRIBUTES__ReduceAction974(fra.me.REG[0]);
+  parser___ReduceAction974___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction974(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction975[50] = {
+  {(bigint) 383 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction975 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction975 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 383 /* 4: ReduceAction975 < ReduceAction975: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction975 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction975 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction975___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction975 < ReduceAction975: superclass init_table position */},
+  {(bigint) parser___ReduceAction975___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction975(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction975;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction975(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction975;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction975(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction975;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction975_parser___ReduceAction975___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37745;
+  fra.me.meth = LOCATE_NEW_ReduceAction975_parser___ReduceAction975___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction975();
+  /* ./parser//parser.nit:37745 */
+  INIT_ATTRIBUTES__ReduceAction975(fra.me.REG[0]);
+  parser___ReduceAction975___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction975(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction976[50] = {
+  {(bigint) 379 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction976 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction976 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 379 /* 4: ReduceAction976 < ReduceAction976: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction976 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction976 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction976___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction976 < ReduceAction976: superclass init_table position */},
+  {(bigint) parser___ReduceAction976___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction976(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction976;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction976(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction976;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction976(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction976;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction976_parser___ReduceAction976___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37806;
+  fra.me.meth = LOCATE_NEW_ReduceAction976_parser___ReduceAction976___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction976();
+  /* ./parser//parser.nit:37806 */
+  INIT_ATTRIBUTES__ReduceAction976(fra.me.REG[0]);
+  parser___ReduceAction976___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction976(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction977[50] = {
+  {(bigint) 375 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction977 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction977 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 375 /* 4: ReduceAction977 < ReduceAction977: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction977 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction977 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction977___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction977 < ReduceAction977: superclass init_table position */},
+  {(bigint) parser___ReduceAction977___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction977(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction977;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction977(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction977;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction977(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction977;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction977_parser___ReduceAction977___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37850;
+  fra.me.meth = LOCATE_NEW_ReduceAction977_parser___ReduceAction977___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction977();
+  /* ./parser//parser.nit:37850 */
+  INIT_ATTRIBUTES__ReduceAction977(fra.me.REG[0]);
+  parser___ReduceAction977___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction977(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction978[50] = {
+  {(bigint) 371 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction978 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction978 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 371 /* 4: ReduceAction978 < ReduceAction978: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction978 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction978 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction978___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction978 < ReduceAction978: superclass init_table position */},
+  {(bigint) parser___ReduceAction978___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction978(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction978;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction978(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction978;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction978(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction978;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction978_parser___ReduceAction978___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37893;
+  fra.me.meth = LOCATE_NEW_ReduceAction978_parser___ReduceAction978___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction978();
+  /* ./parser//parser.nit:37893 */
+  INIT_ATTRIBUTES__ReduceAction978(fra.me.REG[0]);
+  parser___ReduceAction978___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction978(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction979[50] = {
+  {(bigint) 367 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction979 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction979 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 367 /* 4: ReduceAction979 < ReduceAction979: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction979 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction979 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction979___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction979 < ReduceAction979: superclass init_table position */},
+  {(bigint) parser___ReduceAction979___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction979(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction979;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction979(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction979;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction979(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction979;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction979_parser___ReduceAction979___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37937;
+  fra.me.meth = LOCATE_NEW_ReduceAction979_parser___ReduceAction979___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction979();
+  /* ./parser//parser.nit:37937 */
+  INIT_ATTRIBUTES__ReduceAction979(fra.me.REG[0]);
+  parser___ReduceAction979___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction979(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction980[50] = {
+  {(bigint) 359 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction980 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction980 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 359 /* 4: ReduceAction980 < ReduceAction980: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction980 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction980 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction980___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction980 < ReduceAction980: superclass init_table position */},
+  {(bigint) parser___ReduceAction980___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction980(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction980;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction980(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction980;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction980(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction980;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction980_parser___ReduceAction980___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37991;
+  fra.me.meth = LOCATE_NEW_ReduceAction980_parser___ReduceAction980___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction980();
+  /* ./parser//parser.nit:37991 */
+  INIT_ATTRIBUTES__ReduceAction980(fra.me.REG[0]);
+  parser___ReduceAction980___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction980(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction981[50] = {
+  {(bigint) 355 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction981 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction981 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 355 /* 4: ReduceAction981 < ReduceAction981: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction981 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction981 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction981___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction981 < ReduceAction981: superclass init_table position */},
+  {(bigint) parser___ReduceAction981___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction981(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction981;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction981(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction981;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction981(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction981;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction981_parser___ReduceAction981___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38028;
+  fra.me.meth = LOCATE_NEW_ReduceAction981_parser___ReduceAction981___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction981();
+  /* ./parser//parser.nit:38028 */
+  INIT_ATTRIBUTES__ReduceAction981(fra.me.REG[0]);
+  parser___ReduceAction981___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction981(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction982[50] = {
+  {(bigint) 351 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction982 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction982 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 351 /* 4: ReduceAction982 < ReduceAction982: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction982 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction982 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction982___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction982 < ReduceAction982: superclass init_table position */},
+  {(bigint) parser___ReduceAction982___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction982(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction982;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction982(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction982;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction982(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction982;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction982_parser___ReduceAction982___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38064;
+  fra.me.meth = LOCATE_NEW_ReduceAction982_parser___ReduceAction982___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction982();
+  /* ./parser//parser.nit:38064 */
+  INIT_ATTRIBUTES__ReduceAction982(fra.me.REG[0]);
+  parser___ReduceAction982___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction982(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction983[50] = {
+  {(bigint) 347 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction983 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction983 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 347 /* 4: ReduceAction983 < ReduceAction983: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction983 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction983 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction983___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction983 < ReduceAction983: superclass init_table position */},
+  {(bigint) parser___ReduceAction983___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction983(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction983;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction983(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction983;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction983(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction983;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction983_parser___ReduceAction983___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38118;
+  fra.me.meth = LOCATE_NEW_ReduceAction983_parser___ReduceAction983___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction983();
+  /* ./parser//parser.nit:38118 */
+  INIT_ATTRIBUTES__ReduceAction983(fra.me.REG[0]);
+  parser___ReduceAction983___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction983(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction984[50] = {
+  {(bigint) 343 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction984 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction984 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 343 /* 4: ReduceAction984 < ReduceAction984: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction984 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction984 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction984___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction984 < ReduceAction984: superclass init_table position */},
+  {(bigint) parser___ReduceAction984___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction984(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction984;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction984(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction984;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction984(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction984;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction984_parser___ReduceAction984___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38182;
+  fra.me.meth = LOCATE_NEW_ReduceAction984_parser___ReduceAction984___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction984();
+  /* ./parser//parser.nit:38182 */
+  INIT_ATTRIBUTES__ReduceAction984(fra.me.REG[0]);
+  parser___ReduceAction984___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction984(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction985[50] = {
+  {(bigint) 339 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction985 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction985 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 339 /* 4: ReduceAction985 < ReduceAction985: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction985 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction985 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction985___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction985 < ReduceAction985: superclass init_table position */},
+  {(bigint) parser___ReduceAction985___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction985(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction985;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction985(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction985;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction985(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction985;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction985_parser___ReduceAction985___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38229;
+  fra.me.meth = LOCATE_NEW_ReduceAction985_parser___ReduceAction985___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction985();
+  /* ./parser//parser.nit:38229 */
+  INIT_ATTRIBUTES__ReduceAction985(fra.me.REG[0]);
+  parser___ReduceAction985___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction985(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction986[50] = {
+  {(bigint) 335 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction986 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction986 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 335 /* 4: ReduceAction986 < ReduceAction986: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction986 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction986 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction986___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction986 < ReduceAction986: superclass init_table position */},
+  {(bigint) parser___ReduceAction986___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction986(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction986;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction986(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction986;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction986(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction986;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction986_parser___ReduceAction986___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38275;
+  fra.me.meth = LOCATE_NEW_ReduceAction986_parser___ReduceAction986___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction986();
+  /* ./parser//parser.nit:38275 */
+  INIT_ATTRIBUTES__ReduceAction986(fra.me.REG[0]);
+  parser___ReduceAction986___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction986(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction987[50] = {
+  {(bigint) 331 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction987 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction987 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 331 /* 4: ReduceAction987 < ReduceAction987: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction987 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction987 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction987___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction987 < ReduceAction987: superclass init_table position */},
+  {(bigint) parser___ReduceAction987___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction987(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction987;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction987(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction987;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction987(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction987;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction987_parser___ReduceAction987___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38306;
+  fra.me.meth = LOCATE_NEW_ReduceAction987_parser___ReduceAction987___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction987();
+  /* ./parser//parser.nit:38306 */
+  INIT_ATTRIBUTES__ReduceAction987(fra.me.REG[0]);
+  parser___ReduceAction987___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction987(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction988[50] = {
+  {(bigint) 327 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction988 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction988 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 327 /* 4: ReduceAction988 < ReduceAction988: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction988 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction988 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction988___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction988 < ReduceAction988: superclass init_table position */},
+  {(bigint) parser___ReduceAction988___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction988(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction988;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction988(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction988;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction988(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction988;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction988_parser___ReduceAction988___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38347;
+  fra.me.meth = LOCATE_NEW_ReduceAction988_parser___ReduceAction988___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction988();
+  /* ./parser//parser.nit:38347 */
+  INIT_ATTRIBUTES__ReduceAction988(fra.me.REG[0]);
+  parser___ReduceAction988___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction988(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction989[50] = {
+  {(bigint) 323 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction989 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction989 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 323 /* 4: ReduceAction989 < ReduceAction989: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction989 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction989 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction989___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction989 < ReduceAction989: superclass init_table position */},
+  {(bigint) parser___ReduceAction989___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction989(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction989;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction989(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction989;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction989(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction989;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction989_parser___ReduceAction989___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38377;
+  fra.me.meth = LOCATE_NEW_ReduceAction989_parser___ReduceAction989___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction989();
+  /* ./parser//parser.nit:38377 */
+  INIT_ATTRIBUTES__ReduceAction989(fra.me.REG[0]);
+  parser___ReduceAction989___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction989(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction990[50] = {
+  {(bigint) 315 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction990 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction990 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 315 /* 4: ReduceAction990 < ReduceAction990: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction990 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction990 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction990___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction990 < ReduceAction990: superclass init_table position */},
+  {(bigint) parser___ReduceAction990___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction990(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction990;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction990(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction990;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction990(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction990;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction990_parser___ReduceAction990___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38417;
+  fra.me.meth = LOCATE_NEW_ReduceAction990_parser___ReduceAction990___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction990();
+  /* ./parser//parser.nit:38417 */
+  INIT_ATTRIBUTES__ReduceAction990(fra.me.REG[0]);
+  parser___ReduceAction990___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction990(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction991[50] = {
+  {(bigint) 311 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction991 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction991 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 311 /* 4: ReduceAction991 < ReduceAction991: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction991 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction991 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction991___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction991 < ReduceAction991: superclass init_table position */},
+  {(bigint) parser___ReduceAction991___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction991(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction991;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction991(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction991;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction991(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction991;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction991_parser___ReduceAction991___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38435;
+  fra.me.meth = LOCATE_NEW_ReduceAction991_parser___ReduceAction991___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction991();
+  /* ./parser//parser.nit:38435 */
+  INIT_ATTRIBUTES__ReduceAction991(fra.me.REG[0]);
+  parser___ReduceAction991___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction991(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction992[50] = {
+  {(bigint) 307 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction992 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction992 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 307 /* 4: ReduceAction992 < ReduceAction992: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction992 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction992 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction992___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction992 < ReduceAction992: superclass init_table position */},
+  {(bigint) parser___ReduceAction992___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction992(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction992;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction992(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction992;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction992(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction992;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction992_parser___ReduceAction992___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38458;
+  fra.me.meth = LOCATE_NEW_ReduceAction992_parser___ReduceAction992___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction992();
+  /* ./parser//parser.nit:38458 */
+  INIT_ATTRIBUTES__ReduceAction992(fra.me.REG[0]);
+  parser___ReduceAction992___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction992(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction993[50] = {
+  {(bigint) 303 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction993 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction993 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ReduceAction993 < ReduceAction993: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction993 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction993 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction993___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction993 < ReduceAction993: superclass init_table position */},
+  {(bigint) parser___ReduceAction993___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction993(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction993;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction993(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction993;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction993(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction993;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction993_parser___ReduceAction993___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38484;
+  fra.me.meth = LOCATE_NEW_ReduceAction993_parser___ReduceAction993___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction993();
+  /* ./parser//parser.nit:38484 */
+  INIT_ATTRIBUTES__ReduceAction993(fra.me.REG[0]);
+  parser___ReduceAction993___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction993(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction994[50] = {
+  {(bigint) 299 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction994 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction994 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 299 /* 4: ReduceAction994 < ReduceAction994: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction994 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction994 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction994___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction994 < ReduceAction994: superclass init_table position */},
+  {(bigint) parser___ReduceAction994___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction994(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction994;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction994(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction994;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction994(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction994;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction994_parser___ReduceAction994___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38514;
+  fra.me.meth = LOCATE_NEW_ReduceAction994_parser___ReduceAction994___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction994();
+  /* ./parser//parser.nit:38514 */
+  INIT_ATTRIBUTES__ReduceAction994(fra.me.REG[0]);
+  parser___ReduceAction994___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction994(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction995[50] = {
+  {(bigint) 295 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction995 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction995 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 295 /* 4: ReduceAction995 < ReduceAction995: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction995 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction995 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction995___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction995 < ReduceAction995: superclass init_table position */},
+  {(bigint) parser___ReduceAction995___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction995(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction995;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction995(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction995;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction995(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction995;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction995_parser___ReduceAction995___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38547;
+  fra.me.meth = LOCATE_NEW_ReduceAction995_parser___ReduceAction995___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction995();
+  /* ./parser//parser.nit:38547 */
+  INIT_ATTRIBUTES__ReduceAction995(fra.me.REG[0]);
+  parser___ReduceAction995___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction995(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction996[50] = {
+  {(bigint) 291 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction996 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction996 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 291 /* 4: ReduceAction996 < ReduceAction996: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction996 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction996 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction996___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction996 < ReduceAction996: superclass init_table position */},
+  {(bigint) parser___ReduceAction996___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction996(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction996;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction996(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction996;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction996(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction996;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction996_parser___ReduceAction996___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38577;
+  fra.me.meth = LOCATE_NEW_ReduceAction996_parser___ReduceAction996___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction996();
+  /* ./parser//parser.nit:38577 */
+  INIT_ATTRIBUTES__ReduceAction996(fra.me.REG[0]);
+  parser___ReduceAction996___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction996(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction997[50] = {
+  {(bigint) 287 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction997 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction997 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 287 /* 4: ReduceAction997 < ReduceAction997: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction997 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction997 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction997___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction997 < ReduceAction997: superclass init_table position */},
+  {(bigint) parser___ReduceAction997___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction997(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction997;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction997(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction997;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction997(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction997;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction997_parser___ReduceAction997___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38604;
+  fra.me.meth = LOCATE_NEW_ReduceAction997_parser___ReduceAction997___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction997();
+  /* ./parser//parser.nit:38604 */
+  INIT_ATTRIBUTES__ReduceAction997(fra.me.REG[0]);
+  parser___ReduceAction997___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction997(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction998[50] = {
+  {(bigint) 283 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction998 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction998 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 283 /* 4: ReduceAction998 < ReduceAction998: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction998 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction998 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction998___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction998 < ReduceAction998: superclass init_table position */},
+  {(bigint) parser___ReduceAction998___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction998(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction998;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction998(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction998;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction998(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction998;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction998_parser___ReduceAction998___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38646;
+  fra.me.meth = LOCATE_NEW_ReduceAction998_parser___ReduceAction998___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction998();
+  /* ./parser//parser.nit:38646 */
+  INIT_ATTRIBUTES__ReduceAction998(fra.me.REG[0]);
+  parser___ReduceAction998___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction998(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction999[50] = {
+  {(bigint) 279 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction999 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction999 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 279 /* 4: ReduceAction999 < ReduceAction999: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction999 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction999 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction999___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction999 < ReduceAction999: superclass init_table position */},
+  {(bigint) parser___ReduceAction999___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction999(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction999;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction999(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction999;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction999(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction999;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction999_parser___ReduceAction999___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38685;
+  fra.me.meth = LOCATE_NEW_ReduceAction999_parser___ReduceAction999___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction999();
+  /* ./parser//parser.nit:38685 */
+  INIT_ATTRIBUTES__ReduceAction999(fra.me.REG[0]);
+  parser___ReduceAction999___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction999(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1000[50] = {
+  {(bigint) 5035 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1000 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1000 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5035 /* 4: ReduceAction1000 < ReduceAction1000: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1000 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1000 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1000___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1000 < ReduceAction1000: superclass init_table position */},
+  {(bigint) parser___ReduceAction1000___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1000(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1000;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1000(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1000;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1000(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1000;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1000_parser___ReduceAction1000___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38721;
+  fra.me.meth = LOCATE_NEW_ReduceAction1000_parser___ReduceAction1000___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1000();
+  /* ./parser//parser.nit:38721 */
+  INIT_ATTRIBUTES__ReduceAction1000(fra.me.REG[0]);
+  parser___ReduceAction1000___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1000(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1001[50] = {
+  {(bigint) 5031 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1001 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1001 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5031 /* 4: ReduceAction1001 < ReduceAction1001: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1001 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1001 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1001___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1001 < ReduceAction1001: superclass init_table position */},
+  {(bigint) parser___ReduceAction1001___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1001(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1001;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1001(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1001;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1001(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1001;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1001_parser___ReduceAction1001___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38751;
+  fra.me.meth = LOCATE_NEW_ReduceAction1001_parser___ReduceAction1001___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1001();
+  /* ./parser//parser.nit:38751 */
+  INIT_ATTRIBUTES__ReduceAction1001(fra.me.REG[0]);
+  parser___ReduceAction1001___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1001(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1002[50] = {
+  {(bigint) 5027 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1002 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1002 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5027 /* 4: ReduceAction1002 < ReduceAction1002: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1002 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1002 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1002___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1002 < ReduceAction1002: superclass init_table position */},
+  {(bigint) parser___ReduceAction1002___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1002(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1002;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1002(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1002;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1002(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1002;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1002_parser___ReduceAction1002___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38778;
+  fra.me.meth = LOCATE_NEW_ReduceAction1002_parser___ReduceAction1002___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1002();
+  /* ./parser//parser.nit:38778 */
+  INIT_ATTRIBUTES__ReduceAction1002(fra.me.REG[0]);
+  parser___ReduceAction1002___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1002(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1003[50] = {
+  {(bigint) 5023 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1003 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1003 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5023 /* 4: ReduceAction1003 < ReduceAction1003: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1003 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1003 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1003___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1003 < ReduceAction1003: superclass init_table position */},
+  {(bigint) parser___ReduceAction1003___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1003(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1003;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1003(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1003;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1003(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1003;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1003_parser___ReduceAction1003___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38820;
+  fra.me.meth = LOCATE_NEW_ReduceAction1003_parser___ReduceAction1003___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1003();
+  /* ./parser//parser.nit:38820 */
+  INIT_ATTRIBUTES__ReduceAction1003(fra.me.REG[0]);
+  parser___ReduceAction1003___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1003(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1004[50] = {
+  {(bigint) 5019 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1004 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1004 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5019 /* 4: ReduceAction1004 < ReduceAction1004: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1004 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1004 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1004___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1004 < ReduceAction1004: superclass init_table position */},
+  {(bigint) parser___ReduceAction1004___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1004(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1004;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1004(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1004;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1004(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1004;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1004_parser___ReduceAction1004___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38859;
+  fra.me.meth = LOCATE_NEW_ReduceAction1004_parser___ReduceAction1004___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1004();
+  /* ./parser//parser.nit:38859 */
+  INIT_ATTRIBUTES__ReduceAction1004(fra.me.REG[0]);
+  parser___ReduceAction1004___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1004(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1005[50] = {
+  {(bigint) 5015 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1005 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1005 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5015 /* 4: ReduceAction1005 < ReduceAction1005: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1005 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1005 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1005___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1005 < ReduceAction1005: superclass init_table position */},
+  {(bigint) parser___ReduceAction1005___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1005(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1005;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1005(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1005;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1005(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1005;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1005_parser___ReduceAction1005___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38895;
+  fra.me.meth = LOCATE_NEW_ReduceAction1005_parser___ReduceAction1005___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1005();
+  /* ./parser//parser.nit:38895 */
+  INIT_ATTRIBUTES__ReduceAction1005(fra.me.REG[0]);
+  parser___ReduceAction1005___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1005(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1006[50] = {
+  {(bigint) 5011 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1006 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1006 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5011 /* 4: ReduceAction1006 < ReduceAction1006: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1006 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1006 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1006___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1006 < ReduceAction1006: superclass init_table position */},
+  {(bigint) parser___ReduceAction1006___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1006(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1006;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1006(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1006;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1006(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1006;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1006_parser___ReduceAction1006___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38926;
+  fra.me.meth = LOCATE_NEW_ReduceAction1006_parser___ReduceAction1006___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1006();
+  /* ./parser//parser.nit:38926 */
+  INIT_ATTRIBUTES__ReduceAction1006(fra.me.REG[0]);
+  parser___ReduceAction1006___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1006(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1007[50] = {
+  {(bigint) 5007 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1007 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1007 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5007 /* 4: ReduceAction1007 < ReduceAction1007: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1007 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1007 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1007___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1007 < ReduceAction1007: superclass init_table position */},
+  {(bigint) parser___ReduceAction1007___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1007(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1007;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1007(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1007;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1007(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1007;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1007_parser___ReduceAction1007___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38967;
+  fra.me.meth = LOCATE_NEW_ReduceAction1007_parser___ReduceAction1007___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1007();
+  /* ./parser//parser.nit:38967 */
+  INIT_ATTRIBUTES__ReduceAction1007(fra.me.REG[0]);
+  parser___ReduceAction1007___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1007(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1008[50] = {
+  {(bigint) 5003 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1008 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1008 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 5003 /* 4: ReduceAction1008 < ReduceAction1008: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1008 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1008 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1008___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1008 < ReduceAction1008: superclass init_table position */},
+  {(bigint) parser___ReduceAction1008___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1008(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1008;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1008(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1008;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1008(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1008;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1008_parser___ReduceAction1008___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 38991;
+  fra.me.meth = LOCATE_NEW_ReduceAction1008_parser___ReduceAction1008___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1008();
+  /* ./parser//parser.nit:38991 */
+  INIT_ATTRIBUTES__ReduceAction1008(fra.me.REG[0]);
+  parser___ReduceAction1008___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1008(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1009[50] = {
+  {(bigint) 4999 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1009 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1009 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4999 /* 4: ReduceAction1009 < ReduceAction1009: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1009 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1009 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1009___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1009 < ReduceAction1009: superclass init_table position */},
+  {(bigint) parser___ReduceAction1009___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1009(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1009;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1009(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1009;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1009(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1009;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1009_parser___ReduceAction1009___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39014;
+  fra.me.meth = LOCATE_NEW_ReduceAction1009_parser___ReduceAction1009___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1009();
+  /* ./parser//parser.nit:39014 */
+  INIT_ATTRIBUTES__ReduceAction1009(fra.me.REG[0]);
+  parser___ReduceAction1009___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1009(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1010[50] = {
+  {(bigint) 4991 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1010 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1010 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4991 /* 4: ReduceAction1010 < ReduceAction1010: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1010 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1010 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1010___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1010 < ReduceAction1010: superclass init_table position */},
+  {(bigint) parser___ReduceAction1010___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1010(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1010;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1010(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1010;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1010(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1010;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1010_parser___ReduceAction1010___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39048;
+  fra.me.meth = LOCATE_NEW_ReduceAction1010_parser___ReduceAction1010___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1010();
+  /* ./parser//parser.nit:39048 */
+  INIT_ATTRIBUTES__ReduceAction1010(fra.me.REG[0]);
+  parser___ReduceAction1010___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1010(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1011[50] = {
+  {(bigint) 4987 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1011 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1011 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4987 /* 4: ReduceAction1011 < ReduceAction1011: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1011 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1011 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1011___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1011 < ReduceAction1011: superclass init_table position */},
+  {(bigint) parser___ReduceAction1011___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1011(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1011;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1011(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1011;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1011(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1011;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1011_parser___ReduceAction1011___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39092;
+  fra.me.meth = LOCATE_NEW_ReduceAction1011_parser___ReduceAction1011___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1011();
+  /* ./parser//parser.nit:39092 */
+  INIT_ATTRIBUTES__ReduceAction1011(fra.me.REG[0]);
+  parser___ReduceAction1011___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1011(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1012[50] = {
+  {(bigint) 4983 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1012 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1012 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4983 /* 4: ReduceAction1012 < ReduceAction1012: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1012 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1012 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1012___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1012 < ReduceAction1012: superclass init_table position */},
+  {(bigint) parser___ReduceAction1012___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1012(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1012;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1012(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1012;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1012(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1012;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1012_parser___ReduceAction1012___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39119;
+  fra.me.meth = LOCATE_NEW_ReduceAction1012_parser___ReduceAction1012___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1012();
+  /* ./parser//parser.nit:39119 */
+  INIT_ATTRIBUTES__ReduceAction1012(fra.me.REG[0]);
+  parser___ReduceAction1012___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1012(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1013[50] = {
+  {(bigint) 4979 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1013 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1013 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4979 /* 4: ReduceAction1013 < ReduceAction1013: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1013 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1013 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1013___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1013 < ReduceAction1013: superclass init_table position */},
+  {(bigint) parser___ReduceAction1013___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1013(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1013;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1013(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1013;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1013(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1013;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1013_parser___ReduceAction1013___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39145;
+  fra.me.meth = LOCATE_NEW_ReduceAction1013_parser___ReduceAction1013___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1013();
+  /* ./parser//parser.nit:39145 */
+  INIT_ATTRIBUTES__ReduceAction1013(fra.me.REG[0]);
+  parser___ReduceAction1013___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1013(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1014[50] = {
+  {(bigint) 4975 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1014 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1014 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4975 /* 4: ReduceAction1014 < ReduceAction1014: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1014 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1014 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1014___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1014 < ReduceAction1014: superclass init_table position */},
+  {(bigint) parser___ReduceAction1014___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1014(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1014;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1014(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1014;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1014(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1014;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1014_parser___ReduceAction1014___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39166;
+  fra.me.meth = LOCATE_NEW_ReduceAction1014_parser___ReduceAction1014___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1014();
+  /* ./parser//parser.nit:39166 */
+  INIT_ATTRIBUTES__ReduceAction1014(fra.me.REG[0]);
+  parser___ReduceAction1014___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1014(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1015[50] = {
+  {(bigint) 4971 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1015 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1015 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4971 /* 4: ReduceAction1015 < ReduceAction1015: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1015 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1015 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1015___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1015 < ReduceAction1015: superclass init_table position */},
+  {(bigint) parser___ReduceAction1015___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1015(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1015;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1015(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1015;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1015(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1015;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1015_parser___ReduceAction1015___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39198;
+  fra.me.meth = LOCATE_NEW_ReduceAction1015_parser___ReduceAction1015___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1015();
+  /* ./parser//parser.nit:39198 */
+  INIT_ATTRIBUTES__ReduceAction1015(fra.me.REG[0]);
+  parser___ReduceAction1015___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1015(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1016[50] = {
+  {(bigint) 4967 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1016 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1016 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4967 /* 4: ReduceAction1016 < ReduceAction1016: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1016 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1016 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1016___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1016 < ReduceAction1016: superclass init_table position */},
+  {(bigint) parser___ReduceAction1016___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1016(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1016;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1016(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1016;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1016(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1016;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1016_parser___ReduceAction1016___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39229;
+  fra.me.meth = LOCATE_NEW_ReduceAction1016_parser___ReduceAction1016___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1016();
+  /* ./parser//parser.nit:39229 */
+  INIT_ATTRIBUTES__ReduceAction1016(fra.me.REG[0]);
+  parser___ReduceAction1016___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1016(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1017[50] = {
+  {(bigint) 4963 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1017 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1017 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4963 /* 4: ReduceAction1017 < ReduceAction1017: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1017 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1017 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1017___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1017 < ReduceAction1017: superclass init_table position */},
+  {(bigint) parser___ReduceAction1017___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1017(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1017;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1017(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1017;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1017(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1017;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1017_parser___ReduceAction1017___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39270;
+  fra.me.meth = LOCATE_NEW_ReduceAction1017_parser___ReduceAction1017___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1017();
+  /* ./parser//parser.nit:39270 */
+  INIT_ATTRIBUTES__ReduceAction1017(fra.me.REG[0]);
+  parser___ReduceAction1017___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1017(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1018[50] = {
+  {(bigint) 4959 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1018 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1018 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4959 /* 4: ReduceAction1018 < ReduceAction1018: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1018 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1018 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1018___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1018 < ReduceAction1018: superclass init_table position */},
+  {(bigint) parser___ReduceAction1018___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1018(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1018;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1018(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1018;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1018(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1018;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1018_parser___ReduceAction1018___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39294;
+  fra.me.meth = LOCATE_NEW_ReduceAction1018_parser___ReduceAction1018___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1018();
+  /* ./parser//parser.nit:39294 */
+  INIT_ATTRIBUTES__ReduceAction1018(fra.me.REG[0]);
+  parser___ReduceAction1018___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1018(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1019[50] = {
+  {(bigint) 4955 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1019 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1019 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4955 /* 4: ReduceAction1019 < ReduceAction1019: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1019 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1019 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1019___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1019 < ReduceAction1019: superclass init_table position */},
+  {(bigint) parser___ReduceAction1019___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1019(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1019;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1019(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1019;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1019(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1019;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1019_parser___ReduceAction1019___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39317;
+  fra.me.meth = LOCATE_NEW_ReduceAction1019_parser___ReduceAction1019___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1019();
+  /* ./parser//parser.nit:39317 */
+  INIT_ATTRIBUTES__ReduceAction1019(fra.me.REG[0]);
+  parser___ReduceAction1019___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1019(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1020[50] = {
+  {(bigint) 4947 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1020 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1020 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4947 /* 4: ReduceAction1020 < ReduceAction1020: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1020 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1020 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1020___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1020 < ReduceAction1020: superclass init_table position */},
+  {(bigint) parser___ReduceAction1020___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1020(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1020;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1020(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1020;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1020(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1020;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1020_parser___ReduceAction1020___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39351;
+  fra.me.meth = LOCATE_NEW_ReduceAction1020_parser___ReduceAction1020___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1020();
+  /* ./parser//parser.nit:39351 */
+  INIT_ATTRIBUTES__ReduceAction1020(fra.me.REG[0]);
+  parser___ReduceAction1020___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1020(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1021[50] = {
+  {(bigint) 4943 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1021 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1021 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4943 /* 4: ReduceAction1021 < ReduceAction1021: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1021 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1021 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1021___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1021 < ReduceAction1021: superclass init_table position */},
+  {(bigint) parser___ReduceAction1021___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1021(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1021;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1021(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1021;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1021(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1021;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1021_parser___ReduceAction1021___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39395;
+  fra.me.meth = LOCATE_NEW_ReduceAction1021_parser___ReduceAction1021___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1021();
+  /* ./parser//parser.nit:39395 */
+  INIT_ATTRIBUTES__ReduceAction1021(fra.me.REG[0]);
+  parser___ReduceAction1021___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1021(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1022[50] = {
+  {(bigint) 4939 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1022 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1022 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4939 /* 4: ReduceAction1022 < ReduceAction1022: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1022 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1022 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1022___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1022 < ReduceAction1022: superclass init_table position */},
+  {(bigint) parser___ReduceAction1022___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1022(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1022;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1022(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1022;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1022(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1022;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1022_parser___ReduceAction1022___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39422;
+  fra.me.meth = LOCATE_NEW_ReduceAction1022_parser___ReduceAction1022___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1022();
+  /* ./parser//parser.nit:39422 */
+  INIT_ATTRIBUTES__ReduceAction1022(fra.me.REG[0]);
+  parser___ReduceAction1022___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1022(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1023[50] = {
+  {(bigint) 4935 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1023 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1023 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4935 /* 4: ReduceAction1023 < ReduceAction1023: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1023 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1023 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1023___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1023 < ReduceAction1023: superclass init_table position */},
+  {(bigint) parser___ReduceAction1023___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1023(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1023;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1023(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1023;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1023(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1023;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1023_parser___ReduceAction1023___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39448;
+  fra.me.meth = LOCATE_NEW_ReduceAction1023_parser___ReduceAction1023___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1023();
+  /* ./parser//parser.nit:39448 */
+  INIT_ATTRIBUTES__ReduceAction1023(fra.me.REG[0]);
+  parser___ReduceAction1023___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1023(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1024[50] = {
+  {(bigint) 4931 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1024 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1024 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4931 /* 4: ReduceAction1024 < ReduceAction1024: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1024 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1024 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1024___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1024 < ReduceAction1024: superclass init_table position */},
+  {(bigint) parser___ReduceAction1024___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1024(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1024;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1024(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1024;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1024(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1024;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1024_parser___ReduceAction1024___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39469;
+  fra.me.meth = LOCATE_NEW_ReduceAction1024_parser___ReduceAction1024___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1024();
+  /* ./parser//parser.nit:39469 */
+  INIT_ATTRIBUTES__ReduceAction1024(fra.me.REG[0]);
+  parser___ReduceAction1024___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1024(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1025[50] = {
+  {(bigint) 4927 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1025 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1025 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4927 /* 4: ReduceAction1025 < ReduceAction1025: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1025 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1025 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1025___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1025 < ReduceAction1025: superclass init_table position */},
+  {(bigint) parser___ReduceAction1025___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1025(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1025;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1025(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1025;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1025(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1025;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1025_parser___ReduceAction1025___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39510;
+  fra.me.meth = LOCATE_NEW_ReduceAction1025_parser___ReduceAction1025___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1025();
+  /* ./parser//parser.nit:39510 */
+  INIT_ATTRIBUTES__ReduceAction1025(fra.me.REG[0]);
+  parser___ReduceAction1025___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1025(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1026[50] = {
+  {(bigint) 4923 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1026 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1026 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4923 /* 4: ReduceAction1026 < ReduceAction1026: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1026 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1026 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1026___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1026 < ReduceAction1026: superclass init_table position */},
+  {(bigint) parser___ReduceAction1026___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1026(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1026;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1026(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1026;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1026(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1026;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1026_parser___ReduceAction1026___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39561;
+  fra.me.meth = LOCATE_NEW_ReduceAction1026_parser___ReduceAction1026___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1026();
+  /* ./parser//parser.nit:39561 */
+  INIT_ATTRIBUTES__ReduceAction1026(fra.me.REG[0]);
+  parser___ReduceAction1026___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1026(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1027[50] = {
+  {(bigint) 4919 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1027 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1027 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4919 /* 4: ReduceAction1027 < ReduceAction1027: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1027 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1027 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1027___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1027 < ReduceAction1027: superclass init_table position */},
+  {(bigint) parser___ReduceAction1027___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1027(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1027;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1027(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1027;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1027(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1027;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1027_parser___ReduceAction1027___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39595;
+  fra.me.meth = LOCATE_NEW_ReduceAction1027_parser___ReduceAction1027___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1027();
+  /* ./parser//parser.nit:39595 */
+  INIT_ATTRIBUTES__ReduceAction1027(fra.me.REG[0]);
+  parser___ReduceAction1027___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1027(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1028[50] = {
+  {(bigint) 4915 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1028 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1028 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4915 /* 4: ReduceAction1028 < ReduceAction1028: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1028 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1028 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1028___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1028 < ReduceAction1028: superclass init_table position */},
+  {(bigint) parser___ReduceAction1028___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1028(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1028;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1028(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1028;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1028(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1028;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1028_parser___ReduceAction1028___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39628;
+  fra.me.meth = LOCATE_NEW_ReduceAction1028_parser___ReduceAction1028___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1028();
+  /* ./parser//parser.nit:39628 */
+  INIT_ATTRIBUTES__ReduceAction1028(fra.me.REG[0]);
+  parser___ReduceAction1028___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1028(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1029[50] = {
+  {(bigint) 4911 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1029 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1029 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4911 /* 4: ReduceAction1029 < ReduceAction1029: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1029 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1029 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1029___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1029 < ReduceAction1029: superclass init_table position */},
+  {(bigint) parser___ReduceAction1029___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1029(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1029;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1029(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1029;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1029(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1029;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1029_parser___ReduceAction1029___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39672;
+  fra.me.meth = LOCATE_NEW_ReduceAction1029_parser___ReduceAction1029___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1029();
+  /* ./parser//parser.nit:39672 */
+  INIT_ATTRIBUTES__ReduceAction1029(fra.me.REG[0]);
+  parser___ReduceAction1029___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1029(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1030[50] = {
+  {(bigint) 4903 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1030 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1030 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4903 /* 4: ReduceAction1030 < ReduceAction1030: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1030 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1030 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1030___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1030 < ReduceAction1030: superclass init_table position */},
+  {(bigint) parser___ReduceAction1030___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1030(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1030;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1030(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1030;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1030(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1030;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1030_parser___ReduceAction1030___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39726;
+  fra.me.meth = LOCATE_NEW_ReduceAction1030_parser___ReduceAction1030___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1030();
+  /* ./parser//parser.nit:39726 */
+  INIT_ATTRIBUTES__ReduceAction1030(fra.me.REG[0]);
+  parser___ReduceAction1030___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1030(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1031[50] = {
+  {(bigint) 4899 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1031 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1031 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4899 /* 4: ReduceAction1031 < ReduceAction1031: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1031 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1031 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1031___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1031 < ReduceAction1031: superclass init_table position */},
+  {(bigint) parser___ReduceAction1031___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1031(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1031;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1031(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1031;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1031(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1031;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1031_parser___ReduceAction1031___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39763;
+  fra.me.meth = LOCATE_NEW_ReduceAction1031_parser___ReduceAction1031___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1031();
+  /* ./parser//parser.nit:39763 */
+  INIT_ATTRIBUTES__ReduceAction1031(fra.me.REG[0]);
+  parser___ReduceAction1031___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1031(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1032[50] = {
+  {(bigint) 4895 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1032 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1032 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4895 /* 4: ReduceAction1032 < ReduceAction1032: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1032 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1032 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1032___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1032 < ReduceAction1032: superclass init_table position */},
+  {(bigint) parser___ReduceAction1032___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1032(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1032;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1032(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1032;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1032(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1032;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1032_parser___ReduceAction1032___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39799;
+  fra.me.meth = LOCATE_NEW_ReduceAction1032_parser___ReduceAction1032___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1032();
+  /* ./parser//parser.nit:39799 */
+  INIT_ATTRIBUTES__ReduceAction1032(fra.me.REG[0]);
+  parser___ReduceAction1032___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1032(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1033[50] = {
+  {(bigint) 4891 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1033 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1033 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4891 /* 4: ReduceAction1033 < ReduceAction1033: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1033 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1033 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1033___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1033 < ReduceAction1033: superclass init_table position */},
+  {(bigint) parser___ReduceAction1033___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1033(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1033;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1033(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1033;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1033(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1033;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1033_parser___ReduceAction1033___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39830;
+  fra.me.meth = LOCATE_NEW_ReduceAction1033_parser___ReduceAction1033___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1033();
+  /* ./parser//parser.nit:39830 */
+  INIT_ATTRIBUTES__ReduceAction1033(fra.me.REG[0]);
+  parser___ReduceAction1033___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1033(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1034[50] = {
+  {(bigint) 4887 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1034 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1034 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4887 /* 4: ReduceAction1034 < ReduceAction1034: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1034 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1034 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1034___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1034 < ReduceAction1034: superclass init_table position */},
+  {(bigint) parser___ReduceAction1034___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1034(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1034;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1034(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1034;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1034(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1034;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1034_parser___ReduceAction1034___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39878;
+  fra.me.meth = LOCATE_NEW_ReduceAction1034_parser___ReduceAction1034___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1034();
+  /* ./parser//parser.nit:39878 */
+  INIT_ATTRIBUTES__ReduceAction1034(fra.me.REG[0]);
+  parser___ReduceAction1034___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1034(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1035[50] = {
+  {(bigint) 4883 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1035 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1035 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4883 /* 4: ReduceAction1035 < ReduceAction1035: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1035 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1035 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1035___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1035 < ReduceAction1035: superclass init_table position */},
+  {(bigint) parser___ReduceAction1035___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1035(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1035;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1035(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1035;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1035(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1035;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1035_parser___ReduceAction1035___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39936;
+  fra.me.meth = LOCATE_NEW_ReduceAction1035_parser___ReduceAction1035___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1035();
+  /* ./parser//parser.nit:39936 */
+  INIT_ATTRIBUTES__ReduceAction1035(fra.me.REG[0]);
+  parser___ReduceAction1035___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1035(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1036[50] = {
+  {(bigint) 4879 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1036 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1036 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4879 /* 4: ReduceAction1036 < ReduceAction1036: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1036 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1036 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1036___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1036 < ReduceAction1036: superclass init_table position */},
+  {(bigint) parser___ReduceAction1036___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1036(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1036;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1036(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1036;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1036(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1036;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1036_parser___ReduceAction1036___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 39977;
+  fra.me.meth = LOCATE_NEW_ReduceAction1036_parser___ReduceAction1036___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1036();
+  /* ./parser//parser.nit:39977 */
+  INIT_ATTRIBUTES__ReduceAction1036(fra.me.REG[0]);
+  parser___ReduceAction1036___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1036(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1037[50] = {
+  {(bigint) 4875 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1037 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1037 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4875 /* 4: ReduceAction1037 < ReduceAction1037: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1037 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1037 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1037___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1037 < ReduceAction1037: superclass init_table position */},
+  {(bigint) parser___ReduceAction1037___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1037(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1037;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1037(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1037;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1037(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1037;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1037_parser___ReduceAction1037___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40017;
+  fra.me.meth = LOCATE_NEW_ReduceAction1037_parser___ReduceAction1037___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1037();
+  /* ./parser//parser.nit:40017 */
+  INIT_ATTRIBUTES__ReduceAction1037(fra.me.REG[0]);
+  parser___ReduceAction1037___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1037(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1038[50] = {
+  {(bigint) 4871 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1038 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1038 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4871 /* 4: ReduceAction1038 < ReduceAction1038: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1038 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1038 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1038___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1038 < ReduceAction1038: superclass init_table position */},
+  {(bigint) parser___ReduceAction1038___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1038(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1038;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1038(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1038;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1038(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1038;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1038_parser___ReduceAction1038___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40068;
+  fra.me.meth = LOCATE_NEW_ReduceAction1038_parser___ReduceAction1038___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1038();
+  /* ./parser//parser.nit:40068 */
+  INIT_ATTRIBUTES__ReduceAction1038(fra.me.REG[0]);
+  parser___ReduceAction1038___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1038(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1039[50] = {
+  {(bigint) 4867 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1039 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1039 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4867 /* 4: ReduceAction1039 < ReduceAction1039: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1039 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1039 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1039___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1039 < ReduceAction1039: superclass init_table position */},
+  {(bigint) parser___ReduceAction1039___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1039(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1039;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1039(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1039;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1039(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1039;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1039_parser___ReduceAction1039___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40129;
+  fra.me.meth = LOCATE_NEW_ReduceAction1039_parser___ReduceAction1039___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1039();
+  /* ./parser//parser.nit:40129 */
+  INIT_ATTRIBUTES__ReduceAction1039(fra.me.REG[0]);
+  parser___ReduceAction1039___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1039(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1040[50] = {
+  {(bigint) 4859 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1040 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1040 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4859 /* 4: ReduceAction1040 < ReduceAction1040: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1040 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1040 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1040___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1040 < ReduceAction1040: superclass init_table position */},
+  {(bigint) parser___ReduceAction1040___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1040(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1040;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1040(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1040;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1040(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1040;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1040_parser___ReduceAction1040___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40173;
+  fra.me.meth = LOCATE_NEW_ReduceAction1040_parser___ReduceAction1040___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1040();
+  /* ./parser//parser.nit:40173 */
+  INIT_ATTRIBUTES__ReduceAction1040(fra.me.REG[0]);
+  parser___ReduceAction1040___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1040(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1041[50] = {
+  {(bigint) 4855 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1041 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1041 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4855 /* 4: ReduceAction1041 < ReduceAction1041: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1041 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1041 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1041___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1041 < ReduceAction1041: superclass init_table position */},
+  {(bigint) parser___ReduceAction1041___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1041(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1041;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1041(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1041;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1041(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1041;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1041_parser___ReduceAction1041___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40216;
+  fra.me.meth = LOCATE_NEW_ReduceAction1041_parser___ReduceAction1041___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1041();
+  /* ./parser//parser.nit:40216 */
+  INIT_ATTRIBUTES__ReduceAction1041(fra.me.REG[0]);
+  parser___ReduceAction1041___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1041(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1042[50] = {
+  {(bigint) 4851 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1042 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1042 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4851 /* 4: ReduceAction1042 < ReduceAction1042: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1042 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1042 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1042___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1042 < ReduceAction1042: superclass init_table position */},
+  {(bigint) parser___ReduceAction1042___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1042(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1042;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1042(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1042;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1042(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1042;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1042_parser___ReduceAction1042___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40254;
+  fra.me.meth = LOCATE_NEW_ReduceAction1042_parser___ReduceAction1042___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1042();
+  /* ./parser//parser.nit:40254 */
+  INIT_ATTRIBUTES__ReduceAction1042(fra.me.REG[0]);
+  parser___ReduceAction1042___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1042(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1043[50] = {
+  {(bigint) 4847 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1043 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1043 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4847 /* 4: ReduceAction1043 < ReduceAction1043: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1043 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1043 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1043___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1043 < ReduceAction1043: superclass init_table position */},
+  {(bigint) parser___ReduceAction1043___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1043(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1043;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1043(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1043;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1043(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1043;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1043_parser___ReduceAction1043___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40280;
+  fra.me.meth = LOCATE_NEW_ReduceAction1043_parser___ReduceAction1043___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1043();
+  /* ./parser//parser.nit:40280 */
+  INIT_ATTRIBUTES__ReduceAction1043(fra.me.REG[0]);
+  parser___ReduceAction1043___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1043(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1044[50] = {
+  {(bigint) 4843 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1044 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1044 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4843 /* 4: ReduceAction1044 < ReduceAction1044: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1044 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1044 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1044___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1044 < ReduceAction1044: superclass init_table position */},
+  {(bigint) parser___ReduceAction1044___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1044(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1044;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1044(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1044;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1044(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1044;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1044_parser___ReduceAction1044___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40309;
+  fra.me.meth = LOCATE_NEW_ReduceAction1044_parser___ReduceAction1044___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1044();
+  /* ./parser//parser.nit:40309 */
+  INIT_ATTRIBUTES__ReduceAction1044(fra.me.REG[0]);
+  parser___ReduceAction1044___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1044(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1045[50] = {
+  {(bigint) 4839 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1045 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1045 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4839 /* 4: ReduceAction1045 < ReduceAction1045: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1045 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1045 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1045___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1045 < ReduceAction1045: superclass init_table position */},
+  {(bigint) parser___ReduceAction1045___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1045(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1045;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1045(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1045;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1045(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1045;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1045_parser___ReduceAction1045___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40322;
+  fra.me.meth = LOCATE_NEW_ReduceAction1045_parser___ReduceAction1045___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1045();
+  /* ./parser//parser.nit:40322 */
+  INIT_ATTRIBUTES__ReduceAction1045(fra.me.REG[0]);
+  parser___ReduceAction1045___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1045(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1046[50] = {
+  {(bigint) 4835 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1046 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1046 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4835 /* 4: ReduceAction1046 < ReduceAction1046: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1046 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1046 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1046___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1046 < ReduceAction1046: superclass init_table position */},
+  {(bigint) parser___ReduceAction1046___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1046(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1046;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1046(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1046;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1046(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1046;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1046_parser___ReduceAction1046___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40368;
+  fra.me.meth = LOCATE_NEW_ReduceAction1046_parser___ReduceAction1046___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1046();
+  /* ./parser//parser.nit:40368 */
+  INIT_ATTRIBUTES__ReduceAction1046(fra.me.REG[0]);
+  parser___ReduceAction1046___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1046(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1047[50] = {
+  {(bigint) 4831 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1047 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1047 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4831 /* 4: ReduceAction1047 < ReduceAction1047: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1047 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1047 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1047___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1047 < ReduceAction1047: superclass init_table position */},
+  {(bigint) parser___ReduceAction1047___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1047(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1047;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1047(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1047;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1047(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1047;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1047_parser___ReduceAction1047___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40411;
+  fra.me.meth = LOCATE_NEW_ReduceAction1047_parser___ReduceAction1047___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1047();
+  /* ./parser//parser.nit:40411 */
+  INIT_ATTRIBUTES__ReduceAction1047(fra.me.REG[0]);
+  parser___ReduceAction1047___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1047(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1048[50] = {
+  {(bigint) 4827 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1048 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1048 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4827 /* 4: ReduceAction1048 < ReduceAction1048: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1048 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1048 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1048___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1048 < ReduceAction1048: superclass init_table position */},
+  {(bigint) parser___ReduceAction1048___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1048(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1048;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1048(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1048;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1048(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1048;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1048_parser___ReduceAction1048___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40451;
+  fra.me.meth = LOCATE_NEW_ReduceAction1048_parser___ReduceAction1048___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1048();
+  /* ./parser//parser.nit:40451 */
+  INIT_ATTRIBUTES__ReduceAction1048(fra.me.REG[0]);
+  parser___ReduceAction1048___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1048(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1049[50] = {
+  {(bigint) 4823 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1049 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1049 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4823 /* 4: ReduceAction1049 < ReduceAction1049: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1049 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1049 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1049___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1049 < ReduceAction1049: superclass init_table position */},
+  {(bigint) parser___ReduceAction1049___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1049(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1049;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1049(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1049;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1049(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1049;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1049_parser___ReduceAction1049___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40464;
+  fra.me.meth = LOCATE_NEW_ReduceAction1049_parser___ReduceAction1049___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1049();
+  /* ./parser//parser.nit:40464 */
+  INIT_ATTRIBUTES__ReduceAction1049(fra.me.REG[0]);
+  parser___ReduceAction1049___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1049(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1050[50] = {
+  {(bigint) 4815 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1050 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1050 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4815 /* 4: ReduceAction1050 < ReduceAction1050: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1050 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1050 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1050___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1050 < ReduceAction1050: superclass init_table position */},
+  {(bigint) parser___ReduceAction1050___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1050(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1050;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1050(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1050;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1050(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1050;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1050_parser___ReduceAction1050___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40510;
+  fra.me.meth = LOCATE_NEW_ReduceAction1050_parser___ReduceAction1050___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1050();
+  /* ./parser//parser.nit:40510 */
+  INIT_ATTRIBUTES__ReduceAction1050(fra.me.REG[0]);
+  parser___ReduceAction1050___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1050(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1051[50] = {
+  {(bigint) 4811 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1051 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1051 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4811 /* 4: ReduceAction1051 < ReduceAction1051: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1051 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1051 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1051___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1051 < ReduceAction1051: superclass init_table position */},
+  {(bigint) parser___ReduceAction1051___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1051(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1051;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1051(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1051;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1051(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1051;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1051_parser___ReduceAction1051___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40553;
+  fra.me.meth = LOCATE_NEW_ReduceAction1051_parser___ReduceAction1051___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1051();
+  /* ./parser//parser.nit:40553 */
+  INIT_ATTRIBUTES__ReduceAction1051(fra.me.REG[0]);
+  parser___ReduceAction1051___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1051(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1052[50] = {
+  {(bigint) 4807 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1052 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1052 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4807 /* 4: ReduceAction1052 < ReduceAction1052: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1052 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1052 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1052___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1052 < ReduceAction1052: superclass init_table position */},
+  {(bigint) parser___ReduceAction1052___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1052(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1052;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1052(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1052;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1052(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1052;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1052_parser___ReduceAction1052___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40566;
+  fra.me.meth = LOCATE_NEW_ReduceAction1052_parser___ReduceAction1052___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1052();
+  /* ./parser//parser.nit:40566 */
+  INIT_ATTRIBUTES__ReduceAction1052(fra.me.REG[0]);
+  parser___ReduceAction1052___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1052(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1053[50] = {
+  {(bigint) 4803 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1053 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1053 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4803 /* 4: ReduceAction1053 < ReduceAction1053: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1053 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1053 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1053___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1053 < ReduceAction1053: superclass init_table position */},
+  {(bigint) parser___ReduceAction1053___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1053(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1053;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1053(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1053;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1053(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1053;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1053_parser___ReduceAction1053___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40612;
+  fra.me.meth = LOCATE_NEW_ReduceAction1053_parser___ReduceAction1053___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1053();
+  /* ./parser//parser.nit:40612 */
+  INIT_ATTRIBUTES__ReduceAction1053(fra.me.REG[0]);
+  parser___ReduceAction1053___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1053(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1054[50] = {
+  {(bigint) 4799 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1054 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1054 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4799 /* 4: ReduceAction1054 < ReduceAction1054: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1054 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1054 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1054___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1054 < ReduceAction1054: superclass init_table position */},
+  {(bigint) parser___ReduceAction1054___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1054(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1054;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1054(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1054;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1054(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1054;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1054_parser___ReduceAction1054___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40655;
+  fra.me.meth = LOCATE_NEW_ReduceAction1054_parser___ReduceAction1054___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1054();
+  /* ./parser//parser.nit:40655 */
+  INIT_ATTRIBUTES__ReduceAction1054(fra.me.REG[0]);
+  parser___ReduceAction1054___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1054(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1055[50] = {
+  {(bigint) 4795 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1055 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1055 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4795 /* 4: ReduceAction1055 < ReduceAction1055: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1055 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1055 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1055___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1055 < ReduceAction1055: superclass init_table position */},
+  {(bigint) parser___ReduceAction1055___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1055(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1055;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1055(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1055;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1055(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1055;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1055_parser___ReduceAction1055___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40668;
+  fra.me.meth = LOCATE_NEW_ReduceAction1055_parser___ReduceAction1055___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1055();
+  /* ./parser//parser.nit:40668 */
+  INIT_ATTRIBUTES__ReduceAction1055(fra.me.REG[0]);
+  parser___ReduceAction1055___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1055(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1056[50] = {
+  {(bigint) 4791 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1056 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1056 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4791 /* 4: ReduceAction1056 < ReduceAction1056: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1056 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1056 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1056___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1056 < ReduceAction1056: superclass init_table position */},
+  {(bigint) parser___ReduceAction1056___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1056(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1056;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1056(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1056;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1056(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1056;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1056_parser___ReduceAction1056___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40709;
+  fra.me.meth = LOCATE_NEW_ReduceAction1056_parser___ReduceAction1056___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1056();
+  /* ./parser//parser.nit:40709 */
+  INIT_ATTRIBUTES__ReduceAction1056(fra.me.REG[0]);
+  parser___ReduceAction1056___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1056(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1057[50] = {
+  {(bigint) 4787 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1057 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1057 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4787 /* 4: ReduceAction1057 < ReduceAction1057: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1057 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1057 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1057___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1057 < ReduceAction1057: superclass init_table position */},
+  {(bigint) parser___ReduceAction1057___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1057(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1057;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1057(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1057;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1057(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1057;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1057_parser___ReduceAction1057___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40722;
+  fra.me.meth = LOCATE_NEW_ReduceAction1057_parser___ReduceAction1057___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1057();
+  /* ./parser//parser.nit:40722 */
+  INIT_ATTRIBUTES__ReduceAction1057(fra.me.REG[0]);
+  parser___ReduceAction1057___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1057(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1058[50] = {
+  {(bigint) 4783 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1058 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1058 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4783 /* 4: ReduceAction1058 < ReduceAction1058: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1058 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1058 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1058___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1058 < ReduceAction1058: superclass init_table position */},
+  {(bigint) parser___ReduceAction1058___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1058(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1058;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1058(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1058;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1058(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1058;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1058_parser___ReduceAction1058___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40744;
+  fra.me.meth = LOCATE_NEW_ReduceAction1058_parser___ReduceAction1058___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1058();
+  /* ./parser//parser.nit:40744 */
+  INIT_ATTRIBUTES__ReduceAction1058(fra.me.REG[0]);
+  parser___ReduceAction1058___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1058(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1059[50] = {
+  {(bigint) 4779 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1059 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1059 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4779 /* 4: ReduceAction1059 < ReduceAction1059: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1059 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1059 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1059___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1059 < ReduceAction1059: superclass init_table position */},
+  {(bigint) parser___ReduceAction1059___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1059(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1059;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1059(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1059;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1059(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1059;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1059_parser___ReduceAction1059___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40766;
+  fra.me.meth = LOCATE_NEW_ReduceAction1059_parser___ReduceAction1059___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1059();
+  /* ./parser//parser.nit:40766 */
+  INIT_ATTRIBUTES__ReduceAction1059(fra.me.REG[0]);
+  parser___ReduceAction1059___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1059(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1060[50] = {
+  {(bigint) 4771 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1060 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1060 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4771 /* 4: ReduceAction1060 < ReduceAction1060: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1060 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1060 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1060___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1060 < ReduceAction1060: superclass init_table position */},
+  {(bigint) parser___ReduceAction1060___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1060(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1060;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1060(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1060;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1060(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1060;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1060_parser___ReduceAction1060___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40779;
+  fra.me.meth = LOCATE_NEW_ReduceAction1060_parser___ReduceAction1060___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1060();
+  /* ./parser//parser.nit:40779 */
+  INIT_ATTRIBUTES__ReduceAction1060(fra.me.REG[0]);
+  parser___ReduceAction1060___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1060(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1061[50] = {
+  {(bigint) 4767 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1061 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1061 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4767 /* 4: ReduceAction1061 < ReduceAction1061: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1061 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1061 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1061___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1061 < ReduceAction1061: superclass init_table position */},
+  {(bigint) parser___ReduceAction1061___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1061(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1061;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1061(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1061;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1061(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1061;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1061_parser___ReduceAction1061___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40800;
+  fra.me.meth = LOCATE_NEW_ReduceAction1061_parser___ReduceAction1061___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1061();
+  /* ./parser//parser.nit:40800 */
+  INIT_ATTRIBUTES__ReduceAction1061(fra.me.REG[0]);
+  parser___ReduceAction1061___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1061(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1062[50] = {
+  {(bigint) 4763 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1062 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1062 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4763 /* 4: ReduceAction1062 < ReduceAction1062: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1062 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1062 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1062___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1062 < ReduceAction1062: superclass init_table position */},
+  {(bigint) parser___ReduceAction1062___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1062(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1062;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1062(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1062;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1062(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1062;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1062_parser___ReduceAction1062___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40813;
+  fra.me.meth = LOCATE_NEW_ReduceAction1062_parser___ReduceAction1062___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1062();
+  /* ./parser//parser.nit:40813 */
+  INIT_ATTRIBUTES__ReduceAction1062(fra.me.REG[0]);
+  parser___ReduceAction1062___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1062(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1063[50] = {
+  {(bigint) 4759 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1063 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1063 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4759 /* 4: ReduceAction1063 < ReduceAction1063: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1063 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1063 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1063___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1063 < ReduceAction1063: superclass init_table position */},
+  {(bigint) parser___ReduceAction1063___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1063(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1063;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1063(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1063;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1063(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1063;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1063_parser___ReduceAction1063___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40835;
+  fra.me.meth = LOCATE_NEW_ReduceAction1063_parser___ReduceAction1063___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1063();
+  /* ./parser//parser.nit:40835 */
+  INIT_ATTRIBUTES__ReduceAction1063(fra.me.REG[0]);
+  parser___ReduceAction1063___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1063(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1064[50] = {
+  {(bigint) 4755 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1064 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1064 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4755 /* 4: ReduceAction1064 < ReduceAction1064: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1064 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1064 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1064___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1064 < ReduceAction1064: superclass init_table position */},
+  {(bigint) parser___ReduceAction1064___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1064(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1064;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1064(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1064;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1064(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1064;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1064_parser___ReduceAction1064___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40857;
+  fra.me.meth = LOCATE_NEW_ReduceAction1064_parser___ReduceAction1064___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1064();
+  /* ./parser//parser.nit:40857 */
+  INIT_ATTRIBUTES__ReduceAction1064(fra.me.REG[0]);
+  parser___ReduceAction1064___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1064(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1065[50] = {
+  {(bigint) 4751 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1065 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1065 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4751 /* 4: ReduceAction1065 < ReduceAction1065: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1065 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1065 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1065___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1065 < ReduceAction1065: superclass init_table position */},
+  {(bigint) parser___ReduceAction1065___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1065(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1065;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1065(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1065;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1065(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1065;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1065_parser___ReduceAction1065___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40879;
+  fra.me.meth = LOCATE_NEW_ReduceAction1065_parser___ReduceAction1065___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1065();
+  /* ./parser//parser.nit:40879 */
+  INIT_ATTRIBUTES__ReduceAction1065(fra.me.REG[0]);
+  parser___ReduceAction1065___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1065(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1066[50] = {
+  {(bigint) 4747 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1066 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1066 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4747 /* 4: ReduceAction1066 < ReduceAction1066: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1066 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1066 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1066___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1066 < ReduceAction1066: superclass init_table position */},
+  {(bigint) parser___ReduceAction1066___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1066(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1066;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1066(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1066;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1066(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1066;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1066_parser___ReduceAction1066___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40901;
+  fra.me.meth = LOCATE_NEW_ReduceAction1066_parser___ReduceAction1066___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1066();
+  /* ./parser//parser.nit:40901 */
+  INIT_ATTRIBUTES__ReduceAction1066(fra.me.REG[0]);
+  parser___ReduceAction1066___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1066(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1067[50] = {
+  {(bigint) 4743 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1067 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1067 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4743 /* 4: ReduceAction1067 < ReduceAction1067: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1067 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1067 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1067___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1067 < ReduceAction1067: superclass init_table position */},
+  {(bigint) parser___ReduceAction1067___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1067(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1067;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1067(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1067;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1067(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1067;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1067_parser___ReduceAction1067___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40923;
+  fra.me.meth = LOCATE_NEW_ReduceAction1067_parser___ReduceAction1067___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1067();
+  /* ./parser//parser.nit:40923 */
+  INIT_ATTRIBUTES__ReduceAction1067(fra.me.REG[0]);
+  parser___ReduceAction1067___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1067(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1068[50] = {
+  {(bigint) 4739 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1068 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1068 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4739 /* 4: ReduceAction1068 < ReduceAction1068: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1068 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1068 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1068___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1068 < ReduceAction1068: superclass init_table position */},
+  {(bigint) parser___ReduceAction1068___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1068(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1068;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1068(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1068;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1068(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1068;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1068_parser___ReduceAction1068___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40945;
+  fra.me.meth = LOCATE_NEW_ReduceAction1068_parser___ReduceAction1068___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1068();
+  /* ./parser//parser.nit:40945 */
+  INIT_ATTRIBUTES__ReduceAction1068(fra.me.REG[0]);
+  parser___ReduceAction1068___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1068(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1069[50] = {
+  {(bigint) 4735 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1069 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1069 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4735 /* 4: ReduceAction1069 < ReduceAction1069: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1069 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1069 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1069___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1069 < ReduceAction1069: superclass init_table position */},
+  {(bigint) parser___ReduceAction1069___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1069(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1069;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1069(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1069;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1069(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1069;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1069_parser___ReduceAction1069___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40967;
+  fra.me.meth = LOCATE_NEW_ReduceAction1069_parser___ReduceAction1069___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1069();
+  /* ./parser//parser.nit:40967 */
+  INIT_ATTRIBUTES__ReduceAction1069(fra.me.REG[0]);
+  parser___ReduceAction1069___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1069(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1070[50] = {
+  {(bigint) 4727 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1070 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1070 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4727 /* 4: ReduceAction1070 < ReduceAction1070: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1070 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1070 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1070___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1070 < ReduceAction1070: superclass init_table position */},
+  {(bigint) parser___ReduceAction1070___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1070(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1070;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1070(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1070;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1070(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1070;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1070_parser___ReduceAction1070___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40989;
+  fra.me.meth = LOCATE_NEW_ReduceAction1070_parser___ReduceAction1070___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1070();
+  /* ./parser//parser.nit:40989 */
+  INIT_ATTRIBUTES__ReduceAction1070(fra.me.REG[0]);
+  parser___ReduceAction1070___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1070(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1071[50] = {
+  {(bigint) 4723 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1071 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1071 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4723 /* 4: ReduceAction1071 < ReduceAction1071: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1071 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1071 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1071___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1071 < ReduceAction1071: superclass init_table position */},
+  {(bigint) parser___ReduceAction1071___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1071(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1071;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1071(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1071;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1071(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1071;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1071_parser___ReduceAction1071___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41011;
+  fra.me.meth = LOCATE_NEW_ReduceAction1071_parser___ReduceAction1071___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1071();
+  /* ./parser//parser.nit:41011 */
+  INIT_ATTRIBUTES__ReduceAction1071(fra.me.REG[0]);
+  parser___ReduceAction1071___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1071(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1072[50] = {
+  {(bigint) 4719 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1072 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1072 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4719 /* 4: ReduceAction1072 < ReduceAction1072: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1072 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1072 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1072___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1072 < ReduceAction1072: superclass init_table position */},
+  {(bigint) parser___ReduceAction1072___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1072(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1072;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1072(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1072;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1072(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1072;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1072_parser___ReduceAction1072___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41024;
+  fra.me.meth = LOCATE_NEW_ReduceAction1072_parser___ReduceAction1072___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1072();
+  /* ./parser//parser.nit:41024 */
+  INIT_ATTRIBUTES__ReduceAction1072(fra.me.REG[0]);
+  parser___ReduceAction1072___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1072(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1073[50] = {
+  {(bigint) 4715 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1073 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1073 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4715 /* 4: ReduceAction1073 < ReduceAction1073: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1073 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1073 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1073___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1073 < ReduceAction1073: superclass init_table position */},
+  {(bigint) parser___ReduceAction1073___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1073(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1073;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1073(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1073;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1073(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1073;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1073_parser___ReduceAction1073___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41046;
+  fra.me.meth = LOCATE_NEW_ReduceAction1073_parser___ReduceAction1073___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1073();
+  /* ./parser//parser.nit:41046 */
+  INIT_ATTRIBUTES__ReduceAction1073(fra.me.REG[0]);
+  parser___ReduceAction1073___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1073(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1074[50] = {
+  {(bigint) 4711 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1074 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1074 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4711 /* 4: ReduceAction1074 < ReduceAction1074: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1074 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1074 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1074___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1074 < ReduceAction1074: superclass init_table position */},
+  {(bigint) parser___ReduceAction1074___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1074(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1074;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1074(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1074;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1074(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1074;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1074_parser___ReduceAction1074___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41068;
+  fra.me.meth = LOCATE_NEW_ReduceAction1074_parser___ReduceAction1074___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1074();
+  /* ./parser//parser.nit:41068 */
+  INIT_ATTRIBUTES__ReduceAction1074(fra.me.REG[0]);
+  parser___ReduceAction1074___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1074(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1075[50] = {
+  {(bigint) 4707 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1075 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1075 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4707 /* 4: ReduceAction1075 < ReduceAction1075: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1075 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1075 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1075___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1075 < ReduceAction1075: superclass init_table position */},
+  {(bigint) parser___ReduceAction1075___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1075(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1075;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1075(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1075;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1075(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1075;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1075_parser___ReduceAction1075___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41081;
+  fra.me.meth = LOCATE_NEW_ReduceAction1075_parser___ReduceAction1075___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1075();
+  /* ./parser//parser.nit:41081 */
+  INIT_ATTRIBUTES__ReduceAction1075(fra.me.REG[0]);
+  parser___ReduceAction1075___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1075(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1076[50] = {
+  {(bigint) 4703 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1076 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1076 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4703 /* 4: ReduceAction1076 < ReduceAction1076: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1076 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1076 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1076___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1076 < ReduceAction1076: superclass init_table position */},
+  {(bigint) parser___ReduceAction1076___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1076(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1076;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1076(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1076;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1076(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1076;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1076_parser___ReduceAction1076___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41103;
+  fra.me.meth = LOCATE_NEW_ReduceAction1076_parser___ReduceAction1076___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1076();
+  /* ./parser//parser.nit:41103 */
+  INIT_ATTRIBUTES__ReduceAction1076(fra.me.REG[0]);
+  parser___ReduceAction1076___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1076(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1077[50] = {
+  {(bigint) 4699 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1077 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1077 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4699 /* 4: ReduceAction1077 < ReduceAction1077: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1077 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1077 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1077___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1077 < ReduceAction1077: superclass init_table position */},
+  {(bigint) parser___ReduceAction1077___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1077(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1077;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1077(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1077;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1077(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1077;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1077_parser___ReduceAction1077___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41125;
+  fra.me.meth = LOCATE_NEW_ReduceAction1077_parser___ReduceAction1077___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1077();
+  /* ./parser//parser.nit:41125 */
+  INIT_ATTRIBUTES__ReduceAction1077(fra.me.REG[0]);
+  parser___ReduceAction1077___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1077(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1078[50] = {
+  {(bigint) 4695 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1078 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1078 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4695 /* 4: ReduceAction1078 < ReduceAction1078: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1078 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1078 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1078___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1078 < ReduceAction1078: superclass init_table position */},
+  {(bigint) parser___ReduceAction1078___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1078(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1078;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1078(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1078;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1078(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1078;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1078_parser___ReduceAction1078___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41147;
+  fra.me.meth = LOCATE_NEW_ReduceAction1078_parser___ReduceAction1078___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1078();
+  /* ./parser//parser.nit:41147 */
+  INIT_ATTRIBUTES__ReduceAction1078(fra.me.REG[0]);
+  parser___ReduceAction1078___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1078(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1079[50] = {
+  {(bigint) 4691 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1079 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1079 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4691 /* 4: ReduceAction1079 < ReduceAction1079: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1079 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1079 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1079___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1079 < ReduceAction1079: superclass init_table position */},
+  {(bigint) parser___ReduceAction1079___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1079(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1079;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1079(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1079;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1079(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1079;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1079_parser___ReduceAction1079___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41160;
+  fra.me.meth = LOCATE_NEW_ReduceAction1079_parser___ReduceAction1079___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1079();
+  /* ./parser//parser.nit:41160 */
+  INIT_ATTRIBUTES__ReduceAction1079(fra.me.REG[0]);
+  parser___ReduceAction1079___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1079(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1080[50] = {
+  {(bigint) 4683 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1080 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1080 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4683 /* 4: ReduceAction1080 < ReduceAction1080: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1080 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1080 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1080___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1080 < ReduceAction1080: superclass init_table position */},
+  {(bigint) parser___ReduceAction1080___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1080(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1080;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1080(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1080;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1080(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1080;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1080_parser___ReduceAction1080___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41181;
+  fra.me.meth = LOCATE_NEW_ReduceAction1080_parser___ReduceAction1080___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1080();
+  /* ./parser//parser.nit:41181 */
+  INIT_ATTRIBUTES__ReduceAction1080(fra.me.REG[0]);
+  parser___ReduceAction1080___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1080(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1081[50] = {
+  {(bigint) 4679 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1081 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1081 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4679 /* 4: ReduceAction1081 < ReduceAction1081: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1081 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1081 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1081___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1081 < ReduceAction1081: superclass init_table position */},
+  {(bigint) parser___ReduceAction1081___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1081(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1081;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1081(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1081;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1081(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1081;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1081_parser___ReduceAction1081___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41202;
+  fra.me.meth = LOCATE_NEW_ReduceAction1081_parser___ReduceAction1081___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1081();
+  /* ./parser//parser.nit:41202 */
+  INIT_ATTRIBUTES__ReduceAction1081(fra.me.REG[0]);
+  parser___ReduceAction1081___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1081(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1082[50] = {
+  {(bigint) 4675 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1082 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1082 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4675 /* 4: ReduceAction1082 < ReduceAction1082: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1082 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1082 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1082___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1082 < ReduceAction1082: superclass init_table position */},
+  {(bigint) parser___ReduceAction1082___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1082(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1082;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1082(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1082;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1082(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1082;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1082_parser___ReduceAction1082___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41215;
+  fra.me.meth = LOCATE_NEW_ReduceAction1082_parser___ReduceAction1082___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1082();
+  /* ./parser//parser.nit:41215 */
+  INIT_ATTRIBUTES__ReduceAction1082(fra.me.REG[0]);
+  parser___ReduceAction1082___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1082(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1083[50] = {
+  {(bigint) 4671 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1083 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1083 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4671 /* 4: ReduceAction1083 < ReduceAction1083: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1083 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1083 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1083___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1083 < ReduceAction1083: superclass init_table position */},
+  {(bigint) parser___ReduceAction1083___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1083(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1083;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1083(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1083;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1083(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1083;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1083_parser___ReduceAction1083___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41249;
+  fra.me.meth = LOCATE_NEW_ReduceAction1083_parser___ReduceAction1083___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1083();
+  /* ./parser//parser.nit:41249 */
+  INIT_ATTRIBUTES__ReduceAction1083(fra.me.REG[0]);
+  parser___ReduceAction1083___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1083(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1084[50] = {
+  {(bigint) 4667 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1084 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1084 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4667 /* 4: ReduceAction1084 < ReduceAction1084: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1084 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1084 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1084___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1084 < ReduceAction1084: superclass init_table position */},
+  {(bigint) parser___ReduceAction1084___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1084(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1084;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1084(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1084;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1084(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1084;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1084_parser___ReduceAction1084___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41275;
+  fra.me.meth = LOCATE_NEW_ReduceAction1084_parser___ReduceAction1084___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1084();
+  /* ./parser//parser.nit:41275 */
+  INIT_ATTRIBUTES__ReduceAction1084(fra.me.REG[0]);
+  parser___ReduceAction1084___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1084(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1085[50] = {
+  {(bigint) 4663 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1085 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1085 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4663 /* 4: ReduceAction1085 < ReduceAction1085: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1085 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1085 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1085___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1085 < ReduceAction1085: superclass init_table position */},
+  {(bigint) parser___ReduceAction1085___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1085(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1085;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1085(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1085;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1085(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1085;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1085_parser___ReduceAction1085___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41298;
+  fra.me.meth = LOCATE_NEW_ReduceAction1085_parser___ReduceAction1085___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1085();
+  /* ./parser//parser.nit:41298 */
+  INIT_ATTRIBUTES__ReduceAction1085(fra.me.REG[0]);
+  parser___ReduceAction1085___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1085(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1086[50] = {
+  {(bigint) 4659 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1086 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1086 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4659 /* 4: ReduceAction1086 < ReduceAction1086: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1086 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1086 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1086___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1086 < ReduceAction1086: superclass init_table position */},
+  {(bigint) parser___ReduceAction1086___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1086(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1086;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1086(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1086;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1086(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1086;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1086_parser___ReduceAction1086___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41320;
+  fra.me.meth = LOCATE_NEW_ReduceAction1086_parser___ReduceAction1086___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1086();
+  /* ./parser//parser.nit:41320 */
+  INIT_ATTRIBUTES__ReduceAction1086(fra.me.REG[0]);
+  parser___ReduceAction1086___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1086(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1087[50] = {
+  {(bigint) 4655 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1087 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1087 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4655 /* 4: ReduceAction1087 < ReduceAction1087: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1087 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1087 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1087___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1087 < ReduceAction1087: superclass init_table position */},
+  {(bigint) parser___ReduceAction1087___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1087(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1087;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1087(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1087;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1087(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1087;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1087_parser___ReduceAction1087___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41339;
+  fra.me.meth = LOCATE_NEW_ReduceAction1087_parser___ReduceAction1087___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1087();
+  /* ./parser//parser.nit:41339 */
+  INIT_ATTRIBUTES__ReduceAction1087(fra.me.REG[0]);
+  parser___ReduceAction1087___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1087(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1088[50] = {
+  {(bigint) 4651 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1088 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1088 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4651 /* 4: ReduceAction1088 < ReduceAction1088: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1088 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1088 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1088___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1088 < ReduceAction1088: superclass init_table position */},
+  {(bigint) parser___ReduceAction1088___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1088(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1088;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1088(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1088;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1088(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1088;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1088_parser___ReduceAction1088___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41375;
+  fra.me.meth = LOCATE_NEW_ReduceAction1088_parser___ReduceAction1088___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1088();
+  /* ./parser//parser.nit:41375 */
+  INIT_ATTRIBUTES__ReduceAction1088(fra.me.REG[0]);
+  parser___ReduceAction1088___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1088(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1089[50] = {
+  {(bigint) 4647 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1089 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1089 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4647 /* 4: ReduceAction1089 < ReduceAction1089: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1089 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1089 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1089___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1089 < ReduceAction1089: superclass init_table position */},
+  {(bigint) parser___ReduceAction1089___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1089(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1089;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1089(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1089;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1089(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1089;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1089_parser___ReduceAction1089___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41408;
+  fra.me.meth = LOCATE_NEW_ReduceAction1089_parser___ReduceAction1089___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1089();
+  /* ./parser//parser.nit:41408 */
+  INIT_ATTRIBUTES__ReduceAction1089(fra.me.REG[0]);
+  parser___ReduceAction1089___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1089(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1090[50] = {
+  {(bigint) 4639 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1090 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1090 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4639 /* 4: ReduceAction1090 < ReduceAction1090: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1090 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1090 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1090___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1090 < ReduceAction1090: superclass init_table position */},
+  {(bigint) parser___ReduceAction1090___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1090(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1090;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1090(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1090;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1090(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1090;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1090_parser___ReduceAction1090___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41437;
+  fra.me.meth = LOCATE_NEW_ReduceAction1090_parser___ReduceAction1090___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1090();
+  /* ./parser//parser.nit:41437 */
+  INIT_ATTRIBUTES__ReduceAction1090(fra.me.REG[0]);
+  parser___ReduceAction1090___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1090(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1091[50] = {
+  {(bigint) 4635 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1091 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1091 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4635 /* 4: ReduceAction1091 < ReduceAction1091: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1091 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1091 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1091___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1091 < ReduceAction1091: superclass init_table position */},
+  {(bigint) parser___ReduceAction1091___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1091(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1091;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1091(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1091;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1091(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1091;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1091_parser___ReduceAction1091___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41469;
+  fra.me.meth = LOCATE_NEW_ReduceAction1091_parser___ReduceAction1091___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1091();
+  /* ./parser//parser.nit:41469 */
+  INIT_ATTRIBUTES__ReduceAction1091(fra.me.REG[0]);
+  parser___ReduceAction1091___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1091(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1092[50] = {
+  {(bigint) 4631 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1092 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1092 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4631 /* 4: ReduceAction1092 < ReduceAction1092: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1092 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1092 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1092___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1092 < ReduceAction1092: superclass init_table position */},
+  {(bigint) parser___ReduceAction1092___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1092(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1092;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1092(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1092;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1092(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1092;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1092_parser___ReduceAction1092___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41503;
+  fra.me.meth = LOCATE_NEW_ReduceAction1092_parser___ReduceAction1092___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1092();
+  /* ./parser//parser.nit:41503 */
+  INIT_ATTRIBUTES__ReduceAction1092(fra.me.REG[0]);
+  parser___ReduceAction1092___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1092(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1093[50] = {
+  {(bigint) 4627 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1093 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1093 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4627 /* 4: ReduceAction1093 < ReduceAction1093: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1093 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1093 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1093___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1093 < ReduceAction1093: superclass init_table position */},
+  {(bigint) parser___ReduceAction1093___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1093(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1093;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1093(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1093;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1093(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1093;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1093_parser___ReduceAction1093___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41534;
+  fra.me.meth = LOCATE_NEW_ReduceAction1093_parser___ReduceAction1093___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1093();
+  /* ./parser//parser.nit:41534 */
+  INIT_ATTRIBUTES__ReduceAction1093(fra.me.REG[0]);
+  parser___ReduceAction1093___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1093(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1094[50] = {
+  {(bigint) 4623 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1094 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1094 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4623 /* 4: ReduceAction1094 < ReduceAction1094: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1094 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1094 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1094___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1094 < ReduceAction1094: superclass init_table position */},
+  {(bigint) parser___ReduceAction1094___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1094(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1094;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1094(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1094;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1094(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1094;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1094_parser___ReduceAction1094___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41573;
+  fra.me.meth = LOCATE_NEW_ReduceAction1094_parser___ReduceAction1094___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1094();
+  /* ./parser//parser.nit:41573 */
+  INIT_ATTRIBUTES__ReduceAction1094(fra.me.REG[0]);
+  parser___ReduceAction1094___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1094(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1095[50] = {
+  {(bigint) 4619 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1095 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1095 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4619 /* 4: ReduceAction1095 < ReduceAction1095: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1095 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1095 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1095___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1095 < ReduceAction1095: superclass init_table position */},
+  {(bigint) parser___ReduceAction1095___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1095(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1095;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1095(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1095;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1095(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1095;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1095_parser___ReduceAction1095___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41589;
+  fra.me.meth = LOCATE_NEW_ReduceAction1095_parser___ReduceAction1095___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1095();
+  /* ./parser//parser.nit:41589 */
+  INIT_ATTRIBUTES__ReduceAction1095(fra.me.REG[0]);
+  parser___ReduceAction1095___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1095(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1096[50] = {
+  {(bigint) 4615 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1096 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1096 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4615 /* 4: ReduceAction1096 < ReduceAction1096: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1096 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1096 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1096___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1096 < ReduceAction1096: superclass init_table position */},
+  {(bigint) parser___ReduceAction1096___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1096(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1096;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1096(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1096;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1096(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1096;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1096_parser___ReduceAction1096___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41605;
+  fra.me.meth = LOCATE_NEW_ReduceAction1096_parser___ReduceAction1096___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1096();
+  /* ./parser//parser.nit:41605 */
+  INIT_ATTRIBUTES__ReduceAction1096(fra.me.REG[0]);
+  parser___ReduceAction1096___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1096(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1097[50] = {
+  {(bigint) 4611 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1097 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1097 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4611 /* 4: ReduceAction1097 < ReduceAction1097: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1097 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1097 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1097___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1097 < ReduceAction1097: superclass init_table position */},
+  {(bigint) parser___ReduceAction1097___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1097(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1097;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1097(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1097;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1097(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1097;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1097_parser___ReduceAction1097___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41621;
+  fra.me.meth = LOCATE_NEW_ReduceAction1097_parser___ReduceAction1097___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1097();
+  /* ./parser//parser.nit:41621 */
+  INIT_ATTRIBUTES__ReduceAction1097(fra.me.REG[0]);
+  parser___ReduceAction1097___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1097(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1098[50] = {
+  {(bigint) 4607 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1098 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1098 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4607 /* 4: ReduceAction1098 < ReduceAction1098: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1098 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1098 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1098___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1098 < ReduceAction1098: superclass init_table position */},
+  {(bigint) parser___ReduceAction1098___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1098(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1098;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1098(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1098;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1098(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1098;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1098_parser___ReduceAction1098___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41637;
+  fra.me.meth = LOCATE_NEW_ReduceAction1098_parser___ReduceAction1098___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1098();
+  /* ./parser//parser.nit:41637 */
+  INIT_ATTRIBUTES__ReduceAction1098(fra.me.REG[0]);
+  parser___ReduceAction1098___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1098(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1099[50] = {
+  {(bigint) 4603 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1099 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1099 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4603 /* 4: ReduceAction1099 < ReduceAction1099: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1099 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1099 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1099___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1099 < ReduceAction1099: superclass init_table position */},
+  {(bigint) parser___ReduceAction1099___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1099(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1099;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1099(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1099;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1099(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1099;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1099_parser___ReduceAction1099___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41653;
+  fra.me.meth = LOCATE_NEW_ReduceAction1099_parser___ReduceAction1099___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1099();
+  /* ./parser//parser.nit:41653 */
+  INIT_ATTRIBUTES__ReduceAction1099(fra.me.REG[0]);
+  parser___ReduceAction1099___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1099(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1100[50] = {
+  {(bigint) 4591 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1100 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1100 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4591 /* 4: ReduceAction1100 < ReduceAction1100: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1100 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1100 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1100___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1100 < ReduceAction1100: superclass init_table position */},
+  {(bigint) parser___ReduceAction1100___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1100(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1100;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1100(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1100;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1100(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1100;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1100_parser___ReduceAction1100___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41669;
+  fra.me.meth = LOCATE_NEW_ReduceAction1100_parser___ReduceAction1100___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1100();
+  /* ./parser//parser.nit:41669 */
+  INIT_ATTRIBUTES__ReduceAction1100(fra.me.REG[0]);
+  parser___ReduceAction1100___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1100(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1101[50] = {
+  {(bigint) 4587 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1101 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1101 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4587 /* 4: ReduceAction1101 < ReduceAction1101: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1101 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1101 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1101___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1101 < ReduceAction1101: superclass init_table position */},
+  {(bigint) parser___ReduceAction1101___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1101(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1101;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1101(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1101;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1101(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1101;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1101_parser___ReduceAction1101___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41685;
+  fra.me.meth = LOCATE_NEW_ReduceAction1101_parser___ReduceAction1101___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1101();
+  /* ./parser//parser.nit:41685 */
+  INIT_ATTRIBUTES__ReduceAction1101(fra.me.REG[0]);
+  parser___ReduceAction1101___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1101(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1102[50] = {
+  {(bigint) 4583 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1102 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1102 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4583 /* 4: ReduceAction1102 < ReduceAction1102: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1102 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1102 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1102___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1102 < ReduceAction1102: superclass init_table position */},
+  {(bigint) parser___ReduceAction1102___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1102(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1102;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1102(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1102;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1102(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1102;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1102_parser___ReduceAction1102___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41701;
+  fra.me.meth = LOCATE_NEW_ReduceAction1102_parser___ReduceAction1102___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1102();
+  /* ./parser//parser.nit:41701 */
+  INIT_ATTRIBUTES__ReduceAction1102(fra.me.REG[0]);
+  parser___ReduceAction1102___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1102(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1103[50] = {
+  {(bigint) 4579 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1103 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1103 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4579 /* 4: ReduceAction1103 < ReduceAction1103: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1103 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1103 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1103___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1103 < ReduceAction1103: superclass init_table position */},
+  {(bigint) parser___ReduceAction1103___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1103(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1103;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1103(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1103;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1103(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1103;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1103_parser___ReduceAction1103___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41714;
+  fra.me.meth = LOCATE_NEW_ReduceAction1103_parser___ReduceAction1103___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1103();
+  /* ./parser//parser.nit:41714 */
+  INIT_ATTRIBUTES__ReduceAction1103(fra.me.REG[0]);
+  parser___ReduceAction1103___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1103(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1104[50] = {
+  {(bigint) 4575 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1104 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1104 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4575 /* 4: ReduceAction1104 < ReduceAction1104: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1104 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1104 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1104___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1104 < ReduceAction1104: superclass init_table position */},
+  {(bigint) parser___ReduceAction1104___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1104(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1104;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1104(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1104;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1104(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1104;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1104_parser___ReduceAction1104___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41745;
+  fra.me.meth = LOCATE_NEW_ReduceAction1104_parser___ReduceAction1104___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1104();
+  /* ./parser//parser.nit:41745 */
+  INIT_ATTRIBUTES__ReduceAction1104(fra.me.REG[0]);
+  parser___ReduceAction1104___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1104(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1105[50] = {
+  {(bigint) 4571 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1105 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1105 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4571 /* 4: ReduceAction1105 < ReduceAction1105: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1105 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1105 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1105___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1105 < ReduceAction1105: superclass init_table position */},
+  {(bigint) parser___ReduceAction1105___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1105(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1105;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1105(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1105;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1105(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1105;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1105_parser___ReduceAction1105___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41781;
+  fra.me.meth = LOCATE_NEW_ReduceAction1105_parser___ReduceAction1105___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1105();
+  /* ./parser//parser.nit:41781 */
+  INIT_ATTRIBUTES__ReduceAction1105(fra.me.REG[0]);
+  parser___ReduceAction1105___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1105(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1106[50] = {
+  {(bigint) 4567 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1106 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1106 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4567 /* 4: ReduceAction1106 < ReduceAction1106: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1106 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1106 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1106___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1106 < ReduceAction1106: superclass init_table position */},
+  {(bigint) parser___ReduceAction1106___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1106(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1106;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1106(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1106;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1106(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1106;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1106_parser___ReduceAction1106___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41794;
+  fra.me.meth = LOCATE_NEW_ReduceAction1106_parser___ReduceAction1106___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1106();
+  /* ./parser//parser.nit:41794 */
+  INIT_ATTRIBUTES__ReduceAction1106(fra.me.REG[0]);
+  parser___ReduceAction1106___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1106(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1107[50] = {
+  {(bigint) 4563 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1107 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1107 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4563 /* 4: ReduceAction1107 < ReduceAction1107: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1107 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1107 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1107___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1107 < ReduceAction1107: superclass init_table position */},
+  {(bigint) parser___ReduceAction1107___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1107(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1107;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1107(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1107;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1107(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1107;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1107_parser___ReduceAction1107___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41840;
+  fra.me.meth = LOCATE_NEW_ReduceAction1107_parser___ReduceAction1107___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1107();
+  /* ./parser//parser.nit:41840 */
+  INIT_ATTRIBUTES__ReduceAction1107(fra.me.REG[0]);
+  parser___ReduceAction1107___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1107(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1108[50] = {
+  {(bigint) 4559 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1108 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1108 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4559 /* 4: ReduceAction1108 < ReduceAction1108: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1108 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1108 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1108___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1108 < ReduceAction1108: superclass init_table position */},
+  {(bigint) parser___ReduceAction1108___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1108(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1108;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1108(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1108;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1108(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1108;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1108_parser___ReduceAction1108___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41883;
+  fra.me.meth = LOCATE_NEW_ReduceAction1108_parser___ReduceAction1108___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1108();
+  /* ./parser//parser.nit:41883 */
+  INIT_ATTRIBUTES__ReduceAction1108(fra.me.REG[0]);
+  parser___ReduceAction1108___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1108(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1109[50] = {
+  {(bigint) 4555 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1109 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1109 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4555 /* 4: ReduceAction1109 < ReduceAction1109: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1109 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1109 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1109___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1109 < ReduceAction1109: superclass init_table position */},
+  {(bigint) parser___ReduceAction1109___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1109(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1109;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1109(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1109;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1109(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1109;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1109_parser___ReduceAction1109___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41896;
+  fra.me.meth = LOCATE_NEW_ReduceAction1109_parser___ReduceAction1109___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1109();
+  /* ./parser//parser.nit:41896 */
+  INIT_ATTRIBUTES__ReduceAction1109(fra.me.REG[0]);
+  parser___ReduceAction1109___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1109(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1110[50] = {
+  {(bigint) 4547 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1110 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1110 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4547 /* 4: ReduceAction1110 < ReduceAction1110: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1110 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1110 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1110___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1110 < ReduceAction1110: superclass init_table position */},
+  {(bigint) parser___ReduceAction1110___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1110(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1110;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1110(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1110;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1110(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1110;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1110_parser___ReduceAction1110___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41937;
+  fra.me.meth = LOCATE_NEW_ReduceAction1110_parser___ReduceAction1110___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1110();
+  /* ./parser//parser.nit:41937 */
+  INIT_ATTRIBUTES__ReduceAction1110(fra.me.REG[0]);
+  parser___ReduceAction1110___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1110(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1111[50] = {
+  {(bigint) 4543 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1111 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1111 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4543 /* 4: ReduceAction1111 < ReduceAction1111: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1111 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1111 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1111___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1111 < ReduceAction1111: superclass init_table position */},
+  {(bigint) parser___ReduceAction1111___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1111(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1111;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1111(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1111;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1111(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1111;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1111_parser___ReduceAction1111___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41950;
+  fra.me.meth = LOCATE_NEW_ReduceAction1111_parser___ReduceAction1111___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1111();
+  /* ./parser//parser.nit:41950 */
+  INIT_ATTRIBUTES__ReduceAction1111(fra.me.REG[0]);
+  parser___ReduceAction1111___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1111(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1112[50] = {
+  {(bigint) 4539 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1112 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1112 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4539 /* 4: ReduceAction1112 < ReduceAction1112: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1112 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1112 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1112___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1112 < ReduceAction1112: superclass init_table position */},
+  {(bigint) parser___ReduceAction1112___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1112(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1112;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1112(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1112;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1112(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1112;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1112_parser___ReduceAction1112___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41972;
+  fra.me.meth = LOCATE_NEW_ReduceAction1112_parser___ReduceAction1112___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1112();
+  /* ./parser//parser.nit:41972 */
+  INIT_ATTRIBUTES__ReduceAction1112(fra.me.REG[0]);
+  parser___ReduceAction1112___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1112(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1113[50] = {
+  {(bigint) 4535 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1113 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1113 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4535 /* 4: ReduceAction1113 < ReduceAction1113: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1113 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1113 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1113___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1113 < ReduceAction1113: superclass init_table position */},
+  {(bigint) parser___ReduceAction1113___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1113(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1113;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1113(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1113;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1113(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1113;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1113_parser___ReduceAction1113___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 41994;
+  fra.me.meth = LOCATE_NEW_ReduceAction1113_parser___ReduceAction1113___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1113();
+  /* ./parser//parser.nit:41994 */
+  INIT_ATTRIBUTES__ReduceAction1113(fra.me.REG[0]);
+  parser___ReduceAction1113___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1113(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1114[50] = {
+  {(bigint) 4531 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1114 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1114 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4531 /* 4: ReduceAction1114 < ReduceAction1114: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1114 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1114 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1114___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1114 < ReduceAction1114: superclass init_table position */},
+  {(bigint) parser___ReduceAction1114___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1114(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1114;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1114(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1114;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1114(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1114;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1114_parser___ReduceAction1114___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42007;
+  fra.me.meth = LOCATE_NEW_ReduceAction1114_parser___ReduceAction1114___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1114();
+  /* ./parser//parser.nit:42007 */
+  INIT_ATTRIBUTES__ReduceAction1114(fra.me.REG[0]);
+  parser___ReduceAction1114___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1114(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1115[50] = {
+  {(bigint) 4527 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1115 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1115 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4527 /* 4: ReduceAction1115 < ReduceAction1115: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1115 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1115 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1115___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1115 < ReduceAction1115: superclass init_table position */},
+  {(bigint) parser___ReduceAction1115___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1115(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1115;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1115(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1115;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1115(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1115;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1115_parser___ReduceAction1115___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42028;
+  fra.me.meth = LOCATE_NEW_ReduceAction1115_parser___ReduceAction1115___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1115();
+  /* ./parser//parser.nit:42028 */
+  INIT_ATTRIBUTES__ReduceAction1115(fra.me.REG[0]);
+  parser___ReduceAction1115___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1115(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1116[50] = {
+  {(bigint) 4523 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1116 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1116 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4523 /* 4: ReduceAction1116 < ReduceAction1116: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1116 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1116 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1116___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1116 < ReduceAction1116: superclass init_table position */},
+  {(bigint) parser___ReduceAction1116___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1116(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1116;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1116(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1116;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1116(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1116;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1116_parser___ReduceAction1116___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42041;
+  fra.me.meth = LOCATE_NEW_ReduceAction1116_parser___ReduceAction1116___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1116();
+  /* ./parser//parser.nit:42041 */
+  INIT_ATTRIBUTES__ReduceAction1116(fra.me.REG[0]);
+  parser___ReduceAction1116___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1116(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1117[50] = {
+  {(bigint) 4519 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1117 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1117 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4519 /* 4: ReduceAction1117 < ReduceAction1117: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1117 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1117 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1117___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1117 < ReduceAction1117: superclass init_table position */},
+  {(bigint) parser___ReduceAction1117___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1117(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1117;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1117(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1117;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1117(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1117;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1117_parser___ReduceAction1117___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42063;
+  fra.me.meth = LOCATE_NEW_ReduceAction1117_parser___ReduceAction1117___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1117();
+  /* ./parser//parser.nit:42063 */
+  INIT_ATTRIBUTES__ReduceAction1117(fra.me.REG[0]);
+  parser___ReduceAction1117___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1117(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1118[50] = {
+  {(bigint) 4515 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1118 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1118 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4515 /* 4: ReduceAction1118 < ReduceAction1118: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1118 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1118 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1118___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1118 < ReduceAction1118: superclass init_table position */},
+  {(bigint) parser___ReduceAction1118___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1118(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1118;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1118(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1118;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1118(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1118;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1118_parser___ReduceAction1118___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42085;
+  fra.me.meth = LOCATE_NEW_ReduceAction1118_parser___ReduceAction1118___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1118();
+  /* ./parser//parser.nit:42085 */
+  INIT_ATTRIBUTES__ReduceAction1118(fra.me.REG[0]);
+  parser___ReduceAction1118___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1118(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1119[50] = {
+  {(bigint) 4511 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1119 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1119 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4511 /* 4: ReduceAction1119 < ReduceAction1119: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1119 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1119 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1119___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1119 < ReduceAction1119: superclass init_table position */},
+  {(bigint) parser___ReduceAction1119___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1119(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1119;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1119(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1119;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1119(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1119;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1119_parser___ReduceAction1119___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42107;
+  fra.me.meth = LOCATE_NEW_ReduceAction1119_parser___ReduceAction1119___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1119();
+  /* ./parser//parser.nit:42107 */
+  INIT_ATTRIBUTES__ReduceAction1119(fra.me.REG[0]);
+  parser___ReduceAction1119___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1119(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1120[50] = {
+  {(bigint) 4503 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1120 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1120 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4503 /* 4: ReduceAction1120 < ReduceAction1120: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1120 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1120 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1120___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1120 < ReduceAction1120: superclass init_table position */},
+  {(bigint) parser___ReduceAction1120___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1120(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1120;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1120(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1120;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1120(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1120;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1120_parser___ReduceAction1120___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42129;
+  fra.me.meth = LOCATE_NEW_ReduceAction1120_parser___ReduceAction1120___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1120();
+  /* ./parser//parser.nit:42129 */
+  INIT_ATTRIBUTES__ReduceAction1120(fra.me.REG[0]);
+  parser___ReduceAction1120___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1120(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1121[50] = {
+  {(bigint) 4499 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1121 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1121 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4499 /* 4: ReduceAction1121 < ReduceAction1121: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1121 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1121 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1121___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1121 < ReduceAction1121: superclass init_table position */},
+  {(bigint) parser___ReduceAction1121___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1121(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1121;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1121(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1121;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1121(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1121;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1121_parser___ReduceAction1121___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42151;
+  fra.me.meth = LOCATE_NEW_ReduceAction1121_parser___ReduceAction1121___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1121();
+  /* ./parser//parser.nit:42151 */
+  INIT_ATTRIBUTES__ReduceAction1121(fra.me.REG[0]);
+  parser___ReduceAction1121___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1121(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1122[50] = {
+  {(bigint) 4495 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1122 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1122 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4495 /* 4: ReduceAction1122 < ReduceAction1122: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1122 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1122 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1122___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1122 < ReduceAction1122: superclass init_table position */},
+  {(bigint) parser___ReduceAction1122___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1122(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1122;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1122(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1122;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1122(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1122;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1122_parser___ReduceAction1122___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42173;
+  fra.me.meth = LOCATE_NEW_ReduceAction1122_parser___ReduceAction1122___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1122();
+  /* ./parser//parser.nit:42173 */
+  INIT_ATTRIBUTES__ReduceAction1122(fra.me.REG[0]);
+  parser___ReduceAction1122___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1122(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1123[50] = {
+  {(bigint) 4491 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1123 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1123 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4491 /* 4: ReduceAction1123 < ReduceAction1123: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1123 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1123 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1123___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1123 < ReduceAction1123: superclass init_table position */},
+  {(bigint) parser___ReduceAction1123___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1123(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1123;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1123(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1123;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1123(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1123;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1123_parser___ReduceAction1123___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42195;
+  fra.me.meth = LOCATE_NEW_ReduceAction1123_parser___ReduceAction1123___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1123();
+  /* ./parser//parser.nit:42195 */
+  INIT_ATTRIBUTES__ReduceAction1123(fra.me.REG[0]);
+  parser___ReduceAction1123___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1123(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1124[50] = {
+  {(bigint) 4487 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1124 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1124 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4487 /* 4: ReduceAction1124 < ReduceAction1124: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1124 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1124 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1124___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1124 < ReduceAction1124: superclass init_table position */},
+  {(bigint) parser___ReduceAction1124___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1124(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1124;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1124(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1124;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1124(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1124;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1124_parser___ReduceAction1124___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42217;
+  fra.me.meth = LOCATE_NEW_ReduceAction1124_parser___ReduceAction1124___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1124();
+  /* ./parser//parser.nit:42217 */
+  INIT_ATTRIBUTES__ReduceAction1124(fra.me.REG[0]);
+  parser___ReduceAction1124___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1124(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1125[50] = {
+  {(bigint) 4483 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1125 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1125 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4483 /* 4: ReduceAction1125 < ReduceAction1125: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1125 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1125 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1125___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1125 < ReduceAction1125: superclass init_table position */},
+  {(bigint) parser___ReduceAction1125___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1125(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1125;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1125(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1125;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1125(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1125;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1125_parser___ReduceAction1125___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42239;
+  fra.me.meth = LOCATE_NEW_ReduceAction1125_parser___ReduceAction1125___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1125();
+  /* ./parser//parser.nit:42239 */
+  INIT_ATTRIBUTES__ReduceAction1125(fra.me.REG[0]);
+  parser___ReduceAction1125___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1125(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1126[50] = {
+  {(bigint) 4479 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1126 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1126 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4479 /* 4: ReduceAction1126 < ReduceAction1126: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1126 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1126 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1126___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1126 < ReduceAction1126: superclass init_table position */},
+  {(bigint) parser___ReduceAction1126___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1126(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1126;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1126(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1126;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1126(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1126;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1126_parser___ReduceAction1126___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42252;
+  fra.me.meth = LOCATE_NEW_ReduceAction1126_parser___ReduceAction1126___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1126();
+  /* ./parser//parser.nit:42252 */
+  INIT_ATTRIBUTES__ReduceAction1126(fra.me.REG[0]);
+  parser___ReduceAction1126___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1126(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1127[50] = {
+  {(bigint) 4475 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1127 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1127 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4475 /* 4: ReduceAction1127 < ReduceAction1127: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1127 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1127 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1127___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1127 < ReduceAction1127: superclass init_table position */},
+  {(bigint) parser___ReduceAction1127___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1127(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1127;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1127(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1127;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1127(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1127;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1127_parser___ReduceAction1127___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42274;
+  fra.me.meth = LOCATE_NEW_ReduceAction1127_parser___ReduceAction1127___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1127();
+  /* ./parser//parser.nit:42274 */
+  INIT_ATTRIBUTES__ReduceAction1127(fra.me.REG[0]);
+  parser___ReduceAction1127___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1127(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1128[50] = {
+  {(bigint) 4471 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1128 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1128 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4471 /* 4: ReduceAction1128 < ReduceAction1128: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1128 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1128 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1128___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1128 < ReduceAction1128: superclass init_table position */},
+  {(bigint) parser___ReduceAction1128___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1128(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1128;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1128(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1128;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1128(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1128;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1128_parser___ReduceAction1128___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42296;
+  fra.me.meth = LOCATE_NEW_ReduceAction1128_parser___ReduceAction1128___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1128();
+  /* ./parser//parser.nit:42296 */
+  INIT_ATTRIBUTES__ReduceAction1128(fra.me.REG[0]);
+  parser___ReduceAction1128___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1128(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1129[50] = {
+  {(bigint) 4467 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1129 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1129 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4467 /* 4: ReduceAction1129 < ReduceAction1129: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1129 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1129 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1129___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1129 < ReduceAction1129: superclass init_table position */},
+  {(bigint) parser___ReduceAction1129___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1129(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1129;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1129(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1129;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1129(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1129;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1129_parser___ReduceAction1129___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42309;
+  fra.me.meth = LOCATE_NEW_ReduceAction1129_parser___ReduceAction1129___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1129();
+  /* ./parser//parser.nit:42309 */
+  INIT_ATTRIBUTES__ReduceAction1129(fra.me.REG[0]);
+  parser___ReduceAction1129___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1129(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1130[50] = {
+  {(bigint) 4459 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1130 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1130 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4459 /* 4: ReduceAction1130 < ReduceAction1130: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1130 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1130 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1130___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1130 < ReduceAction1130: superclass init_table position */},
+  {(bigint) parser___ReduceAction1130___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1130(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1130;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1130(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1130;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1130(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1130;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1130_parser___ReduceAction1130___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42331;
+  fra.me.meth = LOCATE_NEW_ReduceAction1130_parser___ReduceAction1130___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1130();
+  /* ./parser//parser.nit:42331 */
+  INIT_ATTRIBUTES__ReduceAction1130(fra.me.REG[0]);
+  parser___ReduceAction1130___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1130(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1131[50] = {
+  {(bigint) 4455 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1131 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1131 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4455 /* 4: ReduceAction1131 < ReduceAction1131: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1131 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1131 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1131___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1131 < ReduceAction1131: superclass init_table position */},
+  {(bigint) parser___ReduceAction1131___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1131(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1131;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1131(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1131;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1131(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1131;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1131_parser___ReduceAction1131___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42353;
+  fra.me.meth = LOCATE_NEW_ReduceAction1131_parser___ReduceAction1131___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1131();
+  /* ./parser//parser.nit:42353 */
+  INIT_ATTRIBUTES__ReduceAction1131(fra.me.REG[0]);
+  parser___ReduceAction1131___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1131(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1132[50] = {
+  {(bigint) 4451 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1132 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1132 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4451 /* 4: ReduceAction1132 < ReduceAction1132: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1132 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1132 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1132___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1132 < ReduceAction1132: superclass init_table position */},
+  {(bigint) parser___ReduceAction1132___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1132(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1132;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1132(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1132;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1132(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1132;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1132_parser___ReduceAction1132___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42375;
+  fra.me.meth = LOCATE_NEW_ReduceAction1132_parser___ReduceAction1132___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1132();
+  /* ./parser//parser.nit:42375 */
+  INIT_ATTRIBUTES__ReduceAction1132(fra.me.REG[0]);
+  parser___ReduceAction1132___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1132(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1133[50] = {
+  {(bigint) 4447 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1133 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1133 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4447 /* 4: ReduceAction1133 < ReduceAction1133: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1133 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1133 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1133___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1133 < ReduceAction1133: superclass init_table position */},
+  {(bigint) parser___ReduceAction1133___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1133(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1133;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1133(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1133;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1133(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1133;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1133_parser___ReduceAction1133___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42388;
+  fra.me.meth = LOCATE_NEW_ReduceAction1133_parser___ReduceAction1133___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1133();
+  /* ./parser//parser.nit:42388 */
+  INIT_ATTRIBUTES__ReduceAction1133(fra.me.REG[0]);
+  parser___ReduceAction1133___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1133(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1134[50] = {
+  {(bigint) 4443 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1134 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1134 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4443 /* 4: ReduceAction1134 < ReduceAction1134: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1134 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1134 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1134___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1134 < ReduceAction1134: superclass init_table position */},
+  {(bigint) parser___ReduceAction1134___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1134(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1134;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1134(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1134;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1134(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1134;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1134_parser___ReduceAction1134___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42409;
+  fra.me.meth = LOCATE_NEW_ReduceAction1134_parser___ReduceAction1134___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1134();
+  /* ./parser//parser.nit:42409 */
+  INIT_ATTRIBUTES__ReduceAction1134(fra.me.REG[0]);
+  parser___ReduceAction1134___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1134(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1135[50] = {
+  {(bigint) 4439 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1135 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1135 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4439 /* 4: ReduceAction1135 < ReduceAction1135: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1135 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1135 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1135___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1135 < ReduceAction1135: superclass init_table position */},
+  {(bigint) parser___ReduceAction1135___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1135(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1135;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1135(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1135;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1135(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1135;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1135_parser___ReduceAction1135___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42430;
+  fra.me.meth = LOCATE_NEW_ReduceAction1135_parser___ReduceAction1135___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1135();
+  /* ./parser//parser.nit:42430 */
+  INIT_ATTRIBUTES__ReduceAction1135(fra.me.REG[0]);
+  parser___ReduceAction1135___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1135(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1136[50] = {
+  {(bigint) 4435 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1136 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1136 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4435 /* 4: ReduceAction1136 < ReduceAction1136: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1136 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1136 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1136___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1136 < ReduceAction1136: superclass init_table position */},
+  {(bigint) parser___ReduceAction1136___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1136(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1136;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1136(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1136;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1136(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1136;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1136_parser___ReduceAction1136___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42443;
+  fra.me.meth = LOCATE_NEW_ReduceAction1136_parser___ReduceAction1136___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1136();
+  /* ./parser//parser.nit:42443 */
+  INIT_ATTRIBUTES__ReduceAction1136(fra.me.REG[0]);
+  parser___ReduceAction1136___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1136(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1137[50] = {
+  {(bigint) 4431 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1137 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1137 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4431 /* 4: ReduceAction1137 < ReduceAction1137: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1137 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1137 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1137___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1137 < ReduceAction1137: superclass init_table position */},
+  {(bigint) parser___ReduceAction1137___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1137(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1137;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1137(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1137;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1137(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1137;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1137_parser___ReduceAction1137___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42477;
+  fra.me.meth = LOCATE_NEW_ReduceAction1137_parser___ReduceAction1137___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1137();
+  /* ./parser//parser.nit:42477 */
+  INIT_ATTRIBUTES__ReduceAction1137(fra.me.REG[0]);
+  parser___ReduceAction1137___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1137(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1138[50] = {
+  {(bigint) 4427 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1138 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1138 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4427 /* 4: ReduceAction1138 < ReduceAction1138: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1138 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1138 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1138___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1138 < ReduceAction1138: superclass init_table position */},
+  {(bigint) parser___ReduceAction1138___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1138(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1138;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1138(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1138;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1138(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1138;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1138_parser___ReduceAction1138___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42501;
+  fra.me.meth = LOCATE_NEW_ReduceAction1138_parser___ReduceAction1138___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1138();
+  /* ./parser//parser.nit:42501 */
+  INIT_ATTRIBUTES__ReduceAction1138(fra.me.REG[0]);
+  parser___ReduceAction1138___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1138(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1139[50] = {
+  {(bigint) 4423 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1139 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1139 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4423 /* 4: ReduceAction1139 < ReduceAction1139: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1139 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1139 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1139___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1139 < ReduceAction1139: superclass init_table position */},
+  {(bigint) parser___ReduceAction1139___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1139(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1139;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1139(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1139;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1139(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1139;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1139_parser___ReduceAction1139___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42521;
+  fra.me.meth = LOCATE_NEW_ReduceAction1139_parser___ReduceAction1139___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1139();
+  /* ./parser//parser.nit:42521 */
+  INIT_ATTRIBUTES__ReduceAction1139(fra.me.REG[0]);
+  parser___ReduceAction1139___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1139(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1140[50] = {
+  {(bigint) 4415 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1140 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1140 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4415 /* 4: ReduceAction1140 < ReduceAction1140: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1140 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1140 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1140___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1140 < ReduceAction1140: superclass init_table position */},
+  {(bigint) parser___ReduceAction1140___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1140(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1140;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1140(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1140;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1140(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1140;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1140_parser___ReduceAction1140___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42555;
+  fra.me.meth = LOCATE_NEW_ReduceAction1140_parser___ReduceAction1140___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1140();
+  /* ./parser//parser.nit:42555 */
+  INIT_ATTRIBUTES__ReduceAction1140(fra.me.REG[0]);
+  parser___ReduceAction1140___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1140(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1141[50] = {
+  {(bigint) 4411 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1141 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1141 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4411 /* 4: ReduceAction1141 < ReduceAction1141: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1141 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1141 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1141___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1141 < ReduceAction1141: superclass init_table position */},
+  {(bigint) parser___ReduceAction1141___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1141(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1141;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1141(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1141;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1141(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1141;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1141_parser___ReduceAction1141___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42584;
+  fra.me.meth = LOCATE_NEW_ReduceAction1141_parser___ReduceAction1141___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1141();
+  /* ./parser//parser.nit:42584 */
+  INIT_ATTRIBUTES__ReduceAction1141(fra.me.REG[0]);
+  parser___ReduceAction1141___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1141(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1142[50] = {
+  {(bigint) 4407 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1142 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1142 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4407 /* 4: ReduceAction1142 < ReduceAction1142: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1142 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1142 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1142___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1142 < ReduceAction1142: superclass init_table position */},
+  {(bigint) parser___ReduceAction1142___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1142(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1142;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1142(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1142;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1142(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1142;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1142_parser___ReduceAction1142___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42616;
+  fra.me.meth = LOCATE_NEW_ReduceAction1142_parser___ReduceAction1142___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1142();
+  /* ./parser//parser.nit:42616 */
+  INIT_ATTRIBUTES__ReduceAction1142(fra.me.REG[0]);
+  parser___ReduceAction1142___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1142(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1143[50] = {
+  {(bigint) 4403 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1143 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1143 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4403 /* 4: ReduceAction1143 < ReduceAction1143: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1143 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1143 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1143___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1143 < ReduceAction1143: superclass init_table position */},
+  {(bigint) parser___ReduceAction1143___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1143(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1143;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1143(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1143;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1143(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1143;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1143_parser___ReduceAction1143___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42648;
+  fra.me.meth = LOCATE_NEW_ReduceAction1143_parser___ReduceAction1143___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1143();
+  /* ./parser//parser.nit:42648 */
+  INIT_ATTRIBUTES__ReduceAction1143(fra.me.REG[0]);
+  parser___ReduceAction1143___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1143(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1144[50] = {
+  {(bigint) 4399 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1144 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1144 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4399 /* 4: ReduceAction1144 < ReduceAction1144: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1144 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1144 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1144___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1144 < ReduceAction1144: superclass init_table position */},
+  {(bigint) parser___ReduceAction1144___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1144(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1144;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1144(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1144;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1144(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1144;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1144_parser___ReduceAction1144___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42687;
+  fra.me.meth = LOCATE_NEW_ReduceAction1144_parser___ReduceAction1144___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1144();
+  /* ./parser//parser.nit:42687 */
+  INIT_ATTRIBUTES__ReduceAction1144(fra.me.REG[0]);
+  parser___ReduceAction1144___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1144(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1145[50] = {
+  {(bigint) 4395 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1145 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1145 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4395 /* 4: ReduceAction1145 < ReduceAction1145: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1145 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1145 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1145___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1145 < ReduceAction1145: superclass init_table position */},
+  {(bigint) parser___ReduceAction1145___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1145(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1145;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1145(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1145;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1145(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1145;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1145_parser___ReduceAction1145___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42703;
+  fra.me.meth = LOCATE_NEW_ReduceAction1145_parser___ReduceAction1145___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1145();
+  /* ./parser//parser.nit:42703 */
+  INIT_ATTRIBUTES__ReduceAction1145(fra.me.REG[0]);
+  parser___ReduceAction1145___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1145(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1146[50] = {
+  {(bigint) 4391 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1146 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1146 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4391 /* 4: ReduceAction1146 < ReduceAction1146: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1146 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1146 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1146___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1146 < ReduceAction1146: superclass init_table position */},
+  {(bigint) parser___ReduceAction1146___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1146(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1146;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1146(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1146;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1146(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1146;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1146_parser___ReduceAction1146___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42719;
+  fra.me.meth = LOCATE_NEW_ReduceAction1146_parser___ReduceAction1146___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1146();
+  /* ./parser//parser.nit:42719 */
+  INIT_ATTRIBUTES__ReduceAction1146(fra.me.REG[0]);
+  parser___ReduceAction1146___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1146(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1147[50] = {
+  {(bigint) 4387 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1147 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1147 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4387 /* 4: ReduceAction1147 < ReduceAction1147: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1147 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1147 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1147___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1147 < ReduceAction1147: superclass init_table position */},
+  {(bigint) parser___ReduceAction1147___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1147(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1147;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1147(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1147;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1147(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1147;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1147_parser___ReduceAction1147___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42735;
+  fra.me.meth = LOCATE_NEW_ReduceAction1147_parser___ReduceAction1147___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1147();
+  /* ./parser//parser.nit:42735 */
+  INIT_ATTRIBUTES__ReduceAction1147(fra.me.REG[0]);
+  parser___ReduceAction1147___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1147(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1148[50] = {
+  {(bigint) 4383 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1148 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1148 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4383 /* 4: ReduceAction1148 < ReduceAction1148: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1148 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1148 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1148___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1148 < ReduceAction1148: superclass init_table position */},
+  {(bigint) parser___ReduceAction1148___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1148(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1148;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1148(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1148;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1148(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1148;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1148_parser___ReduceAction1148___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42751;
+  fra.me.meth = LOCATE_NEW_ReduceAction1148_parser___ReduceAction1148___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1148();
+  /* ./parser//parser.nit:42751 */
+  INIT_ATTRIBUTES__ReduceAction1148(fra.me.REG[0]);
+  parser___ReduceAction1148___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1148(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1149[50] = {
+  {(bigint) 4379 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1149 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1149 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4379 /* 4: ReduceAction1149 < ReduceAction1149: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1149 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1149 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1149___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1149 < ReduceAction1149: superclass init_table position */},
+  {(bigint) parser___ReduceAction1149___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1149(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1149;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1149(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1149;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1149(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1149;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1149_parser___ReduceAction1149___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42767;
+  fra.me.meth = LOCATE_NEW_ReduceAction1149_parser___ReduceAction1149___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1149();
+  /* ./parser//parser.nit:42767 */
+  INIT_ATTRIBUTES__ReduceAction1149(fra.me.REG[0]);
+  parser___ReduceAction1149___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1149(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1150[50] = {
+  {(bigint) 4371 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1150 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1150 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4371 /* 4: ReduceAction1150 < ReduceAction1150: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1150 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1150 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1150___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1150 < ReduceAction1150: superclass init_table position */},
+  {(bigint) parser___ReduceAction1150___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1150(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1150;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1150(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1150;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1150(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1150;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1150_parser___ReduceAction1150___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42783;
+  fra.me.meth = LOCATE_NEW_ReduceAction1150_parser___ReduceAction1150___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1150();
+  /* ./parser//parser.nit:42783 */
+  INIT_ATTRIBUTES__ReduceAction1150(fra.me.REG[0]);
+  parser___ReduceAction1150___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1150(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1151[50] = {
+  {(bigint) 4367 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1151 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1151 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4367 /* 4: ReduceAction1151 < ReduceAction1151: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1151 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1151 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1151___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1151 < ReduceAction1151: superclass init_table position */},
+  {(bigint) parser___ReduceAction1151___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1151(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1151;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1151(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1151;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1151(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1151;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1151_parser___ReduceAction1151___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42799;
+  fra.me.meth = LOCATE_NEW_ReduceAction1151_parser___ReduceAction1151___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1151();
+  /* ./parser//parser.nit:42799 */
+  INIT_ATTRIBUTES__ReduceAction1151(fra.me.REG[0]);
+  parser___ReduceAction1151___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1151(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1152[50] = {
+  {(bigint) 4363 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1152 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1152 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4363 /* 4: ReduceAction1152 < ReduceAction1152: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1152 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1152 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1152___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1152 < ReduceAction1152: superclass init_table position */},
+  {(bigint) parser___ReduceAction1152___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1152(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1152;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1152(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1152;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1152(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1152;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1152_parser___ReduceAction1152___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42815;
+  fra.me.meth = LOCATE_NEW_ReduceAction1152_parser___ReduceAction1152___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1152();
+  /* ./parser//parser.nit:42815 */
+  INIT_ATTRIBUTES__ReduceAction1152(fra.me.REG[0]);
+  parser___ReduceAction1152___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1152(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1153[50] = {
+  {(bigint) 4359 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1153 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1153 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4359 /* 4: ReduceAction1153 < ReduceAction1153: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1153 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1153 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1153___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1153 < ReduceAction1153: superclass init_table position */},
+  {(bigint) parser___ReduceAction1153___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1153(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1153;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1153(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1153;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1153(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1153;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1153_parser___ReduceAction1153___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42828;
+  fra.me.meth = LOCATE_NEW_ReduceAction1153_parser___ReduceAction1153___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1153();
+  /* ./parser//parser.nit:42828 */
+  INIT_ATTRIBUTES__ReduceAction1153(fra.me.REG[0]);
+  parser___ReduceAction1153___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1153(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1154[50] = {
+  {(bigint) 4355 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1154 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1154 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4355 /* 4: ReduceAction1154 < ReduceAction1154: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1154 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1154 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1154___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1154 < ReduceAction1154: superclass init_table position */},
+  {(bigint) parser___ReduceAction1154___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1154(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1154;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1154(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1154;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1154(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1154;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1154_parser___ReduceAction1154___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42859;
+  fra.me.meth = LOCATE_NEW_ReduceAction1154_parser___ReduceAction1154___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1154();
+  /* ./parser//parser.nit:42859 */
+  INIT_ATTRIBUTES__ReduceAction1154(fra.me.REG[0]);
+  parser___ReduceAction1154___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1154(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1155[50] = {
+  {(bigint) 4351 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1155 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1155 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4351 /* 4: ReduceAction1155 < ReduceAction1155: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1155 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1155 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1155___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1155 < ReduceAction1155: superclass init_table position */},
+  {(bigint) parser___ReduceAction1155___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1155(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1155;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1155(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1155;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1155(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1155;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1155_parser___ReduceAction1155___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42895;
+  fra.me.meth = LOCATE_NEW_ReduceAction1155_parser___ReduceAction1155___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1155();
+  /* ./parser//parser.nit:42895 */
+  INIT_ATTRIBUTES__ReduceAction1155(fra.me.REG[0]);
+  parser___ReduceAction1155___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1155(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1156[50] = {
+  {(bigint) 4347 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1156 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1156 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4347 /* 4: ReduceAction1156 < ReduceAction1156: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1156 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1156 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1156___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1156 < ReduceAction1156: superclass init_table position */},
+  {(bigint) parser___ReduceAction1156___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1156(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1156;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1156(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1156;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1156(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1156;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1156_parser___ReduceAction1156___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42910;
+  fra.me.meth = LOCATE_NEW_ReduceAction1156_parser___ReduceAction1156___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1156();
+  /* ./parser//parser.nit:42910 */
+  INIT_ATTRIBUTES__ReduceAction1156(fra.me.REG[0]);
+  parser___ReduceAction1156___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1156(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1157[50] = {
+  {(bigint) 4343 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1157 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1157 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4343 /* 4: ReduceAction1157 < ReduceAction1157: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1157 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1157 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1157___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1157 < ReduceAction1157: superclass init_table position */},
+  {(bigint) parser___ReduceAction1157___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1157(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1157;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1157(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1157;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1157(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1157;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1157_parser___ReduceAction1157___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42922;
+  fra.me.meth = LOCATE_NEW_ReduceAction1157_parser___ReduceAction1157___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1157();
+  /* ./parser//parser.nit:42922 */
+  INIT_ATTRIBUTES__ReduceAction1157(fra.me.REG[0]);
+  parser___ReduceAction1157___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1157(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1158[50] = {
+  {(bigint) 4339 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1158 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1158 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4339 /* 4: ReduceAction1158 < ReduceAction1158: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1158 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1158 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1158___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1158 < ReduceAction1158: superclass init_table position */},
+  {(bigint) parser___ReduceAction1158___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1158(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1158;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1158(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1158;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1158(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1158;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1158_parser___ReduceAction1158___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42935;
+  fra.me.meth = LOCATE_NEW_ReduceAction1158_parser___ReduceAction1158___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1158();
+  /* ./parser//parser.nit:42935 */
+  INIT_ATTRIBUTES__ReduceAction1158(fra.me.REG[0]);
+  parser___ReduceAction1158___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1158(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1159[50] = {
+  {(bigint) 4335 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1159 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1159 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4335 /* 4: ReduceAction1159 < ReduceAction1159: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1159 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1159 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1159___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1159 < ReduceAction1159: superclass init_table position */},
+  {(bigint) parser___ReduceAction1159___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1159(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1159;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1159(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1159;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1159(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1159;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1159_parser___ReduceAction1159___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42981;
+  fra.me.meth = LOCATE_NEW_ReduceAction1159_parser___ReduceAction1159___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1159();
+  /* ./parser//parser.nit:42981 */
+  INIT_ATTRIBUTES__ReduceAction1159(fra.me.REG[0]);
+  parser___ReduceAction1159___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1159(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1160[50] = {
+  {(bigint) 4327 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1160 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1160 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4327 /* 4: ReduceAction1160 < ReduceAction1160: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1160 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1160 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1160___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1160 < ReduceAction1160: superclass init_table position */},
+  {(bigint) parser___ReduceAction1160___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1160(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1160;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1160(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1160;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1160(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1160;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1160_parser___ReduceAction1160___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43024;
+  fra.me.meth = LOCATE_NEW_ReduceAction1160_parser___ReduceAction1160___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1160();
+  /* ./parser//parser.nit:43024 */
+  INIT_ATTRIBUTES__ReduceAction1160(fra.me.REG[0]);
+  parser___ReduceAction1160___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1160(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1161[50] = {
+  {(bigint) 4323 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1161 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1161 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4323 /* 4: ReduceAction1161 < ReduceAction1161: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1161 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1161 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1161___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1161 < ReduceAction1161: superclass init_table position */},
+  {(bigint) parser___ReduceAction1161___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1161(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1161;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1161(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1161;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1161(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1161;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1161_parser___ReduceAction1161___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43037;
+  fra.me.meth = LOCATE_NEW_ReduceAction1161_parser___ReduceAction1161___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1161();
+  /* ./parser//parser.nit:43037 */
+  INIT_ATTRIBUTES__ReduceAction1161(fra.me.REG[0]);
+  parser___ReduceAction1161___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1161(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1162[50] = {
+  {(bigint) 4319 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1162 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1162 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4319 /* 4: ReduceAction1162 < ReduceAction1162: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1162 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1162 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1162___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1162 < ReduceAction1162: superclass init_table position */},
+  {(bigint) parser___ReduceAction1162___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1162(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1162;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1162(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1162;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1162(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1162;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1162_parser___ReduceAction1162___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43083;
+  fra.me.meth = LOCATE_NEW_ReduceAction1162_parser___ReduceAction1162___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1162();
+  /* ./parser//parser.nit:43083 */
+  INIT_ATTRIBUTES__ReduceAction1162(fra.me.REG[0]);
+  parser___ReduceAction1162___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1162(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1163[50] = {
+  {(bigint) 4315 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1163 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1163 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4315 /* 4: ReduceAction1163 < ReduceAction1163: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1163 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1163 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1163___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1163 < ReduceAction1163: superclass init_table position */},
+  {(bigint) parser___ReduceAction1163___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1163(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1163;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1163(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1163;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1163(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1163;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1163_parser___ReduceAction1163___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43126;
+  fra.me.meth = LOCATE_NEW_ReduceAction1163_parser___ReduceAction1163___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1163();
+  /* ./parser//parser.nit:43126 */
+  INIT_ATTRIBUTES__ReduceAction1163(fra.me.REG[0]);
+  parser___ReduceAction1163___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1163(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1164[50] = {
+  {(bigint) 4311 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1164 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1164 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4311 /* 4: ReduceAction1164 < ReduceAction1164: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1164 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1164 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1164___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1164 < ReduceAction1164: superclass init_table position */},
+  {(bigint) parser___ReduceAction1164___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1164(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1164;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1164(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1164;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1164(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1164;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1164_parser___ReduceAction1164___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43143;
+  fra.me.meth = LOCATE_NEW_ReduceAction1164_parser___ReduceAction1164___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1164();
+  /* ./parser//parser.nit:43143 */
+  INIT_ATTRIBUTES__ReduceAction1164(fra.me.REG[0]);
+  parser___ReduceAction1164___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1164(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1165[50] = {
+  {(bigint) 4307 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1165 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1165 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4307 /* 4: ReduceAction1165 < ReduceAction1165: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1165 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1165 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1165___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1165 < ReduceAction1165: superclass init_table position */},
+  {(bigint) parser___ReduceAction1165___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1165(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1165;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1165(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1165;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1165(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1165;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1165_parser___ReduceAction1165___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43170;
+  fra.me.meth = LOCATE_NEW_ReduceAction1165_parser___ReduceAction1165___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1165();
+  /* ./parser//parser.nit:43170 */
+  INIT_ATTRIBUTES__ReduceAction1165(fra.me.REG[0]);
+  parser___ReduceAction1165___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1165(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1166[50] = {
+  {(bigint) 4303 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1166 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1166 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4303 /* 4: ReduceAction1166 < ReduceAction1166: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1166 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1166 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1166___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1166 < ReduceAction1166: superclass init_table position */},
+  {(bigint) parser___ReduceAction1166___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1166(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1166;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1166(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1166;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1166(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1166;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1166_parser___ReduceAction1166___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43187;
+  fra.me.meth = LOCATE_NEW_ReduceAction1166_parser___ReduceAction1166___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1166();
+  /* ./parser//parser.nit:43187 */
+  INIT_ATTRIBUTES__ReduceAction1166(fra.me.REG[0]);
+  parser___ReduceAction1166___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1166(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1167[50] = {
+  {(bigint) 4299 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1167 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1167 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4299 /* 4: ReduceAction1167 < ReduceAction1167: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1167 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1167 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1167___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1167 < ReduceAction1167: superclass init_table position */},
+  {(bigint) parser___ReduceAction1167___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1167(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1167;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1167(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1167;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1167(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1167;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1167_parser___ReduceAction1167___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43214;
+  fra.me.meth = LOCATE_NEW_ReduceAction1167_parser___ReduceAction1167___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1167();
+  /* ./parser//parser.nit:43214 */
+  INIT_ATTRIBUTES__ReduceAction1167(fra.me.REG[0]);
+  parser___ReduceAction1167___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1167(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1168[50] = {
+  {(bigint) 4295 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1168 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1168 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4295 /* 4: ReduceAction1168 < ReduceAction1168: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1168 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1168 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1168___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1168 < ReduceAction1168: superclass init_table position */},
+  {(bigint) parser___ReduceAction1168___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1168(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1168;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1168(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1168;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1168(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1168;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1168_parser___ReduceAction1168___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43231;
+  fra.me.meth = LOCATE_NEW_ReduceAction1168_parser___ReduceAction1168___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1168();
+  /* ./parser//parser.nit:43231 */
+  INIT_ATTRIBUTES__ReduceAction1168(fra.me.REG[0]);
+  parser___ReduceAction1168___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1168(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1169[50] = {
+  {(bigint) 4291 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1169 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1169 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4291 /* 4: ReduceAction1169 < ReduceAction1169: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1169 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1169 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1169___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1169 < ReduceAction1169: superclass init_table position */},
+  {(bigint) parser___ReduceAction1169___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1169(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1169;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1169(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1169;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1169(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1169;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1169_parser___ReduceAction1169___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43258;
+  fra.me.meth = LOCATE_NEW_ReduceAction1169_parser___ReduceAction1169___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1169();
+  /* ./parser//parser.nit:43258 */
+  INIT_ATTRIBUTES__ReduceAction1169(fra.me.REG[0]);
+  parser___ReduceAction1169___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1169(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1170[50] = {
+  {(bigint) 4283 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1170 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1170 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4283 /* 4: ReduceAction1170 < ReduceAction1170: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1170 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1170 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1170___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1170 < ReduceAction1170: superclass init_table position */},
+  {(bigint) parser___ReduceAction1170___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1170(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1170;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1170(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1170;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1170(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1170;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1170_parser___ReduceAction1170___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43275;
+  fra.me.meth = LOCATE_NEW_ReduceAction1170_parser___ReduceAction1170___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1170();
+  /* ./parser//parser.nit:43275 */
+  INIT_ATTRIBUTES__ReduceAction1170(fra.me.REG[0]);
+  parser___ReduceAction1170___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1170(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1171[50] = {
+  {(bigint) 4279 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1171 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1171 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4279 /* 4: ReduceAction1171 < ReduceAction1171: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1171 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1171 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1171___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1171 < ReduceAction1171: superclass init_table position */},
+  {(bigint) parser___ReduceAction1171___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1171(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1171;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1171(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1171;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1171(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1171;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1171_parser___ReduceAction1171___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43302;
+  fra.me.meth = LOCATE_NEW_ReduceAction1171_parser___ReduceAction1171___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1171();
+  /* ./parser//parser.nit:43302 */
+  INIT_ATTRIBUTES__ReduceAction1171(fra.me.REG[0]);
+  parser___ReduceAction1171___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1171(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1172[50] = {
+  {(bigint) 4275 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1172 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1172 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4275 /* 4: ReduceAction1172 < ReduceAction1172: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1172 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1172 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1172___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1172 < ReduceAction1172: superclass init_table position */},
+  {(bigint) parser___ReduceAction1172___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1172(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1172;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1172(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1172;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1172(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1172;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1172_parser___ReduceAction1172___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43319;
+  fra.me.meth = LOCATE_NEW_ReduceAction1172_parser___ReduceAction1172___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1172();
+  /* ./parser//parser.nit:43319 */
+  INIT_ATTRIBUTES__ReduceAction1172(fra.me.REG[0]);
+  parser___ReduceAction1172___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1172(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1173[50] = {
+  {(bigint) 4271 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1173 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1173 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4271 /* 4: ReduceAction1173 < ReduceAction1173: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1173 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1173 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1173___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1173 < ReduceAction1173: superclass init_table position */},
+  {(bigint) parser___ReduceAction1173___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1173(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1173;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1173(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1173;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1173(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1173;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1173_parser___ReduceAction1173___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43346;
+  fra.me.meth = LOCATE_NEW_ReduceAction1173_parser___ReduceAction1173___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1173();
+  /* ./parser//parser.nit:43346 */
+  INIT_ATTRIBUTES__ReduceAction1173(fra.me.REG[0]);
+  parser___ReduceAction1173___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1173(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1174[50] = {
+  {(bigint) 4267 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1174 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1174 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4267 /* 4: ReduceAction1174 < ReduceAction1174: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1174 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1174 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1174___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1174 < ReduceAction1174: superclass init_table position */},
+  {(bigint) parser___ReduceAction1174___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1174(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1174;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1174(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1174;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1174(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1174;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1174_parser___ReduceAction1174___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43363;
+  fra.me.meth = LOCATE_NEW_ReduceAction1174_parser___ReduceAction1174___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1174();
+  /* ./parser//parser.nit:43363 */
+  INIT_ATTRIBUTES__ReduceAction1174(fra.me.REG[0]);
+  parser___ReduceAction1174___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1174(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1175[50] = {
+  {(bigint) 4263 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1175 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1175 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4263 /* 4: ReduceAction1175 < ReduceAction1175: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1175 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1175 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1175___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1175 < ReduceAction1175: superclass init_table position */},
+  {(bigint) parser___ReduceAction1175___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1175(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1175;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1175(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1175;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1175(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1175;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1175_parser___ReduceAction1175___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43390;
+  fra.me.meth = LOCATE_NEW_ReduceAction1175_parser___ReduceAction1175___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1175();
+  /* ./parser//parser.nit:43390 */
+  INIT_ATTRIBUTES__ReduceAction1175(fra.me.REG[0]);
+  parser___ReduceAction1175___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1175(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1176[50] = {
+  {(bigint) 4259 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1176 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1176 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4259 /* 4: ReduceAction1176 < ReduceAction1176: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1176 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1176 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1176___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1176 < ReduceAction1176: superclass init_table position */},
+  {(bigint) parser___ReduceAction1176___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1176(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1176;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1176(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1176;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1176(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1176;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1176_parser___ReduceAction1176___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43407;
+  fra.me.meth = LOCATE_NEW_ReduceAction1176_parser___ReduceAction1176___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1176();
+  /* ./parser//parser.nit:43407 */
+  INIT_ATTRIBUTES__ReduceAction1176(fra.me.REG[0]);
+  parser___ReduceAction1176___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1176(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1177[50] = {
+  {(bigint) 4255 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1177 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1177 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4255 /* 4: ReduceAction1177 < ReduceAction1177: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1177 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1177 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1177___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1177 < ReduceAction1177: superclass init_table position */},
+  {(bigint) parser___ReduceAction1177___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1177(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1177;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1177(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1177;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1177(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1177;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1177_parser___ReduceAction1177___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43434;
+  fra.me.meth = LOCATE_NEW_ReduceAction1177_parser___ReduceAction1177___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1177();
+  /* ./parser//parser.nit:43434 */
+  INIT_ATTRIBUTES__ReduceAction1177(fra.me.REG[0]);
+  parser___ReduceAction1177___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1177(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1178[50] = {
+  {(bigint) 4251 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1178 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1178 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4251 /* 4: ReduceAction1178 < ReduceAction1178: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1178 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1178 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1178___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1178 < ReduceAction1178: superclass init_table position */},
+  {(bigint) parser___ReduceAction1178___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1178(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1178;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1178(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1178;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1178(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1178;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1178_parser___ReduceAction1178___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43451;
+  fra.me.meth = LOCATE_NEW_ReduceAction1178_parser___ReduceAction1178___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1178();
+  /* ./parser//parser.nit:43451 */
+  INIT_ATTRIBUTES__ReduceAction1178(fra.me.REG[0]);
+  parser___ReduceAction1178___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1178(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1179[50] = {
+  {(bigint) 4247 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1179 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1179 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4247 /* 4: ReduceAction1179 < ReduceAction1179: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1179 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1179 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1179___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1179 < ReduceAction1179: superclass init_table position */},
+  {(bigint) parser___ReduceAction1179___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1179(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1179;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1179(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1179;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1179(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1179;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1179_parser___ReduceAction1179___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43478;
+  fra.me.meth = LOCATE_NEW_ReduceAction1179_parser___ReduceAction1179___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1179();
+  /* ./parser//parser.nit:43478 */
+  INIT_ATTRIBUTES__ReduceAction1179(fra.me.REG[0]);
+  parser___ReduceAction1179___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1179(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1180[50] = {
+  {(bigint) 4239 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1180 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1180 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4239 /* 4: ReduceAction1180 < ReduceAction1180: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1180 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1180 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1180___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1180 < ReduceAction1180: superclass init_table position */},
+  {(bigint) parser___ReduceAction1180___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1180(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1180;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1180(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1180;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1180(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1180;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1180_parser___ReduceAction1180___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43495;
+  fra.me.meth = LOCATE_NEW_ReduceAction1180_parser___ReduceAction1180___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1180();
+  /* ./parser//parser.nit:43495 */
+  INIT_ATTRIBUTES__ReduceAction1180(fra.me.REG[0]);
+  parser___ReduceAction1180___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1180(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1181[50] = {
+  {(bigint) 4235 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1181 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1181 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4235 /* 4: ReduceAction1181 < ReduceAction1181: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1181 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1181 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1181___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1181 < ReduceAction1181: superclass init_table position */},
+  {(bigint) parser___ReduceAction1181___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1181(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1181;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1181(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1181;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1181(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1181;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1181_parser___ReduceAction1181___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43522;
+  fra.me.meth = LOCATE_NEW_ReduceAction1181_parser___ReduceAction1181___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1181();
+  /* ./parser//parser.nit:43522 */
+  INIT_ATTRIBUTES__ReduceAction1181(fra.me.REG[0]);
+  parser___ReduceAction1181___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1181(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1182[50] = {
+  {(bigint) 4231 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1182 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1182 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4231 /* 4: ReduceAction1182 < ReduceAction1182: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1182 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1182 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1182___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1182 < ReduceAction1182: superclass init_table position */},
+  {(bigint) parser___ReduceAction1182___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1182(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1182;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1182(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1182;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1182(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1182;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1182_parser___ReduceAction1182___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43543;
+  fra.me.meth = LOCATE_NEW_ReduceAction1182_parser___ReduceAction1182___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1182();
+  /* ./parser//parser.nit:43543 */
+  INIT_ATTRIBUTES__ReduceAction1182(fra.me.REG[0]);
+  parser___ReduceAction1182___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1182(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1183[50] = {
+  {(bigint) 4227 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1183 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1183 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4227 /* 4: ReduceAction1183 < ReduceAction1183: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1183 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1183 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1183___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1183 < ReduceAction1183: superclass init_table position */},
+  {(bigint) parser___ReduceAction1183___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1183(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1183;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1183(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1183;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1183(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1183;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1183_parser___ReduceAction1183___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43574;
+  fra.me.meth = LOCATE_NEW_ReduceAction1183_parser___ReduceAction1183___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1183();
+  /* ./parser//parser.nit:43574 */
+  INIT_ATTRIBUTES__ReduceAction1183(fra.me.REG[0]);
+  parser___ReduceAction1183___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1183(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1184[50] = {
+  {(bigint) 4223 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1184 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1184 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4223 /* 4: ReduceAction1184 < ReduceAction1184: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1184 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1184 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1184___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1184 < ReduceAction1184: superclass init_table position */},
+  {(bigint) parser___ReduceAction1184___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1184(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1184;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1184(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1184;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1184(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1184;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1184_parser___ReduceAction1184___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43591;
+  fra.me.meth = LOCATE_NEW_ReduceAction1184_parser___ReduceAction1184___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1184();
+  /* ./parser//parser.nit:43591 */
+  INIT_ATTRIBUTES__ReduceAction1184(fra.me.REG[0]);
+  parser___ReduceAction1184___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1184(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1185[50] = {
+  {(bigint) 4219 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1185 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1185 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4219 /* 4: ReduceAction1185 < ReduceAction1185: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1185 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1185 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1185___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1185 < ReduceAction1185: superclass init_table position */},
+  {(bigint) parser___ReduceAction1185___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1185(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1185;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1185(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1185;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1185(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1185;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1185_parser___ReduceAction1185___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43618;
+  fra.me.meth = LOCATE_NEW_ReduceAction1185_parser___ReduceAction1185___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1185();
+  /* ./parser//parser.nit:43618 */
+  INIT_ATTRIBUTES__ReduceAction1185(fra.me.REG[0]);
+  parser___ReduceAction1185___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1185(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1186[50] = {
+  {(bigint) 4215 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1186 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1186 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4215 /* 4: ReduceAction1186 < ReduceAction1186: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1186 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1186 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1186___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1186 < ReduceAction1186: superclass init_table position */},
+  {(bigint) parser___ReduceAction1186___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1186(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1186;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1186(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1186;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1186(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1186;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1186_parser___ReduceAction1186___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43635;
+  fra.me.meth = LOCATE_NEW_ReduceAction1186_parser___ReduceAction1186___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1186();
+  /* ./parser//parser.nit:43635 */
+  INIT_ATTRIBUTES__ReduceAction1186(fra.me.REG[0]);
+  parser___ReduceAction1186___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1186(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1187[50] = {
+  {(bigint) 4211 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1187 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1187 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4211 /* 4: ReduceAction1187 < ReduceAction1187: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1187 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1187 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1187___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1187 < ReduceAction1187: superclass init_table position */},
+  {(bigint) parser___ReduceAction1187___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1187(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1187;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1187(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1187;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1187(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1187;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1187_parser___ReduceAction1187___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43662;
+  fra.me.meth = LOCATE_NEW_ReduceAction1187_parser___ReduceAction1187___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1187();
+  /* ./parser//parser.nit:43662 */
+  INIT_ATTRIBUTES__ReduceAction1187(fra.me.REG[0]);
+  parser___ReduceAction1187___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1187(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1188[50] = {
+  {(bigint) 4207 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1188 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1188 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4207 /* 4: ReduceAction1188 < ReduceAction1188: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1188 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1188 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1188___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1188 < ReduceAction1188: superclass init_table position */},
+  {(bigint) parser___ReduceAction1188___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1188(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1188;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1188(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1188;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1188(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1188;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1188_parser___ReduceAction1188___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43679;
+  fra.me.meth = LOCATE_NEW_ReduceAction1188_parser___ReduceAction1188___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1188();
+  /* ./parser//parser.nit:43679 */
+  INIT_ATTRIBUTES__ReduceAction1188(fra.me.REG[0]);
+  parser___ReduceAction1188___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1188(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1189[50] = {
+  {(bigint) 4203 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1189 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1189 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4203 /* 4: ReduceAction1189 < ReduceAction1189: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1189 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1189 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1189___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1189 < ReduceAction1189: superclass init_table position */},
+  {(bigint) parser___ReduceAction1189___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1189(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1189;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1189(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1189;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1189(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1189;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1189_parser___ReduceAction1189___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43706;
+  fra.me.meth = LOCATE_NEW_ReduceAction1189_parser___ReduceAction1189___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1189();
+  /* ./parser//parser.nit:43706 */
+  INIT_ATTRIBUTES__ReduceAction1189(fra.me.REG[0]);
+  parser___ReduceAction1189___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1189(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1190[50] = {
+  {(bigint) 4195 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1190 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1190 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4195 /* 4: ReduceAction1190 < ReduceAction1190: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1190 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1190 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1190___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1190 < ReduceAction1190: superclass init_table position */},
+  {(bigint) parser___ReduceAction1190___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1190(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1190;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1190(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1190;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1190(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1190;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1190_parser___ReduceAction1190___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43723;
+  fra.me.meth = LOCATE_NEW_ReduceAction1190_parser___ReduceAction1190___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1190();
+  /* ./parser//parser.nit:43723 */
+  INIT_ATTRIBUTES__ReduceAction1190(fra.me.REG[0]);
+  parser___ReduceAction1190___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1190(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1191[50] = {
+  {(bigint) 4191 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1191 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1191 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4191 /* 4: ReduceAction1191 < ReduceAction1191: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1191 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1191 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1191___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1191 < ReduceAction1191: superclass init_table position */},
+  {(bigint) parser___ReduceAction1191___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1191(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1191;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1191(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1191;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1191(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1191;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1191_parser___ReduceAction1191___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43750;
+  fra.me.meth = LOCATE_NEW_ReduceAction1191_parser___ReduceAction1191___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1191();
+  /* ./parser//parser.nit:43750 */
+  INIT_ATTRIBUTES__ReduceAction1191(fra.me.REG[0]);
+  parser___ReduceAction1191___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1191(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1192[50] = {
+  {(bigint) 4187 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1192 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1192 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4187 /* 4: ReduceAction1192 < ReduceAction1192: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1192 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1192 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1192___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1192 < ReduceAction1192: superclass init_table position */},
+  {(bigint) parser___ReduceAction1192___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1192(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1192;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1192(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1192;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1192(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1192;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1192_parser___ReduceAction1192___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43767;
+  fra.me.meth = LOCATE_NEW_ReduceAction1192_parser___ReduceAction1192___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1192();
+  /* ./parser//parser.nit:43767 */
+  INIT_ATTRIBUTES__ReduceAction1192(fra.me.REG[0]);
+  parser___ReduceAction1192___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1192(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ReduceAction1193[50] = {
+  {(bigint) 4183 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ReduceAction1193 < Object: superclass typecheck marker */},
+  {(bigint) 43 /* 3: ReduceAction1193 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 4183 /* 4: ReduceAction1193 < ReduceAction1193: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ReduceAction1193 < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ReduceAction1193 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1193___action},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 48: ReduceAction1193 < ReduceAction1193: superclass init_table position */},
+  {(bigint) parser___ReduceAction1193___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ReduceAction1193(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ReduceAction1193;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1193(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ReduceAction1193;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ReduceAction1193(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ReduceAction1193;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1193_parser___ReduceAction1193___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 43794;
+  fra.me.meth = LOCATE_NEW_ReduceAction1193_parser___ReduceAction1193___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ReduceAction1193();
+  /* ./parser//parser.nit:43794 */
+  INIT_ATTRIBUTES__ReduceAction1193(fra.me.REG[0]);
+  parser___ReduceAction1193___init(fra.me.REG[0], init_table);
+  CHECKNEW_ReduceAction1193(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_PartialOrder[84] = {
+  {(bigint) 5063 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: PartialOrder < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 219 /* 5: PartialOrder < Collection: superclass typecheck marker */},
+  {(bigint) 5063 /* 6: PartialOrder < PartialOrder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: PartialOrder < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Collection___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) string___Collection___join},
+  {(bigint) array___Collection___to_a},
+  {(bigint) 1 /* 62: PartialOrder < Collection: superclass init_table position */},
+  {(bigint) partial_order___PartialOrder___iterator},
+  {(bigint) partial_order___PartialOrder___is_empty},
+  {(bigint) partial_order___PartialOrder___length},
+  {(bigint) partial_order___PartialOrder___has},
+  {(bigint) partial_order___PartialOrder___has_only},
+  {(bigint) partial_order___PartialOrder___count},
+  {(bigint) partial_order___PartialOrder___first},
+  {(bigint) 2 /* 70: PartialOrder < PartialOrder: superclass init_table position */},
+  {(bigint) partial_order___PartialOrder___roots},
+  {(bigint) partial_order___PartialOrder_____bra},
+  {(bigint) partial_order___PartialOrder___to_dot},
+  {(bigint) partial_order___PartialOrder___to_dot_header},
+  {(bigint) partial_order___PartialOrder___to_dot_node},
+  {(bigint) partial_order___PartialOrder___to_dot_edge},
+  {(bigint) partial_order___PartialOrder___select_smallests},
+  {(bigint) partial_order___PartialOrder___add},
+  {(bigint) partial_order___PartialOrder___has_all},
+  {(bigint) partial_order___PartialOrder___new_poe},
+  {(bigint) partial_order___PartialOrder___add_to_smallests},
+  {(bigint) partial_order___PartialOrder___compute_smallers_for},
+  {(bigint) partial_order___PartialOrder___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute PartialOrder::_elements */
+/* 3: Attribute PartialOrder::_elements_list */
+/* 4: Attribute PartialOrder::_roots */
+void INIT_ATTRIBUTES__PartialOrder(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__PartialOrder;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PartialOrder(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_PartialOrder;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_PartialOrder(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_PartialOrder;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_elements");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_elements_list");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrder____roots(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_roots");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PartialOrder_partial_order___PartialOrder___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 181;
+  fra.me.meth = LOCATE_NEW_PartialOrder_partial_order___PartialOrder___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_PartialOrder();
+  /* ./metamodel//partial_order.nit:181 */
+  INIT_ATTRIBUTES__PartialOrder(fra.me.REG[0]);
+  partial_order___PartialOrder___init(fra.me.REG[0], init_table);
+  CHECKNEW_PartialOrder(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_PartialOrderElement[62] = {
+  {(bigint) 63 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: PartialOrderElement < Object: superclass typecheck marker */},
+  {(bigint) 63 /* 3: PartialOrderElement < PartialOrderElement: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: PartialOrderElement < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: PartialOrderElement < PartialOrderElement: superclass init_table position */},
+  {(bigint) partial_order___PartialOrderElement___order},
+  {(bigint) partial_order___PartialOrderElement___value},
+  {(bigint) partial_order___PartialOrderElement___rank},
+  {(bigint) partial_order___PartialOrderElement___direct_greaters},
+  {(bigint) partial_order___PartialOrderElement___direct_smallers},
+  {(bigint) partial_order___PartialOrderElement___greaters},
+  {(bigint) partial_order___PartialOrderElement___greaters_and_self},
+  {(bigint) partial_order___PartialOrderElement___smallers},
+  {(bigint) partial_order___PartialOrderElement___linear_extension},
+  {(bigint) partial_order___PartialOrderElement___reverse_linear_extension},
+  {(bigint) partial_order___PartialOrderElement_____l},
+  {(bigint) partial_order___PartialOrderElement_____leq},
+  {(bigint) partial_order___PartialOrderElement_____g},
+  {(bigint) partial_order___PartialOrderElement_____geq},
+  {(bigint) partial_order___PartialOrderElement___register_direct_smallers},
+  {(bigint) partial_order___PartialOrderElement___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute PartialOrderElement::_order */
+/* 3: Attribute PartialOrderElement::_value */
+/* 4: Attribute PartialOrderElement::_rank */
+/* 5: Attribute PartialOrderElement::_direct_greaters */
+/* 6: Attribute PartialOrderElement::_direct_smallers */
+/* 7: Attribute PartialOrderElement::_greaters */
+/* 8: Attribute PartialOrderElement::_greaters_and_self_cache */
+/* 9: Attribute PartialOrderElement::_smallers_last_length */
+/* 10: Attribute PartialOrderElement::_smallers_cache */
+/* 11: Attribute PartialOrderElement::_linear_extension_cache */
+/* 12: Attribute PartialOrderElement::_reverse_linear_extension_cache */
+void INIT_ATTRIBUTES__PartialOrderElement(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__PartialOrderElement;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Int(0);
+  /* ./metamodel//partial_order.nit:224 */
+  ATTR_partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PartialOrderElement(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_PartialOrderElement;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_PartialOrderElement(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_PartialOrderElement;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_order");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrderElement____rank(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_rank");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrderElement____direct_greaters(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_direct_greaters");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_direct_smallers");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_greaters");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_smallers_last_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_smallers_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PartialOrderElement_partial_order___PartialOrderElement___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 316;
+  fra.me.meth = LOCATE_NEW_PartialOrderElement_partial_order___PartialOrderElement___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_PartialOrderElement();
+  /* ./metamodel//partial_order.nit:316 */
+  INIT_ATTRIBUTES__PartialOrderElement(fra.me.REG[3]);
+  partial_order___PartialOrderElement___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_PartialOrderElement(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMContext[53] = {
+  {(bigint) 127 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMContext < Object: superclass typecheck marker */},
+  {(bigint) 127 /* 3: MMContext < MMContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMContext < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: MMContext < MMContext: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMContext___init},
+  {(bigint) abstractmetamodel___MMContext___module_hierarchy},
+  {(bigint) abstractmetamodel___MMContext___class_hierarchy},
+  {(bigint) abstractmetamodel___MMContext___modules},
+  {(bigint) abstractmetamodel___MMContext___add_module},
+  {(bigint) abstractmetamodel___MMContext___add_global_class},
+  {(bigint) abstractmetamodel___MMContext___add_local_class},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMContext::_module_hierarchy */
+/* 3: Attribute MMContext::_class_hierarchy */
+/* 4: Attribute MMContext::_global_classes */
+/* 5: Attribute MMContext::_modules */
+void INIT_ATTRIBUTES__MMContext(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMContext;
+  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;
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:29 */
+  ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:32 */
+  ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:36 */
+  ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:39 */
+  ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_MMContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMContext_abstractmetamodel___MMContext___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27;
+  fra.me.meth = LOCATE_NEW_MMContext_abstractmetamodel___MMContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_MMContext();
+  /* ./metamodel//abstractmetamodel.nit:27 */
+  INIT_ATTRIBUTES__MMContext(fra.me.REG[0]);
+  abstractmetamodel___MMContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_MMContext(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_MMDirectory[55] = {
+  {(bigint) 123 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMDirectory < Object: superclass typecheck marker */},
+  {(bigint) 123 /* 3: MMDirectory < MMDirectory: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMDirectory < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: MMDirectory < MMDirectory: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMDirectory___name},
+  {(bigint) abstractmetamodel___MMDirectory___path},
+  {(bigint) abstractmetamodel___MMDirectory___parent},
+  {(bigint) abstractmetamodel___MMDirectory___owner},
+  {(bigint) abstractmetamodel___MMDirectory___owner__eq},
+  {(bigint) abstractmetamodel___MMDirectory___modules},
+  {(bigint) abstractmetamodel___MMDirectory___add_module},
+  {(bigint) abstractmetamodel___MMDirectory___init},
+  {(bigint) abstractmetamodel___MMDirectory___full_name_for},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMDirectory::_name */
+/* 3: Attribute MMDirectory::_path */
+/* 4: Attribute MMDirectory::_parent */
+/* 5: Attribute MMDirectory::_owner */
+/* 6: Attribute MMDirectory::_modules */
+void INIT_ATTRIBUTES__MMDirectory(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMDirectory;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//abstractmetamodel.nit:85 */
+  ATTR_abstractmetamodel___MMDirectory____owner(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:88 */
+  ATTR_abstractmetamodel___MMDirectory____modules(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMDirectory(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_MMDirectory;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMDirectory(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMDirectory;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMDirectory____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMDirectory____path(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_path");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMDirectory_abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 98;
+  fra.me.meth = LOCATE_NEW_MMDirectory_abstractmetamodel___MMDirectory___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMDirectory();
+  /* ./metamodel//abstractmetamodel.nit:98 */
+  INIT_ATTRIBUTES__MMDirectory(fra.me.REG[3]);
+  abstractmetamodel___MMDirectory___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMDirectory(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMModule[80] = {
+  {(bigint) 103 /* 0: Identity */},
+  {(bigint) 19 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMModule < Object: superclass typecheck marker */},
+  {(bigint) 103 /* 3: MMModule < MMModule: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMModule < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMModule___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) abstracttool___MMModule___dump_module_info},
+  {(bigint) syntax_base___MMModule___nodes},
+  {(bigint) syntax_base___MMModule___nodes__eq},
+  {(bigint) mmloader___MMModule___import_supers_modules},
+  {(bigint) inheritance___MMModule___type_any},
+  {(bigint) inheritance___MMModule___import_global_classes},
+  {(bigint) inheritance___MMModule___import_local_classes},
+  {(bigint) static_type___MMModule___type_none},
+  {(bigint) static_type___MMModule___type_bool},
+  {(bigint) 1 /* 54: MMModule < MMModule: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMModule___context},
+  {(bigint) abstractmetamodel___MMModule___name},
+  {(bigint) abstractmetamodel___MMModule___full_name},
+  {(bigint) abstractmetamodel___MMModule___directory},
+  {(bigint) abstractmetamodel___MMModule___location},
+  {(bigint) abstractmetamodel___MMModule___mhe},
+  {(bigint) abstractmetamodel___MMModule___global_classes},
+  {(bigint) abstractmetamodel___MMModule___local_classes},
+  {(bigint) abstractmetamodel___MMModule___class_specialization_hierarchy},
+  {(bigint) abstractmetamodel___MMModule___explicit_imported_modules},
+  {(bigint) abstractmetamodel___MMModule___init},
+  {(bigint) abstractmetamodel___MMModule___add_super_module},
+  {(bigint) abstractmetamodel___MMModule___visibility_for},
+  {(bigint) abstractmetamodel___MMModule_____bra},
+  {(bigint) abstractmetamodel___MMModule___class_by_name},
+  {(bigint) abstractmetamodel___MMModule___has_global_class_named},
+  {(bigint) abstractmetamodel___MMModule___global_class_named},
+  {(bigint) abstractmetamodel___MMModule___set_supers_class},
+  {(bigint) abstractmetamodel___MMModule___register_global_class},
+  {(bigint) compiling___MMModule___compile_separate_module},
+  {(bigint) compiling_global___MMModule___declare_class_tables_to_c},
+  {(bigint) compiling_global___MMModule___compile_mod_to_c},
+  {(bigint) compiling_global___MMModule___compile_local_table_to_c},
+  {(bigint) table_computation___MMModule___local_table},
+  {(bigint) table_computation___MMModule___local_analysis},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMModule::_type_none */
+/* 3: Attribute MMModule::_context */
+/* 4: Attribute MMModule::_name */
+/* 5: Attribute MMModule::_full_name */
+/* 6: Attribute MMModule::_directory */
+/* 7: Attribute MMModule::_location */
+/* 8: Attribute MMModule::_mhe */
+/* 9: Attribute MMModule::_global_classes */
+/* 10: Attribute MMModule::_local_classes */
+/* 11: Attribute MMModule::_class_specialization_hierarchy */
+/* 12: Attribute MMModule::_intrude_modules */
+/* 13: Attribute MMModule::_public_modules */
+/* 14: Attribute MMModule::_private_modules */
+/* 15: Attribute MMModule::_explicit_imported_modules */
+/* 16: Attribute MMModule::_local_class_by_global */
+/* 17: Attribute MMModule::_global_class_by_name */
+/* 18: Attribute MMModule::_local_table */
+void INIT_ATTRIBUTES__MMModule(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMModule;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:130 */
+  ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:133 */
+  ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:136 */
+  ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:139 */
+  ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:142 */
+  ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:145 */
+  ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:148 */
+  ATTR_abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:151 */
+  ATTR_abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:154 */
+  ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = fra.me.REG[0];
+  fra.me.REG[1] = NEW_MMTypeNone_static_type___MMTypeNone___init(fra.me.REG[1]);
+  /* ./metamodel//static_type.nit:498 */
+  ATTR_static_type___MMModule____type_none(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:401 */
+  ATTR_table_computation___MMModule____local_table(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMModule(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 19);
+  obj->vft = (classtable_elt_t*)VFT_MMModule;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMModule(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMModule;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_context");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____full_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_full_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____directory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_directory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____location(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_location");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_specialization_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_intrude_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_public_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_private_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_explicit_imported_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class_by_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_class_by_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMModule____type_none(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_type_none");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___MMModule____local_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMModule_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 157;
+  fra.me.meth = LOCATE_NEW_MMModule_abstractmetamodel___MMModule___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = NEW_MMModule();
+  /* ./metamodel//abstractmetamodel.nit:157 */
+  INIT_ATTRIBUTES__MMModule(fra.me.REG[4]);
+  abstractmetamodel___MMModule___init(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_MMModule(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
+}
+const classtable_elt_t VFT_MMGlobalClass[67] = {
+  {(bigint) 119 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMGlobalClass < Object: superclass typecheck marker */},
+  {(bigint) 119 /* 3: MMGlobalClass < MMGlobalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMGlobalClass < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMGlobalClass___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax_base___MMGlobalClass___check_visibility},
+  {(bigint) 1 /* 46: MMGlobalClass < MMGlobalClass: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMGlobalClass___intro},
+  {(bigint) abstractmetamodel___MMGlobalClass___class_refinement_hierarchy},
+  {(bigint) abstractmetamodel___MMGlobalClass___init},
+  {(bigint) abstractmetamodel___MMGlobalClass___name},
+  {(bigint) abstractmetamodel___MMGlobalClass___module},
+  {(bigint) abstractmetamodel___MMGlobalClass___register_local_class},
+  {(bigint) abstractmetamodel___MMGlobalClass___is_interface},
+  {(bigint) abstractmetamodel___MMGlobalClass___is_interface__eq},
+  {(bigint) abstractmetamodel___MMGlobalClass___is_abstract},
+  {(bigint) abstractmetamodel___MMGlobalClass___is_abstract__eq},
+  {(bigint) abstractmetamodel___MMGlobalClass___is_universal},
+  {(bigint) abstractmetamodel___MMGlobalClass___is_universal__eq},
+  {(bigint) abstractmetamodel___MMGlobalClass___visibility_level},
+  {(bigint) abstractmetamodel___MMGlobalClass___visibility_level__eq},
+  {(bigint) abstractmetamodel___MMGlobalClass___is_mixin},
+  {(bigint) abstractmetamodel___MMGlobalClass___mixin_of},
+  {(bigint) abstractmetamodel___MMGlobalClass___mixin_of__eq},
+  {(bigint) compiling_base___MMGlobalClass___id_id},
+  {(bigint) compiling_base___MMGlobalClass___color_id},
+  {(bigint) compiling_base___MMGlobalClass___init_table_pos_id},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMGlobalClass::_intro */
+/* 3: Attribute MMGlobalClass::_class_refinement_hierarchy */
+/* 4: Attribute MMGlobalClass::_is_interface */
+/* 5: Attribute MMGlobalClass::_is_abstract */
+/* 6: Attribute MMGlobalClass::_is_universal */
+/* 7: Attribute MMGlobalClass::_visibility_level */
+/* 8: Attribute MMGlobalClass::_mixin_of */
+void INIT_ATTRIBUTES__MMGlobalClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMGlobalClass;
+  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;
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:257 */
+  ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:297 */
+  ATTR_abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:300 */
+  ATTR_abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:303 */
+  ATTR_abstractmetamodel___MMGlobalClass____is_universal(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(1);
+  /* ./metamodel//abstractmetamodel.nit:306 */
+  ATTR_abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = fra.me.REG[0];
+  /* ./metamodel//abstractmetamodel.nit:318 */
+  ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMGlobalClass(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_MMGlobalClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMGlobalClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMGlobalClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____intro(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_intro");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_refinement_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_interface");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_abstract");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____is_universal(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_universal");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_visibility_level");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mixin_of");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 261;
+  fra.me.meth = LOCATE_NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init;
+  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;
+  fra.me.REG[1] = NEW_MMGlobalClass();
+  /* ./metamodel//abstractmetamodel.nit:261 */
+  INIT_ATTRIBUTES__MMGlobalClass(fra.me.REG[1]);
+  abstractmetamodel___MMGlobalClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_MMGlobalClass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_MMLocalClass[108] = {
+  {(bigint) 111 /* 0: Identity */},
+  {(bigint) 25 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMLocalClass < Object: superclass typecheck marker */},
+  {(bigint) 111 /* 3: MMLocalClass < MMLocalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMLocalClass < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalClass___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) abstracttool___MMLocalClass___dump_properties},
+  {(bigint) mmbuilder___MMLocalClass___accept_class_visitor},
+  {(bigint) mmbuilder___MMLocalClass___accept_properties_visitor},
+  {(bigint) genericity___MMLocalClass___get_formal},
+  {(bigint) genericity___MMLocalClass___register_formal},
+  {(bigint) genericity___MMLocalClass___get_instantiate_type},
+  {(bigint) genericity___MMLocalClass___formals_types},
+  {(bigint) static_type___MMLocalClass___get_type},
+  {(bigint) genericity___MMLocalClass___is_generic},
+  {(bigint) inheritance___MMLocalClass___compute_super_classes},
+  {(bigint) inheritance___MMLocalClass___compute_ancestors},
+  {(bigint) inheritance___MMLocalClass___inherit_global_properties},
+  {(bigint) inheritance___MMLocalClass___make_visible_an_inherited_global_property},
+  {(bigint) inheritance___MMLocalClass___add_direct_parent},
+  {(bigint) inheritance___MMLocalClass___computed_super_classes},
+  {(bigint) inheritance___MMLocalClass___computed_ancestors},
+  {(bigint) inheritance___MMLocalClass___ancestor_for},
+  {(bigint) inheritance___MMLocalClass___add_default_any_class},
+  {(bigint) inheritance___MMLocalClass___add_super_classes},
+  {(bigint) inheritance___MMLocalClass___add_explicit_classes},
+  {(bigint) inheritance___MMLocalClass___compute_super_parents},
+  {(bigint) inheritance___MMLocalClass___build_ancestors},
+  {(bigint) inheritance___MMLocalClass___group_ancestors},
+  {(bigint) inheritance___MMLocalClass___merge_ancestors},
+  {(bigint) inheritance___MMLocalClass___inherit_local_property},
+  {(bigint) genericity___MMLocalClass___get_type},
+  {(bigint) static_type___MMLocalClass___add_ancestor},
+  {(bigint) static_type___MMLocalClass___ancestors},
+  {(bigint) static_type___MMLocalClass___ancestor},
+  {(bigint) 1 /* 74: MMLocalClass < MMLocalClass: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalClass___name},
+  {(bigint) abstractmetamodel___MMLocalClass___arity},
+  {(bigint) abstractmetamodel___MMLocalClass___module},
+  {(bigint) abstractmetamodel___MMLocalClass___global},
+  {(bigint) abstractmetamodel___MMLocalClass___crhe},
+  {(bigint) abstractmetamodel___MMLocalClass___cshe},
+  {(bigint) abstractmetamodel___MMLocalClass___che},
+  {(bigint) abstractmetamodel___MMLocalClass___global_properties},
+  {(bigint) abstractmetamodel___MMLocalClass___local_local_properties},
+  {(bigint) abstractmetamodel___MMLocalClass___init},
+  {(bigint) abstractmetamodel___MMLocalClass___for_module},
+  {(bigint) abstractmetamodel___MMLocalClass___new_global},
+  {(bigint) abstractmetamodel___MMLocalClass___set_global},
+  {(bigint) abstractmetamodel___MMLocalClass___has_global_property_by_name},
+  {(bigint) abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(bigint) abstractmetamodel___MMLocalClass___attribute},
+  {(bigint) abstractmetamodel___MMLocalClass___method},
+  {(bigint) abstractmetamodel___MMLocalClass___select_method},
+  {(bigint) abstractmetamodel___MMLocalClass___select_attribute},
+  {(bigint) abstractmetamodel___MMLocalClass___super_methods_named},
+  {(bigint) abstractmetamodel___MMLocalClass___register_local_property},
+  {(bigint) abstractmetamodel___MMLocalClass___register_global_property},
+  {(bigint) abstractmetamodel___MMLocalClass___has_global_property},
+  {(bigint) inheritance___MMLocalClass_____bra},
+  {(bigint) abstractmetamodel___MMLocalClass___context},
+  {(bigint) virtualtype___MMLocalClass___virtual_type},
+  {(bigint) virtualtype___MMLocalClass___select_virtual_type},
+  {(bigint) primitive_info___MMLocalClass___primitive_info},
+  {(bigint) primitive_info___MMLocalClass___primitive_ctypes},
+  {(bigint) compiling_global___MMLocalClass___declare_tables_to_c},
+  {(bigint) compiling_global___MMLocalClass___generate_allocation_iroutines},
+  {(bigint) compiling_global___MMLocalClass___compile_tables_to_c},
+  {(bigint) table_computation___MMLocalClass___compare},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMLocalClass::_types */
+/* 3: Attribute MMLocalClass::_formals_types */
+/* 4: Attribute MMLocalClass::_direct_parents */
+/* 5: Attribute MMLocalClass::_computing_super */
+/* 6: Attribute MMLocalClass::_are_global_properties_inherited */
+/* 7: Attribute MMLocalClass::_base_type_cache */
+/* 8: Attribute MMLocalClass::_ancestors */
+/* 9: Attribute MMLocalClass::_name */
+/* 10: Attribute MMLocalClass::_arity */
+/* 11: Attribute MMLocalClass::_module */
+/* 12: Attribute MMLocalClass::_global */
+/* 13: Attribute MMLocalClass::_crhe */
+/* 14: Attribute MMLocalClass::_cshe */
+/* 15: Attribute MMLocalClass::_che */
+/* 16: Attribute MMLocalClass::_local_property_by_global */
+/* 17: Attribute MMLocalClass::_global_properties */
+/* 18: Attribute MMLocalClass::_local_local_properties */
+/* 19: Attribute MMLocalClass::_properties_by_name */
+/* 20: Attribute MMLocalClass::_primitive_info_cache */
+/* 21: Attribute MMLocalClass::_primitive_info_b */
+/* 22: Attribute MMLocalClass::_init_var_iroutine */
+/* 23: Attribute MMLocalClass::_checknew_iroutine */
+/* 24: Attribute MMLocalClass::_new_instance_iroutine */
+void INIT_ATTRIBUTES__MMLocalClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMLocalClass;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:353 */
+  ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:356 */
+  ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:359 */
+  ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:362 */
+  ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//inheritance.nit:57 */
+  ATTR_inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//inheritance.nit:60 */
+  ATTR_inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//inheritance.nit:109 */
+  ATTR_inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//genericity.nit:40 */
+  ATTR_genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//genericity.nit:54 */
+  ATTR_genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./primitive_info.nit:25 */
+  ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./primitive_info.nit:28 */
+  ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_global.nit:330 */
+  ATTR_compiling_global___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_global.nit:332 */
+  ATTR_compiling_global___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_global.nit:334 */
+  ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMLocalClass(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 25);
+  obj->vft = (classtable_elt_t*)VFT_MMLocalClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMLocalClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMLocalClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_arity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_property_by_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_local_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_properties_by_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_direct_parents");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_computing_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_are_global_properties_inherited");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_formals_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_primitive_info_b");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_new_instance_iroutine");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(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 tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 365;
+  fra.me.meth = LOCATE_NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  REGB0 = p2;
+  fra.me.REG[2] = NEW_MMLocalClass();
+  /* ./metamodel//abstractmetamodel.nit:365 */
+  INIT_ATTRIBUTES__MMLocalClass(fra.me.REG[2]);
+  abstractmetamodel___MMLocalClass___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, init_table);
+  CHECKNEW_MMLocalClass(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMGlobalProperty[62] = {
+  {(bigint) 115 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMGlobalProperty < Object: superclass typecheck marker */},
+  {(bigint) 115 /* 3: MMGlobalProperty < MMGlobalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMGlobalProperty < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMGlobalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax_base___MMGlobalProperty___check_visibility},
+  {(bigint) virtualtype___MMGlobalProperty___is_virtual_type},
+  {(bigint) 1 /* 47: MMGlobalProperty < MMGlobalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMGlobalProperty___intro},
+  {(bigint) abstractmetamodel___MMGlobalProperty___local_class},
+  {(bigint) abstractmetamodel___MMGlobalProperty___property_hierarchy},
+  {(bigint) abstractmetamodel___MMGlobalProperty___init},
+  {(bigint) abstractmetamodel___MMGlobalProperty___add_local_property},
+  {(bigint) abstractmetamodel___MMGlobalProperty___is_attribute},
+  {(bigint) abstractmetamodel___MMGlobalProperty___is_method},
+  {(bigint) abstractmetamodel___MMGlobalProperty___is_init},
+  {(bigint) abstractmetamodel___MMGlobalProperty___is_init__eq},
+  {(bigint) abstractmetamodel___MMGlobalProperty___is_init_for},
+  {(bigint) abstractmetamodel___MMGlobalProperty___visibility_level},
+  {(bigint) abstractmetamodel___MMGlobalProperty___visibility_level__eq},
+  {(bigint) compiling_base___MMGlobalProperty___meth_call},
+  {(bigint) compiling_base___MMGlobalProperty___attr_access},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMGlobalProperty::_intro */
+/* 3: Attribute MMGlobalProperty::_property_hierarchy */
+/* 4: Attribute MMGlobalProperty::_is_init */
+/* 5: Attribute MMGlobalProperty::_visibility_level */
+void INIT_ATTRIBUTES__MMGlobalProperty(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMGlobalProperty;
+  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;
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:524 */
+  ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:548 */
+  ATTR_abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(1);
+  /* ./metamodel//abstractmetamodel.nit:560 */
+  ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMGlobalProperty(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_MMGlobalProperty;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMGlobalProperty(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMGlobalProperty;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_intro");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_init");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_visibility_level");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 527;
+  fra.me.meth = LOCATE_NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init;
+  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;
+  fra.me.REG[1] = NEW_MMGlobalProperty();
+  /* ./metamodel//abstractmetamodel.nit:527 */
+  INIT_ATTRIBUTES__MMGlobalProperty(fra.me.REG[1]);
+  abstractmetamodel___MMGlobalProperty___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_MMGlobalProperty(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_MMLocalProperty[67] = {
+  {(bigint) 107 /* 0: Identity */},
+  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMLocalProperty < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMLocalProperty < MMLocalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMLocalProperty < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMLocalProperty___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMLocalProperty < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMLocalProperty::_signature */
+/* 3: Attribute MMLocalProperty::_signatures_cache */
+/* 4: Attribute MMLocalProperty::_name */
+/* 5: Attribute MMLocalProperty::_local_class */
+/* 6: Attribute MMLocalProperty::_global */
+/* 7: Attribute MMLocalProperty::_prhe */
+/* 8: Attribute MMLocalProperty::_need_super */
+/* 9: Attribute MMLocalProperty::_cname_cache */
+void INIT_ATTRIBUTES__MMLocalProperty(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMLocalProperty;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMLocalProperty(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_MMLocalProperty;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMLocalProperty(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMLocalProperty;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 622;
+  fra.me.meth = LOCATE_NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMLocalProperty();
+  /* ./metamodel//abstractmetamodel.nit:622 */
+  INIT_ATTRIBUTES__MMLocalProperty(fra.me.REG[2]);
+  abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMLocalProperty(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMAttribute[69] = {
+  {(bigint) 5171 /* 0: Identity */},
+  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMAttribute < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMAttribute < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5171 /* 4: MMAttribute < MMAttribute: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMAttribute < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMLocalProperty___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMAttribute < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) icode_base___MMAttribute___iroutine},
+  {(bigint) 2 /* 68: MMAttribute < MMAttribute: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMAttribute::_signature */
+/* 3: Attribute MMAttribute::_signatures_cache */
+/* 4: Attribute MMAttribute::_name */
+/* 5: Attribute MMAttribute::_local_class */
+/* 6: Attribute MMAttribute::_global */
+/* 7: Attribute MMAttribute::_prhe */
+/* 8: Attribute MMAttribute::_need_super */
+/* 9: Attribute MMAttribute::_cname_cache */
+void INIT_ATTRIBUTES__MMAttribute(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMAttribute;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMAttribute(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_MMAttribute;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMAttribute(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMAttribute;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMAttribute_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 622;
+  fra.me.meth = LOCATE_NEW_MMAttribute_abstractmetamodel___MMLocalProperty___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMAttribute();
+  /* ./metamodel//abstractmetamodel.nit:622 */
+  INIT_ATTRIBUTES__MMAttribute(fra.me.REG[2]);
+  abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMAttribute(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMMethod[72] = {
+  {(bigint) 5155 /* 0: Identity */},
+  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMMethod < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5155 /* 4: MMMethod < MMMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMMethod < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMLocalProperty___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) compiling_global___MMMethod___compile_property_to_c},
+  {(bigint) icode_base___MMMethod___iroutine},
+  {(bigint) 2 /* 69: MMMethod < MMMethod: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMMethod___is_intern},
+  {(bigint) abstractmetamodel___MMMethod___is_abstract},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMMethod::_signature */
+/* 3: Attribute MMMethod::_signatures_cache */
+/* 4: Attribute MMMethod::_name */
+/* 5: Attribute MMMethod::_local_class */
+/* 6: Attribute MMMethod::_global */
+/* 7: Attribute MMMethod::_prhe */
+/* 8: Attribute MMMethod::_need_super */
+/* 9: Attribute MMMethod::_cname_cache */
+void INIT_ATTRIBUTES__MMMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMMethod;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMMethod(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_MMMethod;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMMethod;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMMethod_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 622;
+  fra.me.meth = LOCATE_NEW_MMMethod_abstractmetamodel___MMLocalProperty___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMMethod();
+  /* ./metamodel//abstractmetamodel.nit:622 */
+  INIT_ATTRIBUTES__MMMethod(fra.me.REG[2]);
+  abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMMethod(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMConcreteClass[113] = {
+  {(bigint) 5167 /* 0: Identity */},
+  {(bigint) 28 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMConcreteClass < Object: superclass typecheck marker */},
+  {(bigint) 111 /* 3: MMConcreteClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 5167 /* 4: MMConcreteClass < MMConcreteClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMConcreteClass < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalClass___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) abstracttool___MMLocalClass___dump_properties},
+  {(bigint) mmbuilder___MMLocalClass___accept_class_visitor},
+  {(bigint) mmbuilder___MMLocalClass___accept_properties_visitor},
+  {(bigint) genericity___MMLocalClass___get_formal},
+  {(bigint) genericity___MMLocalClass___register_formal},
+  {(bigint) genericity___MMLocalClass___get_instantiate_type},
+  {(bigint) genericity___MMLocalClass___formals_types},
+  {(bigint) static_type___MMLocalClass___get_type},
+  {(bigint) genericity___MMLocalClass___is_generic},
+  {(bigint) inheritance___MMLocalClass___compute_super_classes},
+  {(bigint) inheritance___MMLocalClass___compute_ancestors},
+  {(bigint) inheritance___MMLocalClass___inherit_global_properties},
+  {(bigint) inheritance___MMLocalClass___make_visible_an_inherited_global_property},
+  {(bigint) inheritance___MMLocalClass___add_direct_parent},
+  {(bigint) inheritance___MMLocalClass___computed_super_classes},
+  {(bigint) inheritance___MMLocalClass___computed_ancestors},
+  {(bigint) inheritance___MMLocalClass___ancestor_for},
+  {(bigint) inheritance___MMLocalClass___add_default_any_class},
+  {(bigint) inheritance___MMLocalClass___add_super_classes},
+  {(bigint) inheritance___MMLocalClass___add_explicit_classes},
+  {(bigint) inheritance___MMLocalClass___compute_super_parents},
+  {(bigint) inheritance___MMLocalClass___build_ancestors},
+  {(bigint) inheritance___MMLocalClass___group_ancestors},
+  {(bigint) inheritance___MMLocalClass___merge_ancestors},
+  {(bigint) inheritance___MMLocalClass___inherit_local_property},
+  {(bigint) genericity___MMLocalClass___get_type},
+  {(bigint) static_type___MMLocalClass___add_ancestor},
+  {(bigint) static_type___MMLocalClass___ancestors},
+  {(bigint) static_type___MMLocalClass___ancestor},
+  {(bigint) 1 /* 74: MMConcreteClass < MMLocalClass: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalClass___name},
+  {(bigint) abstractmetamodel___MMLocalClass___arity},
+  {(bigint) abstractmetamodel___MMLocalClass___module},
+  {(bigint) abstractmetamodel___MMLocalClass___global},
+  {(bigint) abstractmetamodel___MMLocalClass___crhe},
+  {(bigint) abstractmetamodel___MMLocalClass___cshe},
+  {(bigint) abstractmetamodel___MMLocalClass___che},
+  {(bigint) abstractmetamodel___MMLocalClass___global_properties},
+  {(bigint) abstractmetamodel___MMLocalClass___local_local_properties},
+  {(bigint) abstractmetamodel___MMLocalClass___init},
+  {(bigint) abstractmetamodel___MMLocalClass___for_module},
+  {(bigint) abstractmetamodel___MMLocalClass___new_global},
+  {(bigint) abstractmetamodel___MMLocalClass___set_global},
+  {(bigint) abstractmetamodel___MMLocalClass___has_global_property_by_name},
+  {(bigint) abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(bigint) abstractmetamodel___MMLocalClass___attribute},
+  {(bigint) abstractmetamodel___MMLocalClass___method},
+  {(bigint) abstractmetamodel___MMLocalClass___select_method},
+  {(bigint) abstractmetamodel___MMLocalClass___select_attribute},
+  {(bigint) abstractmetamodel___MMLocalClass___super_methods_named},
+  {(bigint) abstractmetamodel___MMLocalClass___register_local_property},
+  {(bigint) abstractmetamodel___MMLocalClass___register_global_property},
+  {(bigint) abstractmetamodel___MMLocalClass___has_global_property},
+  {(bigint) inheritance___MMLocalClass_____bra},
+  {(bigint) abstractmetamodel___MMLocalClass___context},
+  {(bigint) virtualtype___MMLocalClass___virtual_type},
+  {(bigint) virtualtype___MMLocalClass___select_virtual_type},
+  {(bigint) primitive_info___MMLocalClass___primitive_info},
+  {(bigint) primitive_info___MMLocalClass___primitive_ctypes},
+  {(bigint) compiling_global___MMLocalClass___declare_tables_to_c},
+  {(bigint) compiling_global___MMLocalClass___generate_allocation_iroutines},
+  {(bigint) compiling_global___MMLocalClass___compile_tables_to_c},
+  {(bigint) table_computation___MMLocalClass___compare},
+  {(bigint) table_computation___MMConcreteClass___class_color_pos},
+  {(bigint) table_computation___MMConcreteClass___class_layout},
+  {(bigint) table_computation___MMConcreteClass___instance_layout},
+  {(bigint) table_computation___MMConcreteClass___build_layout_in},
+  {(bigint) 2 /* 112: MMConcreteClass < MMConcreteClass: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMConcreteClass::_types */
+/* 3: Attribute MMConcreteClass::_formals_types */
+/* 4: Attribute MMConcreteClass::_direct_parents */
+/* 5: Attribute MMConcreteClass::_computing_super */
+/* 6: Attribute MMConcreteClass::_are_global_properties_inherited */
+/* 7: Attribute MMConcreteClass::_base_type_cache */
+/* 8: Attribute MMConcreteClass::_ancestors */
+/* 9: Attribute MMConcreteClass::_name */
+/* 10: Attribute MMConcreteClass::_arity */
+/* 11: Attribute MMConcreteClass::_module */
+/* 12: Attribute MMConcreteClass::_global */
+/* 13: Attribute MMConcreteClass::_crhe */
+/* 14: Attribute MMConcreteClass::_cshe */
+/* 15: Attribute MMConcreteClass::_che */
+/* 16: Attribute MMConcreteClass::_local_property_by_global */
+/* 17: Attribute MMConcreteClass::_global_properties */
+/* 18: Attribute MMConcreteClass::_local_local_properties */
+/* 19: Attribute MMConcreteClass::_properties_by_name */
+/* 20: Attribute MMConcreteClass::_primitive_info_cache */
+/* 21: Attribute MMConcreteClass::_primitive_info_b */
+/* 22: Attribute MMConcreteClass::_init_var_iroutine */
+/* 23: Attribute MMConcreteClass::_checknew_iroutine */
+/* 24: Attribute MMConcreteClass::_new_instance_iroutine */
+/* 25: Attribute MMConcreteClass::_class_color_pos */
+/* 26: Attribute MMConcreteClass::_class_layout */
+/* 27: Attribute MMConcreteClass::_instance_layout */
+void INIT_ATTRIBUTES__MMConcreteClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMConcreteClass;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:353 */
+  ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:356 */
+  ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:359 */
+  ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:362 */
+  ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//inheritance.nit:57 */
+  ATTR_inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//inheritance.nit:60 */
+  ATTR_inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//inheritance.nit:109 */
+  ATTR_inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//genericity.nit:40 */
+  ATTR_genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//genericity.nit:54 */
+  ATTR_genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./primitive_info.nit:25 */
+  ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./primitive_info.nit:28 */
+  ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:89 */
+  ATTR_table_computation___MMConcreteClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:92 */
+  ATTR_table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_global.nit:330 */
+  ATTR_compiling_global___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_global.nit:332 */
+  ATTR_compiling_global___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_global.nit:334 */
+  ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMConcreteClass(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 28);
+  obj->vft = (classtable_elt_t*)VFT_MMConcreteClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMConcreteClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMConcreteClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_arity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_property_by_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_local_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_properties_by_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_direct_parents");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_computing_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_are_global_properties_inherited");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_formals_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_primitive_info_b");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_layout");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_instance_layout");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_new_instance_iroutine");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMConcreteClass_abstractmetamodel___MMLocalClass___init(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 tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 365;
+  fra.me.meth = LOCATE_NEW_MMConcreteClass_abstractmetamodel___MMLocalClass___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  REGB0 = p2;
+  fra.me.REG[2] = NEW_MMConcreteClass();
+  /* ./metamodel//abstractmetamodel.nit:365 */
+  INIT_ATTRIBUTES__MMConcreteClass(fra.me.REG[2]);
+  abstractmetamodel___MMLocalClass___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, init_table);
+  CHECKNEW_MMConcreteClass(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMSignature[64] = {
+  {(bigint) 99 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMSignature < Object: superclass typecheck marker */},
+  {(bigint) 99 /* 3: MMSignature < MMSignature: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMSignature < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMSignature___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) icode_builder___MMSignature___generate_empty_iroutine},
+  {(bigint) icode_builder___MMSignature___generate_empty_iclosuredef},
+  {(bigint) vararg___MMSignature___vararg_rank},
+  {(bigint) vararg___MMSignature___vararg_rank__eq},
+  {(bigint) vararg___MMSignature___has_vararg},
+  {(bigint) static_type___MMSignature___adaptation_to},
+  {(bigint) static_type___MMSignature___not_for_self},
+  {(bigint) static_type___MMSignature___init},
+  {(bigint) 1 /* 53: MMSignature < MMSignature: superclass init_table position */},
+  {(bigint) static_type___MMSignature___recv},
+  {(bigint) static_type___MMSignature___return_type},
+  {(bigint) static_type___MMSignature___closures},
+  {(bigint) static_type___MMSignature___closure_named},
+  {(bigint) static_type___MMSignature___arity},
+  {(bigint) static_type___MMSignature_____l},
+  {(bigint) static_type___MMSignature_____bra},
+  {(bigint) vararg___MMSignature___adaptation_to},
+  {(bigint) vararg___MMSignature___not_for_self},
+  {(bigint) vararg___MMSignature___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMSignature::_vararg_rank */
+/* 3: Attribute MMSignature::_recv */
+/* 4: Attribute MMSignature::_params */
+/* 5: Attribute MMSignature::_return_type */
+/* 6: Attribute MMSignature::_closures */
+/* 7: Attribute MMSignature::_not_for_self_cache */
+void INIT_ATTRIBUTES__MMSignature(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMSignature;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//static_type.nit:81 */
+  ATTR_static_type___MMSignature____closures(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:175 */
+  ATTR_static_type___MMSignature____not_for_self_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSignature(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_MMSignature;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMSignature(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMSignature;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_recv");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_params");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closures");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_vararg___MMSignature____vararg_rank(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_vararg_rank");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSignature_static_type___MMSignature___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 47;
+  fra.me.meth = LOCATE_NEW_MMSignature_static_type___MMSignature___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMSignature();
+  /* ./metamodel//vararg.nit:47 */
+  INIT_ATTRIBUTES__MMSignature(fra.me.REG[3]);
+  vararg___MMSignature___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMSignature(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMClosure[54] = {
+  {(bigint) 131 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMClosure < Object: superclass typecheck marker */},
+  {(bigint) 131 /* 3: MMClosure < MMClosure: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMClosure < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: MMClosure < MMClosure: superclass init_table position */},
+  {(bigint) static_type___MMClosure___name},
+  {(bigint) static_type___MMClosure___signature},
+  {(bigint) static_type___MMClosure___is_break},
+  {(bigint) static_type___MMClosure___is_optional},
+  {(bigint) static_type___MMClosure___adaptation_to},
+  {(bigint) static_type___MMClosure___init},
+  {(bigint) static_type___MMClosure___not_for_self},
+  {(bigint) static_type___MMClosure_____l},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMClosure::_name */
+/* 3: Attribute MMClosure::_signature */
+/* 4: Attribute MMClosure::_is_break */
+/* 5: Attribute MMClosure::_is_optional */
+void INIT_ATTRIBUTES__MMClosure(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMClosure;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMClosure(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_MMClosure;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMClosure(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMClosure;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signature");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_break");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_optional");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMClosure_static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 246;
+  fra.me.meth = LOCATE_NEW_MMClosure_static_type___MMClosure___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  REGB0 = p2;
+  REGB1 = p3;
+  fra.me.REG[2] = NEW_MMClosure();
+  /* ./metamodel//static_type.nit:246 */
+  INIT_ATTRIBUTES__MMClosure(fra.me.REG[2]);
+  static_type___MMClosure___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, REGB1, init_table);
+  CHECKNEW_MMClosure(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMAncestor[55] = {
+  {(bigint) 135 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMAncestor < Object: superclass typecheck marker */},
+  {(bigint) 135 /* 3: MMAncestor < MMAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMAncestor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMAncestor___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) inheritance___MMAncestor___add_in},
+  {(bigint) 1 /* 46: MMAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) static_type___MMAncestor___stype__eq},
+  {(bigint) static_type___MMAncestor___stype},
+  {(bigint) static_type___MMAncestor___inheriter__eq},
+  {(bigint) static_type___MMAncestor___inheriter},
+  {(bigint) static_type___MMAncestor___is_reffinement},
+  {(bigint) static_type___MMAncestor___is_specialisation},
+  {(bigint) static_type___MMAncestor___local_class},
+  {(bigint) static_type___MMAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMAncestor::_stype */
+/* 3: Attribute MMAncestor::_inheriter */
+void INIT_ATTRIBUTES__MMAncestor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMAncestor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:274 */
+  ATTR_static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:280 */
+  ATTR_static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMAncestor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMAncestor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMAncestor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMAncestor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMAncestor_static_type___MMAncestor___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_MMAncestor_static_type___MMAncestor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_MMAncestor();
+  INIT_ATTRIBUTES__MMAncestor(fra.me.REG[0]);
+  static_type___MMAncestor___init(fra.me.REG[0], init_table);
+  CHECKNEW_MMAncestor(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_MMType[66] = {
+  {(bigint) 95 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMType < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMType < MMType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMType < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMType___is_generic},
+  {(bigint) type_formal___MMType___direct_type},
+  {(bigint) 1 /* 52: MMType < MMType: superclass init_table position */},
+  {(bigint) static_type___MMType___module},
+  {(bigint) static_type___MMType___local_class},
+  {(bigint) static_type___MMType___is_valid},
+  {(bigint) static_type___MMType_____l},
+  {(bigint) static_type___MMType___is_supertype},
+  {(bigint) static_type___MMType___for_module},
+  {(bigint) static_type___MMType___adapt_to},
+  {(bigint) static_type___MMType___upcast_for},
+  {(bigint) static_type___MMType___not_for_self},
+  {(bigint) static_type___MMType___is_nullable},
+  {(bigint) static_type___MMType___as_nullable},
+  {(bigint) static_type___MMType___as_notnull},
+  {(bigint) static_type___MMType___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMType::_as_nullable_cache */
+void INIT_ATTRIBUTES__MMType(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMType;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMType(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_MMType;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMType(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMType;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMType_static_type___MMType___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_MMType_static_type___MMType___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_MMType();
+  INIT_ATTRIBUTES__MMType(fra.me.REG[0]);
+  static_type___MMType___init(fra.me.REG[0], init_table);
+  CHECKNEW_MMType(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_MMNullableType[68] = {
+  {(bigint) 5151 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMNullableType < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMNullableType < MMType: superclass typecheck marker */},
+  {(bigint) 5151 /* 4: MMNullableType < MMNullableType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMNullableType < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMNullableType___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMType___is_generic},
+  {(bigint) type_formal___MMType___direct_type},
+  {(bigint) 1 /* 52: MMNullableType < MMType: superclass init_table position */},
+  {(bigint) static_type___MMNullableType___module},
+  {(bigint) static_type___MMNullableType___local_class},
+  {(bigint) static_type___MMNullableType___is_valid},
+  {(bigint) static_type___MMNullableType_____l},
+  {(bigint) static_type___MMNullableType___is_supertype},
+  {(bigint) static_type___MMNullableType___for_module},
+  {(bigint) static_type___MMNullableType___adapt_to},
+  {(bigint) static_type___MMNullableType___upcast_for},
+  {(bigint) static_type___MMNullableType___not_for_self},
+  {(bigint) static_type___MMNullableType___is_nullable},
+  {(bigint) static_type___MMNullableType___as_nullable},
+  {(bigint) static_type___MMNullableType___as_notnull},
+  {(bigint) static_type___MMType___init},
+  {(bigint) 2 /* 66: MMNullableType < MMNullableType: superclass init_table position */},
+  {(bigint) static_type___MMNullableType___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMNullableType::_as_nullable_cache */
+/* 3: Attribute MMNullableType::_base_type */
+void INIT_ATTRIBUTES__MMNullableType(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMNullableType;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMNullableType(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMNullableType;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMNullableType(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMNullableType;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_base_type");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMNullableType_static_type___MMNullableType___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 389;
+  fra.me.meth = LOCATE_NEW_MMNullableType_static_type___MMNullableType___init;
+  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;
+  fra.me.REG[1] = NEW_MMNullableType();
+  /* ./metamodel//static_type.nit:389 */
+  INIT_ATTRIBUTES__MMNullableType(fra.me.REG[1]);
+  static_type___MMNullableType___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_MMNullableType(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_MMTypeClass[68] = {
+  {(bigint) 5131 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMTypeClass < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMTypeClass < MMType: superclass typecheck marker */},
+  {(bigint) 5131 /* 4: MMTypeClass < MMTypeClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMTypeClass < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMTypeClass___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMType___is_generic},
+  {(bigint) type_formal___MMType___direct_type},
+  {(bigint) 1 /* 52: MMTypeClass < MMType: superclass init_table position */},
+  {(bigint) static_type___MMTypeClass___module},
+  {(bigint) static_type___MMTypeClass___local_class},
+  {(bigint) static_type___MMType___is_valid},
+  {(bigint) static_type___MMTypeClass_____l},
+  {(bigint) static_type___MMType___is_supertype},
+  {(bigint) static_type___MMType___for_module},
+  {(bigint) static_type___MMType___adapt_to},
+  {(bigint) static_type___MMTypeClass___upcast_for},
+  {(bigint) static_type___MMType___not_for_self},
+  {(bigint) static_type___MMType___is_nullable},
+  {(bigint) static_type___MMType___as_nullable},
+  {(bigint) static_type___MMType___as_notnull},
+  {(bigint) static_type___MMType___init},
+  {(bigint) 2 /* 66: MMTypeClass < MMTypeClass: superclass init_table position */},
+  {(bigint) static_type___MMTypeClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMTypeClass::_as_nullable_cache */
+/* 3: Attribute MMTypeClass::_local_class */
+void INIT_ATTRIBUTES__MMTypeClass(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMTypeClass;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeClass(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMTypeClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMTypeClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeClass_static_type___MMTypeClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 451;
+  fra.me.meth = LOCATE_NEW_MMTypeClass_static_type___MMTypeClass___init;
+  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;
+  fra.me.REG[1] = NEW_MMTypeClass();
+  /* ./metamodel//static_type.nit:451 */
+  INIT_ATTRIBUTES__MMTypeClass(fra.me.REG[1]);
+  static_type___MMTypeClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_MMTypeClass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_MMTypeSimpleClass[70] = {
+  {(bigint) 5751 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMTypeSimpleClass < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMTypeSimpleClass < MMType: superclass typecheck marker */},
+  {(bigint) 5131 /* 4: MMTypeSimpleClass < MMTypeClass: superclass typecheck marker */},
+  {(bigint) 5751 /* 5: MMTypeSimpleClass < MMTypeSimpleClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMTypeSimpleClass < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMTypeClass___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMTypeSimpleClass___is_generic},
+  {(bigint) type_formal___MMType___direct_type},
+  {(bigint) 1 /* 52: MMTypeSimpleClass < MMType: superclass init_table position */},
+  {(bigint) static_type___MMTypeClass___module},
+  {(bigint) static_type___MMTypeClass___local_class},
+  {(bigint) static_type___MMType___is_valid},
+  {(bigint) static_type___MMTypeClass_____l},
+  {(bigint) static_type___MMTypeSimpleClass___is_supertype},
+  {(bigint) static_type___MMTypeSimpleClass___for_module},
+  {(bigint) static_type___MMTypeSimpleClass___adapt_to},
+  {(bigint) static_type___MMTypeClass___upcast_for},
+  {(bigint) static_type___MMType___not_for_self},
+  {(bigint) static_type___MMType___is_nullable},
+  {(bigint) static_type___MMType___as_nullable},
+  {(bigint) static_type___MMType___as_notnull},
+  {(bigint) static_type___MMType___init},
+  {(bigint) 2 /* 66: MMTypeSimpleClass < MMTypeClass: superclass init_table position */},
+  {(bigint) static_type___MMTypeClass___init},
+  {(bigint) 3 /* 68: MMTypeSimpleClass < MMTypeSimpleClass: superclass init_table position */},
+  {(bigint) static_type___MMTypeSimpleClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMTypeSimpleClass::_as_nullable_cache */
+/* 3: Attribute MMTypeSimpleClass::_local_class */
+void INIT_ATTRIBUTES__MMTypeSimpleClass(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMTypeSimpleClass;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeSimpleClass(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeSimpleClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMTypeSimpleClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMTypeSimpleClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 475;
+  fra.me.meth = LOCATE_NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init;
+  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;
+  fra.me.REG[1] = NEW_MMTypeSimpleClass();
+  /* ./metamodel//static_type.nit:475 */
+  INIT_ATTRIBUTES__MMTypeSimpleClass(fra.me.REG[1]);
+  static_type___MMTypeSimpleClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_MMTypeSimpleClass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_MMTypeNone[68] = {
+  {(bigint) 5123 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMTypeNone < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMTypeNone < MMType: superclass typecheck marker */},
+  {(bigint) 5123 /* 4: MMTypeNone < MMTypeNone: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMTypeNone < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMTypeNone___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMTypeNone___is_generic},
+  {(bigint) type_formal___MMType___direct_type},
+  {(bigint) 1 /* 52: MMTypeNone < MMType: superclass init_table position */},
+  {(bigint) static_type___MMTypeNone___module},
+  {(bigint) static_type___MMTypeNone___local_class},
+  {(bigint) static_type___MMType___is_valid},
+  {(bigint) static_type___MMTypeNone_____l},
+  {(bigint) static_type___MMTypeNone___is_supertype},
+  {(bigint) genericity___MMTypeNone___for_module},
+  {(bigint) genericity___MMTypeNone___adapt_to},
+  {(bigint) static_type___MMTypeNone___upcast_for},
+  {(bigint) static_type___MMType___not_for_self},
+  {(bigint) static_type___MMTypeNone___is_nullable},
+  {(bigint) static_type___MMTypeNone___as_nullable},
+  {(bigint) static_type___MMTypeNone___as_notnull},
+  {(bigint) static_type___MMType___init},
+  {(bigint) 2 /* 66: MMTypeNone < MMTypeNone: superclass init_table position */},
+  {(bigint) static_type___MMTypeNone___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMTypeNone::_as_nullable_cache */
+/* 3: Attribute MMTypeNone::_module */
+void INIT_ATTRIBUTES__MMTypeNone(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMTypeNone;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeNone(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeNone;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMTypeNone(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMTypeNone;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_static_type___MMTypeNone____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeNone_static_type___MMTypeNone___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 494;
+  fra.me.meth = LOCATE_NEW_MMTypeNone_static_type___MMTypeNone___init;
+  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;
+  fra.me.REG[1] = NEW_MMTypeNone();
+  /* ./metamodel//static_type.nit:494 */
+  INIT_ATTRIBUTES__MMTypeNone(fra.me.REG[1]);
+  static_type___MMTypeNone___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_MMTypeNone(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_MMImplicitLocalClass[110] = {
+  {(bigint) 5159 /* 0: Identity */},
+  {(bigint) 25 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMImplicitLocalClass < Object: superclass typecheck marker */},
+  {(bigint) 111 /* 3: MMImplicitLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 5159 /* 4: MMImplicitLocalClass < MMImplicitLocalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMImplicitLocalClass < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalClass___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) abstracttool___MMLocalClass___dump_properties},
+  {(bigint) mmbuilder___MMLocalClass___accept_class_visitor},
+  {(bigint) mmbuilder___MMLocalClass___accept_properties_visitor},
+  {(bigint) genericity___MMLocalClass___get_formal},
+  {(bigint) genericity___MMLocalClass___register_formal},
+  {(bigint) genericity___MMLocalClass___get_instantiate_type},
+  {(bigint) genericity___MMLocalClass___formals_types},
+  {(bigint) static_type___MMLocalClass___get_type},
+  {(bigint) genericity___MMLocalClass___is_generic},
+  {(bigint) inheritance___MMLocalClass___compute_super_classes},
+  {(bigint) inheritance___MMLocalClass___compute_ancestors},
+  {(bigint) inheritance___MMLocalClass___inherit_global_properties},
+  {(bigint) inheritance___MMLocalClass___make_visible_an_inherited_global_property},
+  {(bigint) inheritance___MMLocalClass___add_direct_parent},
+  {(bigint) inheritance___MMLocalClass___computed_super_classes},
+  {(bigint) inheritance___MMLocalClass___computed_ancestors},
+  {(bigint) inheritance___MMLocalClass___ancestor_for},
+  {(bigint) inheritance___MMLocalClass___add_default_any_class},
+  {(bigint) inheritance___MMLocalClass___add_super_classes},
+  {(bigint) inheritance___MMLocalClass___add_explicit_classes},
+  {(bigint) inheritance___MMLocalClass___compute_super_parents},
+  {(bigint) inheritance___MMLocalClass___build_ancestors},
+  {(bigint) inheritance___MMLocalClass___group_ancestors},
+  {(bigint) inheritance___MMLocalClass___merge_ancestors},
+  {(bigint) inheritance___MMLocalClass___inherit_local_property},
+  {(bigint) genericity___MMLocalClass___get_type},
+  {(bigint) static_type___MMLocalClass___add_ancestor},
+  {(bigint) static_type___MMLocalClass___ancestors},
+  {(bigint) static_type___MMLocalClass___ancestor},
+  {(bigint) 1 /* 74: MMImplicitLocalClass < MMLocalClass: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalClass___name},
+  {(bigint) abstractmetamodel___MMLocalClass___arity},
+  {(bigint) abstractmetamodel___MMLocalClass___module},
+  {(bigint) abstractmetamodel___MMLocalClass___global},
+  {(bigint) abstractmetamodel___MMLocalClass___crhe},
+  {(bigint) abstractmetamodel___MMLocalClass___cshe},
+  {(bigint) abstractmetamodel___MMLocalClass___che},
+  {(bigint) abstractmetamodel___MMLocalClass___global_properties},
+  {(bigint) abstractmetamodel___MMLocalClass___local_local_properties},
+  {(bigint) abstractmetamodel___MMLocalClass___init},
+  {(bigint) abstractmetamodel___MMLocalClass___for_module},
+  {(bigint) abstractmetamodel___MMLocalClass___new_global},
+  {(bigint) abstractmetamodel___MMLocalClass___set_global},
+  {(bigint) abstractmetamodel___MMLocalClass___has_global_property_by_name},
+  {(bigint) abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(bigint) abstractmetamodel___MMLocalClass___attribute},
+  {(bigint) abstractmetamodel___MMLocalClass___method},
+  {(bigint) abstractmetamodel___MMLocalClass___select_method},
+  {(bigint) abstractmetamodel___MMLocalClass___select_attribute},
+  {(bigint) abstractmetamodel___MMLocalClass___super_methods_named},
+  {(bigint) abstractmetamodel___MMLocalClass___register_local_property},
+  {(bigint) abstractmetamodel___MMLocalClass___register_global_property},
+  {(bigint) abstractmetamodel___MMLocalClass___has_global_property},
+  {(bigint) inheritance___MMLocalClass_____bra},
+  {(bigint) abstractmetamodel___MMLocalClass___context},
+  {(bigint) virtualtype___MMLocalClass___virtual_type},
+  {(bigint) virtualtype___MMLocalClass___select_virtual_type},
+  {(bigint) primitive_info___MMLocalClass___primitive_info},
+  {(bigint) primitive_info___MMLocalClass___primitive_ctypes},
+  {(bigint) compiling_global___MMLocalClass___declare_tables_to_c},
+  {(bigint) compiling_global___MMLocalClass___generate_allocation_iroutines},
+  {(bigint) compiling_global___MMLocalClass___compile_tables_to_c},
+  {(bigint) table_computation___MMLocalClass___compare},
+  {(bigint) 2 /* 108: MMImplicitLocalClass < MMImplicitLocalClass: superclass init_table position */},
+  {(bigint) inheritance___MMImplicitLocalClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMImplicitLocalClass::_types */
+/* 3: Attribute MMImplicitLocalClass::_formals_types */
+/* 4: Attribute MMImplicitLocalClass::_direct_parents */
+/* 5: Attribute MMImplicitLocalClass::_computing_super */
+/* 6: Attribute MMImplicitLocalClass::_are_global_properties_inherited */
+/* 7: Attribute MMImplicitLocalClass::_base_type_cache */
+/* 8: Attribute MMImplicitLocalClass::_ancestors */
+/* 9: Attribute MMImplicitLocalClass::_name */
+/* 10: Attribute MMImplicitLocalClass::_arity */
+/* 11: Attribute MMImplicitLocalClass::_module */
+/* 12: Attribute MMImplicitLocalClass::_global */
+/* 13: Attribute MMImplicitLocalClass::_crhe */
+/* 14: Attribute MMImplicitLocalClass::_cshe */
+/* 15: Attribute MMImplicitLocalClass::_che */
+/* 16: Attribute MMImplicitLocalClass::_local_property_by_global */
+/* 17: Attribute MMImplicitLocalClass::_global_properties */
+/* 18: Attribute MMImplicitLocalClass::_local_local_properties */
+/* 19: Attribute MMImplicitLocalClass::_properties_by_name */
+/* 20: Attribute MMImplicitLocalClass::_primitive_info_cache */
+/* 21: Attribute MMImplicitLocalClass::_primitive_info_b */
+/* 22: Attribute MMImplicitLocalClass::_init_var_iroutine */
+/* 23: Attribute MMImplicitLocalClass::_checknew_iroutine */
+/* 24: Attribute MMImplicitLocalClass::_new_instance_iroutine */
+void INIT_ATTRIBUTES__MMImplicitLocalClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMImplicitLocalClass;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:353 */
+  ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:356 */
+  ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:359 */
+  ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:362 */
+  ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//inheritance.nit:57 */
+  ATTR_inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//inheritance.nit:60 */
+  ATTR_inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//inheritance.nit:109 */
+  ATTR_inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//genericity.nit:40 */
+  ATTR_genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//genericity.nit:54 */
+  ATTR_genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./primitive_info.nit:25 */
+  ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./primitive_info.nit:28 */
+  ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_global.nit:330 */
+  ATTR_compiling_global___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_global.nit:332 */
+  ATTR_compiling_global___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_global.nit:334 */
+  ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMImplicitLocalClass(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 25);
+  obj->vft = (classtable_elt_t*)VFT_MMImplicitLocalClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMImplicitLocalClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMImplicitLocalClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_arity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_property_by_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_local_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_properties_by_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_direct_parents");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_computing_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_are_global_properties_inherited");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_formals_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_primitive_info_b");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_new_instance_iroutine");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMImplicitLocalClass_inheritance___MMImplicitLocalClass___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 412;
+  fra.me.meth = LOCATE_NEW_MMImplicitLocalClass_inheritance___MMImplicitLocalClass___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMImplicitLocalClass();
+  /* ./metamodel//inheritance.nit:412 */
+  INIT_ATTRIBUTES__MMImplicitLocalClass(fra.me.REG[2]);
+  inheritance___MMImplicitLocalClass___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMImplicitLocalClass(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMRefineAncestor[57] = {
+  {(bigint) 5147 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMRefineAncestor < Object: superclass typecheck marker */},
+  {(bigint) 135 /* 3: MMRefineAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 5147 /* 4: MMRefineAncestor < MMRefineAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMRefineAncestor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMAncestor___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) inheritance___MMAncestor___add_in},
+  {(bigint) 1 /* 46: MMRefineAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) static_type___MMAncestor___stype__eq},
+  {(bigint) static_type___MMAncestor___stype},
+  {(bigint) static_type___MMAncestor___inheriter__eq},
+  {(bigint) static_type___MMAncestor___inheriter},
+  {(bigint) static_type___MMAncestor___is_reffinement},
+  {(bigint) static_type___MMAncestor___is_specialisation},
+  {(bigint) inheritance___MMRefineAncestor___local_class},
+  {(bigint) static_type___MMAncestor___init},
+  {(bigint) 2 /* 55: MMRefineAncestor < MMRefineAncestor: superclass init_table position */},
+  {(bigint) inheritance___MMRefineAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMRefineAncestor::_stype */
+/* 3: Attribute MMRefineAncestor::_inheriter */
+/* 4: Attribute MMRefineAncestor::_local_class */
+void INIT_ATTRIBUTES__MMRefineAncestor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMRefineAncestor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:274 */
+  ATTR_static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:280 */
+  ATTR_static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMRefineAncestor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_MMRefineAncestor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMRefineAncestor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMRefineAncestor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_inheritance___MMRefineAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMRefineAncestor_inheritance___MMRefineAncestor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 424;
+  fra.me.meth = LOCATE_NEW_MMRefineAncestor_inheritance___MMRefineAncestor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMRefineAncestor();
+  /* ./metamodel//inheritance.nit:424 */
+  INIT_ATTRIBUTES__MMRefineAncestor(fra.me.REG[2]);
+  inheritance___MMRefineAncestor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMRefineAncestor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMSpecAncestor[57] = {
+  {(bigint) 5143 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMSpecAncestor < Object: superclass typecheck marker */},
+  {(bigint) 135 /* 3: MMSpecAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 5143 /* 4: MMSpecAncestor < MMSpecAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMSpecAncestor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMAncestor___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) inheritance___MMAncestor___add_in},
+  {(bigint) 1 /* 46: MMSpecAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) static_type___MMAncestor___stype__eq},
+  {(bigint) static_type___MMAncestor___stype},
+  {(bigint) static_type___MMAncestor___inheriter__eq},
+  {(bigint) static_type___MMAncestor___inheriter},
+  {(bigint) static_type___MMAncestor___is_reffinement},
+  {(bigint) static_type___MMAncestor___is_specialisation},
+  {(bigint) inheritance___MMSpecAncestor___local_class},
+  {(bigint) static_type___MMAncestor___init},
+  {(bigint) 2 /* 55: MMSpecAncestor < MMSpecAncestor: superclass init_table position */},
+  {(bigint) inheritance___MMSpecAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMSpecAncestor::_stype */
+/* 3: Attribute MMSpecAncestor::_inheriter */
+void INIT_ATTRIBUTES__MMSpecAncestor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMSpecAncestor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:274 */
+  ATTR_static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:280 */
+  ATTR_static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSpecAncestor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMSpecAncestor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMSpecAncestor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMSpecAncestor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSpecAncestor_inheritance___MMSpecAncestor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 437;
+  fra.me.meth = LOCATE_NEW_MMSpecAncestor_inheritance___MMSpecAncestor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMSpecAncestor();
+  /* ./metamodel//inheritance.nit:437 */
+  INIT_ATTRIBUTES__MMSpecAncestor(fra.me.REG[2]);
+  inheritance___MMSpecAncestor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMSpecAncestor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMDefaultAncestor[57] = {
+  {(bigint) 5163 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMDefaultAncestor < Object: superclass typecheck marker */},
+  {(bigint) 135 /* 3: MMDefaultAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 5163 /* 4: MMDefaultAncestor < MMDefaultAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMDefaultAncestor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMAncestor___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) inheritance___MMAncestor___add_in},
+  {(bigint) 1 /* 46: MMDefaultAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) static_type___MMAncestor___stype__eq},
+  {(bigint) static_type___MMAncestor___stype},
+  {(bigint) static_type___MMAncestor___inheriter__eq},
+  {(bigint) static_type___MMAncestor___inheriter},
+  {(bigint) static_type___MMAncestor___is_reffinement},
+  {(bigint) static_type___MMAncestor___is_specialisation},
+  {(bigint) inheritance___MMDefaultAncestor___local_class},
+  {(bigint) static_type___MMAncestor___init},
+  {(bigint) 2 /* 55: MMDefaultAncestor < MMDefaultAncestor: superclass init_table position */},
+  {(bigint) inheritance___MMDefaultAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMDefaultAncestor::_stype */
+/* 3: Attribute MMDefaultAncestor::_inheriter */
+void INIT_ATTRIBUTES__MMDefaultAncestor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMDefaultAncestor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:274 */
+  ATTR_static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:280 */
+  ATTR_static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMDefaultAncestor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MMDefaultAncestor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMDefaultAncestor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMDefaultAncestor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMDefaultAncestor_inheritance___MMDefaultAncestor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 448;
+  fra.me.meth = LOCATE_NEW_MMDefaultAncestor_inheritance___MMDefaultAncestor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMDefaultAncestor();
+  /* ./metamodel//inheritance.nit:448 */
+  INIT_ATTRIBUTES__MMDefaultAncestor(fra.me.REG[2]);
+  inheritance___MMDefaultAncestor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMDefaultAncestor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMTypeFormal[70] = {
+  {(bigint) 5127 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMTypeFormal < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMTypeFormal < MMType: superclass typecheck marker */},
+  {(bigint) 5127 /* 4: MMTypeFormal < MMTypeFormal: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMTypeFormal < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) type_formal___MMTypeFormal___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMTypeFormal___is_generic},
+  {(bigint) type_formal___MMTypeFormal___direct_type},
+  {(bigint) 1 /* 52: MMTypeFormal < MMType: superclass init_table position */},
+  {(bigint) static_type___MMType___module},
+  {(bigint) type_formal___MMTypeFormal___local_class},
+  {(bigint) type_formal___MMTypeFormal___is_valid},
+  {(bigint) type_formal___MMTypeFormal_____l},
+  {(bigint) type_formal___MMTypeFormal___is_supertype},
+  {(bigint) static_type___MMType___for_module},
+  {(bigint) static_type___MMType___adapt_to},
+  {(bigint) static_type___MMType___upcast_for},
+  {(bigint) static_type___MMType___not_for_self},
+  {(bigint) type_formal___MMTypeFormal___is_nullable},
+  {(bigint) static_type___MMType___as_nullable},
+  {(bigint) static_type___MMType___as_notnull},
+  {(bigint) static_type___MMType___init},
+  {(bigint) 2 /* 66: MMTypeFormal < MMTypeFormal: superclass init_table position */},
+  {(bigint) type_formal___MMTypeFormal___name},
+  {(bigint) type_formal___MMTypeFormal___bound},
+  {(bigint) type_formal___MMTypeFormal___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMTypeFormal::_as_nullable_cache */
+/* 3: Attribute MMTypeFormal::_name */
+/* 4: Attribute MMTypeFormal::_bound */
+void INIT_ATTRIBUTES__MMTypeFormal(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMTypeFormal;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeFormal(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeFormal;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMTypeFormal(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMTypeFormal;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_type_formal___MMTypeFormal____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeFormal_type_formal___MMTypeFormal___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 48;
+  fra.me.meth = LOCATE_NEW_MMTypeFormal_type_formal___MMTypeFormal___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMTypeFormal();
+  /* ./metamodel//type_formal.nit:48 */
+  INIT_ATTRIBUTES__MMTypeFormal(fra.me.REG[2]);
+  type_formal___MMTypeFormal___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMTypeFormal(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMTypeGeneric[75] = {
+  {(bigint) 5755 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMTypeGeneric < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMTypeGeneric < MMType: superclass typecheck marker */},
+  {(bigint) 5131 /* 4: MMTypeGeneric < MMTypeClass: superclass typecheck marker */},
+  {(bigint) 5755 /* 5: MMTypeGeneric < MMTypeGeneric: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMTypeGeneric < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) genericity___MMTypeGeneric___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMTypeGeneric___is_generic},
+  {(bigint) type_formal___MMType___direct_type},
+  {(bigint) 1 /* 52: MMTypeGeneric < MMType: superclass init_table position */},
+  {(bigint) static_type___MMTypeClass___module},
+  {(bigint) static_type___MMTypeClass___local_class},
+  {(bigint) static_type___MMType___is_valid},
+  {(bigint) static_type___MMTypeClass_____l},
+  {(bigint) genericity___MMTypeGeneric___is_supertype},
+  {(bigint) genericity___MMTypeGeneric___for_module},
+  {(bigint) genericity___MMTypeGeneric___adapt_to},
+  {(bigint) genericity___MMTypeGeneric___upcast_for},
+  {(bigint) static_type___MMType___not_for_self},
+  {(bigint) static_type___MMType___is_nullable},
+  {(bigint) static_type___MMType___as_nullable},
+  {(bigint) static_type___MMType___as_notnull},
+  {(bigint) static_type___MMType___init},
+  {(bigint) 2 /* 66: MMTypeGeneric < MMTypeClass: superclass init_table position */},
+  {(bigint) static_type___MMTypeClass___init},
+  {(bigint) 3 /* 68: MMTypeGeneric < MMTypeGeneric: superclass init_table position */},
+  {(bigint) genericity___MMTypeGeneric___params},
+  {(bigint) static_type___MMTypeClass___upcast_for},
+  {(bigint) genericity___MMTypeGeneric___params_equals},
+  {(bigint) static_type___MMTypeClass___to_s},
+  {(bigint) genericity___MMTypeGeneric___is_subtype},
+  {(bigint) genericity___MMTypeGeneric___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMTypeGeneric::_as_nullable_cache */
+/* 3: Attribute MMTypeGeneric::_local_class */
+/* 4: Attribute MMTypeGeneric::_params */
+void INIT_ATTRIBUTES__MMTypeGeneric(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMTypeGeneric;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeGeneric(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeGeneric;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMTypeGeneric(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMTypeGeneric;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_params");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeGeneric_genericity___MMTypeGeneric___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 189;
+  fra.me.meth = LOCATE_NEW_MMTypeGeneric_genericity___MMTypeGeneric___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMTypeGeneric();
+  /* ./metamodel//genericity.nit:189 */
+  INIT_ATTRIBUTES__MMTypeGeneric(fra.me.REG[2]);
+  genericity___MMTypeGeneric___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMTypeGeneric(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMTypeFormalParameter[76] = {
+  {(bigint) 5759 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMTypeFormalParameter < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMTypeFormalParameter < MMType: superclass typecheck marker */},
+  {(bigint) 5127 /* 4: MMTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
+  {(bigint) 5759 /* 5: MMTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMTypeFormalParameter < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) type_formal___MMTypeFormal___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMTypeFormal___is_generic},
+  {(bigint) type_formal___MMTypeFormal___direct_type},
+  {(bigint) 1 /* 52: MMTypeFormalParameter < MMType: superclass init_table position */},
+  {(bigint) genericity___MMTypeFormalParameter___module},
+  {(bigint) type_formal___MMTypeFormal___local_class},
+  {(bigint) type_formal___MMTypeFormal___is_valid},
+  {(bigint) type_formal___MMTypeFormal_____l},
+  {(bigint) type_formal___MMTypeFormal___is_supertype},
+  {(bigint) genericity___MMTypeFormalParameter___for_module},
+  {(bigint) genericity___MMTypeFormalParameter___adapt_to},
+  {(bigint) genericity___MMTypeFormalParameter___upcast_for},
+  {(bigint) static_type___MMType___not_for_self},
+  {(bigint) type_formal___MMTypeFormal___is_nullable},
+  {(bigint) static_type___MMType___as_nullable},
+  {(bigint) static_type___MMType___as_notnull},
+  {(bigint) static_type___MMType___init},
+  {(bigint) 2 /* 66: MMTypeFormalParameter < MMTypeFormal: superclass init_table position */},
+  {(bigint) type_formal___MMTypeFormal___name},
+  {(bigint) type_formal___MMTypeFormal___bound},
+  {(bigint) type_formal___MMTypeFormal___init},
+  {(bigint) 3 /* 70: MMTypeFormalParameter < MMTypeFormalParameter: superclass init_table position */},
+  {(bigint) genericity___MMTypeFormalParameter___def_class},
+  {(bigint) genericity___MMTypeFormalParameter___position},
+  {(bigint) genericity___MMTypeFormalParameter___bound__eq},
+  {(bigint) genericity___MMTypeFormalParameter___with_bound},
+  {(bigint) genericity___MMTypeFormalParameter___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMTypeFormalParameter::_as_nullable_cache */
+/* 3: Attribute MMTypeFormalParameter::_name */
+/* 4: Attribute MMTypeFormalParameter::_bound */
+/* 5: Attribute MMTypeFormalParameter::_def_class */
+/* 6: Attribute MMTypeFormalParameter::_position */
+void INIT_ATTRIBUTES__MMTypeFormalParameter(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMTypeFormalParameter;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeFormalParameter(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeFormalParameter;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMTypeFormalParameter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMTypeFormalParameter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_type_formal___MMTypeFormal____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMTypeFormalParameter____def_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_def_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMTypeFormalParameter____position(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_position");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___with_bound(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 236;
+  fra.me.meth = LOCATE_NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___with_bound;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  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;
+  REGB0 = p1;
+  fra.me.REG[1] = p2;
+  fra.me.REG[2] = p3;
+  fra.me.REG[3] = NEW_MMTypeFormalParameter();
+  /* ./metamodel//genericity.nit:236 */
+  INIT_ATTRIBUTES__MMTypeFormalParameter(fra.me.REG[3]);
+  genericity___MMTypeFormalParameter___with_bound(fra.me.REG[3], fra.me.REG[0], REGB0, fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMTypeFormalParameter(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+val_t NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(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 tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 242;
+  fra.me.meth = LOCATE_NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init;
+  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.REG[0] = p0;
+  REGB0 = p1;
+  fra.me.REG[1] = p2;
+  fra.me.REG[2] = NEW_MMTypeFormalParameter();
+  /* ./metamodel//genericity.nit:242 */
+  INIT_ATTRIBUTES__MMTypeFormalParameter(fra.me.REG[2]);
+  genericity___MMTypeFormalParameter___init(fra.me.REG[2], fra.me.REG[0], REGB0, fra.me.REG[1], init_table);
+  CHECKNEW_MMTypeFormalParameter(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMTypeProperty[70] = {
+  {(bigint) 5119 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMTypeProperty < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMTypeProperty < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5119 /* 4: MMTypeProperty < MMTypeProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMTypeProperty < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMLocalProperty___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMTypeProperty < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) 2 /* 67: MMTypeProperty < MMTypeProperty: superclass init_table position */},
+  {(bigint) virtualtype___MMTypeProperty___stype_for},
+  {(bigint) virtualtype___MMTypeProperty___real_stype_for},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMTypeProperty::_signature */
+/* 3: Attribute MMTypeProperty::_signatures_cache */
+/* 4: Attribute MMTypeProperty::_name */
+/* 5: Attribute MMTypeProperty::_local_class */
+/* 6: Attribute MMTypeProperty::_global */
+/* 7: Attribute MMTypeProperty::_prhe */
+/* 8: Attribute MMTypeProperty::_need_super */
+/* 9: Attribute MMTypeProperty::_cname_cache */
+/* 10: Attribute MMTypeProperty::_stypes_cache */
+void INIT_ATTRIBUTES__MMTypeProperty(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMTypeProperty;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//virtualtype.nit:39 */
+  ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeProperty(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_MMTypeProperty;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMTypeProperty(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMTypeProperty;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stypes_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMTypeProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 622;
+  fra.me.meth = LOCATE_NEW_MMTypeProperty_abstractmetamodel___MMLocalProperty___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMTypeProperty();
+  /* ./metamodel//abstractmetamodel.nit:622 */
+  INIT_ATTRIBUTES__MMTypeProperty(fra.me.REG[2]);
+  abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMTypeProperty(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMVirtualType[74] = {
+  {(bigint) 5747 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMVirtualType < Object: superclass typecheck marker */},
+  {(bigint) 95 /* 3: MMVirtualType < MMType: superclass typecheck marker */},
+  {(bigint) 5127 /* 4: MMVirtualType < MMTypeFormal: superclass typecheck marker */},
+  {(bigint) 5747 /* 5: MMVirtualType < MMVirtualType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMVirtualType < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) type_formal___MMTypeFormal___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) primitive_info___MMType___cname},
+  {(bigint) primitive_info___MMType___is_tagged},
+  {(bigint) primitive_info___MMType___default_cvalue},
+  {(bigint) primitive_info___MMType___boxtype},
+  {(bigint) primitive_info___MMType___unboxtype},
+  {(bigint) genericity___MMTypeFormal___is_generic},
+  {(bigint) type_formal___MMTypeFormal___direct_type},
+  {(bigint) 1 /* 52: MMVirtualType < MMType: superclass init_table position */},
+  {(bigint) virtualtype___MMVirtualType___module},
+  {(bigint) type_formal___MMTypeFormal___local_class},
+  {(bigint) type_formal___MMTypeFormal___is_valid},
+  {(bigint) type_formal___MMTypeFormal_____l},
+  {(bigint) type_formal___MMTypeFormal___is_supertype},
+  {(bigint) virtualtype___MMVirtualType___for_module},
+  {(bigint) virtualtype___MMVirtualType___adapt_to},
+  {(bigint) static_type___MMType___upcast_for},
+  {(bigint) virtualtype___MMVirtualType___not_for_self},
+  {(bigint) type_formal___MMTypeFormal___is_nullable},
+  {(bigint) static_type___MMType___as_nullable},
+  {(bigint) static_type___MMType___as_notnull},
+  {(bigint) static_type___MMType___init},
+  {(bigint) 2 /* 66: MMVirtualType < MMTypeFormal: superclass init_table position */},
+  {(bigint) type_formal___MMTypeFormal___name},
+  {(bigint) type_formal___MMTypeFormal___bound},
+  {(bigint) type_formal___MMTypeFormal___init},
+  {(bigint) 3 /* 70: MMVirtualType < MMVirtualType: superclass init_table position */},
+  {(bigint) virtualtype___MMVirtualType___property},
+  {(bigint) virtualtype___MMVirtualType___recv},
+  {(bigint) virtualtype___MMVirtualType___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMVirtualType::_as_nullable_cache */
+/* 3: Attribute MMVirtualType::_name */
+/* 4: Attribute MMVirtualType::_bound */
+/* 5: Attribute MMVirtualType::_property */
+/* 6: Attribute MMVirtualType::_recv */
+void INIT_ATTRIBUTES__MMVirtualType(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMVirtualType;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:361 */
+  ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMVirtualType(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_MMVirtualType;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMVirtualType(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMVirtualType;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_type_formal___MMTypeFormal____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_virtualtype___MMVirtualType____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_recv");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMVirtualType_virtualtype___MMVirtualType___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 64;
+  fra.me.meth = LOCATE_NEW_MMVirtualType_virtualtype___MMVirtualType___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMVirtualType();
+  /* ./metamodel//virtualtype.nit:64 */
+  INIT_ATTRIBUTES__MMVirtualType(fra.me.REG[2]);
+  virtualtype___MMVirtualType___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMVirtualType(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_Option[59] = {
+  {(bigint) 75 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Option < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: Option < Option: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Option < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___Option___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: Option < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___Option___read_param},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Option::_names */
+/* 3: Attribute Option::_helptext */
+/* 4: Attribute Option::_mandatory */
+/* 5: Attribute Option::_value */
+/* 6: Attribute Option::_default_value */
+void INIT_ATTRIBUTES__Option(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Option;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Option(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_Option;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Option(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Option;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Option_opts___Option___init_opt(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 37;
+  fra.me.meth = LOCATE_NEW_Option_opts___Option___init_opt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_Option();
+  /* ./../lib/opts.nit:37 */
+  INIT_ATTRIBUTES__Option(fra.me.REG[3]);
+  opts___Option___init_opt(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_Option(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_OptionText[61] = {
+  {(bigint) 5075 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionText < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: OptionText < Option: superclass typecheck marker */},
+  {(bigint) 5075 /* 4: OptionText < OptionText: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionText < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___OptionText___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionText < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___OptionText___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___Option___read_param},
+  {(bigint) 2 /* 59: OptionText < OptionText: superclass init_table position */},
+  {(bigint) opts___OptionText___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionText::_names */
+/* 3: Attribute OptionText::_helptext */
+/* 4: Attribute OptionText::_mandatory */
+/* 5: Attribute OptionText::_value */
+/* 6: Attribute OptionText::_default_value */
+void INIT_ATTRIBUTES__OptionText(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionText;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionText(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionText;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionText(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionText;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionText_opts___OptionText___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 84;
+  fra.me.meth = LOCATE_NEW_OptionText_opts___OptionText___init;
+  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;
+  fra.me.REG[1] = NEW_OptionText();
+  /* ./../lib/opts.nit:84 */
+  INIT_ATTRIBUTES__OptionText(fra.me.REG[1]);
+  opts___OptionText___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_OptionText(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_OptionBool[61] = {
+  {(bigint) 5087 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionBool < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: OptionBool < Option: superclass typecheck marker */},
+  {(bigint) 5087 /* 4: OptionBool < OptionBool: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionBool < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___Option___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionBool < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___OptionBool___read_param},
+  {(bigint) 2 /* 59: OptionBool < OptionBool: superclass init_table position */},
+  {(bigint) opts___OptionBool___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionBool::_names */
+/* 3: Attribute OptionBool::_helptext */
+/* 4: Attribute OptionBool::_mandatory */
+/* 5: Attribute OptionBool::_value */
+/* 6: Attribute OptionBool::_default_value */
+void INIT_ATTRIBUTES__OptionBool(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionBool;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionBool(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionBool;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionBool(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionBool;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionBool_opts___OptionBool___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 95;
+  fra.me.meth = LOCATE_NEW_OptionBool_opts___OptionBool___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_OptionBool();
+  /* ./../lib/opts.nit:95 */
+  INIT_ATTRIBUTES__OptionBool(fra.me.REG[2]);
+  opts___OptionBool___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_OptionBool(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_OptionCount[61] = {
+  {(bigint) 5083 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionCount < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: OptionCount < Option: superclass typecheck marker */},
+  {(bigint) 5083 /* 4: OptionCount < OptionCount: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionCount < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___Option___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionCount < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___OptionCount___read_param},
+  {(bigint) 2 /* 59: OptionCount < OptionCount: superclass init_table position */},
+  {(bigint) opts___OptionCount___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionCount::_names */
+/* 3: Attribute OptionCount::_helptext */
+/* 4: Attribute OptionCount::_mandatory */
+/* 5: Attribute OptionCount::_value */
+/* 6: Attribute OptionCount::_default_value */
+void INIT_ATTRIBUTES__OptionCount(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionCount;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionCount(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionCount;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionCount(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionCount;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionCount_opts___OptionCount___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 104;
+  fra.me.meth = LOCATE_NEW_OptionCount_opts___OptionCount___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_OptionCount();
+  /* ./../lib/opts.nit:104 */
+  INIT_ATTRIBUTES__OptionCount(fra.me.REG[2]);
+  opts___OptionCount___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_OptionCount(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_OptionParameter[62] = {
+  {(bigint) 5079 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionParameter < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: OptionParameter < Option: superclass typecheck marker */},
+  {(bigint) 5079 /* 4: OptionParameter < OptionParameter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionParameter < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___Option___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionParameter < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___OptionParameter___read_param},
+  {(bigint) 2 /* 59: OptionParameter < OptionParameter: superclass init_table position */},
+  {(bigint) opts___OptionParameter___convert},
+  {(bigint) opts___OptionParameter___init_opt},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionParameter::_names */
+/* 3: Attribute OptionParameter::_helptext */
+/* 4: Attribute OptionParameter::_mandatory */
+/* 5: Attribute OptionParameter::_value */
+/* 6: Attribute OptionParameter::_default_value */
+void INIT_ATTRIBUTES__OptionParameter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionParameter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionParameter(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionParameter;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionParameter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionParameter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionParameter_opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 124;
+  fra.me.meth = LOCATE_NEW_OptionParameter_opts___OptionParameter___init_opt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_OptionParameter();
+  /* ./../lib/opts.nit:124 */
+  INIT_ATTRIBUTES__OptionParameter(fra.me.REG[3]);
+  opts___OptionParameter___init_opt(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_OptionParameter(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_OptionString[64] = {
+  {(bigint) 5715 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionString < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: OptionString < Option: superclass typecheck marker */},
+  {(bigint) 5079 /* 4: OptionString < OptionParameter: superclass typecheck marker */},
+  {(bigint) 5715 /* 5: OptionString < OptionString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionString < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___Option___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionString < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___OptionParameter___read_param},
+  {(bigint) 2 /* 59: OptionString < OptionParameter: superclass init_table position */},
+  {(bigint) opts___OptionString___convert},
+  {(bigint) opts___OptionParameter___init_opt},
+  {(bigint) 3 /* 62: OptionString < OptionString: superclass init_table position */},
+  {(bigint) opts___OptionString___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionString::_names */
+/* 3: Attribute OptionString::_helptext */
+/* 4: Attribute OptionString::_mandatory */
+/* 5: Attribute OptionString::_value */
+/* 6: Attribute OptionString::_default_value */
+void INIT_ATTRIBUTES__OptionString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionString(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionString;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionString(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionString_opts___OptionString___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 131;
+  fra.me.meth = LOCATE_NEW_OptionString_opts___OptionString___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_OptionString();
+  /* ./../lib/opts.nit:131 */
+  INIT_ATTRIBUTES__OptionString(fra.me.REG[2]);
+  opts___OptionString___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_OptionString(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_OptionEnum[64] = {
+  {(bigint) 5723 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionEnum < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: OptionEnum < Option: superclass typecheck marker */},
+  {(bigint) 5079 /* 4: OptionEnum < OptionParameter: superclass typecheck marker */},
+  {(bigint) 5723 /* 5: OptionEnum < OptionEnum: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionEnum < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___Option___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionEnum < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___OptionEnum___pretty_default},
+  {(bigint) opts___OptionParameter___read_param},
+  {(bigint) 2 /* 59: OptionEnum < OptionParameter: superclass init_table position */},
+  {(bigint) opts___OptionEnum___convert},
+  {(bigint) opts___OptionParameter___init_opt},
+  {(bigint) 3 /* 62: OptionEnum < OptionEnum: superclass init_table position */},
+  {(bigint) opts___OptionEnum___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionEnum::_names */
+/* 3: Attribute OptionEnum::_helptext */
+/* 4: Attribute OptionEnum::_mandatory */
+/* 5: Attribute OptionEnum::_value */
+/* 6: Attribute OptionEnum::_default_value */
+/* 7: Attribute OptionEnum::_enum */
+void INIT_ATTRIBUTES__OptionEnum(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionEnum;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionEnum(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_OptionEnum;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionEnum(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionEnum;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___OptionEnum____enum(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_enum");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionEnum_opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 141;
+  fra.me.meth = LOCATE_NEW_OptionEnum_opts___OptionEnum___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  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;
+  REGB0 = p2;
+  fra.me.REG[2] = p3;
+  fra.me.REG[3] = NEW_OptionEnum();
+  /* ./../lib/opts.nit:141 */
+  INIT_ATTRIBUTES__OptionEnum(fra.me.REG[3]);
+  opts___OptionEnum___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
+  CHECKNEW_OptionEnum(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_OptionInt[64] = {
+  {(bigint) 5719 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionInt < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: OptionInt < Option: superclass typecheck marker */},
+  {(bigint) 5079 /* 4: OptionInt < OptionParameter: superclass typecheck marker */},
+  {(bigint) 5719 /* 5: OptionInt < OptionInt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionInt < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___Option___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionInt < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___OptionParameter___read_param},
+  {(bigint) 2 /* 59: OptionInt < OptionParameter: superclass init_table position */},
+  {(bigint) opts___OptionInt___convert},
+  {(bigint) opts___OptionParameter___init_opt},
+  {(bigint) 3 /* 62: OptionInt < OptionInt: superclass init_table position */},
+  {(bigint) opts___OptionInt___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionInt::_names */
+/* 3: Attribute OptionInt::_helptext */
+/* 4: Attribute OptionInt::_mandatory */
+/* 5: Attribute OptionInt::_value */
+/* 6: Attribute OptionInt::_default_value */
+void INIT_ATTRIBUTES__OptionInt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionInt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionInt(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_OptionInt;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionInt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionInt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionInt_opts___OptionInt___init(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 tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 168;
+  fra.me.meth = LOCATE_NEW_OptionInt_opts___OptionInt___init;
+  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.REG[0] = p0;
+  REGB0 = p1;
+  fra.me.REG[1] = p2;
+  fra.me.REG[2] = NEW_OptionInt();
+  /* ./../lib/opts.nit:168 */
+  INIT_ATTRIBUTES__OptionInt(fra.me.REG[2]);
+  opts___OptionInt___init(fra.me.REG[2], fra.me.REG[0], REGB0, fra.me.REG[1], init_table);
+  CHECKNEW_OptionInt(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_OptionArray[64] = {
+  {(bigint) 5727 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionArray < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 3: OptionArray < Option: superclass typecheck marker */},
+  {(bigint) 5079 /* 4: OptionArray < OptionParameter: superclass typecheck marker */},
+  {(bigint) 5727 /* 5: OptionArray < OptionArray: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionArray < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) opts___Option___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionArray < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___OptionParameter___read_param},
+  {(bigint) 2 /* 59: OptionArray < OptionParameter: superclass init_table position */},
+  {(bigint) opts___OptionArray___convert},
+  {(bigint) opts___OptionParameter___init_opt},
+  {(bigint) 3 /* 62: OptionArray < OptionArray: superclass init_table position */},
+  {(bigint) opts___OptionArray___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionArray::_names */
+/* 3: Attribute OptionArray::_helptext */
+/* 4: Attribute OptionArray::_mandatory */
+/* 5: Attribute OptionArray::_value */
+/* 6: Attribute OptionArray::_default_value */
+/* 7: Attribute OptionArray::_values */
+void INIT_ATTRIBUTES__OptionArray(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionArray;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionArray(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_OptionArray;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionArray(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionArray;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_names");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_helptext");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_mandatory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_values");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionArray_opts___OptionArray___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 177;
+  fra.me.meth = LOCATE_NEW_OptionArray_opts___OptionArray___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_OptionArray();
+  /* ./../lib/opts.nit:177 */
+  INIT_ATTRIBUTES__OptionArray(fra.me.REG[2]);
+  opts___OptionArray___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_OptionArray(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_OptionContext[54] = {
+  {(bigint) 71 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: OptionContext < Object: superclass typecheck marker */},
+  {(bigint) 71 /* 3: OptionContext < OptionContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: OptionContext < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: OptionContext < OptionContext: superclass init_table position */},
+  {(bigint) opts___OptionContext___options},
+  {(bigint) opts___OptionContext___rest},
+  {(bigint) opts___OptionContext___usage},
+  {(bigint) opts___OptionContext___parse},
+  {(bigint) opts___OptionContext___parse_intern},
+  {(bigint) opts___OptionContext___add_option},
+  {(bigint) opts___OptionContext___init},
+  {(bigint) opts___OptionContext___build},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionContext::_options */
+/* 3: Attribute OptionContext::_rest */
+/* 4: Attribute OptionContext::_optmap */
+void INIT_ATTRIBUTES__OptionContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__OptionContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_OptionContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_OptionContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_OptionContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_options");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_rest");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_optmap");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionContext_opts___OptionContext___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 252;
+  fra.me.meth = LOCATE_NEW_OptionContext_opts___OptionContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_OptionContext();
+  /* ./../lib/opts.nit:252 */
+  INIT_ATTRIBUTES__OptionContext(fra.me.REG[0]);
+  opts___OptionContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_OptionContext(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_Message[64] = {
+  {(bigint) 5107 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Message < Object: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 211 /* 4: Message < Comparable: superclass typecheck marker */},
+  {(bigint) 5107 /* 5: Message < Message: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Message < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) mmloader___Message___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 51: Message < Comparable: superclass init_table position */},
+  {(bigint) mmloader___Message_____l},
+  {(bigint) kernel___Comparable_____leq},
+  {(bigint) kernel___Comparable_____geq},
+  {(bigint) kernel___Comparable_____g},
+  {(bigint) kernel___Comparable_____leqg},
+  {(bigint) kernel___Comparable___is_between},
+  {(bigint) kernel___Comparable___max},
+  {(bigint) kernel___Comparable___min},
+  {(bigint) 2 /* 60: Message < Message: superclass init_table position */},
+  {(bigint) mmloader___Message___location},
+  {(bigint) mmloader___Message___text},
+  {(bigint) mmloader___Message___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Message::_location */
+/* 3: Attribute Message::_text */
+void INIT_ATTRIBUTES__Message(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Message;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Message(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_Message;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Message(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Message;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_mmloader___Message____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_text");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Message_mmloader___Message___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_Message_mmloader___Message___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_Message();
+  INIT_ATTRIBUTES__Message(fra.me.REG[2]);
+  mmloader___Message___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_Message(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ToolContext[97] = {
+  {(bigint) 247 /* 0: Identity */},
+  {(bigint) 33 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ToolContext < Object: superclass typecheck marker */},
+  {(bigint) 127 /* 3: ToolContext < MMContext: superclass typecheck marker */},
+  {(bigint) 247 /* 4: ToolContext < ToolContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ToolContext < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ToolContext < MMContext: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMContext___init},
+  {(bigint) abstractmetamodel___MMContext___module_hierarchy},
+  {(bigint) abstractmetamodel___MMContext___class_hierarchy},
+  {(bigint) abstractmetamodel___MMContext___modules},
+  {(bigint) abstractmetamodel___MMContext___add_module},
+  {(bigint) abstractmetamodel___MMContext___add_global_class},
+  {(bigint) abstractmetamodel___MMContext___add_local_class},
+  {(bigint) syntax___ToolContext___keep_ast},
+  {(bigint) syntax___ToolContext___keep_ast__eq},
+  {(bigint) 2 /* 55: ToolContext < ToolContext: superclass init_table position */},
+  {(bigint) mmloader___ToolContext___error_count},
+  {(bigint) mmloader___ToolContext___warning_count},
+  {(bigint) mmloader___ToolContext___check_errors},
+  {(bigint) mmloader___ToolContext___error},
+  {(bigint) mmloader___ToolContext___fatal_error},
+  {(bigint) mmloader___ToolContext___warning},
+  {(bigint) mmloader___ToolContext___info},
+  {(bigint) mmloader___ToolContext___paths},
+  {(bigint) mmloader___ToolContext___option_context},
+  {(bigint) mmloader___ToolContext___opt_warn},
+  {(bigint) mmloader___ToolContext___opt_path},
+  {(bigint) mmloader___ToolContext___opt_log},
+  {(bigint) mmloader___ToolContext___opt_only_metamodel},
+  {(bigint) mmloader___ToolContext___opt_only_parse},
+  {(bigint) mmloader___ToolContext___opt_help},
+  {(bigint) mmloader___ToolContext___opt_version},
+  {(bigint) mmloader___ToolContext___opt_verbose},
+  {(bigint) mmloader___ToolContext___verbose_level},
+  {(bigint) mmloader___ToolContext___init},
+  {(bigint) mmloader___ToolContext___process_options},
+  {(bigint) mmloader___ToolContext___try_to_load},
+  {(bigint) mmloader___ToolContext___get_module_from_filename},
+  {(bigint) mmloader___ToolContext___get_module},
+  {(bigint) mmloader___ToolContext___directory_for},
+  {(bigint) mmloader___ToolContext___register_loader},
+  {(bigint) compiling_base___ToolContext___global},
+  {(bigint) compiling_base___ToolContext___global__eq},
+  {(bigint) compiling_base___ToolContext___compdir},
+  {(bigint) compiling_base___ToolContext___compdir__eq},
+  {(bigint) compiling_base___ToolContext___clibdir},
+  {(bigint) compiling_base___ToolContext___clibdir__eq},
+  {(bigint) compiling_base___ToolContext___bindir},
+  {(bigint) compiling_base___ToolContext___bindir__eq},
+  {(bigint) compiling_base___ToolContext___output_file},
+  {(bigint) compiling_base___ToolContext___output_file__eq},
+  {(bigint) compiling_base___ToolContext___boost},
+  {(bigint) compiling_base___ToolContext___boost__eq},
+  {(bigint) compiling_base___ToolContext___no_cc},
+  {(bigint) compiling_base___ToolContext___no_cc__eq},
+  {(bigint) compiling_base___ToolContext___ext_prefix},
+  {(bigint) compiling_base___ToolContext___ext_prefix__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ToolContext::_module_hierarchy */
+/* 3: Attribute ToolContext::_class_hierarchy */
+/* 4: Attribute ToolContext::_global_classes */
+/* 5: Attribute ToolContext::_modules */
+/* 6: Attribute ToolContext::_keep_ast */
+/* 7: Attribute ToolContext::_error_count */
+/* 8: Attribute ToolContext::_warning_count */
+/* 9: Attribute ToolContext::_messages */
+/* 10: Attribute ToolContext::_message_sorter */
+/* 11: Attribute ToolContext::_paths */
+/* 12: Attribute ToolContext::_loaders */
+/* 13: Attribute ToolContext::_option_context */
+/* 14: Attribute ToolContext::_opt_warn */
+/* 15: Attribute ToolContext::_opt_path */
+/* 16: Attribute ToolContext::_opt_log */
+/* 17: Attribute ToolContext::_opt_only_metamodel */
+/* 18: Attribute ToolContext::_opt_only_parse */
+/* 19: Attribute ToolContext::_opt_help */
+/* 20: Attribute ToolContext::_opt_version */
+/* 21: Attribute ToolContext::_opt_verbose */
+/* 22: Attribute ToolContext::_verbose_level */
+/* 23: Attribute ToolContext::_processing_modules */
+/* 24: Attribute ToolContext::_path_dirs */
+/* 25: Attribute ToolContext::_global */
+/* 26: Attribute ToolContext::_compdir */
+/* 27: Attribute ToolContext::_clibdir */
+/* 28: Attribute ToolContext::_bindir */
+/* 29: Attribute ToolContext::_output_file */
+/* 30: Attribute ToolContext::_boost */
+/* 31: Attribute ToolContext::_no_cc */
+/* 32: Attribute ToolContext::_ext_prefix */
+void INIT_ATTRIBUTES__ToolContext(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 */
+  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_21; /* Once value */
+  static val_t once_value_22; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ToolContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  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] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:29 */
+  ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:32 */
+  ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:36 */
+  ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:39 */
+  ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:52 */
+  ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:55 */
+  ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:58 */
+  ATTR_mmloader___ToolContext____messages(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ComparableSorter_sorter___ComparableSorter___init();
+  /* ./mmloader.nit:60 */
+  ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:111 */
+  ATTR_mmloader___ToolContext____paths(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:114 */
+  ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_OptionContext_opts___OptionContext___init();
+  /* ./mmloader.nit:117 */
+  ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:121 */
+  if (!once_value_1) {
+    fra.me.REG[1] = BOX_NativeString("Show warnings");
+    REGB0 = TAG_Int(13);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_1 = fra.me.REG[1];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[1] = once_value_1;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_2) {
+    fra.me.REG[3] = BOX_NativeString("-W");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(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;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_3) {
+    fra.me.REG[3] = BOX_NativeString("--warn");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(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;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:120 */
+  ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:124 */
+  if (!once_value_4) {
+    fra.me.REG[2] = BOX_NativeString("Set include path for loaders (may be used more than once)");
+    REGB0 = TAG_Int(57);
+    fra.me.REG[2] = NEW_String_string___String___with_native(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;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_5) {
+    fra.me.REG[3] = BOX_NativeString("-I");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_5 = fra.me.REG[3];
+    register_static_object(&once_value_5);
+  } else fra.me.REG[3] = once_value_5;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_6) {
+    fra.me.REG[3] = BOX_NativeString("--path");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_6 = fra.me.REG[3];
+    register_static_object(&once_value_6);
+  } else fra.me.REG[3] = once_value_6;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:123 */
+  ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:127 */
+  if (!once_value_7) {
+    fra.me.REG[1] = BOX_NativeString("Generate various log files");
+    REGB0 = TAG_Int(26);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_7 = fra.me.REG[1];
+    register_static_object(&once_value_7);
+  } else fra.me.REG[1] = once_value_7;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_8) {
+    fra.me.REG[3] = BOX_NativeString("--log");
+    REGB0 = TAG_Int(5);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_8 = fra.me.REG[3];
+    register_static_object(&once_value_8);
+  } else fra.me.REG[3] = once_value_8;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:126 */
+  ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:130 */
+  if (!once_value_9) {
+    fra.me.REG[2] = BOX_NativeString("Stop after meta-model processing");
+    REGB0 = TAG_Int(32);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_9 = fra.me.REG[2];
+    register_static_object(&once_value_9);
+  } else fra.me.REG[2] = once_value_9;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_10) {
+    fra.me.REG[3] = BOX_NativeString("--only-metamodel");
+    REGB0 = TAG_Int(16);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_10 = fra.me.REG[3];
+    register_static_object(&once_value_10);
+  } else fra.me.REG[3] = once_value_10;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:129 */
+  ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:133 */
+  if (!once_value_11) {
+    fra.me.REG[1] = BOX_NativeString("Only proceed to parse step of loaders");
+    REGB0 = TAG_Int(37);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_11 = fra.me.REG[1];
+    register_static_object(&once_value_11);
+  } else fra.me.REG[1] = once_value_11;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_12) {
+    fra.me.REG[3] = BOX_NativeString("--only-parse");
+    REGB0 = TAG_Int(12);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_12 = fra.me.REG[3];
+    register_static_object(&once_value_12);
+  } else fra.me.REG[3] = once_value_12;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:132 */
+  ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:136 */
+  if (!once_value_13) {
+    fra.me.REG[2] = BOX_NativeString("Show Help (This screen)");
+    REGB0 = TAG_Int(23);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_13 = fra.me.REG[2];
+    register_static_object(&once_value_13);
+  } else fra.me.REG[2] = once_value_13;
+  REGB0 = TAG_Int(2);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_14) {
+    fra.me.REG[3] = BOX_NativeString("-h");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_14 = fra.me.REG[3];
+    register_static_object(&once_value_14);
+  } else fra.me.REG[3] = once_value_14;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_15) {
+    fra.me.REG[3] = BOX_NativeString("-?");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_15 = fra.me.REG[3];
+    register_static_object(&once_value_15);
+  } else fra.me.REG[3] = once_value_15;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_16) {
+    fra.me.REG[3] = BOX_NativeString("--help");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_16 = fra.me.REG[3];
+    register_static_object(&once_value_16);
+  } else fra.me.REG[3] = once_value_16;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:135 */
+  ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:139 */
+  if (!once_value_17) {
+    fra.me.REG[1] = BOX_NativeString("Show version and exit");
+    REGB0 = TAG_Int(21);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_17 = fra.me.REG[1];
+    register_static_object(&once_value_17);
+  } else fra.me.REG[1] = once_value_17;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_18) {
+    fra.me.REG[3] = BOX_NativeString("--version");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_18 = fra.me.REG[3];
+    register_static_object(&once_value_18);
+  } else fra.me.REG[3] = once_value_18;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:138 */
+  ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:142 */
+  if (!once_value_19) {
+    fra.me.REG[2] = BOX_NativeString("Verbose");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_19 = fra.me.REG[2];
+    register_static_object(&once_value_19);
+  } else fra.me.REG[2] = once_value_19;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_20) {
+    fra.me.REG[3] = BOX_NativeString("-v");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_20 = fra.me.REG[3];
+    register_static_object(&once_value_20);
+  } else fra.me.REG[3] = once_value_20;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_21) {
+    fra.me.REG[3] = BOX_NativeString("--verbose");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_21 = fra.me.REG[3];
+    register_static_object(&once_value_21);
+  } else fra.me.REG[3] = once_value_21;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:141 */
+  ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:144 */
+  ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./mmloader.nit:220 */
+  ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./mmloader.nit:288 */
+  ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//syntax.nit:85 */
+  ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:25 */
+  ATTR_compiling_base___ToolContext____global(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:26 */
+  ATTR_compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:27 */
+  ATTR_compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:28 */
+  ATTR_compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:29 */
+  ATTR_compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:30 */
+  ATTR_compiling_base___ToolContext____boost(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:31 */
+  ATTR_compiling_base___ToolContext____no_cc(fra.me.REG[0]) = REGB0;
+  /* ./compiling//compiling_base.nit:32 */
+  if (!once_value_22) {
+    fra.me.REG[1] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_22 = fra.me.REG[1];
+    register_static_object(&once_value_22);
+  } else fra.me.REG[1] = once_value_22;
+  ATTR_compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ToolContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 33);
+  obj->vft = (classtable_elt_t*)VFT_ToolContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ToolContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ToolContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_error_count");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_warning_count");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_messages");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_message_sorter");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_paths");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_loaders");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_option_context");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_warn");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_path");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_log");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_only_metamodel");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_only_parse");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_help");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_version");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_verbose");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_verbose_level");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_processing_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_path_dirs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_keep_ast");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____boost(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_boost");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____no_cc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_no_cc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____ext_prefix(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_ext_prefix");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ToolContext_mmloader___ToolContext___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 147;
+  fra.me.meth = LOCATE_NEW_ToolContext_mmloader___ToolContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ToolContext();
+  /* ./mmloader.nit:147 */
+  INIT_ATTRIBUTES__ToolContext(fra.me.REG[0]);
+  mmloader___ToolContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_ToolContext(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ModuleLoader[54] = {
+  {(bigint) 87 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ModuleLoader < Object: superclass typecheck marker */},
+  {(bigint) 87 /* 3: ModuleLoader < ModuleLoader: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ModuleLoader < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ModuleLoader < ModuleLoader: superclass init_table position */},
+  {(bigint) mmloader___ModuleLoader___file_type},
+  {(bigint) mmloader___ModuleLoader___try_to_load_dir},
+  {(bigint) mmloader___ModuleLoader___can_handle},
+  {(bigint) mmloader___ModuleLoader___load_and_process_module},
+  {(bigint) mmloader___ModuleLoader___load_module},
+  {(bigint) mmloader___ModuleLoader___parse_file},
+  {(bigint) mmloader___ModuleLoader___process_metamodel},
+  {(bigint) mmloader___ModuleLoader___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ModuleLoader(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ModuleLoader;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ModuleLoader(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ModuleLoader;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ModuleLoader(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ModuleLoader;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ModuleLoader_mmloader___ModuleLoader___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ModuleLoader_mmloader___ModuleLoader___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ModuleLoader();
+  INIT_ATTRIBUTES__ModuleLoader(fra.me.REG[0]);
+  mmloader___ModuleLoader___init(fra.me.REG[0], init_table);
+  CHECKNEW_ModuleLoader(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_MMSrcModule[91] = {
+  {(bigint) 5135 /* 0: Identity */},
+  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMSrcModule < Object: superclass typecheck marker */},
+  {(bigint) 103 /* 3: MMSrcModule < MMModule: superclass typecheck marker */},
+  {(bigint) 5135 /* 4: MMSrcModule < MMSrcModule: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMSrcModule < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMModule___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) abstracttool___MMModule___dump_module_info},
+  {(bigint) syntax_base___MMSrcModule___nodes},
+  {(bigint) syntax_base___MMSrcModule___nodes__eq},
+  {(bigint) mmloader___MMModule___import_supers_modules},
+  {(bigint) inheritance___MMModule___type_any},
+  {(bigint) inheritance___MMModule___import_global_classes},
+  {(bigint) inheritance___MMModule___import_local_classes},
+  {(bigint) static_type___MMModule___type_none},
+  {(bigint) static_type___MMModule___type_bool},
+  {(bigint) 1 /* 54: MMSrcModule < MMModule: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMModule___context},
+  {(bigint) abstractmetamodel___MMModule___name},
+  {(bigint) abstractmetamodel___MMModule___full_name},
+  {(bigint) abstractmetamodel___MMModule___directory},
+  {(bigint) abstractmetamodel___MMModule___location},
+  {(bigint) abstractmetamodel___MMModule___mhe},
+  {(bigint) abstractmetamodel___MMModule___global_classes},
+  {(bigint) abstractmetamodel___MMModule___local_classes},
+  {(bigint) abstractmetamodel___MMModule___class_specialization_hierarchy},
+  {(bigint) abstractmetamodel___MMModule___explicit_imported_modules},
+  {(bigint) abstractmetamodel___MMModule___init},
+  {(bigint) abstractmetamodel___MMModule___add_super_module},
+  {(bigint) abstractmetamodel___MMModule___visibility_for},
+  {(bigint) abstractmetamodel___MMModule_____bra},
+  {(bigint) abstractmetamodel___MMModule___class_by_name},
+  {(bigint) abstractmetamodel___MMModule___has_global_class_named},
+  {(bigint) abstractmetamodel___MMModule___global_class_named},
+  {(bigint) abstractmetamodel___MMModule___set_supers_class},
+  {(bigint) abstractmetamodel___MMModule___register_global_class},
+  {(bigint) compiling___MMModule___compile_separate_module},
+  {(bigint) compiling_global___MMModule___declare_class_tables_to_c},
+  {(bigint) compiling_global___MMModule___compile_mod_to_c},
+  {(bigint) compiling_global___MMModule___compile_local_table_to_c},
+  {(bigint) table_computation___MMModule___local_table},
+  {(bigint) table_computation___MMModule___local_analysis},
+  {(bigint) syntax___MMSrcModule___process_supermodules},
+  {(bigint) syntax___MMSrcModule___process_syntax},
+  {(bigint) mmbuilder___MMSrcModule___do_mmbuilder},
+  {(bigint) mmbuilder___MMSrcModule___process_default_classes},
+  {(bigint) 2 /* 84: MMSrcModule < MMSrcModule: superclass init_table position */},
+  {(bigint) syntax_base___MMSrcModule___clear_ast},
+  {(bigint) syntax_base___MMSrcModule___node},
+  {(bigint) syntax_base___MMSrcModule___src_local_classes},
+  {(bigint) syntax_base___MMSrcModule___init},
+  {(bigint) icode_generation___MMSrcModule___generate_icode},
+  {(bigint) typing___MMSrcModule___do_typing},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMSrcModule::_type_none */
+/* 3: Attribute MMSrcModule::_context */
+/* 4: Attribute MMSrcModule::_name */
+/* 5: Attribute MMSrcModule::_full_name */
+/* 6: Attribute MMSrcModule::_directory */
+/* 7: Attribute MMSrcModule::_location */
+/* 8: Attribute MMSrcModule::_mhe */
+/* 9: Attribute MMSrcModule::_global_classes */
+/* 10: Attribute MMSrcModule::_local_classes */
+/* 11: Attribute MMSrcModule::_class_specialization_hierarchy */
+/* 12: Attribute MMSrcModule::_intrude_modules */
+/* 13: Attribute MMSrcModule::_public_modules */
+/* 14: Attribute MMSrcModule::_private_modules */
+/* 15: Attribute MMSrcModule::_explicit_imported_modules */
+/* 16: Attribute MMSrcModule::_local_class_by_global */
+/* 17: Attribute MMSrcModule::_global_class_by_name */
+/* 18: Attribute MMSrcModule::_local_table */
+/* 19: Attribute MMSrcModule::_nodes */
+/* 20: Attribute MMSrcModule::_src_local_classes */
+void INIT_ATTRIBUTES__MMSrcModule(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMSrcModule;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:130 */
+  ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:133 */
+  ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:136 */
+  ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:139 */
+  ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:142 */
+  ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:145 */
+  ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:148 */
+  ATTR_abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:151 */
+  ATTR_abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:154 */
+  ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = fra.me.REG[0];
+  fra.me.REG[1] = NEW_MMTypeNone_static_type___MMTypeNone___init(fra.me.REG[1]);
+  /* ./metamodel//static_type.nit:498 */
+  ATTR_static_type___MMModule____type_none(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./syntax//syntax_base.nit:26 */
+  ATTR_syntax_base___MMSrcModule____nodes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:401 */
+  ATTR_table_computation___MMModule____local_table(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcModule(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 21);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcModule;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMSrcModule(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMSrcModule;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_context");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____full_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_full_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____directory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_directory");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____location(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_location");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_specialization_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_intrude_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_public_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_private_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_explicit_imported_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class_by_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_class_by_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMModule____type_none(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_type_none");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMSrcModule____src_local_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_src_local_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___MMModule____local_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcModule_syntax_base___MMSrcModule___init(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[5];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 40;
+  fra.me.meth = LOCATE_NEW_MMSrcModule_syntax_base___MMSrcModule___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = NEW_MMSrcModule();
+  /* ./syntax//syntax_base.nit:40 */
+  INIT_ATTRIBUTES__MMSrcModule(fra.me.REG[5]);
+  syntax_base___MMSrcModule___init(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_MMSrcModule(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+const classtable_elt_t VFT_MMSrcLocalClass[120] = {
+  {(bigint) 5771 /* 0: Identity */},
+  {(bigint) 30 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMSrcLocalClass < Object: superclass typecheck marker */},
+  {(bigint) 111 /* 3: MMSrcLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 5167 /* 4: MMSrcLocalClass < MMConcreteClass: superclass typecheck marker */},
+  {(bigint) 5771 /* 5: MMSrcLocalClass < MMSrcLocalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMSrcLocalClass < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalClass___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) abstracttool___MMLocalClass___dump_properties},
+  {(bigint) mmbuilder___MMSrcLocalClass___accept_class_visitor},
+  {(bigint) mmbuilder___MMSrcLocalClass___accept_properties_visitor},
+  {(bigint) genericity___MMLocalClass___get_formal},
+  {(bigint) genericity___MMLocalClass___register_formal},
+  {(bigint) genericity___MMLocalClass___get_instantiate_type},
+  {(bigint) genericity___MMLocalClass___formals_types},
+  {(bigint) static_type___MMLocalClass___get_type},
+  {(bigint) genericity___MMLocalClass___is_generic},
+  {(bigint) inheritance___MMLocalClass___compute_super_classes},
+  {(bigint) inheritance___MMLocalClass___compute_ancestors},
+  {(bigint) inheritance___MMLocalClass___inherit_global_properties},
+  {(bigint) inheritance___MMLocalClass___make_visible_an_inherited_global_property},
+  {(bigint) inheritance___MMLocalClass___add_direct_parent},
+  {(bigint) inheritance___MMLocalClass___computed_super_classes},
+  {(bigint) inheritance___MMLocalClass___computed_ancestors},
+  {(bigint) inheritance___MMLocalClass___ancestor_for},
+  {(bigint) inheritance___MMLocalClass___add_default_any_class},
+  {(bigint) inheritance___MMLocalClass___add_super_classes},
+  {(bigint) inheritance___MMLocalClass___add_explicit_classes},
+  {(bigint) inheritance___MMLocalClass___compute_super_parents},
+  {(bigint) inheritance___MMLocalClass___build_ancestors},
+  {(bigint) inheritance___MMLocalClass___group_ancestors},
+  {(bigint) inheritance___MMLocalClass___merge_ancestors},
+  {(bigint) inheritance___MMLocalClass___inherit_local_property},
+  {(bigint) genericity___MMLocalClass___get_type},
+  {(bigint) static_type___MMLocalClass___add_ancestor},
+  {(bigint) static_type___MMLocalClass___ancestors},
+  {(bigint) static_type___MMLocalClass___ancestor},
+  {(bigint) 1 /* 74: MMSrcLocalClass < MMLocalClass: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalClass___name},
+  {(bigint) abstractmetamodel___MMLocalClass___arity},
+  {(bigint) abstractmetamodel___MMLocalClass___module},
+  {(bigint) abstractmetamodel___MMLocalClass___global},
+  {(bigint) abstractmetamodel___MMLocalClass___crhe},
+  {(bigint) abstractmetamodel___MMLocalClass___cshe},
+  {(bigint) abstractmetamodel___MMLocalClass___che},
+  {(bigint) abstractmetamodel___MMLocalClass___global_properties},
+  {(bigint) abstractmetamodel___MMLocalClass___local_local_properties},
+  {(bigint) abstractmetamodel___MMLocalClass___init},
+  {(bigint) abstractmetamodel___MMLocalClass___for_module},
+  {(bigint) abstractmetamodel___MMLocalClass___new_global},
+  {(bigint) abstractmetamodel___MMLocalClass___set_global},
+  {(bigint) abstractmetamodel___MMLocalClass___has_global_property_by_name},
+  {(bigint) abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(bigint) abstractmetamodel___MMLocalClass___attribute},
+  {(bigint) abstractmetamodel___MMLocalClass___method},
+  {(bigint) abstractmetamodel___MMLocalClass___select_method},
+  {(bigint) abstractmetamodel___MMLocalClass___select_attribute},
+  {(bigint) abstractmetamodel___MMLocalClass___super_methods_named},
+  {(bigint) abstractmetamodel___MMLocalClass___register_local_property},
+  {(bigint) abstractmetamodel___MMLocalClass___register_global_property},
+  {(bigint) abstractmetamodel___MMLocalClass___has_global_property},
+  {(bigint) inheritance___MMLocalClass_____bra},
+  {(bigint) abstractmetamodel___MMLocalClass___context},
+  {(bigint) virtualtype___MMLocalClass___virtual_type},
+  {(bigint) virtualtype___MMLocalClass___select_virtual_type},
+  {(bigint) primitive_info___MMLocalClass___primitive_info},
+  {(bigint) primitive_info___MMLocalClass___primitive_ctypes},
+  {(bigint) compiling_global___MMLocalClass___declare_tables_to_c},
+  {(bigint) compiling_global___MMLocalClass___generate_allocation_iroutines},
+  {(bigint) compiling_global___MMLocalClass___compile_tables_to_c},
+  {(bigint) table_computation___MMLocalClass___compare},
+  {(bigint) table_computation___MMConcreteClass___class_color_pos},
+  {(bigint) table_computation___MMConcreteClass___class_layout},
+  {(bigint) table_computation___MMConcreteClass___instance_layout},
+  {(bigint) table_computation___MMConcreteClass___build_layout_in},
+  {(bigint) 2 /* 112: MMSrcLocalClass < MMConcreteClass: superclass init_table position */},
+  {(bigint) mmbuilder___MMSrcLocalClass___process_default_constructors},
+  {(bigint) mmbuilder___MMSrcLocalClass___add_src_local_property},
+  {(bigint) 3 /* 115: MMSrcLocalClass < MMSrcLocalClass: superclass init_table position */},
+  {(bigint) syntax_base___MMSrcLocalClass___node},
+  {(bigint) syntax_base___MMSrcLocalClass___formal_dict},
+  {(bigint) syntax_base___MMSrcLocalClass___src_local_properties},
+  {(bigint) syntax_base___MMSrcLocalClass___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMSrcLocalClass::_types */
+/* 3: Attribute MMSrcLocalClass::_formals_types */
+/* 4: Attribute MMSrcLocalClass::_direct_parents */
+/* 5: Attribute MMSrcLocalClass::_computing_super */
+/* 6: Attribute MMSrcLocalClass::_are_global_properties_inherited */
+/* 7: Attribute MMSrcLocalClass::_base_type_cache */
+/* 8: Attribute MMSrcLocalClass::_ancestors */
+/* 9: Attribute MMSrcLocalClass::_name */
+/* 10: Attribute MMSrcLocalClass::_arity */
+/* 11: Attribute MMSrcLocalClass::_module */
+/* 12: Attribute MMSrcLocalClass::_global */
+/* 13: Attribute MMSrcLocalClass::_crhe */
+/* 14: Attribute MMSrcLocalClass::_cshe */
+/* 15: Attribute MMSrcLocalClass::_che */
+/* 16: Attribute MMSrcLocalClass::_local_property_by_global */
+/* 17: Attribute MMSrcLocalClass::_global_properties */
+/* 18: Attribute MMSrcLocalClass::_local_local_properties */
+/* 19: Attribute MMSrcLocalClass::_properties_by_name */
+/* 20: Attribute MMSrcLocalClass::_primitive_info_cache */
+/* 21: Attribute MMSrcLocalClass::_primitive_info_b */
+/* 22: Attribute MMSrcLocalClass::_init_var_iroutine */
+/* 23: Attribute MMSrcLocalClass::_checknew_iroutine */
+/* 24: Attribute MMSrcLocalClass::_new_instance_iroutine */
+/* 25: Attribute MMSrcLocalClass::_class_color_pos */
+/* 26: Attribute MMSrcLocalClass::_class_layout */
+/* 27: Attribute MMSrcLocalClass::_instance_layout */
+/* 28: Attribute MMSrcLocalClass::_formal_dict */
+/* 29: Attribute MMSrcLocalClass::_src_local_properties */
+void INIT_ATTRIBUTES__MMSrcLocalClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMSrcLocalClass;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:353 */
+  ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:356 */
+  ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./metamodel//abstractmetamodel.nit:359 */
+  ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//abstractmetamodel.nit:362 */
+  ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//inheritance.nit:57 */
+  ATTR_inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//inheritance.nit:60 */
+  ATTR_inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//inheritance.nit:109 */
+  ATTR_inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//genericity.nit:40 */
+  ATTR_genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//genericity.nit:54 */
+  ATTR_genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./syntax//syntax_base.nit:90 */
+  ATTR_syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./primitive_info.nit:25 */
+  ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./primitive_info.nit:28 */
+  ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:89 */
+  ATTR_table_computation___MMConcreteClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:92 */
+  ATTR_table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_global.nit:330 */
+  ATTR_compiling_global___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_global.nit:332 */
+  ATTR_compiling_global___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_global.nit:334 */
+  ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcLocalClass(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 30);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcLocalClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMSrcLocalClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMSrcLocalClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_arity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_property_by_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_local_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_properties_by_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_direct_parents");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_computing_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_are_global_properties_inherited");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_formals_types");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_formal_dict");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_src_local_properties");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_primitive_info_b");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_layout");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_instance_layout");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_global___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_new_instance_iroutine");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 96;
+  fra.me.meth = LOCATE_NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  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;
+  fra.me.REG[3] = NEW_MMSrcLocalClass();
+  /* ./syntax//syntax_base.nit:96 */
+  INIT_ATTRIBUTES__MMSrcLocalClass(fra.me.REG[3]);
+  syntax_base___MMSrcLocalClass___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
+  CHECKNEW_MMSrcLocalClass(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMSrcAttribute[73] = {
+  {(bigint) 5775 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMSrcAttribute < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMSrcAttribute < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5171 /* 4: MMSrcAttribute < MMAttribute: superclass typecheck marker */},
+  {(bigint) 5775 /* 5: MMSrcAttribute < MMSrcAttribute: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMSrcAttribute < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMSrcAttribute___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMSrcAttribute < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) icode_generation___MMSrcAttribute___iroutine},
+  {(bigint) 2 /* 68: MMSrcAttribute < MMAttribute: superclass init_table position */},
+  {(bigint) icode_generation___MMSrcAttribute___iroutine__eq},
+  {(bigint) icode_generation___MMSrcAttribute___generate_iroutine},
+  {(bigint) 3 /* 71: MMSrcAttribute < MMSrcAttribute: superclass init_table position */},
+  {(bigint) syntax_base___MMSrcAttribute___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMSrcAttribute::_signature */
+/* 3: Attribute MMSrcAttribute::_signatures_cache */
+/* 4: Attribute MMSrcAttribute::_name */
+/* 5: Attribute MMSrcAttribute::_local_class */
+/* 6: Attribute MMSrcAttribute::_global */
+/* 7: Attribute MMSrcAttribute::_prhe */
+/* 8: Attribute MMSrcAttribute::_need_super */
+/* 9: Attribute MMSrcAttribute::_cname_cache */
+/* 10: Attribute MMSrcAttribute::_iroutine */
+void INIT_ATTRIBUTES__MMSrcAttribute(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMSrcAttribute;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcAttribute(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcAttribute;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMSrcAttribute(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMSrcAttribute;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 139;
+  fra.me.meth = LOCATE_NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMSrcAttribute();
+  /* ./syntax//syntax_base.nit:139 */
+  INIT_ATTRIBUTES__MMSrcAttribute(fra.me.REG[3]);
+  syntax_base___MMSrcAttribute___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMSrcAttribute(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMSrcMethod[76] = {
+  {(bigint) 5767 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMSrcMethod < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMSrcMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5155 /* 4: MMSrcMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 5767 /* 5: MMSrcMethod < MMSrcMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMSrcMethod < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMLocalProperty___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMSrcMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) compiling_global___MMMethod___compile_property_to_c},
+  {(bigint) icode_generation___MMSrcMethod___iroutine},
+  {(bigint) 2 /* 69: MMSrcMethod < MMMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMSrcMethod___is_intern},
+  {(bigint) syntax_base___MMSrcMethod___is_abstract},
+  {(bigint) icode_generation___MMSrcMethod___iroutine__eq},
+  {(bigint) icode_generation___MMSrcMethod___generate_iroutine},
+  {(bigint) icode_generation___MMSrcMethod___inner_generate_iroutine},
+  {(bigint) 3 /* 75: MMSrcMethod < MMSrcMethod: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMSrcMethod::_signature */
+/* 3: Attribute MMSrcMethod::_signatures_cache */
+/* 4: Attribute MMSrcMethod::_name */
+/* 5: Attribute MMSrcMethod::_local_class */
+/* 6: Attribute MMSrcMethod::_global */
+/* 7: Attribute MMSrcMethod::_prhe */
+/* 8: Attribute MMSrcMethod::_need_super */
+/* 9: Attribute MMSrcMethod::_cname_cache */
+/* 10: Attribute MMSrcMethod::_iroutine */
+void INIT_ATTRIBUTES__MMSrcMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMSrcMethod;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcMethod(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcMethod;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMSrcMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMSrcMethod;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcMethod_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 622;
+  fra.me.meth = LOCATE_NEW_MMSrcMethod_abstractmetamodel___MMLocalProperty___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_MMSrcMethod();
+  /* ./metamodel//abstractmetamodel.nit:622 */
+  INIT_ATTRIBUTES__MMSrcMethod(fra.me.REG[2]);
+  abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_MMSrcMethod(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_MMAttrImplementationMethod[78] = {
+  {(bigint) 6051 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMAttrImplementationMethod < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMAttrImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5155 /* 4: MMAttrImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 5767 /* 5: MMAttrImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 6051 /* 6: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMAttrImplementationMethod < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMAttrImplementationMethod___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMAttrImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) compiling_global___MMMethod___compile_property_to_c},
+  {(bigint) icode_generation___MMSrcMethod___iroutine},
+  {(bigint) 2 /* 69: MMAttrImplementationMethod < MMMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMSrcMethod___is_intern},
+  {(bigint) syntax_base___MMSrcMethod___is_abstract},
+  {(bigint) icode_generation___MMSrcMethod___iroutine__eq},
+  {(bigint) icode_generation___MMSrcMethod___generate_iroutine},
+  {(bigint) icode_generation___MMSrcMethod___inner_generate_iroutine},
+  {(bigint) 3 /* 75: MMAttrImplementationMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) 4 /* 76: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMAttrImplementationMethod___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMAttrImplementationMethod::_signature */
+/* 3: Attribute MMAttrImplementationMethod::_signatures_cache */
+/* 4: Attribute MMAttrImplementationMethod::_name */
+/* 5: Attribute MMAttrImplementationMethod::_local_class */
+/* 6: Attribute MMAttrImplementationMethod::_global */
+/* 7: Attribute MMAttrImplementationMethod::_prhe */
+/* 8: Attribute MMAttrImplementationMethod::_need_super */
+/* 9: Attribute MMAttrImplementationMethod::_cname_cache */
+/* 10: Attribute MMAttrImplementationMethod::_iroutine */
+void INIT_ATTRIBUTES__MMAttrImplementationMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMAttrImplementationMethod;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMAttrImplementationMethod(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_MMAttrImplementationMethod;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMAttrImplementationMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMAttrImplementationMethod;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMAttrImplementationMethod_syntax_base___MMAttrImplementationMethod___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 157;
+  fra.me.meth = LOCATE_NEW_MMAttrImplementationMethod_syntax_base___MMAttrImplementationMethod___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMAttrImplementationMethod();
+  /* ./syntax//syntax_base.nit:157 */
+  INIT_ATTRIBUTES__MMAttrImplementationMethod(fra.me.REG[3]);
+  syntax_base___MMAttrImplementationMethod___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMAttrImplementationMethod(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMReadImplementationMethod[80] = {
+  {(bigint) 6391 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMReadImplementationMethod < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMReadImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5155 /* 4: MMReadImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 5767 /* 5: MMReadImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 6051 /* 6: MMReadImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(bigint) 6391 /* 7: MMReadImplementationMethod < MMReadImplementationMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMReadImplementationMethod < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMAttrImplementationMethod___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMReadImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) compiling_global___MMMethod___compile_property_to_c},
+  {(bigint) icode_generation___MMSrcMethod___iroutine},
+  {(bigint) 2 /* 69: MMReadImplementationMethod < MMMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMSrcMethod___is_intern},
+  {(bigint) syntax_base___MMSrcMethod___is_abstract},
+  {(bigint) icode_generation___MMSrcMethod___iroutine__eq},
+  {(bigint) icode_generation___MMSrcMethod___generate_iroutine},
+  {(bigint) icode_generation___MMReadImplementationMethod___inner_generate_iroutine},
+  {(bigint) 3 /* 75: MMReadImplementationMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) 4 /* 76: MMReadImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMAttrImplementationMethod___init},
+  {(bigint) 5 /* 78: MMReadImplementationMethod < MMReadImplementationMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMReadImplementationMethod___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMReadImplementationMethod::_signature */
+/* 3: Attribute MMReadImplementationMethod::_signatures_cache */
+/* 4: Attribute MMReadImplementationMethod::_name */
+/* 5: Attribute MMReadImplementationMethod::_local_class */
+/* 6: Attribute MMReadImplementationMethod::_global */
+/* 7: Attribute MMReadImplementationMethod::_prhe */
+/* 8: Attribute MMReadImplementationMethod::_need_super */
+/* 9: Attribute MMReadImplementationMethod::_cname_cache */
+/* 10: Attribute MMReadImplementationMethod::_iroutine */
+void INIT_ATTRIBUTES__MMReadImplementationMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMReadImplementationMethod;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMReadImplementationMethod(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_MMReadImplementationMethod;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMReadImplementationMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMReadImplementationMethod;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 167;
+  fra.me.meth = LOCATE_NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMReadImplementationMethod();
+  /* ./syntax//syntax_base.nit:167 */
+  INIT_ATTRIBUTES__MMReadImplementationMethod(fra.me.REG[3]);
+  syntax_base___MMReadImplementationMethod___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMReadImplementationMethod(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMWriteImplementationMethod[80] = {
+  {(bigint) 6387 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMWriteImplementationMethod < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMWriteImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5155 /* 4: MMWriteImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 5767 /* 5: MMWriteImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 6051 /* 6: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(bigint) 6387 /* 7: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMWriteImplementationMethod < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMAttrImplementationMethod___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMWriteImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) compiling_global___MMMethod___compile_property_to_c},
+  {(bigint) icode_generation___MMSrcMethod___iroutine},
+  {(bigint) 2 /* 69: MMWriteImplementationMethod < MMMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMSrcMethod___is_intern},
+  {(bigint) syntax_base___MMSrcMethod___is_abstract},
+  {(bigint) icode_generation___MMSrcMethod___iroutine__eq},
+  {(bigint) icode_generation___MMSrcMethod___generate_iroutine},
+  {(bigint) icode_generation___MMWriteImplementationMethod___inner_generate_iroutine},
+  {(bigint) 3 /* 75: MMWriteImplementationMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) 4 /* 76: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMAttrImplementationMethod___init},
+  {(bigint) 5 /* 78: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMWriteImplementationMethod___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMWriteImplementationMethod::_signature */
+/* 3: Attribute MMWriteImplementationMethod::_signatures_cache */
+/* 4: Attribute MMWriteImplementationMethod::_name */
+/* 5: Attribute MMWriteImplementationMethod::_local_class */
+/* 6: Attribute MMWriteImplementationMethod::_global */
+/* 7: Attribute MMWriteImplementationMethod::_prhe */
+/* 8: Attribute MMWriteImplementationMethod::_need_super */
+/* 9: Attribute MMWriteImplementationMethod::_cname_cache */
+/* 10: Attribute MMWriteImplementationMethod::_iroutine */
+void INIT_ATTRIBUTES__MMWriteImplementationMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMWriteImplementationMethod;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMWriteImplementationMethod(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_MMWriteImplementationMethod;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMWriteImplementationMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMWriteImplementationMethod;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 176;
+  fra.me.meth = LOCATE_NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMWriteImplementationMethod();
+  /* ./syntax//syntax_base.nit:176 */
+  INIT_ATTRIBUTES__MMWriteImplementationMethod(fra.me.REG[3]);
+  syntax_base___MMWriteImplementationMethod___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMWriteImplementationMethod(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMMethSrcMethod[78] = {
+  {(bigint) 6047 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMMethSrcMethod < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMMethSrcMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5155 /* 4: MMMethSrcMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 5767 /* 5: MMMethSrcMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 6047 /* 6: MMMethSrcMethod < MMMethSrcMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMMethSrcMethod < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMMethSrcMethod___node},
+  {(bigint) syntax_base___MMMethSrcMethod___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMMethSrcMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) compiling_global___MMMethod___compile_property_to_c},
+  {(bigint) icode_generation___MMSrcMethod___iroutine},
+  {(bigint) 2 /* 69: MMMethSrcMethod < MMMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMMethSrcMethod___is_intern},
+  {(bigint) syntax_base___MMMethSrcMethod___is_abstract},
+  {(bigint) icode_generation___MMSrcMethod___iroutine__eq},
+  {(bigint) icode_generation___MMSrcMethod___generate_iroutine},
+  {(bigint) icode_generation___MMMethSrcMethod___inner_generate_iroutine},
+  {(bigint) 3 /* 75: MMMethSrcMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) 4 /* 76: MMMethSrcMethod < MMMethSrcMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMMethSrcMethod___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMMethSrcMethod::_signature */
+/* 3: Attribute MMMethSrcMethod::_signatures_cache */
+/* 4: Attribute MMMethSrcMethod::_name */
+/* 5: Attribute MMMethSrcMethod::_local_class */
+/* 6: Attribute MMMethSrcMethod::_global */
+/* 7: Attribute MMMethSrcMethod::_prhe */
+/* 8: Attribute MMMethSrcMethod::_need_super */
+/* 9: Attribute MMMethSrcMethod::_cname_cache */
+/* 10: Attribute MMMethSrcMethod::_iroutine */
+/* 11: Attribute MMMethSrcMethod::_is_init */
+/* 12: Attribute MMMethSrcMethod::_is_intern */
+/* 13: Attribute MMMethSrcMethod::_is_abstract */
+void INIT_ATTRIBUTES__MMMethSrcMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMMethSrcMethod;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMMethSrcMethod(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_MMMethSrcMethod;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMMethSrcMethod(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMMethSrcMethod;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_init(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_init");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_intern");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_abstract");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 189;
+  fra.me.meth = LOCATE_NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMMethSrcMethod();
+  /* ./syntax//syntax_base.nit:189 */
+  INIT_ATTRIBUTES__MMMethSrcMethod(fra.me.REG[3]);
+  syntax_base___MMMethSrcMethod___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMMethSrcMethod(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMSrcTypeProperty[72] = {
+  {(bigint) 5763 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMSrcTypeProperty < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMSrcTypeProperty < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5119 /* 4: MMSrcTypeProperty < MMTypeProperty: superclass typecheck marker */},
+  {(bigint) 5763 /* 5: MMSrcTypeProperty < MMSrcTypeProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMSrcTypeProperty < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
+  {(bigint) syntax_base___MMLocalProperty___node},
+  {(bigint) syntax_base___MMLocalProperty___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMSrcTypeProperty < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) 2 /* 67: MMSrcTypeProperty < MMTypeProperty: superclass init_table position */},
+  {(bigint) virtualtype___MMTypeProperty___stype_for},
+  {(bigint) virtualtype___MMTypeProperty___real_stype_for},
+  {(bigint) 3 /* 70: MMSrcTypeProperty < MMSrcTypeProperty: superclass init_table position */},
+  {(bigint) syntax_base___MMSrcTypeProperty___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMSrcTypeProperty::_signature */
+/* 3: Attribute MMSrcTypeProperty::_signatures_cache */
+/* 4: Attribute MMSrcTypeProperty::_name */
+/* 5: Attribute MMSrcTypeProperty::_local_class */
+/* 6: Attribute MMSrcTypeProperty::_global */
+/* 7: Attribute MMSrcTypeProperty::_prhe */
+/* 8: Attribute MMSrcTypeProperty::_need_super */
+/* 9: Attribute MMSrcTypeProperty::_cname_cache */
+/* 10: Attribute MMSrcTypeProperty::_stypes_cache */
+void INIT_ATTRIBUTES__MMSrcTypeProperty(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMSrcTypeProperty;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//virtualtype.nit:39 */
+  ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcTypeProperty(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcTypeProperty;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMSrcTypeProperty(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMSrcTypeProperty;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stypes_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 203;
+  fra.me.meth = LOCATE_NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMSrcTypeProperty();
+  /* ./syntax//syntax_base.nit:203 */
+  INIT_ATTRIBUTES__MMSrcTypeProperty(fra.me.REG[3]);
+  syntax_base___MMSrcTypeProperty___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMSrcTypeProperty(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_MMImplicitInit[83] = {
+  {(bigint) 6395 /* 0: Identity */},
+  {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMImplicitInit < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 3: MMImplicitInit < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 5155 /* 4: MMImplicitInit < MMMethod: superclass typecheck marker */},
+  {(bigint) 5767 /* 5: MMImplicitInit < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 6047 /* 6: MMImplicitInit < MMMethSrcMethod: superclass typecheck marker */},
+  {(bigint) 6395 /* 7: MMImplicitInit < MMImplicitInit: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMImplicitInit < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___MMImplicitInit___accept_property_visitor},
+  {(bigint) syntax_base___MMMethSrcMethod___node},
+  {(bigint) syntax_base___MMImplicitInit___is_init},
+  {(bigint) inheritance___MMLocalProperty___inherit_global},
+  {(bigint) static_type___MMLocalProperty___signature},
+  {(bigint) static_type___MMLocalProperty___signature__eq},
+  {(bigint) static_type___MMLocalProperty___signature_for},
+  {(bigint) 1 /* 52: MMImplicitInit < MMLocalProperty: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMLocalProperty___name},
+  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
+  {(bigint) abstractmetamodel___MMLocalProperty___global},
+  {(bigint) abstractmetamodel___MMLocalProperty___is_global_set},
+  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
+  {(bigint) abstractmetamodel___MMLocalProperty___module},
+  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
+  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
+  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
+  {(bigint) abstractmetamodel___MMLocalProperty___init},
+  {(bigint) compiling_base___MMLocalProperty___cname},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
+  {(bigint) compiling_global___MMMethod___compile_property_to_c},
+  {(bigint) icode_generation___MMSrcMethod___iroutine},
+  {(bigint) 2 /* 69: MMImplicitInit < MMMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMMethSrcMethod___is_intern},
+  {(bigint) syntax_base___MMMethSrcMethod___is_abstract},
+  {(bigint) icode_generation___MMSrcMethod___iroutine__eq},
+  {(bigint) icode_generation___MMSrcMethod___generate_iroutine},
+  {(bigint) icode_generation___MMImplicitInit___inner_generate_iroutine},
+  {(bigint) 3 /* 75: MMImplicitInit < MMSrcMethod: superclass init_table position */},
+  {(bigint) 4 /* 76: MMImplicitInit < MMMethSrcMethod: superclass init_table position */},
+  {(bigint) syntax_base___MMMethSrcMethod___init},
+  {(bigint) 5 /* 78: MMImplicitInit < MMImplicitInit: superclass init_table position */},
+  {(bigint) mmbuilder___MMImplicitInit___super_init},
+  {(bigint) syntax_base___MMImplicitInit___unassigned_attributes},
+  {(bigint) syntax_base___MMImplicitInit___super_inits},
+  {(bigint) syntax_base___MMImplicitInit___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMImplicitInit::_signature */
+/* 3: Attribute MMImplicitInit::_signatures_cache */
+/* 4: Attribute MMImplicitInit::_name */
+/* 5: Attribute MMImplicitInit::_local_class */
+/* 6: Attribute MMImplicitInit::_global */
+/* 7: Attribute MMImplicitInit::_prhe */
+/* 8: Attribute MMImplicitInit::_need_super */
+/* 9: Attribute MMImplicitInit::_cname_cache */
+/* 10: Attribute MMImplicitInit::_iroutine */
+/* 11: Attribute MMImplicitInit::_is_init */
+/* 12: Attribute MMImplicitInit::_is_intern */
+/* 13: Attribute MMImplicitInit::_is_abstract */
+/* 14: Attribute MMImplicitInit::_super_init */
+/* 15: Attribute MMImplicitInit::_unassigned_attributes */
+/* 16: Attribute MMImplicitInit::_super_inits */
+void INIT_ATTRIBUTES__MMImplicitInit(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMImplicitInit;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./metamodel//abstractmetamodel.nit:619 */
+  ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./metamodel//static_type.nit:56 */
+  ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//mmbuilder.nit:290 */
+  ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMImplicitInit(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 17);
+  obj->vft = (classtable_elt_t*)VFT_MMImplicitInit;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMImplicitInit(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMImplicitInit;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_need_super");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signatures_cache");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_init(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_init");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_intern");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_abstract");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_unassigned_attributes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___MMImplicitInit____super_inits(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_super_inits");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 216;
+  fra.me.meth = LOCATE_NEW_MMImplicitInit_syntax_base___MMImplicitInit___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_MMImplicitInit();
+  /* ./syntax//syntax_base.nit:216 */
+  INIT_ATTRIBUTES__MMImplicitInit(fra.me.REG[3]);
+  syntax_base___MMImplicitInit___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_MMImplicitInit(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_Variable[54] = {
+  {(bigint) 15 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Variable < Object: superclass typecheck marker */},
+  {(bigint) 15 /* 3: Variable < Variable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Variable < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) syntax_base___Variable___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) control_flow___Variable___must_be_set},
+  {(bigint) 1 /* 46: Variable < Variable: superclass init_table position */},
+  {(bigint) syntax_base___Variable___name},
+  {(bigint) syntax_base___Variable___decl},
+  {(bigint) syntax_base___Variable___is_typed},
+  {(bigint) syntax_base___Variable___stype},
+  {(bigint) syntax_base___Variable___stype__eq},
+  {(bigint) syntax_base___Variable___kind},
+  {(bigint) syntax_base___Variable___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Variable::_name */
+/* 3: Attribute Variable::_decl */
+/* 4: Attribute Variable::_stype */
+void INIT_ATTRIBUTES__Variable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Variable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Variable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_Variable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Variable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Variable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Variable_syntax_base___Variable___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 244;
+  fra.me.meth = LOCATE_NEW_Variable_syntax_base___Variable___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_Variable();
+  /* ./syntax//syntax_base.nit:244 */
+  INIT_ATTRIBUTES__Variable(fra.me.REG[2]);
+  syntax_base___Variable___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_Variable(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_VarVariable[56] = {
+  {(bigint) 243 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: VarVariable < Object: superclass typecheck marker */},
+  {(bigint) 15 /* 3: VarVariable < Variable: superclass typecheck marker */},
+  {(bigint) 243 /* 4: VarVariable < VarVariable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: VarVariable < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) syntax_base___Variable___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) control_flow___VarVariable___must_be_set},
+  {(bigint) 1 /* 46: VarVariable < Variable: superclass init_table position */},
+  {(bigint) syntax_base___Variable___name},
+  {(bigint) syntax_base___Variable___decl},
+  {(bigint) typing___VarVariable___is_typed},
+  {(bigint) syntax_base___Variable___stype},
+  {(bigint) syntax_base___Variable___stype__eq},
+  {(bigint) syntax_base___VarVariable___kind},
+  {(bigint) syntax_base___Variable___init},
+  {(bigint) 2 /* 54: VarVariable < VarVariable: superclass init_table position */},
+  {(bigint) syntax_base___VarVariable___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute VarVariable::_name */
+/* 3: Attribute VarVariable::_decl */
+/* 4: Attribute VarVariable::_stype */
+/* 5: Attribute VarVariable::_is_typed */
+void INIT_ATTRIBUTES__VarVariable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__VarVariable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:140 */
+  ATTR_typing___VarVariable____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_VarVariable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_VarVariable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_VarVariable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_VarVariable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___VarVariable____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_VarVariable_syntax_base___VarVariable___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 255;
+  fra.me.meth = LOCATE_NEW_VarVariable_syntax_base___VarVariable___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_VarVariable();
+  /* ./syntax//syntax_base.nit:255 */
+  INIT_ATTRIBUTES__VarVariable(fra.me.REG[2]);
+  syntax_base___VarVariable___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_VarVariable(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ParamVariable[56] = {
+  {(bigint) 5071 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ParamVariable < Object: superclass typecheck marker */},
+  {(bigint) 15 /* 3: ParamVariable < Variable: superclass typecheck marker */},
+  {(bigint) 5071 /* 4: ParamVariable < ParamVariable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ParamVariable < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) syntax_base___Variable___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) control_flow___Variable___must_be_set},
+  {(bigint) 1 /* 46: ParamVariable < Variable: superclass init_table position */},
+  {(bigint) syntax_base___Variable___name},
+  {(bigint) syntax_base___Variable___decl},
+  {(bigint) syntax_base___Variable___is_typed},
+  {(bigint) syntax_base___Variable___stype},
+  {(bigint) syntax_base___Variable___stype__eq},
+  {(bigint) syntax_base___ParamVariable___kind},
+  {(bigint) syntax_base___Variable___init},
+  {(bigint) 2 /* 54: ParamVariable < ParamVariable: superclass init_table position */},
+  {(bigint) syntax_base___ParamVariable___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ParamVariable::_name */
+/* 3: Attribute ParamVariable::_decl */
+/* 4: Attribute ParamVariable::_stype */
+void INIT_ATTRIBUTES__ParamVariable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ParamVariable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ParamVariable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_ParamVariable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ParamVariable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ParamVariable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ParamVariable_syntax_base___ParamVariable___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 262;
+  fra.me.meth = LOCATE_NEW_ParamVariable_syntax_base___ParamVariable___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ParamVariable();
+  /* ./syntax//syntax_base.nit:262 */
+  INIT_ATTRIBUTES__ParamVariable(fra.me.REG[2]);
+  syntax_base___ParamVariable___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ParamVariable(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_AutoVariable[56] = {
+  {(bigint) 5291 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AutoVariable < Object: superclass typecheck marker */},
+  {(bigint) 15 /* 3: AutoVariable < Variable: superclass typecheck marker */},
+  {(bigint) 5291 /* 4: AutoVariable < AutoVariable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AutoVariable < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) syntax_base___Variable___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) control_flow___Variable___must_be_set},
+  {(bigint) 1 /* 46: AutoVariable < Variable: superclass init_table position */},
+  {(bigint) syntax_base___Variable___name},
+  {(bigint) syntax_base___Variable___decl},
+  {(bigint) syntax_base___Variable___is_typed},
+  {(bigint) syntax_base___Variable___stype},
+  {(bigint) syntax_base___Variable___stype__eq},
+  {(bigint) syntax_base___AutoVariable___kind},
+  {(bigint) syntax_base___Variable___init},
+  {(bigint) 2 /* 54: AutoVariable < AutoVariable: superclass init_table position */},
+  {(bigint) syntax_base___AutoVariable___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AutoVariable::_name */
+/* 3: Attribute AutoVariable::_decl */
+/* 4: Attribute AutoVariable::_stype */
+void INIT_ATTRIBUTES__AutoVariable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AutoVariable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AutoVariable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_AutoVariable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AutoVariable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AutoVariable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AutoVariable_syntax_base___AutoVariable___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 269;
+  fra.me.meth = LOCATE_NEW_AutoVariable_syntax_base___AutoVariable___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AutoVariable();
+  /* ./syntax//syntax_base.nit:269 */
+  INIT_ATTRIBUTES__AutoVariable(fra.me.REG[2]);
+  syntax_base___AutoVariable___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AutoVariable(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ClosureVariable[57] = {
+  {(bigint) 5271 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ClosureVariable < Object: superclass typecheck marker */},
+  {(bigint) 15 /* 3: ClosureVariable < Variable: superclass typecheck marker */},
+  {(bigint) 5271 /* 4: ClosureVariable < ClosureVariable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ClosureVariable < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) syntax_base___Variable___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) control_flow___Variable___must_be_set},
+  {(bigint) 1 /* 46: ClosureVariable < Variable: superclass init_table position */},
+  {(bigint) syntax_base___Variable___name},
+  {(bigint) syntax_base___Variable___decl},
+  {(bigint) syntax_base___Variable___is_typed},
+  {(bigint) syntax_base___Variable___stype},
+  {(bigint) syntax_base___Variable___stype__eq},
+  {(bigint) syntax_base___ClosureVariable___kind},
+  {(bigint) syntax_base___Variable___init},
+  {(bigint) 2 /* 54: ClosureVariable < ClosureVariable: superclass init_table position */},
+  {(bigint) syntax_base___ClosureVariable___closure},
+  {(bigint) syntax_base___ClosureVariable___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ClosureVariable::_name */
+/* 3: Attribute ClosureVariable::_decl */
+/* 4: Attribute ClosureVariable::_stype */
+/* 5: Attribute ClosureVariable::_closure */
+void INIT_ATTRIBUTES__ClosureVariable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ClosureVariable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClosureVariable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ClosureVariable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ClosureVariable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ClosureVariable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___ClosureVariable____closure(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closure");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClosureVariable_syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 281;
+  fra.me.meth = LOCATE_NEW_ClosureVariable_syntax_base___ClosureVariable___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_ClosureVariable();
+  /* ./syntax//syntax_base.nit:281 */
+  INIT_ATTRIBUTES__ClosureVariable(fra.me.REG[3]);
+  syntax_base___ClosureVariable___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_ClosureVariable(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+const classtable_elt_t VFT_AbsSyntaxVisitor[80] = {
+  {(bigint) 5303 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AbsSyntaxVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: AbsSyntaxVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AbsSyntaxVisitor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: AbsSyntaxVisitor < Visitor: superclass init_table position */},
+  {(bigint) parser_prod___Visitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
+  {(bigint) syntax_base___AbsSyntaxVisitor___module},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
+  {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AbsSyntaxVisitor::_current_node */
+/* 3: Attribute AbsSyntaxVisitor::_module */
+/* 4: Attribute AbsSyntaxVisitor::_local_class */
+/* 5: Attribute AbsSyntaxVisitor::_local_property */
+/* 6: Attribute AbsSyntaxVisitor::_tc */
+void INIT_ATTRIBUTES__AbsSyntaxVisitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AbsSyntaxVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbsSyntaxVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_AbsSyntaxVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AbsSyntaxVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AbsSyntaxVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbsSyntaxVisitor_syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 498;
+  fra.me.meth = LOCATE_NEW_AbsSyntaxVisitor_syntax_base___AbsSyntaxVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_AbsSyntaxVisitor();
+  /* ./syntax//syntax_base.nit:498 */
+  INIT_ATTRIBUTES__AbsSyntaxVisitor(fra.me.REG[2]);
+  syntax_base___AbsSyntaxVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_AbsSyntaxVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_AAbsAbsSendExpr[99] = {
+  {(bigint) 6375 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAbsAbsSendExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAbsAbsSendExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAbsAbsSendExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AAbsAbsSendExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AAbsAbsSendExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAbsAbsSendExpr < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AAbsAbsSendExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AAbsAbsSendExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAbsAbsSendExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AAbsAbsSendExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 4 /* 96: AAbsAbsSendExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AAbsAbsSendExpr::_parent */
+/* 3: Attribute AAbsAbsSendExpr::_location */
+/* 4: Attribute AAbsAbsSendExpr::_first_location */
+/* 5: Attribute AAbsAbsSendExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAbsAbsSendExpr::_is_typed */
+/* 8: Attribute AAbsAbsSendExpr::_stype */
+/* 9: Attribute AAbsAbsSendExpr::_if_true_variable_ctx */
+/* 10: Attribute AAbsAbsSendExpr::_if_false_variable_ctx */
+/* 11: Attribute AAbsAbsSendExpr::_prop_signature */
+/* 12: Attribute AAbsAbsSendExpr::_raw_arguments_cache */
+void INIT_ATTRIBUTES__AAbsAbsSendExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAbsAbsSendExpr;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAbsAbsSendExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_AAbsAbsSendExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAbsAbsSendExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAbsAbsSendExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAbsAbsSendExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAbsAbsSendExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAbsAbsSendExpr();
+  INIT_ATTRIBUTES__AAbsAbsSendExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAbsAbsSendExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_AAbsSendExpr[105] = {
+  {(bigint) 6551 /* 0: Identity */},
+  {(bigint) 18 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AAbsSendExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AAbsSendExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AAbsSendExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: AAbsSendExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: AAbsSendExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 6551 /* 8: AAbsSendExpr < AAbsSendExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AAbsSendExpr < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AAbsSendExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AAbsSendExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: AAbsSendExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AAbsAbsSendExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 4 /* 96: AAbsSendExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
+  {(bigint) typing___AAbsSendExpr___do_typing},
+  {(bigint) typing___AAbsSendExpr___get_property},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 5 /* 102: AAbsSendExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsSendExpr___prop},
+  {(bigint) typing___AAbsSendExpr___return_type},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AAbsSendExpr::_parent */
+/* 3: Attribute AAbsSendExpr::_location */
+/* 4: Attribute AAbsSendExpr::_first_location */
+/* 5: Attribute AAbsSendExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AAbsSendExpr::_is_typed */
+/* 8: Attribute AAbsSendExpr::_stype */
+/* 9: Attribute AAbsSendExpr::_if_true_variable_ctx */
+/* 10: Attribute AAbsSendExpr::_if_false_variable_ctx */
+/* 11: Attribute AAbsSendExpr::_prop_signature */
+/* 12: Attribute AAbsSendExpr::_raw_arguments_cache */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 16: Attribute AAbsSendExpr::_prop */
+/* 17: Attribute AAbsSendExpr::_return_type */
+void INIT_ATTRIBUTES__AAbsSendExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AAbsSendExpr;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAbsSendExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 18);
+  obj->vft = (classtable_elt_t*)VFT_AAbsSendExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AAbsSendExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AAbsSendExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AAbsSendExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AAbsSendExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AAbsSendExpr();
+  INIT_ATTRIBUTES__AAbsSendExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AAbsSendExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ASuperInitCall[105] = {
+  {(bigint) 6567 /* 0: Identity */},
+  {(bigint) 18 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASuperInitCall < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASuperInitCall < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASuperInitCall < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ASuperInitCall < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ASuperInitCall < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 6551 /* 8: ASuperInitCall < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ASuperInitCall < ASuperInitCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ASuperInitCall < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: ASuperInitCall < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ASuperInitCall < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 6 /* 69: ASuperInitCall < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ASuperInitCall < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AAbsAbsSendExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 4 /* 96: ASuperInitCall < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
+  {(bigint) typing___AAbsSendExpr___do_typing},
+  {(bigint) typing___AAbsSendExpr___get_property},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 5 /* 102: ASuperInitCall < AAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsSendExpr___prop},
+  {(bigint) typing___AAbsSendExpr___return_type},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ASuperInitCall::_parent */
+/* 3: Attribute ASuperInitCall::_location */
+/* 4: Attribute ASuperInitCall::_first_location */
+/* 5: Attribute ASuperInitCall::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ASuperInitCall::_is_typed */
+/* 8: Attribute ASuperInitCall::_stype */
+/* 9: Attribute ASuperInitCall::_if_true_variable_ctx */
+/* 10: Attribute ASuperInitCall::_if_false_variable_ctx */
+/* 11: Attribute ASuperInitCall::_prop_signature */
+/* 12: Attribute ASuperInitCall::_raw_arguments_cache */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 16: Attribute ASuperInitCall::_prop */
+/* 17: Attribute ASuperInitCall::_return_type */
+void INIT_ATTRIBUTES__ASuperInitCall(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASuperInitCall;
+  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;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperInitCall(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 18);
+  obj->vft = (classtable_elt_t*)VFT_ASuperInitCall;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASuperInitCall(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASuperInitCall;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperInitCall_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASuperInitCall_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASuperInitCall();
+  INIT_ATTRIBUTES__ASuperInitCall(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASuperInitCall(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ASendReassignExpr[115] = {
+  {(bigint) 6595 /* 0: Identity */},
+  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ASendReassignExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ASendReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ASendReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6375 /* 5: ASendReassignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ASendReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 6175 /* 7: ASendReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 6551 /* 8: ASendReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 6567 /* 9: ASendReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 6587 /* 10: ASendReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 6595 /* 11: ASendReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 3 /* 19: ASendReassignExpr < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ASendExpr___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ASendExpr___visit_all},
+  {(bigint) parser_prod___ASendExpr___visit_all_reverse},
+  {(bigint) 4 /* 59: ASendReassignExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ASendExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 5 /* 66: ASendReassignExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 69: ASendReassignExpr < ASuperInitCall: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 6 /* 74: ASendReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___ASendReassignExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+  {(bigint) 9 /* 81: ASendReassignExpr < ASendReassignExpr: superclass init_table position */},
+  {(bigint) typing___ASendReassignExpr___read_prop},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AReassignFormExpr___do_rvalue_typing},
+  {(bigint) typing___AReassignFormExpr___assign_method},
+  {(bigint) 8 /* 87: ASendReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) parser_nodes___AReassignFormExpr___n_assign_op},
+  {(bigint) parser_nodes___AReassignFormExpr___n_assign_op__eq},
+  {(bigint) parser_nodes___AReassignFormExpr___n_value},
+  {(bigint) parser_nodes___AReassignFormExpr___n_value__eq},
+  {(bigint) icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
+  {(bigint) typing___AAbsAbsSendExpr___compute_raw_arguments},
+  {(bigint) typing___AAbsAbsSendExpr___process_signature},
+  {(bigint) typing___AAbsAbsSendExpr___process_closures},
+  {(bigint) 2 /* 96: ASendReassignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsAbsSendExpr___prop_signature},
+  {(bigint) typing___AAbsAbsSendExpr___raw_arguments},
+  {(bigint) typing___AAbsSendExpr___do_typing},
+  {(bigint) typing___AAbsSendExpr___get_property},
+  {(bigint) typing___AAbsSendExpr___get_signature},
+  {(bigint) 1 /* 102: ASendReassignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) typing___AAbsSendExpr___prop},
+  {(bigint) typing___AAbsSendExpr___return_type},
+  {(bigint) typing___ASendExpr___name},
+  {(bigint) typing___ASendReassignExpr___do_all_typing},
+  {(bigint) typing___ASendExpr___closure_defs},
+  {(bigint) parser_prod___ASendExpr___empty_init},
+  {(bigint) parser_prod___ASendExpr___init_asendexpr},
+  {(bigint) 7 /* 110: ASendReassignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) parser_nodes___ASendExpr___n_expr},
+  {(bigint) parser_prod___ASendExpr___n_expr__eq},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) parser_nodes___ASendExpr___n_closure_defs__eq},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ASendReassignExpr::_parent */
+/* 3: Attribute ASendReassignExpr::_location */
+/* 4: Attribute ASendReassignExpr::_first_location */
+/* 5: Attribute ASendReassignExpr::_last_location */
+/* 6: Attribute ASendReassignExpr::_read_prop */
+/* 7: Attribute ASendReassignExpr::_is_typed */
+/* 8: Attribute ASendReassignExpr::_stype */
+/* 9: Attribute ASendReassignExpr::_if_true_variable_ctx */
+/* 10: Attribute ASendReassignExpr::_if_false_variable_ctx */
+/* 11: Attribute ASendReassignExpr::_prop_signature */
+/* 12: Attribute ASendReassignExpr::_raw_arguments_cache */
+/* 13: Attribute ASendReassignExpr::_assign_method */
+/* 14: Attribute ASendReassignExpr::_n_assign_op */
+/* 15: Attribute ASendReassignExpr::_n_value */
+/* 16: Attribute ASendReassignExpr::_prop */
+/* 17: Attribute ASendReassignExpr::_return_type */
+/* 18: Attribute ASendReassignExpr::_n_expr */
+/* 19: Attribute ASendReassignExpr::_n_closure_defs */
+void INIT_ATTRIBUTES__ASendReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ASendReassignExpr;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./parser//parser_nodes.nit:673 */
+  ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//typing.nit:1114 */
+  ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASendReassignExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 20);
+  obj->vft = (classtable_elt_t*)VFT_ASendReassignExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ASendReassignExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ASendReassignExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_closure_defs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_assign_op");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_n_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASendReassignExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ASendReassignExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ASendReassignExpr();
+  INIT_ATTRIBUTES__ASendReassignExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASendReassignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t NEW_ASendReassignExpr_parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5590;
+  fra.me.meth = LOCATE_NEW_ASendReassignExpr_parser_prod___ASendExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ASendReassignExpr();
+  /* ./parser//parser_prod.nit:5590 */
+  INIT_ATTRIBUTES__ASendReassignExpr(fra.me.REG[0]);
+  parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_ASendReassignExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASendReassignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5592;
+  fra.me.meth = LOCATE_NEW_ASendReassignExpr_parser_prod___ASendExpr___init_asendexpr;
+  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;
+  fra.me.REG[1] = NEW_ASendReassignExpr();
+  /* ./parser//parser_prod.nit:5592 */
+  INIT_ATTRIBUTES__ASendReassignExpr(fra.me.REG[1]);
+  parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ASendReassignExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_CSHSorter[54] = {
+  {(bigint) 5279 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: CSHSorter < Object: superclass typecheck marker */},
+  {(bigint) 231 /* 3: CSHSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 5279 /* 4: CSHSorter < CSHSorter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: CSHSorter < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: CSHSorter < AbstractSorter: superclass init_table position */},
+  {(bigint) mmbuilder___CSHSorter___compare},
+  {(bigint) sorter___AbstractSorter___sort},
+  {(bigint) sorter___AbstractSorter___sub_sort},
+  {(bigint) sorter___AbstractSorter___quick_sort},
+  {(bigint) sorter___AbstractSorter___bubble_sort},
+  {(bigint) sorter___AbstractSorter___init},
+  {(bigint) 2 /* 52: CSHSorter < CSHSorter: superclass init_table position */},
+  {(bigint) mmbuilder___CSHSorter___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__CSHSorter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__CSHSorter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CSHSorter(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_CSHSorter;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_CSHSorter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_CSHSorter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CSHSorter_mmbuilder___CSHSorter___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_CSHSorter_mmbuilder___CSHSorter___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_CSHSorter();
+  /* ./syntax//mmbuilder.nit:32 */
+  INIT_ATTRIBUTES__CSHSorter(fra.me.REG[0]);
+  mmbuilder___CSHSorter___init(fra.me.REG[0], init_table);
+  CHECKNEW_CSHSorter(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_MMSrcAncestor[57] = {
+  {(bigint) 5139 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MMSrcAncestor < Object: superclass typecheck marker */},
+  {(bigint) 135 /* 3: MMSrcAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 5139 /* 4: MMSrcAncestor < MMSrcAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MMSrcAncestor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) static_type___MMAncestor___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) inheritance___MMAncestor___add_in},
+  {(bigint) 1 /* 46: MMSrcAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) static_type___MMAncestor___stype__eq},
+  {(bigint) static_type___MMAncestor___stype},
+  {(bigint) static_type___MMAncestor___inheriter__eq},
+  {(bigint) static_type___MMAncestor___inheriter},
+  {(bigint) static_type___MMAncestor___is_reffinement},
+  {(bigint) static_type___MMAncestor___is_specialisation},
+  {(bigint) mmbuilder___MMSrcAncestor___local_class},
+  {(bigint) static_type___MMAncestor___init},
+  {(bigint) 2 /* 55: MMSrcAncestor < MMSrcAncestor: superclass init_table position */},
+  {(bigint) mmbuilder___MMSrcAncestor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMSrcAncestor::_stype */
+/* 3: Attribute MMSrcAncestor::_inheriter */
+/* 4: Attribute MMSrcAncestor::_local_class */
+void INIT_ATTRIBUTES__MMSrcAncestor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MMSrcAncestor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:274 */
+  ATTR_static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./metamodel//static_type.nit:280 */
+  ATTR_static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcAncestor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_MMSrcAncestor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MMSrcAncestor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MMSrcAncestor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 328;
+  fra.me.meth = LOCATE_NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init;
+  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;
+  fra.me.REG[1] = NEW_MMSrcAncestor();
+  /* ./syntax//mmbuilder.nit:328 */
+  INIT_ATTRIBUTES__MMSrcAncestor(fra.me.REG[1]);
+  mmbuilder___MMSrcAncestor___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_MMSrcAncestor(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ClassBuilderVisitor[86] = {
+  {(bigint) 5899 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ClassBuilderVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: ClassBuilderVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: ClassBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 5899 /* 5: ClassBuilderVisitor < ClassBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ClassBuilderVisitor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ClassBuilderVisitor < Visitor: superclass init_table position */},
+  {(bigint) mmbuilder___ClassBuilderVisitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: ClassBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
+  {(bigint) syntax_base___AbsSyntaxVisitor___module},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
+  {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___init},
+  {(bigint) 3 /* 80: ClassBuilderVisitor < ClassBuilderVisitor: superclass init_table position */},
+  {(bigint) mmbuilder___ClassBuilderVisitor___local_class_arity},
+  {(bigint) mmbuilder___ClassBuilderVisitor___local_class_arity__eq},
+  {(bigint) mmbuilder___ClassBuilderVisitor___formals},
+  {(bigint) mmbuilder___ClassBuilderVisitor___formals__eq},
+  {(bigint) mmbuilder___ClassBuilderVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ClassBuilderVisitor::_current_node */
+/* 3: Attribute ClassBuilderVisitor::_module */
+/* 4: Attribute ClassBuilderVisitor::_local_class */
+/* 5: Attribute ClassBuilderVisitor::_local_property */
+/* 6: Attribute ClassBuilderVisitor::_tc */
+/* 7: Attribute ClassBuilderVisitor::_local_class_arity */
+/* 8: Attribute ClassBuilderVisitor::_formals */
+void INIT_ATTRIBUTES__ClassBuilderVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ClassBuilderVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./syntax//mmbuilder.nit:341 */
+  ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassBuilderVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_ClassBuilderVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ClassBuilderVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ClassBuilderVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class_arity");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 348;
+  fra.me.meth = LOCATE_NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ClassBuilderVisitor();
+  /* ./syntax//mmbuilder.nit:348 */
+  INIT_ATTRIBUTES__ClassBuilderVisitor(fra.me.REG[2]);
+  mmbuilder___ClassBuilderVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ClassBuilderVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[82] = {
+  {(bigint) 5895 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ClassSpecializationBuilderVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: ClassSpecializationBuilderVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 5895 /* 5: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ClassSpecializationBuilderVisitor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ClassSpecializationBuilderVisitor < Visitor: superclass init_table position */},
+  {(bigint) mmbuilder___ClassSpecializationBuilderVisitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
+  {(bigint) syntax_base___AbsSyntaxVisitor___module},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
+  {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___init},
+  {(bigint) 3 /* 80: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass init_table position */},
+  {(bigint) mmbuilder___ClassSpecializationBuilderVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ClassSpecializationBuilderVisitor::_current_node */
+/* 3: Attribute ClassSpecializationBuilderVisitor::_module */
+/* 4: Attribute ClassSpecializationBuilderVisitor::_local_class */
+/* 5: Attribute ClassSpecializationBuilderVisitor::_local_property */
+/* 6: Attribute ClassSpecializationBuilderVisitor::_tc */
+void INIT_ATTRIBUTES__ClassSpecializationBuilderVisitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ClassSpecializationBuilderVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassSpecializationBuilderVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ClassSpecializationBuilderVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ClassSpecializationBuilderVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ClassSpecializationBuilderVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 356;
+  fra.me.meth = LOCATE_NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ClassSpecializationBuilderVisitor();
+  /* ./syntax//mmbuilder.nit:356 */
+  INIT_ATTRIBUTES__ClassSpecializationBuilderVisitor(fra.me.REG[2]);
+  mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ClassSpecializationBuilderVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ClassAncestorBuilder[82] = {
+  {(bigint) 5903 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ClassAncestorBuilder < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: ClassAncestorBuilder < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: ClassAncestorBuilder < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 5903 /* 5: ClassAncestorBuilder < ClassAncestorBuilder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ClassAncestorBuilder < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ClassAncestorBuilder < Visitor: superclass init_table position */},
+  {(bigint) mmbuilder___ClassAncestorBuilder___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: ClassAncestorBuilder < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
+  {(bigint) syntax_base___AbsSyntaxVisitor___module},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
+  {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___init},
+  {(bigint) 3 /* 80: ClassAncestorBuilder < ClassAncestorBuilder: superclass init_table position */},
+  {(bigint) mmbuilder___ClassAncestorBuilder___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ClassAncestorBuilder::_current_node */
+/* 3: Attribute ClassAncestorBuilder::_module */
+/* 4: Attribute ClassAncestorBuilder::_local_class */
+/* 5: Attribute ClassAncestorBuilder::_local_property */
+/* 6: Attribute ClassAncestorBuilder::_tc */
+void INIT_ATTRIBUTES__ClassAncestorBuilder(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ClassAncestorBuilder;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassAncestorBuilder(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ClassAncestorBuilder;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ClassAncestorBuilder(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ClassAncestorBuilder;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 364;
+  fra.me.meth = LOCATE_NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ClassAncestorBuilder();
+  /* ./syntax//mmbuilder.nit:364 */
+  INIT_ATTRIBUTES__ClassAncestorBuilder(fra.me.REG[2]);
+  mmbuilder___ClassAncestorBuilder___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ClassAncestorBuilder(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ClassVerifierVisitor[82] = {
+  {(bigint) 5891 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ClassVerifierVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: ClassVerifierVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: ClassVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 5891 /* 5: ClassVerifierVisitor < ClassVerifierVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ClassVerifierVisitor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ClassVerifierVisitor < Visitor: superclass init_table position */},
+  {(bigint) mmbuilder___ClassVerifierVisitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: ClassVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
+  {(bigint) syntax_base___AbsSyntaxVisitor___module},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
+  {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___init},
+  {(bigint) 3 /* 80: ClassVerifierVisitor < ClassVerifierVisitor: superclass init_table position */},
+  {(bigint) mmbuilder___ClassVerifierVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ClassVerifierVisitor::_current_node */
+/* 3: Attribute ClassVerifierVisitor::_module */
+/* 4: Attribute ClassVerifierVisitor::_local_class */
+/* 5: Attribute ClassVerifierVisitor::_local_property */
+/* 6: Attribute ClassVerifierVisitor::_tc */
+void INIT_ATTRIBUTES__ClassVerifierVisitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ClassVerifierVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassVerifierVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ClassVerifierVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ClassVerifierVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ClassVerifierVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 372;
+  fra.me.meth = LOCATE_NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ClassVerifierVisitor();
+  /* ./syntax//mmbuilder.nit:372 */
+  INIT_ATTRIBUTES__ClassVerifierVisitor(fra.me.REG[2]);
+  mmbuilder___ClassVerifierVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ClassVerifierVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_PropertyBuilderVisitor[82] = {
+  {(bigint) 5711 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: PropertyBuilderVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: PropertyBuilderVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 5711 /* 5: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: PropertyBuilderVisitor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: PropertyBuilderVisitor < Visitor: superclass init_table position */},
+  {(bigint) mmbuilder___PropertyBuilderVisitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
+  {(bigint) syntax_base___AbsSyntaxVisitor___module},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
+  {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___init},
+  {(bigint) 3 /* 80: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass init_table position */},
+  {(bigint) mmbuilder___PropertyBuilderVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute PropertyBuilderVisitor::_current_node */
+/* 3: Attribute PropertyBuilderVisitor::_module */
+/* 4: Attribute PropertyBuilderVisitor::_local_class */
+/* 5: Attribute PropertyBuilderVisitor::_local_property */
+/* 6: Attribute PropertyBuilderVisitor::_tc */
+void INIT_ATTRIBUTES__PropertyBuilderVisitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__PropertyBuilderVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PropertyBuilderVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_PropertyBuilderVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_PropertyBuilderVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_PropertyBuilderVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 383;
+  fra.me.meth = LOCATE_NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_PropertyBuilderVisitor();
+  /* ./syntax//mmbuilder.nit:383 */
+  INIT_ATTRIBUTES__PropertyBuilderVisitor(fra.me.REG[2]);
+  mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_PropertyBuilderVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_PropertyVerifierVisitor[84] = {
+  {(bigint) 5707 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: PropertyVerifierVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: PropertyVerifierVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 5707 /* 5: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: PropertyVerifierVisitor < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: PropertyVerifierVisitor < Visitor: superclass init_table position */},
+  {(bigint) mmbuilder___PropertyVerifierVisitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
+  {(bigint) syntax_base___AbsSyntaxVisitor___module},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
+  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
+  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
+  {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___init},
+  {(bigint) 3 /* 80: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass init_table position */},
+  {(bigint) mmbuilder___PropertyVerifierVisitor___signature_builder},
+  {(bigint) mmbuilder___PropertyVerifierVisitor___signature_builder__eq},
+  {(bigint) mmbuilder___PropertyVerifierVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute PropertyVerifierVisitor::_current_node */
+/* 3: Attribute PropertyVerifierVisitor::_module */
+/* 4: Attribute PropertyVerifierVisitor::_local_class */
+/* 5: Attribute PropertyVerifierVisitor::_local_property */
+/* 6: Attribute PropertyVerifierVisitor::_tc */
+/* 7: Attribute PropertyVerifierVisitor::_signature_builder */
+void INIT_ATTRIBUTES__PropertyVerifierVisitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__PropertyVerifierVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PropertyVerifierVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_PropertyVerifierVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_PropertyVerifierVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_PropertyVerifierVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_signature_builder");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 396;
+  fra.me.meth = LOCATE_NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_PropertyVerifierVisitor();
+  /* ./syntax//mmbuilder.nit:396 */
+  INIT_ATTRIBUTES__PropertyVerifierVisitor(fra.me.REG[2]);
+  mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_PropertyVerifierVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_SignatureBuilder[59] = {
+  {(bigint) 39 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: SignatureBuilder < Object: superclass typecheck marker */},
+  {(bigint) 39 /* 3: SignatureBuilder < SignatureBuilder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: SignatureBuilder < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: SignatureBuilder < SignatureBuilder: superclass init_table position */},
+  {(bigint) mmbuilder___SignatureBuilder___params},
+  {(bigint) mmbuilder___SignatureBuilder___params__eq},
+  {(bigint) mmbuilder___SignatureBuilder___untyped_params},
+  {(bigint) mmbuilder___SignatureBuilder___untyped_params__eq},
+  {(bigint) mmbuilder___SignatureBuilder___vararg_rank},
+  {(bigint) mmbuilder___SignatureBuilder___vararg_rank__eq},
+  {(bigint) mmbuilder___SignatureBuilder___closure_decls},
+  {(bigint) mmbuilder___SignatureBuilder___closure_decls__eq},
+  {(bigint) mmbuilder___SignatureBuilder___has_error_occured},
+  {(bigint) mmbuilder___SignatureBuilder___has_error_occured__eq},
+  {(bigint) mmbuilder___SignatureBuilder___signature},
+  {(bigint) mmbuilder___SignatureBuilder___signature__eq},
+  {(bigint) mmbuilder___SignatureBuilder___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute SignatureBuilder::_params */
+/* 3: Attribute SignatureBuilder::_untyped_params */
+/* 4: Attribute SignatureBuilder::_vararg_rank */
+/* 5: Attribute SignatureBuilder::_closure_decls */
+/* 6: Attribute SignatureBuilder::_has_error_occured */
+/* 7: Attribute SignatureBuilder::_signature */
+void INIT_ATTRIBUTES__SignatureBuilder(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__SignatureBuilder;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./syntax//mmbuilder.nit:405 */
+  ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./syntax//mmbuilder.nit:408 */
+  ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(1);
+  REGB0 = TAG_Int(-UNTAG_Int(REGB0));
+  /* ./syntax//mmbuilder.nit:411 */
+  ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./syntax//mmbuilder.nit:414 */
+  ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//mmbuilder.nit:417 */
+  ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//mmbuilder.nit:420 */
+  ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_SignatureBuilder(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_SignatureBuilder;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_SignatureBuilder(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_SignatureBuilder;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_params");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_untyped_params");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_vararg_rank");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closure_decls");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_has_error_occured");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_SignatureBuilder();
+  INIT_ATTRIBUTES__SignatureBuilder(fra.me.REG[0]);
+  mmbuilder___SignatureBuilder___init(fra.me.REG[0], init_table);
+  CHECKNEW_SignatureBuilder(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_MethidAccumulator[52] = {
+  {(bigint) 5103 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: MethidAccumulator < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: MethidAccumulator < Visitor: superclass typecheck marker */},
+  {(bigint) 5103 /* 4: MethidAccumulator < MethidAccumulator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: MethidAccumulator < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMLocalProperty___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMAttribute < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling_methods___MMAttribute___compile_access},
-  {(bigint) 2 /* 62: MMAttribute < MMAttribute: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: MethidAccumulator < Visitor: superclass init_table position */},
+  {(bigint) mmbuilder___MethidAccumulator___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: MethidAccumulator < MethidAccumulator: superclass init_table position */},
+  {(bigint) mmbuilder___MethidAccumulator___name},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMAttribute::_cname_cache */
-/* 2: Attribute MMAttribute::_signature */
-/* 3: Attribute MMAttribute::_signatures_cache */
-/* 4: Attribute MMAttribute::_name */
-/* 5: Attribute MMAttribute::_local_class */
-/* 6: Attribute MMAttribute::_global */
-/* 7: Attribute MMAttribute::_prhe */
-/* 8: Attribute MMAttribute::_need_super */
-val_t NEW_MMAttribute(void) {
-  val_t variable0;
+/* 1: Object_id */
+/* 2: Attribute MethidAccumulator::_current_node */
+/* 3: Attribute MethidAccumulator::_name */
+void INIT_ATTRIBUTES__MethidAccumulator(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__MethidAccumulator;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
+  /* ./syntax//mmbuilder.nit:1097 */
+  ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MethidAccumulator(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_MMAttribute;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_MMMethod[65] = {
-  {(bigint) 2583 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMMethod < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2583 /* 3: MMMethod < MMMethod: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_MethidAccumulator;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_MethidAccumulator(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_MethidAccumulator;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_MethidAccumulator_parser_prod___Visitor___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_MethidAccumulator_parser_prod___Visitor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_MethidAccumulator();
+  INIT_ATTRIBUTES__MethidAccumulator(fra.me.REG[0]);
+  parser_prod___Visitor___init(fra.me.REG[0], init_table);
+  CHECKNEW_MethidAccumulator(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_IRegister[56] = {
+  {(bigint) 151 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IRegister < Object: superclass typecheck marker */},
+  {(bigint) 151 /* 3: IRegister < IRegister: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75726,14 +228811,13 @@ const classtable_elt_t VFT_MMMethod[65] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMMethod < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IRegister < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75741,7 +228825,6 @@ const classtable_elt_t VFT_MMMethod[65] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75749,60 +228832,126 @@ const classtable_elt_t VFT_MMMethod[65] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMLocalProperty___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMMethod < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling_methods___MMMethod___compile_call},
-  {(bigint) compiling_methods___MMMethod___compile_constructor_call},
-  {(bigint) compiling_methods___MMMethod___compile_super_call},
-  {(bigint) 2 /* 64: MMMethod < MMMethod: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) allocate_iregister_slots___IRegister___slot_index},
+  {(bigint) allocate_iregister_slots___IRegister___slot_index__eq},
+  {(bigint) allocate_iregister_slots___IRegister___is_local},
+  {(bigint) allocate_iregister_slots___IRegister___is_local__eq},
+  {(bigint) allocate_iregister_slots___IRegister___local_iroutine},
+  {(bigint) allocate_iregister_slots___IRegister___local_iroutine__eq},
+  {(bigint) allocate_iregister_slots___IRegister___in_tag_slots},
+  {(bigint) allocate_iregister_slots___IRegister___in_tag_slots__eq},
+  {(bigint) 1 /* 53: IRegister < IRegister: superclass init_table position */},
+  {(bigint) icode_base___IRegister___stype},
+  {(bigint) icode_base___IRegister___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMMethod::_cname_cache */
-/* 2: Attribute MMMethod::_signature */
-/* 3: Attribute MMMethod::_signatures_cache */
-/* 4: Attribute MMMethod::_name */
-/* 5: Attribute MMMethod::_local_class */
-/* 6: Attribute MMMethod::_global */
-/* 7: Attribute MMMethod::_prhe */
-/* 8: Attribute MMMethod::_need_super */
-val_t NEW_MMMethod(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_MMMethod;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IRegister::_slot_index */
+/* 3: Attribute IRegister::_is_local */
+/* 4: Attribute IRegister::_local_iroutine */
+/* 5: Attribute IRegister::_in_tag_slots */
+/* 6: Attribute IRegister::_stype */
+void INIT_ATTRIBUTES__IRegister(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IRegister;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(true);
+  /* ./analysis//allocate_iregister_slots.nit:288 */
+  ATTR_allocate_iregister_slots___IRegister____is_local(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./analysis//allocate_iregister_slots.nit:294 */
+  ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMConcreteClass[105] = {
-  {(bigint) 2595 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMConcreteClass < Object: superclass typecheck marker */},
-  {(bigint) 103 /* 2: MMConcreteClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2595 /* 3: MMConcreteClass < MMConcreteClass: superclass typecheck marker */},
+val_t NEW_IRegister(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_IRegister;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IRegister(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IRegister;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IRegister____stype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stype");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_local");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_in_tag_slots");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IRegister_icode_base___IRegister___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29;
+  fra.me.meth = LOCATE_NEW_IRegister_icode_base___IRegister___init;
+  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;
+  fra.me.REG[1] = NEW_IRegister();
+  /* ./icode//icode_base.nit:29 */
+  INIT_ATTRIBUTES__IRegister(fra.me.REG[1]);
+  icode_base___IRegister___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IRegister(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_IEscapeMark[47] = {
+  {(bigint) 159 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IEscapeMark < Object: superclass typecheck marker */},
+  {(bigint) 159 /* 3: IEscapeMark < IEscapeMark: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75812,14 +228961,13 @@ const classtable_elt_t VFT_MMConcreteClass[105] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalClass___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMConcreteClass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IEscapeMark < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75827,7 +228975,6 @@ const classtable_elt_t VFT_MMConcreteClass[105] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75835,119 +228982,76 @@ const classtable_elt_t VFT_MMConcreteClass[105] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) abstracttool___MMLocalClass___dump_properties},
-  {(bigint) mmbuilder___MMLocalClass___accept_class_visitor},
-  {(bigint) mmbuilder___MMLocalClass___accept_properties_visitor},
-  {(bigint) genericity___MMLocalClass___get_formal},
-  {(bigint) genericity___MMLocalClass___register_formal},
-  {(bigint) genericity___MMLocalClass___get_instantiate_type},
-  {(bigint) genericity___MMLocalClass___formals_types},
-  {(bigint) static_type___MMLocalClass___get_type},
-  {(bigint) genericity___MMLocalClass___is_generic},
-  {(bigint) inheritance___MMLocalClass___compute_super_classes},
-  {(bigint) inheritance___MMLocalClass___compute_ancestors},
-  {(bigint) inheritance___MMLocalClass___inherit_global_properties},
-  {(bigint) inheritance___MMLocalClass___add_direct_parent},
-  {(bigint) inheritance___MMLocalClass___computed_super_classes},
-  {(bigint) inheritance___MMLocalClass___computed_ancestors},
-  {(bigint) inheritance___MMLocalClass___ancestor_for},
-  {(bigint) abstractmetamodel___MMLocalClass_____bra},
-  {(bigint) inheritance___MMLocalClass___add_default_any_class},
-  {(bigint) inheritance___MMLocalClass___add_super_classes},
-  {(bigint) inheritance___MMLocalClass___add_explicit_classes},
-  {(bigint) inheritance___MMLocalClass___compute_super_parents},
-  {(bigint) inheritance___MMLocalClass___build_ancestors},
-  {(bigint) inheritance___MMLocalClass___group_ancestors},
-  {(bigint) inheritance___MMLocalClass___merge_ancestors},
-  {(bigint) inheritance___MMLocalClass___inherit_local_property},
-  {(bigint) genericity___MMLocalClass___get_type},
-  {(bigint) static_type___MMLocalClass___add_ancestor},
-  {(bigint) static_type___MMLocalClass___ancestors},
-  {(bigint) static_type___MMLocalClass___ancestor},
-  {(bigint) 1 /* 69: MMConcreteClass < MMLocalClass: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalClass___name},
-  {(bigint) abstractmetamodel___MMLocalClass___arity},
-  {(bigint) abstractmetamodel___MMLocalClass___module},
-  {(bigint) abstractmetamodel___MMLocalClass___abstract},
-  {(bigint) abstractmetamodel___MMLocalClass___abstract__eq},
-  {(bigint) abstractmetamodel___MMLocalClass___global},
-  {(bigint) abstractmetamodel___MMLocalClass___crhe},
-  {(bigint) abstractmetamodel___MMLocalClass___cshe},
-  {(bigint) abstractmetamodel___MMLocalClass___che},
-  {(bigint) abstractmetamodel___MMLocalClass___local_property_by_global},
-  {(bigint) abstractmetamodel___MMLocalClass___global_properties},
-  {(bigint) abstractmetamodel___MMLocalClass___properties_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___init},
-  {(bigint) abstractmetamodel___MMLocalClass___for_module},
-  {(bigint) abstractmetamodel___MMLocalClass___new_global},
-  {(bigint) abstractmetamodel___MMLocalClass___set_global},
-  {(bigint) abstractmetamodel___MMLocalClass___has_global_property_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___get_property_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___attribute},
-  {(bigint) abstractmetamodel___MMLocalClass___method},
-  {(bigint) abstractmetamodel___MMLocalClass___select_method},
-  {(bigint) abstractmetamodel___MMLocalClass___select_attribute},
-  {(bigint) abstractmetamodel___MMLocalClass___super_methods_named},
-  {(bigint) abstractmetamodel___MMLocalClass___register_local_property},
-  {(bigint) abstractmetamodel___MMLocalClass___register_global_property},
-  {(bigint) inheritance___MMLocalClass_____bra},
-  {(bigint) abstractmetamodel___MMLocalClass___context},
-  {(bigint) virtualtype___MMLocalClass___virtual_type},
-  {(bigint) virtualtype___MMLocalClass___select_virtual_type},
-  {(bigint) compiling_global___MMLocalClass___compare},
-  {(bigint) compiling_global___MMLocalClass___declare_tables_to_c},
-  {(bigint) compiling_global___MMLocalClass___compile_tables_to_c},
-  {(bigint) compiling_base___MMLocalClass___primitive_info},
-  {(bigint) compiling_base___MMLocalClass___primitive_ctypes},
-  {(bigint) 2 /* 104: MMConcreteClass < MMConcreteClass: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute MMConcreteClass::_types */
-/* 2: Attribute MMConcreteClass::_formals_types */
-/* 3: Attribute MMConcreteClass::_direct_parents */
-/* 4: Attribute MMConcreteClass::_computing_super */
-/* 5: Attribute MMConcreteClass::_base_type_cache */
-/* 6: Attribute MMConcreteClass::_ancestors */
-/* 7: Attribute MMConcreteClass::_name */
-/* 8: Attribute MMConcreteClass::_arity */
-/* 9: Attribute MMConcreteClass::_module */
-/* 10: Attribute MMConcreteClass::_abstract */
-/* 11: Attribute MMConcreteClass::_global */
-/* 12: Attribute MMConcreteClass::_crhe */
-/* 13: Attribute MMConcreteClass::_cshe */
-/* 14: Attribute MMConcreteClass::_che */
-/* 15: Attribute MMConcreteClass::_local_property_by_global */
-/* 16: Attribute MMConcreteClass::_global_properties */
-/* 17: Attribute MMConcreteClass::_properties_by_name */
-/* 18: Attribute MMConcreteClass::_primitive_info_cache */
-/* 19: Attribute MMConcreteClass::_primitive_info_b */
-val_t NEW_MMConcreteClass(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: IEscapeMark < IEscapeMark: superclass init_table position */},
+  {(bigint) icode_base___IEscapeMark___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__IEscapeMark(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IEscapeMark;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IEscapeMark(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 20);
-  obj->vft = (classtable_elt_t*)VFT_MMConcreteClass;
-  ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((bigint)0);
-  ATTR_abstractmetamodel___MMLocalClass____abstract(obj) = TAG_Bool((int)0);
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_inheritance___MMLocalClass____direct_parents(obj) = variable0;
-  ATTR_inheritance___MMLocalClass____computing_super(obj) = TAG_Bool((int)0);
-  variable1 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_genericity___MMLocalClass____types(obj) = variable1;
-  variable2 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_genericity___MMLocalClass____formals_types(obj) = variable2;
-  ATTR_compiling_base___MMLocalClass____primitive_info_b(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_MMSignature[53] = {
-  {(bigint) 91 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSignature < Object: superclass typecheck marker */},
-  {(bigint) 91 /* 2: MMSignature < MMSignature: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_IEscapeMark;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IEscapeMark(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IEscapeMark;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IEscapeMark_icode_base___IEscapeMark___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_IEscapeMark_icode_base___IEscapeMark___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_IEscapeMark();
+  INIT_ATTRIBUTES__IEscapeMark(fra.me.REG[0]);
+  icode_base___IEscapeMark___init(fra.me.REG[0], init_table);
+  CHECKNEW_IEscapeMark(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_IClosureDecl[51] = {
+  {(bigint) 183 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IClosureDecl < Object: superclass typecheck marker */},
+  {(bigint) 183 /* 3: IClosureDecl < IClosureDecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75958,14 +229062,12 @@ const classtable_elt_t VFT_MMSignature[53] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) static_type___MMSignature___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSignature < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IClosureDecl < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -75973,7 +229075,6 @@ const classtable_elt_t VFT_MMSignature[53] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -75981,46 +229082,95 @@ const classtable_elt_t VFT_MMSignature[53] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) vararg___MMSignature___vararg_rank},
-  {(bigint) vararg___MMSignature___vararg_rank__eq},
-  {(bigint) vararg___MMSignature___has_vararg},
-  {(bigint) static_type___MMSignature___adaptation_to},
-  {(bigint) static_type___MMSignature___init},
-  {(bigint) 1 /* 45: MMSignature < MMSignature: superclass init_table position */},
-  {(bigint) static_type___MMSignature___recv},
-  {(bigint) static_type___MMSignature___return_type},
-  {(bigint) static_type___MMSignature___arity},
-  {(bigint) static_type___MMSignature_____l},
-  {(bigint) static_type___MMSignature_____bra},
-  {(bigint) vararg___MMSignature___adaptation_to},
-  {(bigint) vararg___MMSignature___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) icode_dump___IClosureDecl___dump},
+  {(bigint) 1 /* 46: IClosureDecl < IClosureDecl: superclass init_table position */},
+  {(bigint) icode_base___IClosureDecl___closure},
+  {(bigint) icode_base___IClosureDecl___default},
+  {(bigint) icode_base___IClosureDecl___default__eq},
+  {(bigint) icode_base___IClosureDecl___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSignature::_vararg_rank */
-/* 2: Attribute MMSignature::_recv */
-/* 3: Attribute MMSignature::_params */
-/* 4: Attribute MMSignature::_return_type */
-val_t NEW_MMSignature(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_MMSignature;
-  ATTR_vararg___MMSignature____vararg_rank(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IClosureDecl::_closure */
+/* 3: Attribute IClosureDecl::_default */
+void INIT_ATTRIBUTES__IClosureDecl(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IClosureDecl;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_static_type___MMSignature___init(val_t p0, val_t p1, val_t p2) {
+val_t NEW_IClosureDecl(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_IClosureDecl;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IClosureDecl(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IClosureDecl;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IClosureDecl____closure(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closure");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IClosureDecl_icode_base___IClosureDecl___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[2] = {0, 0};
-  val_t self = NEW_MMSignature();
-  vararg___MMSignature___init(self, p0, p1, p2, init_table);
-  return self;
-}
-const classtable_elt_t VFT_MMAncestor[49] = {
-  {(bigint) 123 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMAncestor < Object: superclass typecheck marker */},
-  {(bigint) 123 /* 2: MMAncestor < MMAncestor: superclass typecheck marker */},
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 47;
+  fra.me.meth = LOCATE_NEW_IClosureDecl_icode_base___IClosureDecl___init;
+  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;
+  fra.me.REG[1] = NEW_IClosureDecl();
+  /* ./icode//icode_base.nit:47 */
+  INIT_ATTRIBUTES__IClosureDecl(fra.me.REG[1]);
+  icode_base___IClosureDecl___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IClosureDecl(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_IRoutine[65] = {
+  {(bigint) 147 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IRoutine < Object: superclass typecheck marker */},
+  {(bigint) 147 /* 3: IRoutine < IRoutine: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76031,14 +229181,12 @@ const classtable_elt_t VFT_MMAncestor[49] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) static_type___MMAncestor___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMAncestor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IRoutine < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76046,7 +229194,6 @@ const classtable_elt_t VFT_MMAncestor[49] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76054,33 +229201,179 @@ const classtable_elt_t VFT_MMAncestor[49] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) inheritance___MMAncestor___add_in},
-  {(bigint) 1 /* 41: MMAncestor < MMAncestor: superclass init_table position */},
-  {(bigint) static_type___MMAncestor___stype},
-  {(bigint) static_type___MMAncestor___stype__eq},
-  {(bigint) static_type___MMAncestor___inheriter},
-  {(bigint) static_type___MMAncestor___inheriter__eq},
-  {(bigint) static_type___MMAncestor___is_reffinement},
-  {(bigint) static_type___MMAncestor___is_specialisation},
-  {(bigint) static_type___MMAncestor___local_class},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___IRoutine___compile_signature_to_c},
+  {(bigint) compiling_icode___IRoutine___compile_inside_to_c},
+  {(bigint) compiling_icode___IRoutine___compile_to_c},
+  {(bigint) analysis___IRoutine___optimize},
+  {(bigint) icode_dump___IRoutine___dump},
+  {(bigint) allocate_iregister_slots___IRoutine___std_slots_nb},
+  {(bigint) allocate_iregister_slots___IRoutine___tag_slots_nb},
+  {(bigint) allocate_iregister_slots___IRoutine___allocate_iregister_slots},
+  {(bigint) 1 /* 53: IRoutine < IRoutine: superclass init_table position */},
+  {(bigint) icode_base___IRoutine___params},
+  {(bigint) icode_base___IRoutine___closure_decls},
+  {(bigint) icode_base___IRoutine___closure_decls__eq},
+  {(bigint) icode_base___IRoutine___registers},
+  {(bigint) icode_base___IRoutine___result},
+  {(bigint) icode_base___IRoutine___escape_marks},
+  {(bigint) icode_base___IRoutine___body},
+  {(bigint) icode_base___IRoutine___location},
+  {(bigint) icode_base___IRoutine___location__eq},
+  {(bigint) icode_base___IRoutine___init},
+  {(bigint) inline_methods___IRoutine___inline_methods},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMAncestor::_stype */
-/* 2: Attribute MMAncestor::_inheriter */
-val_t NEW_MMAncestor(void) {
+/* 1: Object_id */
+/* 2: Attribute IRoutine::_std_slots_nb */
+/* 3: Attribute IRoutine::_tag_slots_nb */
+/* 4: Attribute IRoutine::_params */
+/* 5: Attribute IRoutine::_closure_decls */
+/* 6: Attribute IRoutine::_registers */
+/* 7: Attribute IRoutine::_result */
+/* 8: Attribute IRoutine::_escape_marks */
+/* 9: Attribute IRoutine::_body */
+/* 10: Attribute IRoutine::_location */
+void INIT_ATTRIBUTES__IRoutine(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IRoutine;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:55 */
+  ATTR_icode_base___IRoutine____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ArraySet_array___ArraySet___init();
+  /* ./icode//icode_base.nit:58 */
+  ATTR_icode_base___IRoutine____registers(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ArraySet_array___ArraySet___init();
+  /* ./icode//icode_base.nit:64 */
+  ATTR_icode_base___IRoutine____escape_marks(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ISeq_icode_base___ISeq___init();
+  /* ./icode//icode_base.nit:67 */
+  ATTR_icode_base___IRoutine____body(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:70 */
+  ATTR_icode_base___IRoutine____location(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./analysis//allocate_iregister_slots.nit:269 */
+  ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./analysis//allocate_iregister_slots.nit:272 */
+  ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IRoutine(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_MMAncestor;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_IRoutine;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IRoutine(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IRoutine;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IRoutine____params(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_params");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IRoutine____registers(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_registers");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IRoutine____escape_marks(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_escape_marks");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IRoutine____body(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_body");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_std_slots_nb");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tag_slots_nb");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IRoutine_icode_base___IRoutine___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 73;
+  fra.me.meth = LOCATE_NEW_IRoutine_icode_base___IRoutine___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IRoutine();
+  /* ./icode//icode_base.nit:73 */
+  INIT_ATTRIBUTES__IRoutine(fra.me.REG[2]);
+  icode_base___IRoutine___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IRoutine(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_MMType[57] = {
-  {(bigint) 87 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMType < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMType < MMType: superclass typecheck marker */},
+const classtable_elt_t VFT_IClosureDef[68] = {
+  {(bigint) 5211 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IClosureDef < Object: superclass typecheck marker */},
+  {(bigint) 147 /* 3: IClosureDef < IRoutine: superclass typecheck marker */},
+  {(bigint) 5211 /* 4: IClosureDef < IClosureDef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76091,14 +229384,11 @@ const classtable_elt_t VFT_MMType[57] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMType < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IClosureDef < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76106,7 +229396,6 @@ const classtable_elt_t VFT_MMType[57] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76114,40 +229403,181 @@ const classtable_elt_t VFT_MMType[57] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMType___is_generic},
-  {(bigint) type_formal___MMType___direct_type},
-  {(bigint) 1 /* 48: MMType < MMType: superclass init_table position */},
-  {(bigint) static_type___MMType___module},
-  {(bigint) static_type___MMType___local_class},
-  {(bigint) static_type___MMType_____l},
-  {(bigint) static_type___MMType___is_supertype},
-  {(bigint) static_type___MMType___for_module},
-  {(bigint) static_type___MMType___adapt_to},
-  {(bigint) static_type___MMType___upcast_for},
-  {(bigint) static_type___MMType___not_for_self},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___IRoutine___compile_signature_to_c},
+  {(bigint) compiling_icode___IRoutine___compile_inside_to_c},
+  {(bigint) compiling_icode___IRoutine___compile_to_c},
+  {(bigint) analysis___IRoutine___optimize},
+  {(bigint) icode_dump___IRoutine___dump},
+  {(bigint) allocate_iregister_slots___IRoutine___std_slots_nb},
+  {(bigint) allocate_iregister_slots___IRoutine___tag_slots_nb},
+  {(bigint) allocate_iregister_slots___IRoutine___allocate_iregister_slots},
+  {(bigint) 1 /* 53: IClosureDef < IRoutine: superclass init_table position */},
+  {(bigint) icode_base___IRoutine___params},
+  {(bigint) icode_base___IRoutine___closure_decls},
+  {(bigint) icode_base___IRoutine___closure_decls__eq},
+  {(bigint) icode_base___IRoutine___registers},
+  {(bigint) icode_base___IRoutine___result},
+  {(bigint) icode_base___IRoutine___escape_marks},
+  {(bigint) icode_base___IRoutine___body},
+  {(bigint) icode_base___IRoutine___location},
+  {(bigint) icode_base___IRoutine___location__eq},
+  {(bigint) icode_base___IRoutine___init},
+  {(bigint) inline_methods___IRoutine___inline_methods},
+  {(bigint) compiling_icode___IClosureDef___compile_closure},
+  {(bigint) 2 /* 66: IClosureDef < IClosureDef: superclass init_table position */},
+  {(bigint) icode_base___IClosureDef___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_MMType(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_MMType;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IClosureDef::_std_slots_nb */
+/* 3: Attribute IClosureDef::_tag_slots_nb */
+/* 4: Attribute IClosureDef::_params */
+/* 5: Attribute IClosureDef::_closure_decls */
+/* 6: Attribute IClosureDef::_registers */
+/* 7: Attribute IClosureDef::_result */
+/* 8: Attribute IClosureDef::_escape_marks */
+/* 9: Attribute IClosureDef::_body */
+/* 10: Attribute IClosureDef::_location */
+void INIT_ATTRIBUTES__IClosureDef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IClosureDef;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:55 */
+  ATTR_icode_base___IRoutine____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ArraySet_array___ArraySet___init();
+  /* ./icode//icode_base.nit:58 */
+  ATTR_icode_base___IRoutine____registers(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ArraySet_array___ArraySet___init();
+  /* ./icode//icode_base.nit:64 */
+  ATTR_icode_base___IRoutine____escape_marks(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ISeq_icode_base___ISeq___init();
+  /* ./icode//icode_base.nit:67 */
+  ATTR_icode_base___IRoutine____body(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:70 */
+  ATTR_icode_base___IRoutine____location(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./analysis//allocate_iregister_slots.nit:269 */
+  ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./analysis//allocate_iregister_slots.nit:272 */
+  ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMTypeClass[59] = {
-  {(bigint) 2563 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMTypeClass < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMTypeClass < MMType: superclass typecheck marker */},
-  {(bigint) 2563 /* 3: MMTypeClass < MMTypeClass: superclass typecheck marker */},
+val_t NEW_IClosureDef(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_IClosureDef;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IClosureDef(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IClosureDef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IRoutine____params(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_params");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IRoutine____registers(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_registers");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IRoutine____escape_marks(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_escape_marks");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IRoutine____body(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_body");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_std_slots_nb");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tag_slots_nb");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IClosureDef_icode_base___IClosureDef___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 83;
+  fra.me.meth = LOCATE_NEW_IClosureDef_icode_base___IClosureDef___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IClosureDef();
+  /* ./icode//icode_base.nit:83 */
+  INIT_ATTRIBUTES__IClosureDef(fra.me.REG[2]);
+  icode_base___IClosureDef___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IClosureDef(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ICode[61] = {
+  {(bigint) 179 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICode < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ICode < ICode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76157,14 +229587,13 @@ const classtable_elt_t VFT_MMTypeClass[59] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) static_type___MMTypeClass___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMTypeClass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICode < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76172,7 +229601,6 @@ const classtable_elt_t VFT_MMTypeClass[59] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76180,50 +229608,102 @@ const classtable_elt_t VFT_MMTypeClass[59] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMType___is_generic},
-  {(bigint) type_formal___MMType___direct_type},
-  {(bigint) 1 /* 48: MMTypeClass < MMType: superclass init_table position */},
-  {(bigint) static_type___MMTypeClass___module},
-  {(bigint) static_type___MMTypeClass___local_class},
-  {(bigint) static_type___MMTypeClass_____l},
-  {(bigint) static_type___MMType___is_supertype},
-  {(bigint) static_type___MMType___for_module},
-  {(bigint) static_type___MMType___adapt_to},
-  {(bigint) static_type___MMTypeClass___upcast_for},
-  {(bigint) static_type___MMType___not_for_self},
-  {(bigint) 2 /* 57: MMTypeClass < MMTypeClass: superclass init_table position */},
-  {(bigint) static_type___MMTypeClass___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ICode___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ICode___inner_dup_with},
+  {(bigint) 1 /* 53: ICode < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMTypeClass::_local_class */
-val_t NEW_MMTypeClass(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_MMTypeClass;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute ICode::_result */
+/* 3: Attribute ICode::_location */
+void INIT_ATTRIBUTES__ICode(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICode;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_static_type___MMTypeClass___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMTypeClass();
-  static_type___MMTypeClass___init(self, p0, init_table);
-  return self;
+val_t NEW_ICode(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_ICode;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ICode(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICode_icode_base___ICode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ICode_icode_base___ICode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ICode();
+  INIT_ATTRIBUTES__ICode(fra.me.REG[0]);
+  icode_base___ICode___init(fra.me.REG[0], init_table);
+  CHECKNEW_ICode(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_MMTypeSimpleClass[61] = {
-  {(bigint) 3151 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMTypeSimpleClass < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMTypeSimpleClass < MMType: superclass typecheck marker */},
-  {(bigint) 2563 /* 3: MMTypeSimpleClass < MMTypeClass: superclass typecheck marker */},
-  {(bigint) 3151 /* 4: MMTypeSimpleClass < MMTypeSimpleClass: superclass typecheck marker */},
+const classtable_elt_t VFT_ICode0[62] = {
+  {(bigint) 5207 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICode0 < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ICode0 < ICode: superclass typecheck marker */},
+  {(bigint) 5207 /* 4: ICode0 < ICode0: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76232,14 +229712,13 @@ const classtable_elt_t VFT_MMTypeSimpleClass[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) static_type___MMTypeClass___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMTypeSimpleClass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICode0 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76247,7 +229726,6 @@ const classtable_elt_t VFT_MMTypeSimpleClass[61] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76255,51 +229733,103 @@ const classtable_elt_t VFT_MMTypeSimpleClass[61] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMTypeSimpleClass___is_generic},
-  {(bigint) type_formal___MMType___direct_type},
-  {(bigint) 1 /* 48: MMTypeSimpleClass < MMType: superclass init_table position */},
-  {(bigint) static_type___MMTypeClass___module},
-  {(bigint) static_type___MMTypeClass___local_class},
-  {(bigint) static_type___MMTypeClass_____l},
-  {(bigint) static_type___MMTypeSimpleClass___is_supertype},
-  {(bigint) static_type___MMTypeSimpleClass___for_module},
-  {(bigint) static_type___MMTypeSimpleClass___adapt_to},
-  {(bigint) static_type___MMTypeClass___upcast_for},
-  {(bigint) static_type___MMType___not_for_self},
-  {(bigint) 2 /* 57: MMTypeSimpleClass < MMTypeClass: superclass init_table position */},
-  {(bigint) static_type___MMTypeClass___init},
-  {(bigint) 3 /* 59: MMTypeSimpleClass < MMTypeSimpleClass: superclass init_table position */},
-  {(bigint) static_type___MMTypeSimpleClass___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ICode___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ICode___inner_dup_with},
+  {(bigint) 1 /* 53: ICode0 < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode0___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: ICode0 < ICode0: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMTypeSimpleClass::_local_class */
-val_t NEW_MMTypeSimpleClass(void) {
+/* 1: Object_id */
+/* 2: Attribute ICode0::_result */
+/* 3: Attribute ICode0::_location */
+void INIT_ATTRIBUTES__ICode0(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICode0;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICode0(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_MMTypeSimpleClass;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_ICode0;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_static_type___MMTypeSimpleClass___init(val_t p0) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_MMTypeSimpleClass();
-  static_type___MMTypeSimpleClass___init(self, p0, init_table);
-  return self;
+void CHECKNEW_ICode0(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICode0;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMTypeNone[59] = {
-  {(bigint) 2555 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMTypeNone < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMTypeNone < MMType: superclass typecheck marker */},
-  {(bigint) 2555 /* 3: MMTypeNone < MMTypeNone: superclass typecheck marker */},
+val_t NEW_ICode0_icode_base___ICode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ICode0_icode_base___ICode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ICode0();
+  INIT_ATTRIBUTES__ICode0(fra.me.REG[0]);
+  icode_base___ICode___init(fra.me.REG[0], init_table);
+  CHECKNEW_ICode0(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ICode1[64] = {
+  {(bigint) 5203 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICode1 < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ICode1 < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: ICode1 < ICode1: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76309,14 +229839,12 @@ const classtable_elt_t VFT_MMTypeNone[59] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMTypeNone < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICode1 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76324,7 +229852,6 @@ const classtable_elt_t VFT_MMTypeNone[59] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76332,49 +229859,119 @@ const classtable_elt_t VFT_MMTypeNone[59] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMTypeNone___is_generic},
-  {(bigint) type_formal___MMType___direct_type},
-  {(bigint) 1 /* 48: MMTypeNone < MMType: superclass init_table position */},
-  {(bigint) static_type___MMTypeNone___module},
-  {(bigint) static_type___MMTypeNone___local_class},
-  {(bigint) static_type___MMTypeNone_____l},
-  {(bigint) static_type___MMTypeNone___is_supertype},
-  {(bigint) genericity___MMTypeNone___for_module},
-  {(bigint) genericity___MMTypeNone___adapt_to},
-  {(bigint) static_type___MMTypeNone___upcast_for},
-  {(bigint) static_type___MMType___not_for_self},
-  {(bigint) 2 /* 57: MMTypeNone < MMTypeNone: superclass init_table position */},
-  {(bigint) static_type___MMTypeNone___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ICode___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ICode___inner_dup_with},
+  {(bigint) 1 /* 53: ICode1 < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: ICode1 < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMTypeNone::_module */
-val_t NEW_MMTypeNone(void) {
+/* 1: Object_id */
+/* 2: Attribute ICode1::_result */
+/* 3: Attribute ICode1::_location */
+/* 4: Attribute ICode1::_expr */
+void INIT_ATTRIBUTES__ICode1(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICode1;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICode1(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_MMTypeNone;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_ICode1;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_static_type___MMTypeNone___init(val_t p0) {
+void CHECKNEW_ICode1(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICode1;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICode1_icode_base___ICode1___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMTypeNone();
-  static_type___MMTypeNone___init(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 120;
+  fra.me.meth = LOCATE_NEW_ICode1_icode_base___ICode1___init;
+  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;
+  fra.me.REG[1] = NEW_ICode1();
+  /* ./icode//icode_base.nit:120 */
+  INIT_ATTRIBUTES__ICode1(fra.me.REG[1]);
+  icode_base___ICode1___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ICode1(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_MMImplicitLocalClass[106] = {
-  {(bigint) 2587 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMImplicitLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 103 /* 2: MMImplicitLocalClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2587 /* 3: MMImplicitLocalClass < MMImplicitLocalClass: superclass typecheck marker */},
+const classtable_elt_t VFT_ICode2[65] = {
+  {(bigint) 5199 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICode2 < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ICode2 < ICode: superclass typecheck marker */},
+  {(bigint) 5199 /* 4: ICode2 < ICode2: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76384,14 +229981,12 @@ const classtable_elt_t VFT_MMImplicitLocalClass[106] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalClass___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMImplicitLocalClass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICode2 < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76399,7 +229994,6 @@ const classtable_elt_t VFT_MMImplicitLocalClass[106] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76407,127 +230001,130 @@ const classtable_elt_t VFT_MMImplicitLocalClass[106] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) abstracttool___MMLocalClass___dump_properties},
-  {(bigint) mmbuilder___MMLocalClass___accept_class_visitor},
-  {(bigint) mmbuilder___MMLocalClass___accept_properties_visitor},
-  {(bigint) genericity___MMLocalClass___get_formal},
-  {(bigint) genericity___MMLocalClass___register_formal},
-  {(bigint) genericity___MMLocalClass___get_instantiate_type},
-  {(bigint) genericity___MMLocalClass___formals_types},
-  {(bigint) static_type___MMLocalClass___get_type},
-  {(bigint) genericity___MMLocalClass___is_generic},
-  {(bigint) inheritance___MMLocalClass___compute_super_classes},
-  {(bigint) inheritance___MMLocalClass___compute_ancestors},
-  {(bigint) inheritance___MMLocalClass___inherit_global_properties},
-  {(bigint) inheritance___MMLocalClass___add_direct_parent},
-  {(bigint) inheritance___MMLocalClass___computed_super_classes},
-  {(bigint) inheritance___MMLocalClass___computed_ancestors},
-  {(bigint) inheritance___MMLocalClass___ancestor_for},
-  {(bigint) abstractmetamodel___MMLocalClass_____bra},
-  {(bigint) inheritance___MMLocalClass___add_default_any_class},
-  {(bigint) inheritance___MMLocalClass___add_super_classes},
-  {(bigint) inheritance___MMLocalClass___add_explicit_classes},
-  {(bigint) inheritance___MMLocalClass___compute_super_parents},
-  {(bigint) inheritance___MMLocalClass___build_ancestors},
-  {(bigint) inheritance___MMLocalClass___group_ancestors},
-  {(bigint) inheritance___MMLocalClass___merge_ancestors},
-  {(bigint) inheritance___MMLocalClass___inherit_local_property},
-  {(bigint) genericity___MMLocalClass___get_type},
-  {(bigint) static_type___MMLocalClass___add_ancestor},
-  {(bigint) static_type___MMLocalClass___ancestors},
-  {(bigint) static_type___MMLocalClass___ancestor},
-  {(bigint) 1 /* 69: MMImplicitLocalClass < MMLocalClass: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalClass___name},
-  {(bigint) abstractmetamodel___MMLocalClass___arity},
-  {(bigint) abstractmetamodel___MMLocalClass___module},
-  {(bigint) abstractmetamodel___MMLocalClass___abstract},
-  {(bigint) abstractmetamodel___MMLocalClass___abstract__eq},
-  {(bigint) abstractmetamodel___MMLocalClass___global},
-  {(bigint) abstractmetamodel___MMLocalClass___crhe},
-  {(bigint) abstractmetamodel___MMLocalClass___cshe},
-  {(bigint) abstractmetamodel___MMLocalClass___che},
-  {(bigint) abstractmetamodel___MMLocalClass___local_property_by_global},
-  {(bigint) abstractmetamodel___MMLocalClass___global_properties},
-  {(bigint) abstractmetamodel___MMLocalClass___properties_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___init},
-  {(bigint) abstractmetamodel___MMLocalClass___for_module},
-  {(bigint) abstractmetamodel___MMLocalClass___new_global},
-  {(bigint) abstractmetamodel___MMLocalClass___set_global},
-  {(bigint) abstractmetamodel___MMLocalClass___has_global_property_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___get_property_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___attribute},
-  {(bigint) abstractmetamodel___MMLocalClass___method},
-  {(bigint) abstractmetamodel___MMLocalClass___select_method},
-  {(bigint) abstractmetamodel___MMLocalClass___select_attribute},
-  {(bigint) abstractmetamodel___MMLocalClass___super_methods_named},
-  {(bigint) abstractmetamodel___MMLocalClass___register_local_property},
-  {(bigint) abstractmetamodel___MMLocalClass___register_global_property},
-  {(bigint) inheritance___MMLocalClass_____bra},
-  {(bigint) abstractmetamodel___MMLocalClass___context},
-  {(bigint) virtualtype___MMLocalClass___virtual_type},
-  {(bigint) virtualtype___MMLocalClass___select_virtual_type},
-  {(bigint) compiling_global___MMLocalClass___compare},
-  {(bigint) compiling_global___MMLocalClass___declare_tables_to_c},
-  {(bigint) compiling_global___MMLocalClass___compile_tables_to_c},
-  {(bigint) compiling_base___MMLocalClass___primitive_info},
-  {(bigint) compiling_base___MMLocalClass___primitive_ctypes},
-  {(bigint) 2 /* 104: MMImplicitLocalClass < MMImplicitLocalClass: superclass init_table position */},
-  {(bigint) inheritance___MMImplicitLocalClass___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ICode___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ICode___inner_dup_with},
+  {(bigint) 1 /* 53: ICode2 < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode2___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: ICode2 < ICode2: superclass init_table position */},
+  {(bigint) icode_base___ICode2___expr1},
+  {(bigint) icode_base___ICode2___expr2},
+  {(bigint) icode_base___ICode2___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMImplicitLocalClass::_types */
-/* 2: Attribute MMImplicitLocalClass::_formals_types */
-/* 3: Attribute MMImplicitLocalClass::_direct_parents */
-/* 4: Attribute MMImplicitLocalClass::_computing_super */
-/* 5: Attribute MMImplicitLocalClass::_base_type_cache */
-/* 6: Attribute MMImplicitLocalClass::_ancestors */
-/* 7: Attribute MMImplicitLocalClass::_name */
-/* 8: Attribute MMImplicitLocalClass::_arity */
-/* 9: Attribute MMImplicitLocalClass::_module */
-/* 10: Attribute MMImplicitLocalClass::_abstract */
-/* 11: Attribute MMImplicitLocalClass::_global */
-/* 12: Attribute MMImplicitLocalClass::_crhe */
-/* 13: Attribute MMImplicitLocalClass::_cshe */
-/* 14: Attribute MMImplicitLocalClass::_che */
-/* 15: Attribute MMImplicitLocalClass::_local_property_by_global */
-/* 16: Attribute MMImplicitLocalClass::_global_properties */
-/* 17: Attribute MMImplicitLocalClass::_properties_by_name */
-/* 18: Attribute MMImplicitLocalClass::_primitive_info_cache */
-/* 19: Attribute MMImplicitLocalClass::_primitive_info_b */
-val_t NEW_MMImplicitLocalClass(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
+/* 1: Object_id */
+/* 2: Attribute ICode2::_result */
+/* 3: Attribute ICode2::_location */
+/* 4: Attribute ICode2::_expr1 */
+/* 5: Attribute ICode2::_expr2 */
+void INIT_ATTRIBUTES__ICode2(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICode2;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICode2(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 20);
-  obj->vft = (classtable_elt_t*)VFT_MMImplicitLocalClass;
-  ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((bigint)0);
-  ATTR_abstractmetamodel___MMLocalClass____abstract(obj) = TAG_Bool((int)0);
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_inheritance___MMLocalClass____direct_parents(obj) = variable0;
-  ATTR_inheritance___MMLocalClass____computing_super(obj) = TAG_Bool((int)0);
-  variable1 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_genericity___MMLocalClass____types(obj) = variable1;
-  variable2 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_genericity___MMLocalClass____formals_types(obj) = variable2;
-  ATTR_compiling_base___MMLocalClass____primitive_info_b(obj) = TAG_Bool((int)0);
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ICode2;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_inheritance___MMImplicitLocalClass___init(val_t p0, val_t p1) {
+void CHECKNEW_ICode2(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICode2;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode2____expr1(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr1");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode2____expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICode2_icode_base___ICode2___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMImplicitLocalClass();
-  inheritance___MMImplicitLocalClass___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 134;
+  fra.me.meth = LOCATE_NEW_ICode2_icode_base___ICode2___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ICode2();
+  /* ./icode//icode_base.nit:134 */
+  INIT_ATTRIBUTES__ICode2(fra.me.REG[2]);
+  icode_base___ICode2___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ICode2(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_MMRefineAncestor[51] = {
-  {(bigint) 2579 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMRefineAncestor < Object: superclass typecheck marker */},
-  {(bigint) 123 /* 2: MMRefineAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2579 /* 3: MMRefineAncestor < MMRefineAncestor: superclass typecheck marker */},
+const classtable_elt_t VFT_ICodeN[67] = {
+  {(bigint) 5195 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICodeN < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ICodeN < ICode: superclass typecheck marker */},
+  {(bigint) 5195 /* 4: ICodeN < ICodeN: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76537,14 +230134,12 @@ const classtable_elt_t VFT_MMRefineAncestor[51] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) static_type___MMAncestor___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMRefineAncestor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICodeN < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76552,7 +230147,6 @@ const classtable_elt_t VFT_MMRefineAncestor[51] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76560,43 +230154,124 @@ const classtable_elt_t VFT_MMRefineAncestor[51] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
-  {(bigint) math___Object___srand_from},
-  {(bigint) math___Object___srand},
-  {(bigint) inheritance___MMAncestor___add_in},
-  {(bigint) 1 /* 41: MMRefineAncestor < MMAncestor: superclass init_table position */},
-  {(bigint) static_type___MMAncestor___stype},
-  {(bigint) static_type___MMAncestor___stype__eq},
-  {(bigint) static_type___MMAncestor___inheriter},
-  {(bigint) static_type___MMAncestor___inheriter__eq},
-  {(bigint) static_type___MMAncestor___is_reffinement},
-  {(bigint) static_type___MMAncestor___is_specialisation},
-  {(bigint) inheritance___MMRefineAncestor___local_class},
-  {(bigint) 2 /* 49: MMRefineAncestor < MMRefineAncestor: superclass init_table position */},
-  {(bigint) inheritance___MMRefineAncestor___init},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ICode___inner_compile_to_c},
+  {(bigint) icode_dump___ICodeN___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ICode___inner_dup_with},
+  {(bigint) 1 /* 53: ICodeN < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) 2 /* 62: ICodeN < ICodeN: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___exprs},
+  {(bigint) icode_base___ICodeN___closure_defs},
+  {(bigint) icode_base___ICodeN___closure_defs__eq},
+  {(bigint) icode_base___ICodeN___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMRefineAncestor::_stype */
-/* 2: Attribute MMRefineAncestor::_inheriter */
-/* 3: Attribute MMRefineAncestor::_local_class */
-val_t NEW_MMRefineAncestor(void) {
+/* 1: Object_id */
+/* 2: Attribute ICodeN::_result */
+/* 3: Attribute ICodeN::_location */
+/* 4: Attribute ICodeN::_exprs */
+/* 5: Attribute ICodeN::_closure_defs */
+void INIT_ATTRIBUTES__ICodeN(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICodeN;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICodeN(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_MMRefineAncestor;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ICodeN;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_inheritance___MMRefineAncestor___init(val_t p0, val_t p1) {
+void CHECKNEW_ICodeN(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICodeN;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICodeN_icode_base___ICodeN___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMRefineAncestor();
-  inheritance___MMRefineAncestor___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 152;
+  fra.me.meth = LOCATE_NEW_ICodeN_icode_base___ICodeN___init;
+  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;
+  fra.me.REG[1] = NEW_ICodeN();
+  /* ./icode//icode_base.nit:152 */
+  INIT_ATTRIBUTES__ICodeN(fra.me.REG[1]);
+  icode_base___ICodeN___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ICodeN(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_MMSpecAncestor[51] = {
-  {(bigint) 2575 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSpecAncestor < Object: superclass typecheck marker */},
-  {(bigint) 123 /* 2: MMSpecAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2575 /* 3: MMSpecAncestor < MMSpecAncestor: superclass typecheck marker */},
+const classtable_elt_t VFT_ISeq[68] = {
+  {(bigint) 5791 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ISeq < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ISeq < ICode: superclass typecheck marker */},
+  {(bigint) 5207 /* 4: ISeq < ICode0: superclass typecheck marker */},
+  {(bigint) 5791 /* 5: ISeq < ISeq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76606,14 +230281,11 @@ const classtable_elt_t VFT_MMSpecAncestor[51] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) static_type___MMAncestor___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSpecAncestor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ISeq < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76621,7 +230293,6 @@ const classtable_elt_t VFT_MMSpecAncestor[51] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76629,42 +230300,127 @@ const classtable_elt_t VFT_MMSpecAncestor[51] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) inheritance___MMAncestor___add_in},
-  {(bigint) 1 /* 41: MMSpecAncestor < MMAncestor: superclass init_table position */},
-  {(bigint) static_type___MMAncestor___stype},
-  {(bigint) static_type___MMAncestor___stype__eq},
-  {(bigint) static_type___MMAncestor___inheriter},
-  {(bigint) static_type___MMAncestor___inheriter__eq},
-  {(bigint) static_type___MMAncestor___is_reffinement},
-  {(bigint) static_type___MMAncestor___is_specialisation},
-  {(bigint) inheritance___MMSpecAncestor___local_class},
-  {(bigint) 2 /* 49: MMSpecAncestor < MMSpecAncestor: superclass init_table position */},
-  {(bigint) inheritance___MMSpecAncestor___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ISeq___inner_compile_to_c},
+  {(bigint) icode_dump___ISeq___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ISeq___inner_dup_with},
+  {(bigint) 1 /* 53: ISeq < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode0___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: ISeq < ICode0: superclass init_table position */},
+  {(bigint) icode_tools___ISeq___dup_seq_to},
+  {(bigint) 3 /* 63: ISeq < ISeq: superclass init_table position */},
+  {(bigint) icode_base___ISeq___icodes},
+  {(bigint) icode_base___ISeq___iescape_mark},
+  {(bigint) icode_base___ISeq___iescape_mark__eq},
+  {(bigint) icode_base___ISeq___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSpecAncestor::_stype */
-/* 2: Attribute MMSpecAncestor::_inheriter */
-val_t NEW_MMSpecAncestor(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_MMSpecAncestor;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute ISeq::_result */
+/* 3: Attribute ISeq::_location */
+/* 4: Attribute ISeq::_icodes */
+/* 5: Attribute ISeq::_iescape_mark */
+void INIT_ATTRIBUTES__ISeq(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ISeq;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./icode//icode_base.nit:167 */
+  ATTR_icode_base___ISeq____icodes(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_inheritance___MMSpecAncestor___init(val_t p0, val_t p1) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMSpecAncestor();
-  inheritance___MMSpecAncestor___init(self, p0, p1, init_table);
-  return self;
+val_t NEW_ISeq(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ISeq;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ISeq(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ISeq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ISeq____icodes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_icodes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ISeq_icode_base___ISeq___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 173;
+  fra.me.meth = LOCATE_NEW_ISeq_icode_base___ISeq___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ISeq();
+  /* ./icode//icode_base.nit:173 */
+  INIT_ATTRIBUTES__ISeq(fra.me.REG[0]);
+  icode_base___ISeq___init(fra.me.REG[0], init_table);
+  CHECKNEW_ISeq(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_MMDefaultAncestor[51] = {
-  {(bigint) 2591 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMDefaultAncestor < Object: superclass typecheck marker */},
-  {(bigint) 123 /* 2: MMDefaultAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2591 /* 3: MMDefaultAncestor < MMDefaultAncestor: superclass typecheck marker */},
+const classtable_elt_t VFT_ILoop[70] = {
+  {(bigint) 6075 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ILoop < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ILoop < ICode: superclass typecheck marker */},
+  {(bigint) 5207 /* 4: ILoop < ICode0: superclass typecheck marker */},
+  {(bigint) 5791 /* 5: ILoop < ISeq: superclass typecheck marker */},
+  {(bigint) 6075 /* 6: ILoop < ILoop: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76674,14 +230430,10 @@ const classtable_elt_t VFT_MMDefaultAncestor[51] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) static_type___MMAncestor___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMDefaultAncestor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ILoop < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76689,7 +230441,6 @@ const classtable_elt_t VFT_MMDefaultAncestor[51] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76697,42 +230448,128 @@ const classtable_elt_t VFT_MMDefaultAncestor[51] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) inheritance___MMAncestor___add_in},
-  {(bigint) 1 /* 41: MMDefaultAncestor < MMAncestor: superclass init_table position */},
-  {(bigint) static_type___MMAncestor___stype},
-  {(bigint) static_type___MMAncestor___stype__eq},
-  {(bigint) static_type___MMAncestor___inheriter},
-  {(bigint) static_type___MMAncestor___inheriter__eq},
-  {(bigint) static_type___MMAncestor___is_reffinement},
-  {(bigint) static_type___MMAncestor___is_specialisation},
-  {(bigint) inheritance___MMDefaultAncestor___local_class},
-  {(bigint) 2 /* 49: MMDefaultAncestor < MMDefaultAncestor: superclass init_table position */},
-  {(bigint) inheritance___MMDefaultAncestor___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ILoop___inner_compile_to_c},
+  {(bigint) icode_dump___ILoop___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ILoop___inner_dup_with},
+  {(bigint) 1 /* 53: ILoop < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode0___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: ILoop < ICode0: superclass init_table position */},
+  {(bigint) icode_tools___ISeq___dup_seq_to},
+  {(bigint) 3 /* 63: ILoop < ISeq: superclass init_table position */},
+  {(bigint) icode_base___ISeq___icodes},
+  {(bigint) icode_base___ISeq___iescape_mark},
+  {(bigint) icode_base___ISeq___iescape_mark__eq},
+  {(bigint) icode_base___ISeq___init},
+  {(bigint) 4 /* 68: ILoop < ILoop: superclass init_table position */},
+  {(bigint) icode_base___ILoop___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMDefaultAncestor::_stype */
-/* 2: Attribute MMDefaultAncestor::_inheriter */
-val_t NEW_MMDefaultAncestor(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_MMDefaultAncestor;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute ILoop::_result */
+/* 3: Attribute ILoop::_location */
+/* 4: Attribute ILoop::_icodes */
+/* 5: Attribute ILoop::_iescape_mark */
+void INIT_ATTRIBUTES__ILoop(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ILoop;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./icode//icode_base.nit:167 */
+  ATTR_icode_base___ISeq____icodes(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_inheritance___MMDefaultAncestor___init(val_t p0, val_t p1) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMDefaultAncestor();
-  inheritance___MMDefaultAncestor___init(self, p0, p1, init_table);
-  return self;
+val_t NEW_ILoop(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ILoop;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ILoop(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ILoop;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ISeq____icodes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_icodes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ILoop_icode_base___ILoop___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 180;
+  fra.me.meth = LOCATE_NEW_ILoop_icode_base___ILoop___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ILoop();
+  /* ./icode//icode_base.nit:180 */
+  INIT_ATTRIBUTES__ILoop(fra.me.REG[0]);
+  icode_base___ILoop___init(fra.me.REG[0], init_table);
+  CHECKNEW_ILoop(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_MMTypeFormal[61] = {
-  {(bigint) 2559 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMTypeFormal < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMTypeFormal < MMType: superclass typecheck marker */},
-  {(bigint) 2559 /* 3: MMTypeFormal < MMTypeFormal: superclass typecheck marker */},
+const classtable_elt_t VFT_IIf[68] = {
+  {(bigint) 5827 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IIf < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IIf < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: IIf < ICode1: superclass typecheck marker */},
+  {(bigint) 5827 /* 5: IIf < IIf: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76742,14 +230579,11 @@ const classtable_elt_t VFT_MMTypeFormal[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) type_formal___MMTypeFormal___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMTypeFormal < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IIf < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76757,7 +230591,6 @@ const classtable_elt_t VFT_MMTypeFormal[61] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76765,53 +230598,146 @@ const classtable_elt_t VFT_MMTypeFormal[61] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMTypeFormal___is_generic},
-  {(bigint) type_formal___MMTypeFormal___direct_type},
-  {(bigint) 1 /* 48: MMTypeFormal < MMType: superclass init_table position */},
-  {(bigint) static_type___MMType___module},
-  {(bigint) type_formal___MMTypeFormal___local_class},
-  {(bigint) type_formal___MMTypeFormal_____l},
-  {(bigint) type_formal___MMTypeFormal___is_supertype},
-  {(bigint) static_type___MMType___for_module},
-  {(bigint) static_type___MMType___adapt_to},
-  {(bigint) static_type___MMType___upcast_for},
-  {(bigint) static_type___MMType___not_for_self},
-  {(bigint) 2 /* 57: MMTypeFormal < MMTypeFormal: superclass init_table position */},
-  {(bigint) type_formal___MMTypeFormal___name},
-  {(bigint) type_formal___MMTypeFormal___bound},
-  {(bigint) type_formal___MMTypeFormal___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IIf___inner_compile_to_c},
+  {(bigint) icode_dump___IIf___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IIf___inner_dup_with},
+  {(bigint) 1 /* 53: IIf < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IIf < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
+  {(bigint) 3 /* 64: IIf < IIf: superclass init_table position */},
+  {(bigint) icode_base___IIf___then_seq},
+  {(bigint) icode_base___IIf___else_seq},
+  {(bigint) icode_base___IIf___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMTypeFormal::_name */
-/* 2: Attribute MMTypeFormal::_bound */
-val_t NEW_MMTypeFormal(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_MMTypeFormal;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IIf::_result */
+/* 3: Attribute IIf::_location */
+/* 4: Attribute IIf::_expr */
+/* 5: Attribute IIf::_then_seq */
+/* 6: Attribute IIf::_else_seq */
+void INIT_ATTRIBUTES__IIf(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IIf;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ISeq_icode_base___ISeq___init();
+  /* ./icode//icode_base.nit:187 */
+  ATTR_icode_base___IIf____then_seq(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ISeq_icode_base___ISeq___init();
+  /* ./icode//icode_base.nit:189 */
+  ATTR_icode_base___IIf____else_seq(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_type_formal___MMTypeFormal___init(val_t p0, val_t p1) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMTypeFormal();
-  type_formal___MMTypeFormal___init(self, p0, p1, init_table);
-  return self;
+val_t NEW_IIf(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_IIf;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IIf(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IIf;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IIf____then_seq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_then_seq");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IIf____else_seq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_else_seq");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IIf_icode_base___IIf___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 191;
+  fra.me.meth = LOCATE_NEW_IIf_icode_base___IIf___init;
+  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;
+  fra.me.REG[1] = NEW_IIf();
+  /* ./icode//icode_base.nit:191 */
+  INIT_ATTRIBUTES__IIf(fra.me.REG[1]);
+  icode_base___IIf___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IIf(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_MMTypeGeneric[66] = {
-  {(bigint) 3155 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMTypeGeneric < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMTypeGeneric < MMType: superclass typecheck marker */},
-  {(bigint) 2563 /* 3: MMTypeGeneric < MMTypeClass: superclass typecheck marker */},
-  {(bigint) 3155 /* 4: MMTypeGeneric < MMTypeGeneric: superclass typecheck marker */},
+const classtable_elt_t VFT_IEscape[65] = {
+  {(bigint) 5835 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IEscape < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IEscape < ICode: superclass typecheck marker */},
+  {(bigint) 5207 /* 4: IEscape < ICode0: superclass typecheck marker */},
+  {(bigint) 5835 /* 5: IEscape < IEscape: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76820,14 +230746,12 @@ const classtable_elt_t VFT_MMTypeGeneric[66] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) genericity___MMTypeGeneric___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMTypeGeneric < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IEscape < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76835,7 +230759,6 @@ const classtable_elt_t VFT_MMTypeGeneric[66] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76843,58 +230766,121 @@ const classtable_elt_t VFT_MMTypeGeneric[66] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMTypeGeneric___is_generic},
-  {(bigint) type_formal___MMType___direct_type},
-  {(bigint) 1 /* 48: MMTypeGeneric < MMType: superclass init_table position */},
-  {(bigint) static_type___MMTypeClass___module},
-  {(bigint) static_type___MMTypeClass___local_class},
-  {(bigint) static_type___MMTypeClass_____l},
-  {(bigint) genericity___MMTypeGeneric___is_supertype},
-  {(bigint) genericity___MMTypeGeneric___for_module},
-  {(bigint) genericity___MMTypeGeneric___adapt_to},
-  {(bigint) genericity___MMTypeGeneric___upcast_for},
-  {(bigint) static_type___MMType___not_for_self},
-  {(bigint) 2 /* 57: MMTypeGeneric < MMTypeClass: superclass init_table position */},
-  {(bigint) static_type___MMTypeClass___init},
-  {(bigint) 3 /* 59: MMTypeGeneric < MMTypeGeneric: superclass init_table position */},
-  {(bigint) genericity___MMTypeGeneric___params},
-  {(bigint) static_type___MMTypeClass___upcast_for},
-  {(bigint) genericity___MMTypeGeneric___params_equals},
-  {(bigint) static_type___MMTypeClass___to_s},
-  {(bigint) genericity___MMTypeGeneric___is_subtype},
-  {(bigint) genericity___MMTypeGeneric___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IEscape___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IEscape___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IEscape___inner_dup_with},
+  {(bigint) 1 /* 53: IEscape < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode0___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IEscape < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 62: IEscape < IEscape: superclass init_table position */},
+  {(bigint) icode_base___IEscape___iescape_mark},
+  {(bigint) icode_base___IEscape___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMTypeGeneric::_local_class */
-/* 2: Attribute MMTypeGeneric::_params */
-val_t NEW_MMTypeGeneric(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_MMTypeGeneric;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IEscape::_result */
+/* 3: Attribute IEscape::_location */
+/* 4: Attribute IEscape::_iescape_mark */
+void INIT_ATTRIBUTES__IEscape(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IEscape;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_genericity___MMTypeGeneric___init(val_t p0, val_t p1) {
+val_t NEW_IEscape(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_IEscape;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IEscape(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IEscape;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IEscape____iescape_mark(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_iescape_mark");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IEscape_icode_base___IEscape___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_MMTypeGeneric();
-  genericity___MMTypeGeneric___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 200;
+  fra.me.meth = LOCATE_NEW_IEscape_icode_base___IEscape___init;
+  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;
+  fra.me.REG[1] = NEW_IEscape();
+  /* ./icode//icode_base.nit:200 */
+  INIT_ATTRIBUTES__IEscape(fra.me.REG[1]);
+  icode_base___IEscape___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IEscape(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_MMTypeFormalParameter[67] = {
-  {(bigint) 3159 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMTypeFormalParameter < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMTypeFormalParameter < MMType: superclass typecheck marker */},
-  {(bigint) 2559 /* 3: MMTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
-  {(bigint) 3159 /* 4: MMTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
+const classtable_elt_t VFT_IAbort[66] = {
+  {(bigint) 5867 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IAbort < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IAbort < ICode: superclass typecheck marker */},
+  {(bigint) 5207 /* 4: IAbort < ICode0: superclass typecheck marker */},
+  {(bigint) 5867 /* 5: IAbort < IAbort: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76903,14 +230889,12 @@ const classtable_elt_t VFT_MMTypeFormalParameter[67] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) type_formal___MMTypeFormal___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMTypeFormalParameter < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IAbort < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -76918,7 +230902,6 @@ const classtable_elt_t VFT_MMTypeFormalParameter[67] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -76926,67 +230909,132 @@ const classtable_elt_t VFT_MMTypeFormalParameter[67] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMTypeFormal___is_generic},
-  {(bigint) type_formal___MMTypeFormal___direct_type},
-  {(bigint) 1 /* 48: MMTypeFormalParameter < MMType: superclass init_table position */},
-  {(bigint) genericity___MMTypeFormalParameter___module},
-  {(bigint) type_formal___MMTypeFormal___local_class},
-  {(bigint) type_formal___MMTypeFormal_____l},
-  {(bigint) type_formal___MMTypeFormal___is_supertype},
-  {(bigint) genericity___MMTypeFormalParameter___for_module},
-  {(bigint) genericity___MMTypeFormalParameter___adapt_to},
-  {(bigint) genericity___MMTypeFormalParameter___upcast_for},
-  {(bigint) static_type___MMType___not_for_self},
-  {(bigint) 2 /* 57: MMTypeFormalParameter < MMTypeFormal: superclass init_table position */},
-  {(bigint) type_formal___MMTypeFormal___name},
-  {(bigint) type_formal___MMTypeFormal___bound},
-  {(bigint) type_formal___MMTypeFormal___init},
-  {(bigint) 3 /* 61: MMTypeFormalParameter < MMTypeFormalParameter: superclass init_table position */},
-  {(bigint) genericity___MMTypeFormalParameter___def_class},
-  {(bigint) genericity___MMTypeFormalParameter___position},
-  {(bigint) genericity___MMTypeFormalParameter___bound__eq},
-  {(bigint) genericity___MMTypeFormalParameter___with_bound},
-  {(bigint) genericity___MMTypeFormalParameter___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAbort___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IAbort___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IAbort___inner_dup_with},
+  {(bigint) 1 /* 53: IAbort < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode0___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IAbort < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 62: IAbort < IAbort: superclass init_table position */},
+  {(bigint) icode_base___IAbort___texts},
+  {(bigint) icode_base___IAbort___module_location},
+  {(bigint) icode_base___IAbort___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMTypeFormalParameter::_name */
-/* 2: Attribute MMTypeFormalParameter::_bound */
-/* 3: Attribute MMTypeFormalParameter::_def_class */
-/* 4: Attribute MMTypeFormalParameter::_position */
-val_t NEW_MMTypeFormalParameter(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_MMTypeFormalParameter;
-  ATTR_genericity___MMTypeFormalParameter____position(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_genericity___MMTypeFormalParameter___with_bound(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_MMTypeFormalParameter();
-  genericity___MMTypeFormalParameter___with_bound(self, p0, p1, p2, p3, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute IAbort::_result */
+/* 3: Attribute IAbort::_location */
+/* 4: Attribute IAbort::_texts */
+/* 5: Attribute IAbort::_module_location */
+void INIT_ATTRIBUTES__IAbort(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IAbort;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_genericity___MMTypeFormalParameter___init(val_t p0, val_t p1, val_t p2) {
+val_t NEW_IAbort(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_IAbort;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IAbort(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IAbort;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IAbort____texts(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_texts");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAbort____module_location(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module_location");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAbort_icode_base___IAbort___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_MMTypeFormalParameter();
-  genericity___MMTypeFormalParameter___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 211;
+  fra.me.meth = LOCATE_NEW_IAbort_icode_base___IAbort___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IAbort();
+  /* ./icode//icode_base.nit:211 */
+  INIT_ATTRIBUTES__IAbort(fra.me.REG[2]);
+  icode_base___IAbort___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IAbort(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_MMTypeProperty[64] = {
-  {(bigint) 2551 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMTypeProperty < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMTypeProperty < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2551 /* 3: MMTypeProperty < MMTypeProperty: superclass typecheck marker */},
+const classtable_elt_t VFT_IAbsCall[71] = {
+  {(bigint) 5863 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IAbsCall < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IAbsCall < ICode: superclass typecheck marker */},
+  {(bigint) 5195 /* 4: IAbsCall < ICodeN: superclass typecheck marker */},
+  {(bigint) 5863 /* 5: IAbsCall < IAbsCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76996,14 +231044,11 @@ const classtable_elt_t VFT_MMTypeProperty[64] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMTypeProperty < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IAbsCall < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77011,7 +231056,6 @@ const classtable_elt_t VFT_MMTypeProperty[64] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77019,64 +231063,139 @@ const classtable_elt_t VFT_MMTypeProperty[64] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMLocalProperty___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMTypeProperty < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) 2 /* 61: MMTypeProperty < MMTypeProperty: superclass init_table position */},
-  {(bigint) virtualtype___MMTypeProperty___stype_for},
-  {(bigint) virtualtype___MMTypeProperty___real_stype_for},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___IAbsCall___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAbsCall___inner_compile_to_c},
+  {(bigint) icode_dump___ICodeN___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ICode___inner_dup_with},
+  {(bigint) 1 /* 53: IAbsCall < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) 2 /* 62: IAbsCall < ICodeN: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___exprs},
+  {(bigint) icode_base___ICodeN___closure_defs},
+  {(bigint) icode_base___ICodeN___closure_defs__eq},
+  {(bigint) icode_base___ICodeN___init},
+  {(bigint) compiling_icode___IAbsCall___compile_call_to_c},
+  {(bigint) 3 /* 68: IAbsCall < IAbsCall: superclass init_table position */},
+  {(bigint) icode_base___IAbsCall___property},
+  {(bigint) icode_base___IAbsCall___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMTypeProperty::_cname_cache */
-/* 2: Attribute MMTypeProperty::_signature */
-/* 3: Attribute MMTypeProperty::_signatures_cache */
-/* 4: Attribute MMTypeProperty::_name */
-/* 5: Attribute MMTypeProperty::_local_class */
-/* 6: Attribute MMTypeProperty::_global */
-/* 7: Attribute MMTypeProperty::_prhe */
-/* 8: Attribute MMTypeProperty::_need_super */
-/* 9: Attribute MMTypeProperty::_stypes_cache */
-val_t NEW_MMTypeProperty(void) {
-  val_t variable0;
-  val_t variable1;
+/* 1: Object_id */
+/* 2: Attribute IAbsCall::_result */
+/* 3: Attribute IAbsCall::_location */
+/* 4: Attribute IAbsCall::_exprs */
+/* 5: Attribute IAbsCall::_closure_defs */
+/* 6: Attribute IAbsCall::_property */
+void INIT_ATTRIBUTES__IAbsCall(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IAbsCall;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAbsCall(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_MMTypeProperty;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  variable1 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_virtualtype___MMTypeProperty____stypes_cache(obj) = variable1;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_IAbsCall;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IAbsCall(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IAbsCall;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAbsCall____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAbsCall_icode_base___IAbsCall___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 226;
+  fra.me.meth = LOCATE_NEW_IAbsCall_icode_base___IAbsCall___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IAbsCall();
+  /* ./icode//icode_base.nit:226 */
+  INIT_ATTRIBUTES__IAbsCall(fra.me.REG[2]);
+  icode_base___IAbsCall___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IAbsCall(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_MMVirtualType[65] = {
-  {(bigint) 3147 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMVirtualType < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMVirtualType < MMType: superclass typecheck marker */},
-  {(bigint) 2559 /* 3: MMVirtualType < MMTypeFormal: superclass typecheck marker */},
-  {(bigint) 3147 /* 4: MMVirtualType < MMVirtualType: superclass typecheck marker */},
+const classtable_elt_t VFT_ICall[74] = {
+  {(bigint) 6083 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICall < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ICall < ICode: superclass typecheck marker */},
+  {(bigint) 5195 /* 4: ICall < ICodeN: superclass typecheck marker */},
+  {(bigint) 5863 /* 5: ICall < IAbsCall: superclass typecheck marker */},
+  {(bigint) 6083 /* 6: ICall < ICall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77085,14 +231204,11 @@ const classtable_elt_t VFT_MMVirtualType[65] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) type_formal___MMTypeFormal___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMVirtualType < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICall < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77100,7 +231216,6 @@ const classtable_elt_t VFT_MMVirtualType[65] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77108,57 +231223,142 @@ const classtable_elt_t VFT_MMVirtualType[65] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMTypeFormal___is_generic},
-  {(bigint) type_formal___MMTypeFormal___direct_type},
-  {(bigint) 1 /* 48: MMVirtualType < MMType: superclass init_table position */},
-  {(bigint) virtualtype___MMVirtualType___module},
-  {(bigint) type_formal___MMTypeFormal___local_class},
-  {(bigint) type_formal___MMTypeFormal_____l},
-  {(bigint) type_formal___MMTypeFormal___is_supertype},
-  {(bigint) virtualtype___MMVirtualType___for_module},
-  {(bigint) virtualtype___MMVirtualType___adapt_to},
-  {(bigint) static_type___MMType___upcast_for},
-  {(bigint) virtualtype___MMVirtualType___not_for_self},
-  {(bigint) 2 /* 57: MMVirtualType < MMTypeFormal: superclass init_table position */},
-  {(bigint) type_formal___MMTypeFormal___name},
-  {(bigint) type_formal___MMTypeFormal___bound},
-  {(bigint) type_formal___MMTypeFormal___init},
-  {(bigint) 3 /* 61: MMVirtualType < MMVirtualType: superclass init_table position */},
-  {(bigint) virtualtype___MMVirtualType___property},
-  {(bigint) virtualtype___MMVirtualType___recv},
-  {(bigint) virtualtype___MMVirtualType___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___IAbsCall___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAbsCall___inner_compile_to_c},
+  {(bigint) icode_dump___ICodeN___dump},
+  {(bigint) icode_dump___ICall___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ICall___inner_dup_with},
+  {(bigint) 1 /* 53: ICall < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) 2 /* 62: ICall < ICodeN: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___exprs},
+  {(bigint) icode_base___ICodeN___closure_defs},
+  {(bigint) icode_base___ICodeN___closure_defs__eq},
+  {(bigint) icode_base___ICodeN___init},
+  {(bigint) compiling_icode___ICall___compile_call_to_c},
+  {(bigint) 3 /* 68: ICall < IAbsCall: superclass init_table position */},
+  {(bigint) icode_base___IAbsCall___property},
+  {(bigint) icode_base___IAbsCall___init},
+  {(bigint) 4 /* 71: ICall < ICall: superclass init_table position */},
+  {(bigint) icode_base___ICall___init},
+  {(bigint) inline_methods___ICall___is_inlinable},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMVirtualType::_name */
-/* 2: Attribute MMVirtualType::_bound */
-/* 3: Attribute MMVirtualType::_property */
-/* 4: Attribute MMVirtualType::_recv */
-val_t NEW_MMVirtualType(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_MMVirtualType;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute ICall::_result */
+/* 3: Attribute ICall::_location */
+/* 4: Attribute ICall::_exprs */
+/* 5: Attribute ICall::_closure_defs */
+/* 6: Attribute ICall::_property */
+void INIT_ATTRIBUTES__ICall(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICall;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_virtualtype___MMVirtualType___init(val_t p0, val_t p1) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_MMVirtualType();
-  virtualtype___MMVirtualType___init(self, p0, p1, init_table);
-  return self;
+val_t NEW_ICall(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ICall;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ICall(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICall;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAbsCall____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICall_icode_base___ICall___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 237;
+  fra.me.meth = LOCATE_NEW_ICall_icode_base___ICall___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ICall();
+  /* ./icode//icode_base.nit:237 */
+  INIT_ATTRIBUTES__ICall(fra.me.REG[2]);
+  icode_base___ICall___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ICall(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_Option[56] = {
-  {(bigint) 71 /* 0: Identity */},
-  {(bigint) 3 /* 1: Option < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: Option < Option: superclass typecheck marker */},
+const classtable_elt_t VFT_ISuper[73] = {
+  {(bigint) 6059 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ISuper < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ISuper < ICode: superclass typecheck marker */},
+  {(bigint) 5195 /* 4: ISuper < ICodeN: superclass typecheck marker */},
+  {(bigint) 5863 /* 5: ISuper < IAbsCall: superclass typecheck marker */},
+  {(bigint) 6059 /* 6: ISuper < ISuper: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77169,14 +231369,9 @@ const classtable_elt_t VFT_Option[56] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) opts___Option___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Option < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ISuper < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77184,7 +231379,6 @@ const classtable_elt_t VFT_Option[56] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77192,52 +231386,141 @@ const classtable_elt_t VFT_Option[56] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Option < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___context},
-  {(bigint) opts___Option___context__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___Option___read_param},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___IAbsCall___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAbsCall___inner_compile_to_c},
+  {(bigint) icode_dump___ICodeN___dump},
+  {(bigint) icode_dump___ISuper___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ISuper___inner_dup_with},
+  {(bigint) 1 /* 53: ISuper < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) 2 /* 62: ISuper < ICodeN: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___exprs},
+  {(bigint) icode_base___ICodeN___closure_defs},
+  {(bigint) icode_base___ICodeN___closure_defs__eq},
+  {(bigint) icode_base___ICodeN___init},
+  {(bigint) compiling_icode___ISuper___compile_call_to_c},
+  {(bigint) 3 /* 68: ISuper < IAbsCall: superclass init_table position */},
+  {(bigint) icode_base___IAbsCall___property},
+  {(bigint) icode_base___IAbsCall___init},
+  {(bigint) 4 /* 71: ISuper < ISuper: superclass init_table position */},
+  {(bigint) icode_base___ISuper___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Option::_names */
-/* 2: Attribute Option::_helptext */
-/* 3: Attribute Option::_mandatory */
-/* 4: Attribute Option::_context */
-/* 5: Attribute Option::_value */
-/* 6: Attribute Option::_default_value */
-val_t NEW_Option(void) {
+/* 1: Object_id */
+/* 2: Attribute ISuper::_result */
+/* 3: Attribute ISuper::_location */
+/* 4: Attribute ISuper::_exprs */
+/* 5: Attribute ISuper::_closure_defs */
+/* 6: Attribute ISuper::_property */
+void INIT_ATTRIBUTES__ISuper(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ISuper;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ISuper(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_Option;
-  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_opts___Option___init_opt(val_t p0, val_t p1, val_t p2) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_Option();
-  opts___Option___init_opt(self, p0, p1, p2, init_table);
-  return self;
+  obj->vft = (classtable_elt_t*)VFT_ISuper;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ISuper(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ISuper;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAbsCall____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ISuper_icode_base___ISuper___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 244;
+  fra.me.meth = LOCATE_NEW_ISuper_icode_base___ISuper___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ISuper();
+  /* ./icode//icode_base.nit:244 */
+  INIT_ATTRIBUTES__ISuper(fra.me.REG[2]);
+  icode_base___ISuper___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ISuper(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_OptionText[58] = {
-  {(bigint) 2523 /* 0: Identity */},
-  {(bigint) 3 /* 1: OptionText < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: OptionText < Option: superclass typecheck marker */},
-  {(bigint) 2523 /* 3: OptionText < OptionText: superclass typecheck marker */},
+const classtable_elt_t VFT_INew[74] = {
+  {(bigint) 6071 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: INew < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: INew < ICode: superclass typecheck marker */},
+  {(bigint) 5195 /* 4: INew < ICodeN: superclass typecheck marker */},
+  {(bigint) 5863 /* 5: INew < IAbsCall: superclass typecheck marker */},
+  {(bigint) 6071 /* 6: INew < INew: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77247,14 +231530,10 @@ const classtable_elt_t VFT_OptionText[58] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) opts___OptionText___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OptionText < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: INew < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77262,7 +231541,6 @@ const classtable_elt_t VFT_OptionText[58] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77270,54 +231548,151 @@ const classtable_elt_t VFT_OptionText[58] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OptionText < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___context},
-  {(bigint) opts___Option___context__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___OptionText___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___Option___read_param},
-  {(bigint) 2 /* 56: OptionText < OptionText: superclass init_table position */},
-  {(bigint) opts___OptionText___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___IAbsCall___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAbsCall___inner_compile_to_c},
+  {(bigint) icode_dump___ICodeN___dump},
+  {(bigint) icode_dump___INew___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___INew___inner_dup_with},
+  {(bigint) 1 /* 53: INew < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) 2 /* 62: INew < ICodeN: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___exprs},
+  {(bigint) icode_base___ICodeN___closure_defs},
+  {(bigint) icode_base___ICodeN___closure_defs__eq},
+  {(bigint) icode_base___ICodeN___init},
+  {(bigint) compiling_icode___INew___compile_call_to_c},
+  {(bigint) 3 /* 68: INew < IAbsCall: superclass init_table position */},
+  {(bigint) icode_base___IAbsCall___property},
+  {(bigint) icode_base___IAbsCall___init},
+  {(bigint) 4 /* 71: INew < INew: superclass init_table position */},
+  {(bigint) icode_base___INew___stype},
+  {(bigint) icode_base___INew___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OptionText::_names */
-/* 2: Attribute OptionText::_helptext */
-/* 3: Attribute OptionText::_mandatory */
-/* 4: Attribute OptionText::_context */
-/* 5: Attribute OptionText::_value */
-/* 6: Attribute OptionText::_default_value */
-val_t NEW_OptionText(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_OptionText;
-  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute INew::_result */
+/* 3: Attribute INew::_location */
+/* 4: Attribute INew::_exprs */
+/* 5: Attribute INew::_closure_defs */
+/* 6: Attribute INew::_property */
+/* 7: Attribute INew::_stype */
+void INIT_ATTRIBUTES__INew(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__INew;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_opts___OptionText___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_OptionText();
-  opts___OptionText___init(self, p0, init_table);
-  return self;
+val_t NEW_INew(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_INew;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_INew(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_INew;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAbsCall____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___INew____stype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stype");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_INew_icode_base___INew___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 258;
+  fra.me.meth = LOCATE_NEW_INew_icode_base___INew___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_INew();
+  /* ./icode//icode_base.nit:258 */
+  INIT_ATTRIBUTES__INew(fra.me.REG[3]);
+  icode_base___INew___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_INew(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_OptionBool[58] = {
-  {(bigint) 2531 /* 0: Identity */},
-  {(bigint) 3 /* 1: OptionBool < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: OptionBool < Option: superclass typecheck marker */},
-  {(bigint) 2531 /* 3: OptionBool < OptionBool: superclass typecheck marker */},
+const classtable_elt_t VFT_IAllocateInstance[65] = {
+  {(bigint) 5859 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IAllocateInstance < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IAllocateInstance < ICode: superclass typecheck marker */},
+  {(bigint) 5207 /* 4: IAllocateInstance < ICode0: superclass typecheck marker */},
+  {(bigint) 5859 /* 5: IAllocateInstance < IAllocateInstance: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77327,14 +231702,11 @@ const classtable_elt_t VFT_OptionBool[58] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) opts___Option___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OptionBool < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IAllocateInstance < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77342,7 +231714,6 @@ const classtable_elt_t VFT_OptionBool[58] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77350,54 +231721,122 @@ const classtable_elt_t VFT_OptionBool[58] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OptionBool < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___context},
-  {(bigint) opts___Option___context__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___OptionBool___read_param},
-  {(bigint) 2 /* 56: OptionBool < OptionBool: superclass init_table position */},
-  {(bigint) opts___OptionBool___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAllocateInstance___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IAllocateInstance___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IAllocateInstance___inner_dup_with},
+  {(bigint) 1 /* 53: IAllocateInstance < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode0___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IAllocateInstance < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 62: IAllocateInstance < IAllocateInstance: superclass init_table position */},
+  {(bigint) icode_base___IAllocateInstance___stype},
+  {(bigint) icode_base___IAllocateInstance___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OptionBool::_names */
-/* 2: Attribute OptionBool::_helptext */
-/* 3: Attribute OptionBool::_mandatory */
-/* 4: Attribute OptionBool::_context */
-/* 5: Attribute OptionBool::_value */
-/* 6: Attribute OptionBool::_default_value */
-val_t NEW_OptionBool(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_OptionBool;
-  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IAllocateInstance::_result */
+/* 3: Attribute IAllocateInstance::_location */
+/* 4: Attribute IAllocateInstance::_stype */
+void INIT_ATTRIBUTES__IAllocateInstance(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IAllocateInstance;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_opts___OptionBool___init(val_t p0, val_t p1) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_OptionBool();
-  opts___OptionBool___init(self, p0, p1, init_table);
-  return self;
+val_t NEW_IAllocateInstance(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_IAllocateInstance;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IAllocateInstance(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IAllocateInstance;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IAllocateInstance____stype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stype");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAllocateInstance_icode_base___IAllocateInstance___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 272;
+  fra.me.meth = LOCATE_NEW_IAllocateInstance_icode_base___IAllocateInstance___init;
+  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;
+  fra.me.REG[1] = NEW_IAllocateInstance();
+  /* ./icode//icode_base.nit:272 */
+  INIT_ATTRIBUTES__IAllocateInstance(fra.me.REG[1]);
+  icode_base___IAllocateInstance___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IAllocateInstance(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_OptionParameter[59] = {
-  {(bigint) 2527 /* 0: Identity */},
-  {(bigint) 3 /* 1: OptionParameter < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: OptionParameter < Option: superclass typecheck marker */},
-  {(bigint) 2527 /* 3: OptionParameter < OptionParameter: superclass typecheck marker */},
+const classtable_elt_t VFT_IStaticCall[73] = {
+  {(bigint) 6063 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IStaticCall < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IStaticCall < ICode: superclass typecheck marker */},
+  {(bigint) 5195 /* 4: IStaticCall < ICodeN: superclass typecheck marker */},
+  {(bigint) 5863 /* 5: IStaticCall < IAbsCall: superclass typecheck marker */},
+  {(bigint) 6063 /* 6: IStaticCall < IStaticCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77407,14 +231846,10 @@ const classtable_elt_t VFT_OptionParameter[59] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) opts___Option___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OptionParameter < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IStaticCall < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77422,7 +231857,6 @@ const classtable_elt_t VFT_OptionParameter[59] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77430,56 +231864,140 @@ const classtable_elt_t VFT_OptionParameter[59] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OptionParameter < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___context},
-  {(bigint) opts___Option___context__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 56: OptionParameter < OptionParameter: superclass init_table position */},
-  {(bigint) opts___OptionParameter___convert},
-  {(bigint) opts___OptionParameter___init_opt},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___IAbsCall___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAbsCall___inner_compile_to_c},
+  {(bigint) icode_dump___ICodeN___dump},
+  {(bigint) icode_dump___IStaticCall___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IStaticCall___inner_dup_with},
+  {(bigint) 1 /* 53: IStaticCall < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) 2 /* 62: IStaticCall < ICodeN: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___exprs},
+  {(bigint) icode_base___ICodeN___closure_defs},
+  {(bigint) icode_base___ICodeN___closure_defs__eq},
+  {(bigint) icode_base___ICodeN___init},
+  {(bigint) compiling_icode___IStaticCall___compile_call_to_c},
+  {(bigint) 3 /* 68: IStaticCall < IAbsCall: superclass init_table position */},
+  {(bigint) icode_base___IAbsCall___property},
+  {(bigint) icode_base___IAbsCall___init},
+  {(bigint) 4 /* 71: IStaticCall < IStaticCall: superclass init_table position */},
+  {(bigint) icode_base___IStaticCall___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OptionParameter::_names */
-/* 2: Attribute OptionParameter::_helptext */
-/* 3: Attribute OptionParameter::_mandatory */
-/* 4: Attribute OptionParameter::_context */
-/* 5: Attribute OptionParameter::_value */
-/* 6: Attribute OptionParameter::_default_value */
-val_t NEW_OptionParameter(void) {
+/* 1: Object_id */
+/* 2: Attribute IStaticCall::_result */
+/* 3: Attribute IStaticCall::_location */
+/* 4: Attribute IStaticCall::_exprs */
+/* 5: Attribute IStaticCall::_closure_defs */
+/* 6: Attribute IStaticCall::_property */
+void INIT_ATTRIBUTES__IStaticCall(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IStaticCall;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IStaticCall(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_OptionParameter;
-  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_OptionParameter();
-  opts___OptionParameter___init_opt(self, p0, p1, p2, init_table);
-  return self;
+  obj->vft = (classtable_elt_t*)VFT_IStaticCall;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IStaticCall(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IStaticCall;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAbsCall____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IStaticCall_icode_base___IStaticCall___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 281;
+  fra.me.meth = LOCATE_NEW_IStaticCall_icode_base___IStaticCall___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IStaticCall();
+  /* ./icode//icode_base.nit:281 */
+  INIT_ATTRIBUTES__IStaticCall(fra.me.REG[2]);
+  icode_base___IStaticCall___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IStaticCall(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_OptionString[61] = {
-  {(bigint) 3119 /* 0: Identity */},
-  {(bigint) 3 /* 1: OptionString < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: OptionString < Option: superclass typecheck marker */},
-  {(bigint) 2527 /* 3: OptionString < OptionParameter: superclass typecheck marker */},
-  {(bigint) 3119 /* 4: OptionString < OptionString: superclass typecheck marker */},
+const classtable_elt_t VFT_ICheckInstance[67] = {
+  {(bigint) 5843 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICheckInstance < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ICheckInstance < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: ICheckInstance < ICode1: superclass typecheck marker */},
+  {(bigint) 5843 /* 5: ICheckInstance < ICheckInstance: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77488,14 +232006,12 @@ const classtable_elt_t VFT_OptionString[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) opts___Option___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OptionString < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICheckInstance < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77503,7 +232019,6 @@ const classtable_elt_t VFT_OptionString[61] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77511,58 +232026,133 @@ const classtable_elt_t VFT_OptionString[61] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OptionString < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___context},
-  {(bigint) opts___Option___context__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 56: OptionString < OptionParameter: superclass init_table position */},
-  {(bigint) opts___OptionString___convert},
-  {(bigint) opts___OptionParameter___init_opt},
-  {(bigint) 3 /* 59: OptionString < OptionString: superclass init_table position */},
-  {(bigint) opts___OptionString___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ICheckInstance___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___ICheckInstance___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ICheckInstance___inner_dup_with},
+  {(bigint) 1 /* 53: ICheckInstance < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: ICheckInstance < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
+  {(bigint) 3 /* 64: ICheckInstance < ICheckInstance: superclass init_table position */},
+  {(bigint) icode_base___ICheckInstance___stype},
+  {(bigint) icode_base___ICheckInstance___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OptionString::_names */
-/* 2: Attribute OptionString::_helptext */
-/* 3: Attribute OptionString::_mandatory */
-/* 4: Attribute OptionString::_context */
-/* 5: Attribute OptionString::_value */
-/* 6: Attribute OptionString::_default_value */
-val_t NEW_OptionString(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_OptionString;
-  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute ICheckInstance::_result */
+/* 3: Attribute ICheckInstance::_location */
+/* 4: Attribute ICheckInstance::_expr */
+/* 5: Attribute ICheckInstance::_stype */
+void INIT_ATTRIBUTES__ICheckInstance(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICheckInstance;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_opts___OptionString___init(val_t p0, val_t p1) {
+val_t NEW_ICheckInstance(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ICheckInstance;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ICheckInstance(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICheckInstance;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___ICheckInstance____stype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stype");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICheckInstance_icode_base___ICheckInstance___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_OptionString();
-  opts___OptionString___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 289;
+  fra.me.meth = LOCATE_NEW_ICheckInstance_icode_base___ICheckInstance___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ICheckInstance();
+  /* ./icode//icode_base.nit:289 */
+  INIT_ATTRIBUTES__ICheckInstance(fra.me.REG[2]);
+  icode_base___ICheckInstance___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ICheckInstance(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_OptionEnum[61] = {
-  {(bigint) 3127 /* 0: Identity */},
-  {(bigint) 3 /* 1: OptionEnum < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: OptionEnum < Option: superclass typecheck marker */},
-  {(bigint) 2527 /* 3: OptionEnum < OptionParameter: superclass typecheck marker */},
-  {(bigint) 3127 /* 4: OptionEnum < OptionEnum: superclass typecheck marker */},
+const classtable_elt_t VFT_IInitAttributes[67] = {
+  {(bigint) 5823 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IInitAttributes < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IInitAttributes < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: IInitAttributes < ICode1: superclass typecheck marker */},
+  {(bigint) 5823 /* 5: IInitAttributes < IInitAttributes: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77571,14 +232161,12 @@ const classtable_elt_t VFT_OptionEnum[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) opts___Option___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OptionEnum < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IInitAttributes < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77586,7 +232174,6 @@ const classtable_elt_t VFT_OptionEnum[61] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77594,59 +232181,133 @@ const classtable_elt_t VFT_OptionEnum[61] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OptionEnum < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___context},
-  {(bigint) opts___Option___context__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___OptionEnum___pretty_default},
-  {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 56: OptionEnum < OptionParameter: superclass init_table position */},
-  {(bigint) opts___OptionEnum___convert},
-  {(bigint) opts___OptionParameter___init_opt},
-  {(bigint) 3 /* 59: OptionEnum < OptionEnum: superclass init_table position */},
-  {(bigint) opts___OptionEnum___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IInitAttributes___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IInitAttributes___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IInitAttributes___inner_dup_with},
+  {(bigint) 1 /* 53: IInitAttributes < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IInitAttributes < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
+  {(bigint) 3 /* 64: IInitAttributes < IInitAttributes: superclass init_table position */},
+  {(bigint) icode_base___IInitAttributes___stype},
+  {(bigint) icode_base___IInitAttributes___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OptionEnum::_names */
-/* 2: Attribute OptionEnum::_helptext */
-/* 3: Attribute OptionEnum::_mandatory */
-/* 4: Attribute OptionEnum::_context */
-/* 5: Attribute OptionEnum::_value */
-/* 6: Attribute OptionEnum::_default_value */
-/* 7: Attribute OptionEnum::_enum */
-val_t NEW_OptionEnum(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_OptionEnum;
-  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IInitAttributes::_result */
+/* 3: Attribute IInitAttributes::_location */
+/* 4: Attribute IInitAttributes::_expr */
+/* 5: Attribute IInitAttributes::_stype */
+void INIT_ATTRIBUTES__IInitAttributes(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IInitAttributes;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_t p3) {
+val_t NEW_IInitAttributes(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_IInitAttributes;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IInitAttributes(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IInitAttributes;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IInitAttributes____stype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stype");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IInitAttributes_icode_base___IInitAttributes___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_OptionEnum();
-  opts___OptionEnum___init(self, p0, p1, p2, p3, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 301;
+  fra.me.meth = LOCATE_NEW_IInitAttributes_icode_base___IInitAttributes___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IInitAttributes();
+  /* ./icode//icode_base.nit:301 */
+  INIT_ATTRIBUTES__IInitAttributes(fra.me.REG[2]);
+  icode_base___IInitAttributes___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IInitAttributes(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_OptionInt[61] = {
-  {(bigint) 3123 /* 0: Identity */},
-  {(bigint) 3 /* 1: OptionInt < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: OptionInt < Option: superclass typecheck marker */},
-  {(bigint) 2527 /* 3: OptionInt < OptionParameter: superclass typecheck marker */},
-  {(bigint) 3123 /* 4: OptionInt < OptionInt: superclass typecheck marker */},
+const classtable_elt_t VFT_IClosCall[72] = {
+  {(bigint) 5839 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IClosCall < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IClosCall < ICode: superclass typecheck marker */},
+  {(bigint) 5195 /* 4: IClosCall < ICodeN: superclass typecheck marker */},
+  {(bigint) 5839 /* 5: IClosCall < IClosCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77655,14 +232316,12 @@ const classtable_elt_t VFT_OptionInt[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) opts___Option___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OptionInt < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IClosCall < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77670,7 +232329,6 @@ const classtable_elt_t VFT_OptionInt[61] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77678,58 +232336,143 @@ const classtable_elt_t VFT_OptionInt[61] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OptionInt < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___context},
-  {(bigint) opts___Option___context__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 56: OptionInt < OptionParameter: superclass init_table position */},
-  {(bigint) opts___OptionInt___convert},
-  {(bigint) opts___OptionParameter___init_opt},
-  {(bigint) 3 /* 59: OptionInt < OptionInt: superclass init_table position */},
-  {(bigint) opts___OptionInt___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___IClosCall___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IClosCall___inner_compile_to_c},
+  {(bigint) icode_dump___ICodeN___dump},
+  {(bigint) icode_dump___IClosCall___dump_intern},
+  {(bigint) icode_tools___IClosCall___dup_with},
+  {(bigint) icode_tools___ICode___inner_dup_with},
+  {(bigint) 1 /* 53: IClosCall < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) 2 /* 62: IClosCall < ICodeN: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___exprs},
+  {(bigint) icode_base___ICodeN___closure_defs},
+  {(bigint) icode_base___ICodeN___closure_defs__eq},
+  {(bigint) icode_base___ICodeN___init},
+  {(bigint) 3 /* 67: IClosCall < IClosCall: superclass init_table position */},
+  {(bigint) icode_base___IClosCall___closure_decl},
+  {(bigint) icode_base___IClosCall___break_seq},
+  {(bigint) icode_base___IClosCall___break_seq__eq},
+  {(bigint) icode_base___IClosCall___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OptionInt::_names */
-/* 2: Attribute OptionInt::_helptext */
-/* 3: Attribute OptionInt::_mandatory */
-/* 4: Attribute OptionInt::_context */
-/* 5: Attribute OptionInt::_value */
-/* 6: Attribute OptionInt::_default_value */
-val_t NEW_OptionInt(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_OptionInt;
-  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IClosCall::_result */
+/* 3: Attribute IClosCall::_location */
+/* 4: Attribute IClosCall::_exprs */
+/* 5: Attribute IClosCall::_closure_defs */
+/* 6: Attribute IClosCall::_closure_decl */
+/* 7: Attribute IClosCall::_break_seq */
+void INIT_ATTRIBUTES__IClosCall(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IClosCall;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:315 */
+  ATTR_icode_base___IClosCall____break_seq(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_opts___OptionInt___init(val_t p0, val_t p1, val_t p2) {
+val_t NEW_IClosCall(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_IClosCall;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IClosCall(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IClosCall;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IClosCall____closure_decl(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closure_decl");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IClosCall_icode_base___IClosCall___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_OptionInt();
-  opts___OptionInt___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 318;
+  fra.me.meth = LOCATE_NEW_IClosCall_icode_base___IClosCall___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IClosCall();
+  /* ./icode//icode_base.nit:318 */
+  INIT_ATTRIBUTES__IClosCall(fra.me.REG[2]);
+  icode_base___IClosCall___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IClosCall(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_OptionArray[61] = {
-  {(bigint) 3131 /* 0: Identity */},
-  {(bigint) 3 /* 1: OptionArray < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: OptionArray < Option: superclass typecheck marker */},
-  {(bigint) 2527 /* 3: OptionArray < OptionParameter: superclass typecheck marker */},
-  {(bigint) 3131 /* 4: OptionArray < OptionArray: superclass typecheck marker */},
+const classtable_elt_t VFT_INative[71] = {
+  {(bigint) 5811 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: INative < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: INative < ICode: superclass typecheck marker */},
+  {(bigint) 5195 /* 4: INative < ICodeN: superclass typecheck marker */},
+  {(bigint) 5811 /* 5: INative < INative: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77738,14 +232481,12 @@ const classtable_elt_t VFT_OptionArray[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) opts___Option___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OptionArray < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: INative < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77753,7 +232494,6 @@ const classtable_elt_t VFT_OptionArray[61] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77761,57 +232501,150 @@ const classtable_elt_t VFT_OptionArray[61] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OptionArray < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___context},
-  {(bigint) opts___Option___context__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 56: OptionArray < OptionParameter: superclass init_table position */},
-  {(bigint) opts___OptionArray___convert},
-  {(bigint) opts___OptionParameter___init_opt},
-  {(bigint) 3 /* 59: OptionArray < OptionArray: superclass init_table position */},
-  {(bigint) opts___OptionArray___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___INative___inner_compile_to_c},
+  {(bigint) icode_dump___ICodeN___dump},
+  {(bigint) icode_dump___INative___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___INative___inner_dup_with},
+  {(bigint) 1 /* 53: INative < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___INative___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) 2 /* 62: INative < ICodeN: superclass init_table position */},
+  {(bigint) icode_base___ICodeN___exprs},
+  {(bigint) icode_base___ICodeN___closure_defs},
+  {(bigint) icode_base___ICodeN___closure_defs__eq},
+  {(bigint) icode_base___ICodeN___init},
+  {(bigint) 3 /* 67: INative < INative: superclass init_table position */},
+  {(bigint) icode_base___INative___code},
+  {(bigint) icode_base___INative___init},
+  {(bigint) icode_base___INative___is_pure__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OptionArray::_names */
-/* 2: Attribute OptionArray::_helptext */
-/* 3: Attribute OptionArray::_mandatory */
-/* 4: Attribute OptionArray::_context */
-/* 5: Attribute OptionArray::_value */
-/* 6: Attribute OptionArray::_default_value */
-/* 7: Attribute OptionArray::_values */
-val_t NEW_OptionArray(void) {
+/* 1: Object_id */
+/* 2: Attribute INative::_result */
+/* 3: Attribute INative::_location */
+/* 4: Attribute INative::_exprs */
+/* 5: Attribute INative::_closure_defs */
+/* 6: Attribute INative::_code */
+/* 7: Attribute INative::_is_pure */
+void INIT_ATTRIBUTES__INative(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__INative;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./icode//icode_base.nit:340 */
+  ATTR_icode_base___INative____is_pure(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_INative(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_OptionArray;
-  ATTR_opts___Option____mandatory(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_opts___OptionArray___init(val_t p0, val_t p1) {
+  obj->vft = (classtable_elt_t*)VFT_INative;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_INative(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_INative;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_exprs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___INative____code(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_code");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___INative____is_pure(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_pure");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_INative_icode_base___INative___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_OptionArray();
-  opts___OptionArray___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 334;
+  fra.me.meth = LOCATE_NEW_INative_icode_base___INative___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_INative();
+  /* ./icode//icode_base.nit:334 */
+  INIT_ATTRIBUTES__INative(fra.me.REG[2]);
+  icode_base___INative___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_INative(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_OptionContext[49] = {
-  {(bigint) 67 /* 0: Identity */},
-  {(bigint) 3 /* 1: OptionContext < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: OptionContext < OptionContext: superclass typecheck marker */},
+const classtable_elt_t VFT_IMove[66] = {
+  {(bigint) 5815 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IMove < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IMove < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: IMove < ICode1: superclass typecheck marker */},
+  {(bigint) 5815 /* 5: IMove < IMove: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77822,14 +232655,10 @@ const classtable_elt_t VFT_OptionContext[49] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: OptionContext < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IMove < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77837,7 +232666,6 @@ const classtable_elt_t VFT_OptionContext[49] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77845,41 +232673,124 @@ const classtable_elt_t VFT_OptionContext[49] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: OptionContext < OptionContext: superclass init_table position */},
-  {(bigint) opts___OptionContext___options},
-  {(bigint) opts___OptionContext___rest},
-  {(bigint) opts___OptionContext___usage},
-  {(bigint) opts___OptionContext___parse},
-  {(bigint) opts___OptionContext___parse_intern},
-  {(bigint) opts___OptionContext___add_option},
-  {(bigint) opts___OptionContext___init},
-  {(bigint) opts___OptionContext___build},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IMove___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IMove___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IMove___inner_dup_with},
+  {(bigint) 1 /* 53: IMove < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___IMove___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IMove < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
+  {(bigint) 3 /* 64: IMove < IMove: superclass init_table position */},
+  {(bigint) icode_base___IMove___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute OptionContext::_options */
-/* 2: Attribute OptionContext::_rest */
-/* 3: Attribute OptionContext::_optmap */
-val_t NEW_OptionContext(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_OptionContext;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IMove::_result */
+/* 3: Attribute IMove::_location */
+/* 4: Attribute IMove::_expr */
+void INIT_ATTRIBUTES__IMove(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IMove;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_opts___OptionContext___init() {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_OptionContext();
-  opts___OptionContext___init(self, init_table);
-  return self;
+val_t NEW_IMove(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_IMove;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IMove(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IMove;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IMove_icode_base___IMove___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 348;
+  fra.me.meth = LOCATE_NEW_IMove_icode_base___IMove___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IMove();
+  /* ./icode//icode_base.nit:348 */
+  INIT_ATTRIBUTES__IMove(fra.me.REG[2]);
+  icode_base___IMove___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IMove(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_ToolContext[86] = {
-  {(bigint) 179 /* 0: Identity */},
-  {(bigint) 3 /* 1: ToolContext < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 2: ToolContext < MMContext: superclass typecheck marker */},
-  {(bigint) 179 /* 3: ToolContext < ToolContext: superclass typecheck marker */},
+const classtable_elt_t VFT_IAttrRead[67] = {
+  {(bigint) 5851 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IAttrRead < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IAttrRead < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: IAttrRead < ICode1: superclass typecheck marker */},
+  {(bigint) 5851 /* 5: IAttrRead < IAttrRead: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77889,14 +232800,11 @@ const classtable_elt_t VFT_ToolContext[86] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ToolContext < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IAttrRead < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -77904,7 +232812,6 @@ const classtable_elt_t VFT_ToolContext[86] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -77912,192 +232819,133 @@ const classtable_elt_t VFT_ToolContext[86] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ToolContext < MMContext: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMContext___init},
-  {(bigint) abstractmetamodel___MMContext___module_hierarchy},
-  {(bigint) abstractmetamodel___MMContext___class_hierarchy},
-  {(bigint) abstractmetamodel___MMContext___modules},
-  {(bigint) abstractmetamodel___MMContext___add_module},
-  {(bigint) abstractmetamodel___MMContext___add_global_class},
-  {(bigint) abstractmetamodel___MMContext___add_local_class},
-  {(bigint) compiling_base___ToolContext___global},
-  {(bigint) compiling_base___ToolContext___global__eq},
-  {(bigint) compiling_base___ToolContext___attr_sim},
-  {(bigint) compiling_base___ToolContext___attr_sim__eq},
-  {(bigint) compiling_base___ToolContext___compdir},
-  {(bigint) compiling_base___ToolContext___compdir__eq},
-  {(bigint) compiling_base___ToolContext___clibdir},
-  {(bigint) compiling_base___ToolContext___clibdir__eq},
-  {(bigint) compiling_base___ToolContext___bindir},
-  {(bigint) compiling_base___ToolContext___bindir__eq},
-  {(bigint) compiling_base___ToolContext___output_file},
-  {(bigint) compiling_base___ToolContext___output_file__eq},
-  {(bigint) compiling_base___ToolContext___boost},
-  {(bigint) compiling_base___ToolContext___boost__eq},
-  {(bigint) compiling_base___ToolContext___no_cc},
-  {(bigint) compiling_base___ToolContext___no_cc__eq},
-  {(bigint) compiling_base___ToolContext___ext_prefix},
-  {(bigint) compiling_base___ToolContext___ext_prefix__eq},
-  {(bigint) 2 /* 66: ToolContext < ToolContext: superclass init_table position */},
-  {(bigint) mmloader___ToolContext___error_count},
-  {(bigint) mmloader___ToolContext___warning_count},
-  {(bigint) mmloader___ToolContext___error},
-  {(bigint) mmloader___ToolContext___warning},
-  {(bigint) mmloader___ToolContext___paths},
-  {(bigint) mmloader___ToolContext___option_context},
-  {(bigint) mmloader___ToolContext___opt_warn},
-  {(bigint) mmloader___ToolContext___opt_path},
-  {(bigint) mmloader___ToolContext___opt_log},
-  {(bigint) mmloader___ToolContext___opt_only_metamodel},
-  {(bigint) mmloader___ToolContext___opt_only_parse},
-  {(bigint) mmloader___ToolContext___opt_help},
-  {(bigint) mmloader___ToolContext___init},
-  {(bigint) mmloader___ToolContext___process_options},
-  {(bigint) mmloader___ToolContext___try_to_load},
-  {(bigint) mmloader___ToolContext___get_module_from_filename},
-  {(bigint) mmloader___ToolContext___get_module},
-  {(bigint) mmloader___ToolContext___directory_for},
-  {(bigint) mmloader___ToolContext___register_loader},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAttrRead___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IAttrRead___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IAttrRead___inner_dup_with},
+  {(bigint) 1 /* 53: IAttrRead < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___IAttrRead___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IAttrRead < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
+  {(bigint) 3 /* 64: IAttrRead < IAttrRead: superclass init_table position */},
+  {(bigint) icode_base___IAttrRead___property},
+  {(bigint) icode_base___IAttrRead___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ToolContext::_module_hierarchy */
-/* 2: Attribute ToolContext::_class_hierarchy */
-/* 3: Attribute ToolContext::_global_classes */
-/* 4: Attribute ToolContext::_modules */
-/* 5: Attribute ToolContext::_global */
-/* 6: Attribute ToolContext::_attr_sim */
-/* 7: Attribute ToolContext::_compdir */
-/* 8: Attribute ToolContext::_clibdir */
-/* 9: Attribute ToolContext::_bindir */
-/* 10: Attribute ToolContext::_output_file */
-/* 11: Attribute ToolContext::_boost */
-/* 12: Attribute ToolContext::_no_cc */
-/* 13: Attribute ToolContext::_ext_prefix */
-/* 14: Attribute ToolContext::_error_count */
-/* 15: Attribute ToolContext::_warning_count */
-/* 16: Attribute ToolContext::_paths */
-/* 17: Attribute ToolContext::_loaders */
-/* 18: Attribute ToolContext::_option_context */
-/* 19: Attribute ToolContext::_opt_warn */
-/* 20: Attribute ToolContext::_opt_path */
-/* 21: Attribute ToolContext::_opt_log */
-/* 22: Attribute ToolContext::_opt_only_metamodel */
-/* 23: Attribute ToolContext::_opt_only_parse */
-/* 24: Attribute ToolContext::_opt_help */
-/* 25: Attribute ToolContext::_processing_modules */
-/* 26: Attribute ToolContext::_path_dirs */
-val_t NEW_ToolContext(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  val_t variable3;
-  val_t variable4;
-  val_t variable5;
-  val_t variable6;
-  val_t variable7;
-  val_t variable8;
-  val_t variable9;
-  val_t variable10;
-  val_t variable11;
-  val_t variable12;
-  val_t variable13;
-  val_t variable14;
-  val_t variable15;
-  val_t variable16;
-  val_t variable17;
-  val_t variable18;
-  val_t variable19;
-  val_t variable20;
-  val_t variable21;
-  val_t variable22;
-  val_t variable23;
-  val_t variable24;
-  val_t variable25;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 27);
-  obj->vft = (classtable_elt_t*)VFT_ToolContext;
-  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMContext____module_hierarchy(obj) = variable0;
-  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMContext____class_hierarchy(obj) = variable1;
-  variable2 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMContext____global_classes(obj) = variable2;
-  variable3 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMContext____modules(obj) = variable3;
-  ATTR_mmloader___ToolContext____error_count(obj) = TAG_Int((bigint)0);
-  ATTR_mmloader___ToolContext____warning_count(obj) = TAG_Int((bigint)0);
-  variable4 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_mmloader___ToolContext____loaders(obj) = variable4;
-  variable5 = NEW_opts___OptionContext___init(); /*new OptionContext*/
-  ATTR_mmloader___ToolContext____option_context(obj) = variable5;
-  variable6 = NEW_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
-  variable7 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable8 = NEW_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*AbstractArray::add*/;
-  variable9 = NEW_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable9) /*AbstractArray::add*/;
-  variable8 = NEW_opts___OptionBool___init(variable6, variable7); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_warn(obj) = variable8;
-  variable9 = NEW_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
-  variable10 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable11 = NEW_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable11) /*AbstractArray::add*/;
-  variable12 = NEW_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable12) /*AbstractArray::add*/;
-  variable11 = NEW_opts___OptionArray___init(variable9, variable10); /*new OptionArray*/
-  ATTR_mmloader___ToolContext____opt_path(obj) = variable11;
-  variable12 = NEW_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
-  variable13 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable14 = NEW_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13, variable14) /*AbstractArray::add*/;
-  variable14 = NEW_opts___OptionBool___init(variable12, variable13); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_log(obj) = variable14;
-  variable15 = NEW_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
-  variable16 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable17 = NEW_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16, variable17) /*AbstractArray::add*/;
-  variable17 = NEW_opts___OptionBool___init(variable15, variable16); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable17;
-  variable18 = NEW_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
-  variable19 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable20 = NEW_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19, variable20) /*AbstractArray::add*/;
-  variable20 = NEW_opts___OptionBool___init(variable18, variable19); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable20;
-  variable21 = NEW_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
-  variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[E]*/
-  variable23 = NEW_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable23) /*AbstractArray::add*/;
-  variable24 = NEW_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable24) /*AbstractArray::add*/;
-  variable25 = NEW_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable25) /*AbstractArray::add*/;
-  variable23 = NEW_opts___OptionBool___init(variable21, variable22); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_help(obj) = variable23;
-  variable24 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_mmloader___ToolContext____processing_modules(obj) = variable24;
-  variable25 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_mmloader___ToolContext____path_dirs(obj) = variable25;
-  ATTR_compiling_base___ToolContext____global(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____attr_sim(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____boost(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____no_cc(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_mmloader___ToolContext___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ToolContext();
-  mmloader___ToolContext___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ModuleLoader[48] = {
-  {(bigint) 79 /* 0: Identity */},
-  {(bigint) 3 /* 1: ModuleLoader < Object: superclass typecheck marker */},
-  {(bigint) 79 /* 2: ModuleLoader < ModuleLoader: superclass typecheck marker */},
+/* 1: Object_id */
+/* 2: Attribute IAttrRead::_result */
+/* 3: Attribute IAttrRead::_location */
+/* 4: Attribute IAttrRead::_expr */
+/* 5: Attribute IAttrRead::_property */
+void INIT_ATTRIBUTES__IAttrRead(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IAttrRead;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAttrRead(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_IAttrRead;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IAttrRead(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IAttrRead;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAttrRead____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAttrRead_icode_base___IAttrRead___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 364;
+  fra.me.meth = LOCATE_NEW_IAttrRead_icode_base___IAttrRead___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IAttrRead();
+  /* ./icode//icode_base.nit:364 */
+  INIT_ATTRIBUTES__IAttrRead(fra.me.REG[2]);
+  icode_base___IAttrRead___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IAttrRead(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_IAttrWrite[68] = {
+  {(bigint) 5847 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IAttrWrite < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IAttrWrite < ICode: superclass typecheck marker */},
+  {(bigint) 5199 /* 4: IAttrWrite < ICode2: superclass typecheck marker */},
+  {(bigint) 5847 /* 5: IAttrWrite < IAttrWrite: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78108,14 +232956,10 @@ const classtable_elt_t VFT_ModuleLoader[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ModuleLoader < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IAttrWrite < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78123,7 +232967,6 @@ const classtable_elt_t VFT_ModuleLoader[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78131,31 +232974,144 @@ const classtable_elt_t VFT_ModuleLoader[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ModuleLoader < ModuleLoader: superclass init_table position */},
-  {(bigint) mmloader___ModuleLoader___file_type},
-  {(bigint) mmloader___ModuleLoader___try_to_load_dir},
-  {(bigint) mmloader___ModuleLoader___can_handle},
-  {(bigint) mmloader___ModuleLoader___load_and_process_module},
-  {(bigint) mmloader___ModuleLoader___load_module},
-  {(bigint) mmloader___ModuleLoader___parse_file},
-  {(bigint) mmloader___ModuleLoader___process_metamodel},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAttrWrite___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IAttrWrite___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IAttrWrite___inner_dup_with},
+  {(bigint) 1 /* 53: IAttrWrite < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode2___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IAttrWrite < ICode2: superclass init_table position */},
+  {(bigint) icode_base___ICode2___expr1},
+  {(bigint) icode_base___ICode2___expr2},
+  {(bigint) icode_base___ICode2___init},
+  {(bigint) 3 /* 65: IAttrWrite < IAttrWrite: superclass init_table position */},
+  {(bigint) icode_base___IAttrWrite___property},
+  {(bigint) icode_base___IAttrWrite___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_ModuleLoader(void) {
+/* 1: Object_id */
+/* 2: Attribute IAttrWrite::_result */
+/* 3: Attribute IAttrWrite::_location */
+/* 4: Attribute IAttrWrite::_expr1 */
+/* 5: Attribute IAttrWrite::_expr2 */
+/* 6: Attribute IAttrWrite::_property */
+void INIT_ATTRIBUTES__IAttrWrite(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IAttrWrite;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAttrWrite(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_ModuleLoader;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_IAttrWrite;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IAttrWrite(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IAttrWrite;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode2____expr1(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr1");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode2____expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAttrWrite____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAttrWrite_icode_base___IAttrWrite___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 380;
+  fra.me.meth = LOCATE_NEW_IAttrWrite_icode_base___IAttrWrite___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_IAttrWrite();
+  /* ./icode//icode_base.nit:380 */
+  INIT_ATTRIBUTES__IAttrWrite(fra.me.REG[3]);
+  icode_base___IAttrWrite___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_IAttrWrite(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_MMSrcModule[93] = {
-  {(bigint) 2567 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSrcModule < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMSrcModule < MMModule: superclass typecheck marker */},
-  {(bigint) 2567 /* 3: MMSrcModule < MMSrcModule: superclass typecheck marker */},
+const classtable_elt_t VFT_IAttrIsset[67] = {
+  {(bigint) 5855 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IAttrIsset < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IAttrIsset < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: IAttrIsset < ICode1: superclass typecheck marker */},
+  {(bigint) 5855 /* 5: IAttrIsset < IAttrIsset: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78165,14 +233121,11 @@ const classtable_elt_t VFT_MMSrcModule[93] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMModule___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSrcModule < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IAttrIsset < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78180,7 +233133,6 @@ const classtable_elt_t VFT_MMSrcModule[93] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78188,136 +233140,133 @@ const classtable_elt_t VFT_MMSrcModule[93] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) abstracttool___MMModule___dump_module_info},
-  {(bigint) mmloader___MMModule___filename},
-  {(bigint) mmloader___MMModule___filename__eq},
-  {(bigint) mmloader___MMModule___mtime},
-  {(bigint) mmloader___MMModule___mtime__eq},
-  {(bigint) mmloader___MMModule___import_supers_modules},
-  {(bigint) inheritance___MMModule___type_any},
-  {(bigint) inheritance___MMModule___import_global_classes},
-  {(bigint) inheritance___MMModule___import_local_classes},
-  {(bigint) static_type___MMModule___type_none},
-  {(bigint) 1 /* 50: MMSrcModule < MMModule: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMModule___context},
-  {(bigint) abstractmetamodel___MMModule___name},
-  {(bigint) abstractmetamodel___MMModule___full_name},
-  {(bigint) abstractmetamodel___MMModule___directory},
-  {(bigint) abstractmetamodel___MMModule___mhe},
-  {(bigint) abstractmetamodel___MMModule___global_classes},
-  {(bigint) abstractmetamodel___MMModule___local_classes},
-  {(bigint) abstractmetamodel___MMModule___class_specialization_hierarchy},
-  {(bigint) abstractmetamodel___MMModule___explicit_imported_modules},
-  {(bigint) abstractmetamodel___MMModule___init},
-  {(bigint) abstractmetamodel___MMModule___add_super_module},
-  {(bigint) abstractmetamodel___MMModule___visibility_for},
-  {(bigint) abstractmetamodel___MMModule_____bra},
-  {(bigint) abstractmetamodel___MMModule___add_local_class},
-  {(bigint) abstractmetamodel___MMModule___class_by_name},
-  {(bigint) abstractmetamodel___MMModule___has_global_class_named},
-  {(bigint) abstractmetamodel___MMModule___global_class_named},
-  {(bigint) abstractmetamodel___MMModule___set_supers_class},
-  {(bigint) abstractmetamodel___MMModule___register_global_class},
-  {(bigint) compiling___MMSrcModule___compile_prog_to_c},
-  {(bigint) compiling___MMSrcModule___compile_main},
-  {(bigint) compiling___MMSrcModule___compile_separate_module},
-  {(bigint) compiling_global___MMSrcModule___local_analysis},
-  {(bigint) compiling_global___MMSrcModule___global_analysis},
-  {(bigint) compiling_global___MMSrcModule___append_to_table},
-  {(bigint) compiling_global___MMSrcModule___build_tables},
-  {(bigint) compiling_global___MMSrcModule___colorize},
-  {(bigint) compiling_global___MMSrcModule___free_color},
-  {(bigint) compiling_global___MMSrcModule___compile_tables_to_c},
-  {(bigint) compiling_global___MMSrcModule___declare_class_tables_to_c},
-  {(bigint) compiling_global___MMSrcModule___compile_main_part},
-  {(bigint) compiling_global___MMSrcModule___compile_mod_to_c},
-  {(bigint) compiling_global___MMSrcModule___compile_local_table_to_c},
-  {(bigint) syntax___MMSrcModule___process_supermodules},
-  {(bigint) syntax___MMSrcModule___process_syntax},
-  {(bigint) mmbuilder___MMSrcModule___do_mmbuilder},
-  {(bigint) 2 /* 87: MMSrcModule < MMSrcModule: superclass init_table position */},
-  {(bigint) syntax_base___MMSrcModule___node},
-  {(bigint) syntax_base___MMSrcModule___src_local_classes},
-  {(bigint) syntax_base___MMSrcModule___init},
-  {(bigint) control_flow___MMSrcModule___do_control_flow},
-  {(bigint) typing___MMSrcModule___do_typing},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IAttrIsset___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IAttrIsset___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IAttrIsset___inner_dup_with},
+  {(bigint) 1 /* 53: IAttrIsset < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___IAttrIsset___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IAttrIsset < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
+  {(bigint) 3 /* 64: IAttrIsset < IAttrIsset: superclass init_table position */},
+  {(bigint) icode_base___IAttrIsset___property},
+  {(bigint) icode_base___IAttrIsset___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSrcModule::_filename */
-/* 2: Attribute MMSrcModule::_mtime */
-/* 3: Attribute MMSrcModule::_type_none */
-/* 4: Attribute MMSrcModule::_context */
-/* 5: Attribute MMSrcModule::_name */
-/* 6: Attribute MMSrcModule::_full_name */
-/* 7: Attribute MMSrcModule::_directory */
-/* 8: Attribute MMSrcModule::_mhe */
-/* 9: Attribute MMSrcModule::_global_classes */
-/* 10: Attribute MMSrcModule::_local_classes */
-/* 11: Attribute MMSrcModule::_class_specialization_hierarchy */
-/* 12: Attribute MMSrcModule::_intrude_modules */
-/* 13: Attribute MMSrcModule::_public_modules */
-/* 14: Attribute MMSrcModule::_private_modules */
-/* 15: Attribute MMSrcModule::_explicit_imported_modules */
-/* 16: Attribute MMSrcModule::_local_class_by_global */
-/* 17: Attribute MMSrcModule::_global_class_by_name */
-/* 18: Attribute MMSrcModule::_local_table */
-/* 19: Attribute MMSrcModule::_node */
-/* 20: Attribute MMSrcModule::_src_local_classes */
-val_t NEW_MMSrcModule(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  val_t variable3;
-  val_t variable4;
-  val_t variable5;
-  val_t variable6;
-  val_t variable7;
-  val_t variable8;
-  val_t variable9;
-  val_t variable10;
+/* 1: Object_id */
+/* 2: Attribute IAttrIsset::_result */
+/* 3: Attribute IAttrIsset::_location */
+/* 4: Attribute IAttrIsset::_expr */
+/* 5: Attribute IAttrIsset::_property */
+void INIT_ATTRIBUTES__IAttrIsset(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IAttrIsset;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAttrIsset(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 21);
-  obj->vft = (classtable_elt_t*)VFT_MMSrcModule;
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMModule____global_classes(obj) = variable0;
-  variable1 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMModule____local_classes(obj) = variable1;
-  variable2 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(obj) = variable2;
-  variable3 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_abstractmetamodel___MMModule____intrude_modules(obj) = variable3;
-  variable4 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_abstractmetamodel___MMModule____public_modules(obj) = variable4;
-  variable5 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_abstractmetamodel___MMModule____private_modules(obj) = variable5;
-  variable6 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_abstractmetamodel___MMModule____explicit_imported_modules(obj) = variable6;
-  variable7 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_abstractmetamodel___MMModule____local_class_by_global(obj) = variable7;
-  variable8 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_abstractmetamodel___MMModule____global_class_by_name(obj) = variable8;
-  variable9 = OBJ2VAL(obj);
-  variable10 = NEW_static_type___MMTypeNone___init(variable9); /*new MMTypeNone*/
-  ATTR_static_type___MMModule____type_none(obj) = variable10;
-  ATTR_mmloader___MMModule____mtime(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMSrcModule();
-  syntax_base___MMSrcModule___init(self, p0, p1, p2, p3, init_table);
-  return self;
-}
-const classtable_elt_t VFT_MMSrcLocalClass[117] = {
-  {(bigint) 3171 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSrcLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 103 /* 2: MMSrcLocalClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2595 /* 3: MMSrcLocalClass < MMConcreteClass: superclass typecheck marker */},
-  {(bigint) 3171 /* 4: MMSrcLocalClass < MMSrcLocalClass: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_IAttrIsset;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IAttrIsset(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IAttrIsset;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___IAttrIsset____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IAttrIsset_icode_base___IAttrIsset___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 395;
+  fra.me.meth = LOCATE_NEW_IAttrIsset_icode_base___IAttrIsset___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IAttrIsset();
+  /* ./icode//icode_base.nit:395 */
+  INIT_ATTRIBUTES__IAttrIsset(fra.me.REG[2]);
+  icode_base___IAttrIsset___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IAttrIsset(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ITypeCheck[67] = {
+  {(bigint) 5787 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ITypeCheck < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: ITypeCheck < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: ITypeCheck < ICode1: superclass typecheck marker */},
+  {(bigint) 5787 /* 5: ITypeCheck < ITypeCheck: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78326,14 +233275,12 @@ const classtable_elt_t VFT_MMSrcLocalClass[117] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalClass___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSrcLocalClass < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ITypeCheck < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78341,7 +233288,6 @@ const classtable_elt_t VFT_MMSrcLocalClass[117] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78349,146 +233295,133 @@ const classtable_elt_t VFT_MMSrcLocalClass[117] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) abstracttool___MMLocalClass___dump_properties},
-  {(bigint) mmbuilder___MMSrcLocalClass___accept_class_visitor},
-  {(bigint) mmbuilder___MMSrcLocalClass___accept_properties_visitor},
-  {(bigint) genericity___MMLocalClass___get_formal},
-  {(bigint) genericity___MMLocalClass___register_formal},
-  {(bigint) genericity___MMLocalClass___get_instantiate_type},
-  {(bigint) genericity___MMLocalClass___formals_types},
-  {(bigint) static_type___MMLocalClass___get_type},
-  {(bigint) genericity___MMLocalClass___is_generic},
-  {(bigint) inheritance___MMLocalClass___compute_super_classes},
-  {(bigint) inheritance___MMLocalClass___compute_ancestors},
-  {(bigint) inheritance___MMLocalClass___inherit_global_properties},
-  {(bigint) inheritance___MMLocalClass___add_direct_parent},
-  {(bigint) inheritance___MMLocalClass___computed_super_classes},
-  {(bigint) inheritance___MMLocalClass___computed_ancestors},
-  {(bigint) inheritance___MMLocalClass___ancestor_for},
-  {(bigint) abstractmetamodel___MMLocalClass_____bra},
-  {(bigint) inheritance___MMLocalClass___add_default_any_class},
-  {(bigint) inheritance___MMLocalClass___add_super_classes},
-  {(bigint) inheritance___MMLocalClass___add_explicit_classes},
-  {(bigint) inheritance___MMLocalClass___compute_super_parents},
-  {(bigint) inheritance___MMLocalClass___build_ancestors},
-  {(bigint) inheritance___MMLocalClass___group_ancestors},
-  {(bigint) inheritance___MMLocalClass___merge_ancestors},
-  {(bigint) inheritance___MMLocalClass___inherit_local_property},
-  {(bigint) genericity___MMLocalClass___get_type},
-  {(bigint) static_type___MMLocalClass___add_ancestor},
-  {(bigint) static_type___MMLocalClass___ancestors},
-  {(bigint) static_type___MMLocalClass___ancestor},
-  {(bigint) 1 /* 69: MMSrcLocalClass < MMLocalClass: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalClass___name},
-  {(bigint) abstractmetamodel___MMLocalClass___arity},
-  {(bigint) abstractmetamodel___MMLocalClass___module},
-  {(bigint) abstractmetamodel___MMLocalClass___abstract},
-  {(bigint) abstractmetamodel___MMLocalClass___abstract__eq},
-  {(bigint) abstractmetamodel___MMLocalClass___global},
-  {(bigint) abstractmetamodel___MMLocalClass___crhe},
-  {(bigint) abstractmetamodel___MMLocalClass___cshe},
-  {(bigint) abstractmetamodel___MMLocalClass___che},
-  {(bigint) abstractmetamodel___MMLocalClass___local_property_by_global},
-  {(bigint) abstractmetamodel___MMLocalClass___global_properties},
-  {(bigint) abstractmetamodel___MMLocalClass___properties_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___init},
-  {(bigint) abstractmetamodel___MMLocalClass___for_module},
-  {(bigint) abstractmetamodel___MMLocalClass___new_global},
-  {(bigint) abstractmetamodel___MMLocalClass___set_global},
-  {(bigint) abstractmetamodel___MMLocalClass___has_global_property_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___get_property_by_name},
-  {(bigint) abstractmetamodel___MMLocalClass___attribute},
-  {(bigint) abstractmetamodel___MMLocalClass___method},
-  {(bigint) abstractmetamodel___MMLocalClass___select_method},
-  {(bigint) abstractmetamodel___MMLocalClass___select_attribute},
-  {(bigint) abstractmetamodel___MMLocalClass___super_methods_named},
-  {(bigint) abstractmetamodel___MMLocalClass___register_local_property},
-  {(bigint) abstractmetamodel___MMLocalClass___register_global_property},
-  {(bigint) inheritance___MMLocalClass_____bra},
-  {(bigint) abstractmetamodel___MMLocalClass___context},
-  {(bigint) virtualtype___MMLocalClass___virtual_type},
-  {(bigint) virtualtype___MMLocalClass___select_virtual_type},
-  {(bigint) compiling_global___MMLocalClass___compare},
-  {(bigint) compiling_global___MMLocalClass___declare_tables_to_c},
-  {(bigint) compiling_global___MMLocalClass___compile_tables_to_c},
-  {(bigint) compiling_base___MMLocalClass___primitive_info},
-  {(bigint) compiling_base___MMLocalClass___primitive_ctypes},
-  {(bigint) 2 /* 104: MMSrcLocalClass < MMConcreteClass: superclass init_table position */},
-  {(bigint) compiling_global___MMSrcLocalClass___base_attr_pos},
-  {(bigint) compiling_global___MMSrcLocalClass___class_color_pos},
-  {(bigint) compiling_global___MMSrcLocalClass___class_layout},
-  {(bigint) compiling_global___MMSrcLocalClass___instance_layout},
-  {(bigint) compiling_global___MMSrcLocalClass___build_layout_in},
-  {(bigint) mmbuilder___MMSrcLocalClass___add_src_local_property},
-  {(bigint) 3 /* 111: MMSrcLocalClass < MMSrcLocalClass: superclass init_table position */},
-  {(bigint) syntax_base___MMSrcLocalClass___nodes},
-  {(bigint) syntax_base___MMSrcLocalClass___formal_dict},
-  {(bigint) syntax_base___MMSrcLocalClass___formal_dict__eq},
-  {(bigint) syntax_base___MMSrcLocalClass___src_local_properties},
-  {(bigint) syntax_base___MMSrcLocalClass___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___ITypeCheck___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___ITypeCheck___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___ITypeCheck___inner_dup_with},
+  {(bigint) 1 /* 53: ITypeCheck < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ITypeCheck___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: ITypeCheck < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
+  {(bigint) 3 /* 64: ITypeCheck < ITypeCheck: superclass init_table position */},
+  {(bigint) icode_base___ITypeCheck___stype},
+  {(bigint) icode_base___ITypeCheck___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSrcLocalClass::_types */
-/* 2: Attribute MMSrcLocalClass::_formals_types */
-/* 3: Attribute MMSrcLocalClass::_direct_parents */
-/* 4: Attribute MMSrcLocalClass::_computing_super */
-/* 5: Attribute MMSrcLocalClass::_base_type_cache */
-/* 6: Attribute MMSrcLocalClass::_ancestors */
-/* 7: Attribute MMSrcLocalClass::_name */
-/* 8: Attribute MMSrcLocalClass::_arity */
-/* 9: Attribute MMSrcLocalClass::_module */
-/* 10: Attribute MMSrcLocalClass::_abstract */
-/* 11: Attribute MMSrcLocalClass::_global */
-/* 12: Attribute MMSrcLocalClass::_crhe */
-/* 13: Attribute MMSrcLocalClass::_cshe */
-/* 14: Attribute MMSrcLocalClass::_che */
-/* 15: Attribute MMSrcLocalClass::_local_property_by_global */
-/* 16: Attribute MMSrcLocalClass::_global_properties */
-/* 17: Attribute MMSrcLocalClass::_properties_by_name */
-/* 18: Attribute MMSrcLocalClass::_primitive_info_cache */
-/* 19: Attribute MMSrcLocalClass::_primitive_info_b */
-/* 20: Attribute MMSrcLocalClass::_base_attr_pos */
-/* 21: Attribute MMSrcLocalClass::_class_color_pos */
-/* 22: Attribute MMSrcLocalClass::_class_layout */
-/* 23: Attribute MMSrcLocalClass::_instance_layout */
-/* 24: Attribute MMSrcLocalClass::_nodes */
-/* 25: Attribute MMSrcLocalClass::_formal_dict */
-/* 26: Attribute MMSrcLocalClass::_src_local_properties */
-val_t NEW_MMSrcLocalClass(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 27);
-  obj->vft = (classtable_elt_t*)VFT_MMSrcLocalClass;
-  ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((bigint)0);
-  ATTR_abstractmetamodel___MMLocalClass____abstract(obj) = TAG_Bool((int)0);
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_inheritance___MMLocalClass____direct_parents(obj) = variable0;
-  ATTR_inheritance___MMLocalClass____computing_super(obj) = TAG_Bool((int)0);
-  variable1 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_genericity___MMLocalClass____types(obj) = variable1;
-  variable2 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_genericity___MMLocalClass____formals_types(obj) = variable2;
-  ATTR_compiling_base___MMLocalClass____primitive_info_b(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2) {
+/* 1: Object_id */
+/* 2: Attribute ITypeCheck::_result */
+/* 3: Attribute ITypeCheck::_location */
+/* 4: Attribute ITypeCheck::_expr */
+/* 5: Attribute ITypeCheck::_stype */
+void INIT_ATTRIBUTES__ITypeCheck(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ITypeCheck;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ITypeCheck(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ITypeCheck;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ITypeCheck(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ITypeCheck;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___ITypeCheck____stype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stype");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ITypeCheck_icode_base___ITypeCheck___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_MMSrcLocalClass();
-  syntax_base___MMSrcLocalClass___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 411;
+  fra.me.meth = LOCATE_NEW_ITypeCheck_icode_base___ITypeCheck___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ITypeCheck();
+  /* ./icode//icode_base.nit:411 */
+  INIT_ATTRIBUTES__ITypeCheck(fra.me.REG[2]);
+  icode_base___ITypeCheck___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ITypeCheck(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_MMSrcAttribute[65] = {
-  {(bigint) 3175 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSrcAttribute < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMSrcAttribute < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2599 /* 3: MMSrcAttribute < MMAttribute: superclass typecheck marker */},
-  {(bigint) 3175 /* 4: MMSrcAttribute < MMSrcAttribute: superclass typecheck marker */},
+const classtable_elt_t VFT_IIs[67] = {
+  {(bigint) 5819 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IIs < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IIs < ICode: superclass typecheck marker */},
+  {(bigint) 5199 /* 4: IIs < ICode2: superclass typecheck marker */},
+  {(bigint) 5819 /* 5: IIs < IIs: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78497,14 +233430,12 @@ const classtable_elt_t VFT_MMSrcAttribute[65] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSrcAttribute < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IIs < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78512,7 +233443,6 @@ const classtable_elt_t VFT_MMSrcAttribute[65] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78520,68 +233450,133 @@ const classtable_elt_t VFT_MMSrcAttribute[65] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMSrcAttribute___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMSrcAttribute < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling_methods___MMAttribute___compile_access},
-  {(bigint) 2 /* 62: MMSrcAttribute < MMAttribute: superclass init_table position */},
-  {(bigint) 3 /* 63: MMSrcAttribute < MMSrcAttribute: superclass init_table position */},
-  {(bigint) syntax_base___MMSrcAttribute___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IIs___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IIs___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IIs___inner_dup_with},
+  {(bigint) 1 /* 53: IIs < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode2___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___IIs___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IIs < ICode2: superclass init_table position */},
+  {(bigint) icode_base___ICode2___expr1},
+  {(bigint) icode_base___ICode2___expr2},
+  {(bigint) icode_base___ICode2___init},
+  {(bigint) 3 /* 65: IIs < IIs: superclass init_table position */},
+  {(bigint) icode_base___IIs___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSrcAttribute::_cname_cache */
-/* 2: Attribute MMSrcAttribute::_signature */
-/* 3: Attribute MMSrcAttribute::_signatures_cache */
-/* 4: Attribute MMSrcAttribute::_name */
-/* 5: Attribute MMSrcAttribute::_local_class */
-/* 6: Attribute MMSrcAttribute::_global */
-/* 7: Attribute MMSrcAttribute::_prhe */
-/* 8: Attribute MMSrcAttribute::_need_super */
-/* 9: Attribute MMSrcAttribute::_node */
-val_t NEW_MMSrcAttribute(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_MMSrcAttribute;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IIs::_result */
+/* 3: Attribute IIs::_location */
+/* 4: Attribute IIs::_expr1 */
+/* 5: Attribute IIs::_expr2 */
+void INIT_ATTRIBUTES__IIs(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IIs;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2) {
+val_t NEW_IIs(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_IIs;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IIs(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IIs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode2____expr1(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr1");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode2____expr2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IIs_icode_base___IIs___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_MMSrcAttribute();
-  syntax_base___MMSrcAttribute___init(self, p0, p1, p2, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 424;
+  fra.me.meth = LOCATE_NEW_IIs_icode_base___IIs___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_IIs();
+  /* ./icode//icode_base.nit:424 */
+  INIT_ATTRIBUTES__IIs(fra.me.REG[2]);
+  icode_base___IIs___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_IIs(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_MMSrcMethod[68] = {
-  {(bigint) 3167 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSrcMethod < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMSrcMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2583 /* 3: MMSrcMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3167 /* 4: MMSrcMethod < MMSrcMethod: superclass typecheck marker */},
+const classtable_elt_t VFT_INot[66] = {
+  {(bigint) 5807 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: INot < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: INot < ICode: superclass typecheck marker */},
+  {(bigint) 5203 /* 4: INot < ICode1: superclass typecheck marker */},
+  {(bigint) 5807 /* 5: INot < INot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78590,14 +233585,12 @@ const classtable_elt_t VFT_MMSrcMethod[68] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSrcMethod < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: INot < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78605,7 +233598,6 @@ const classtable_elt_t VFT_MMSrcMethod[68] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78613,65 +233605,122 @@ const classtable_elt_t VFT_MMSrcMethod[68] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMLocalProperty___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMSrcMethod < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling_methods___MMMethod___compile_call},
-  {(bigint) compiling_methods___MMMethod___compile_constructor_call},
-  {(bigint) compiling_methods___MMMethod___compile_super_call},
-  {(bigint) 2 /* 64: MMSrcMethod < MMMethod: superclass init_table position */},
-  {(bigint) compiling_methods___MMSrcMethod___decl_csignature},
-  {(bigint) compiling_methods___MMSrcMethod___do_compile_inside},
-  {(bigint) 3 /* 67: MMSrcMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___INot___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___INot___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___INot___inner_dup_with},
+  {(bigint) 1 /* 53: INot < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode1___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___INot___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: INot < ICode1: superclass init_table position */},
+  {(bigint) icode_base___ICode1___expr},
+  {(bigint) icode_base___ICode1___init},
+  {(bigint) 3 /* 64: INot < INot: superclass init_table position */},
+  {(bigint) icode_base___INot___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSrcMethod::_cname_cache */
-/* 2: Attribute MMSrcMethod::_signature */
-/* 3: Attribute MMSrcMethod::_signatures_cache */
-/* 4: Attribute MMSrcMethod::_name */
-/* 5: Attribute MMSrcMethod::_local_class */
-/* 6: Attribute MMSrcMethod::_global */
-/* 7: Attribute MMSrcMethod::_prhe */
-/* 8: Attribute MMSrcMethod::_need_super */
-val_t NEW_MMSrcMethod(void) {
-  val_t variable0;
+/* 1: Object_id */
+/* 2: Attribute INot::_result */
+/* 3: Attribute INot::_location */
+/* 4: Attribute INot::_expr */
+void INIT_ATTRIBUTES__INot(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__INot;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_INot(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_MMSrcMethod;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_INot;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_INot(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_INot;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_expr");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_INot_icode_base___INot___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 436;
+  fra.me.meth = LOCATE_NEW_INot_icode_base___INot___init;
+  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;
+  fra.me.REG[1] = NEW_INot();
+  /* ./icode//icode_base.nit:436 */
+  INIT_ATTRIBUTES__INot(fra.me.REG[1]);
+  icode_base___INot___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_INot(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_MMAttrImplementationMethod[69] = {
-  {(bigint) 3295 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMAttrImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMAttrImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2583 /* 3: MMAttrImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3167 /* 4: MMAttrImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3295 /* 5: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+const classtable_elt_t VFT_IOnce[65] = {
+  {(bigint) 5799 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IOnce < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IOnce < ICode: superclass typecheck marker */},
+  {(bigint) 5207 /* 4: IOnce < ICode0: superclass typecheck marker */},
+  {(bigint) 5799 /* 5: IOnce < IOnce: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78679,14 +233728,13 @@ const classtable_elt_t VFT_MMAttrImplementationMethod[69] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMAttrImplementationMethod < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IOnce < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78694,7 +233742,6 @@ const classtable_elt_t VFT_MMAttrImplementationMethod[69] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78702,82 +233749,136 @@ const classtable_elt_t VFT_MMAttrImplementationMethod[69] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMAttrImplementationMethod___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMAttrImplementationMethod < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling_methods___MMMethod___compile_call},
-  {(bigint) compiling_methods___MMMethod___compile_constructor_call},
-  {(bigint) compiling_methods___MMMethod___compile_super_call},
-  {(bigint) 2 /* 64: MMAttrImplementationMethod < MMMethod: superclass init_table position */},
-  {(bigint) compiling_methods___MMSrcMethod___decl_csignature},
-  {(bigint) compiling_methods___MMSrcMethod___do_compile_inside},
-  {(bigint) 3 /* 67: MMAttrImplementationMethod < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 68: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IOnce___inner_compile_to_c},
+  {(bigint) icode_dump___IOnce___dump},
+  {(bigint) icode_dump___ICode___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IOnce___inner_dup_with},
+  {(bigint) 1 /* 53: IOnce < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode0___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___ICode___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IOnce < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 62: IOnce < IOnce: superclass init_table position */},
+  {(bigint) icode_base___IOnce___body},
+  {(bigint) icode_base___IOnce___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMAttrImplementationMethod::_cname_cache */
-/* 2: Attribute MMAttrImplementationMethod::_signature */
-/* 3: Attribute MMAttrImplementationMethod::_signatures_cache */
-/* 4: Attribute MMAttrImplementationMethod::_name */
-/* 5: Attribute MMAttrImplementationMethod::_local_class */
-/* 6: Attribute MMAttrImplementationMethod::_global */
-/* 7: Attribute MMAttrImplementationMethod::_prhe */
-/* 8: Attribute MMAttrImplementationMethod::_need_super */
-/* 9: Attribute MMAttrImplementationMethod::_node */
-val_t NEW_MMAttrImplementationMethod(void) {
-  val_t variable0;
+/* 1: Object_id */
+/* 2: Attribute IOnce::_result */
+/* 3: Attribute IOnce::_location */
+/* 4: Attribute IOnce::_body */
+void INIT_ATTRIBUTES__IOnce(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IOnce;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ISeq_icode_base___ISeq___init();
+  /* ./icode//icode_base.nit:448 */
+  ATTR_icode_base___IOnce____body(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IOnce(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_MMAttrImplementationMethod;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_IOnce;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IOnce(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IOnce;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IOnce____body(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_body");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IOnce_icode_base___IOnce___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 449;
+  fra.me.meth = LOCATE_NEW_IOnce_icode_base___IOnce___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_IOnce();
+  /* ./icode//icode_base.nit:449 */
+  INIT_ATTRIBUTES__IOnce(fra.me.REG[0]);
+  icode_base___IOnce___init(fra.me.REG[0], init_table);
+  CHECKNEW_IOnce(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_MMReadImplementationMethod[71] = {
-  {(bigint) 3627 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMReadImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMReadImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2583 /* 3: MMReadImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3167 /* 4: MMReadImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3295 /* 5: MMReadImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
-  {(bigint) 3627 /* 6: MMReadImplementationMethod < MMReadImplementationMethod: superclass typecheck marker */},
+const classtable_elt_t VFT_IHasClos[65] = {
+  {(bigint) 5831 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IHasClos < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 3: IHasClos < ICode: superclass typecheck marker */},
+  {(bigint) 5207 /* 4: IHasClos < ICode0: superclass typecheck marker */},
+  {(bigint) 5831 /* 5: IHasClos < IHasClos: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMReadImplementationMethod < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IHasClos < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78785,7 +233886,6 @@ const classtable_elt_t VFT_MMReadImplementationMethod[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78793,90 +233893,135 @@ const classtable_elt_t VFT_MMReadImplementationMethod[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMAttrImplementationMethod___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMReadImplementationMethod < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling_methods___MMMethod___compile_call},
-  {(bigint) compiling_methods___MMMethod___compile_constructor_call},
-  {(bigint) compiling_methods___MMMethod___compile_super_call},
-  {(bigint) 2 /* 64: MMReadImplementationMethod < MMMethod: superclass init_table position */},
-  {(bigint) compiling_methods___MMSrcMethod___decl_csignature},
-  {(bigint) compiling_methods___MMReadImplementationMethod___do_compile_inside},
-  {(bigint) 3 /* 67: MMReadImplementationMethod < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 68: MMReadImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
-  {(bigint) 5 /* 69: MMReadImplementationMethod < MMReadImplementationMethod: superclass init_table position */},
-  {(bigint) syntax_base___MMReadImplementationMethod___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_icode___ICode___compile_to_c},
+  {(bigint) compiling_icode___ICode___need_result},
+  {(bigint) compiling_icode___ICode___store_result},
+  {(bigint) compiling_icode___IHasClos___inner_compile_to_c},
+  {(bigint) icode_dump___ICode___dump},
+  {(bigint) icode_dump___IHasClos___dump_intern},
+  {(bigint) icode_tools___ICode___dup_with},
+  {(bigint) icode_tools___IHasClos___inner_dup_with},
+  {(bigint) 1 /* 53: IHasClos < ICode: superclass init_table position */},
+  {(bigint) icode_base___ICode0___arity},
+  {(bigint) icode_base___ICode___result},
+  {(bigint) icode_base___ICode___result__eq},
+  {(bigint) icode_base___ICode___location},
+  {(bigint) icode_base___ICode___location__eq},
+  {(bigint) icode_base___IHasClos___is_pure},
+  {(bigint) icode_base___ICode___init},
+  {(bigint) 2 /* 61: IHasClos < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 62: IHasClos < IHasClos: superclass init_table position */},
+  {(bigint) icode_base___IHasClos___closure_decl},
+  {(bigint) icode_base___IHasClos___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMReadImplementationMethod::_cname_cache */
-/* 2: Attribute MMReadImplementationMethod::_signature */
-/* 3: Attribute MMReadImplementationMethod::_signatures_cache */
-/* 4: Attribute MMReadImplementationMethod::_name */
-/* 5: Attribute MMReadImplementationMethod::_local_class */
-/* 6: Attribute MMReadImplementationMethod::_global */
-/* 7: Attribute MMReadImplementationMethod::_prhe */
-/* 8: Attribute MMReadImplementationMethod::_need_super */
-/* 9: Attribute MMReadImplementationMethod::_node */
-val_t NEW_MMReadImplementationMethod(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_MMReadImplementationMethod;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
-}
-val_t NEW_syntax_base___MMReadImplementationMethod___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_MMReadImplementationMethod();
-  syntax_base___MMReadImplementationMethod___init(self, p0, p1, p2, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute IHasClos::_result */
+/* 3: Attribute IHasClos::_location */
+/* 4: Attribute IHasClos::_closure_decl */
+void INIT_ATTRIBUTES__IHasClos(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IHasClos;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:96 */
+  ATTR_icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_base.nit:99 */
+  ATTR_icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMWriteImplementationMethod[71] = {
-  {(bigint) 3623 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMWriteImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMWriteImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2583 /* 3: MMWriteImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3167 /* 4: MMWriteImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3295 /* 5: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
-  {(bigint) 3623 /* 6: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass typecheck marker */},
+val_t NEW_IHasClos(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_IHasClos;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IHasClos(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IHasClos;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_base___IHasClos____closure_decl(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closure_decl");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IHasClos_icode_base___IHasClos___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 458;
+  fra.me.meth = LOCATE_NEW_IHasClos_icode_base___IHasClos___init;
+  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;
+  fra.me.REG[1] = NEW_IHasClos();
+  /* ./icode//icode_base.nit:458 */
+  INIT_ATTRIBUTES__IHasClos(fra.me.REG[1]);
+  icode_base___IHasClos___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IHasClos(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ICodeBuilder[70] = {
+  {(bigint) 175 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICodeBuilder < Object: superclass typecheck marker */},
+  {(bigint) 175 /* 3: ICodeBuilder < ICodeBuilder: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMWriteImplementationMethod < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICodeBuilder < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78884,7 +234029,6 @@ const classtable_elt_t VFT_MMWriteImplementationMethod[71] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78892,75 +234036,149 @@ const classtable_elt_t VFT_MMWriteImplementationMethod[71] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMAttrImplementationMethod___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMWriteImplementationMethod < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling_methods___MMMethod___compile_call},
-  {(bigint) compiling_methods___MMMethod___compile_constructor_call},
-  {(bigint) compiling_methods___MMMethod___compile_super_call},
-  {(bigint) 2 /* 64: MMWriteImplementationMethod < MMMethod: superclass init_table position */},
-  {(bigint) compiling_methods___MMSrcMethod___decl_csignature},
-  {(bigint) compiling_methods___MMWriteImplementationMethod___do_compile_inside},
-  {(bigint) 3 /* 67: MMWriteImplementationMethod < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 68: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
-  {(bigint) 5 /* 69: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass init_table position */},
-  {(bigint) syntax_base___MMWriteImplementationMethod___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) icode_tools___ICodeBuilder___is_currently_inlining_routine},
+  {(bigint) icode_tools___ICodeBuilder___inline_routine},
+  {(bigint) 1 /* 47: ICodeBuilder < ICodeBuilder: superclass init_table position */},
+  {(bigint) icode_builder___ICodeBuilder___stmt},
+  {(bigint) icode_builder___ICodeBuilder___expr},
+  {(bigint) icode_builder___ICodeBuilder___add_assignment},
+  {(bigint) icode_builder___ICodeBuilder___add_null_reciever_check},
+  {(bigint) icode_builder___ICodeBuilder___add_type_cast},
+  {(bigint) icode_builder___ICodeBuilder___add_attr_check},
+  {(bigint) icode_builder___ICodeBuilder___add_attr_read},
+  {(bigint) icode_builder___ICodeBuilder___add_abort},
+  {(bigint) icode_builder___ICodeBuilder___add_return_value},
+  {(bigint) icode_builder___ICodeBuilder___add_call},
+  {(bigint) icode_builder___ICodeBuilder___add_escape},
+  {(bigint) icode_builder___ICodeBuilder___lit_null_reg},
+  {(bigint) icode_builder___ICodeBuilder___lit_true_reg},
+  {(bigint) icode_builder___ICodeBuilder___lit_false_reg},
+  {(bigint) icode_builder___ICodeBuilder___new_register},
+  {(bigint) icode_builder___ICodeBuilder___module},
+  {(bigint) icode_builder___ICodeBuilder___iroutine},
+  {(bigint) icode_builder___ICodeBuilder___seq},
+  {(bigint) icode_builder___ICodeBuilder___seq__eq},
+  {(bigint) icode_builder___ICodeBuilder___init},
+  {(bigint) icode_builder___ICodeBuilder___current_location},
+  {(bigint) icode_builder___ICodeBuilder___current_location__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMWriteImplementationMethod::_cname_cache */
-/* 2: Attribute MMWriteImplementationMethod::_signature */
-/* 3: Attribute MMWriteImplementationMethod::_signatures_cache */
-/* 4: Attribute MMWriteImplementationMethod::_name */
-/* 5: Attribute MMWriteImplementationMethod::_local_class */
-/* 6: Attribute MMWriteImplementationMethod::_global */
-/* 7: Attribute MMWriteImplementationMethod::_prhe */
-/* 8: Attribute MMWriteImplementationMethod::_need_super */
-/* 9: Attribute MMWriteImplementationMethod::_node */
-val_t NEW_MMWriteImplementationMethod(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_MMWriteImplementationMethod;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
-}
-val_t NEW_syntax_base___MMWriteImplementationMethod___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  val_t self = NEW_MMWriteImplementationMethod();
-  syntax_base___MMWriteImplementationMethod___init(self, p0, p1, p2, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute ICodeBuilder::_current_inlining */
+/* 3: Attribute ICodeBuilder::_module */
+/* 4: Attribute ICodeBuilder::_iroutine */
+/* 5: Attribute ICodeBuilder::_seq */
+/* 6: Attribute ICodeBuilder::_current_location */
+void INIT_ATTRIBUTES__ICodeBuilder(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICodeBuilder;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_builder.nit:222 */
+  ATTR_icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./icode//icode_tools.nit:95 */
+  ATTR_icode_tools___ICodeBuilder____current_inlining(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_MMMethSrcMethod[70] = {
-  {(bigint) 3291 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMMethSrcMethod < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMMethSrcMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2583 /* 3: MMMethSrcMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3167 /* 4: MMMethSrcMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3291 /* 5: MMMethSrcMethod < MMMethSrcMethod: superclass typecheck marker */},
+val_t NEW_ICodeBuilder(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_ICodeBuilder;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ICodeBuilder(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICodeBuilder;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_builder___ICodeBuilder____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_builder___ICodeBuilder____iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_iroutine");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_builder___ICodeBuilder____seq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_seq");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_tools___ICodeBuilder____current_inlining(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_current_inlining");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICodeBuilder_icode_builder___ICodeBuilder___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 214;
+  fra.me.meth = LOCATE_NEW_ICodeBuilder_icode_builder___ICodeBuilder___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_ICodeBuilder();
+  /* ./icode//icode_builder.nit:214 */
+  INIT_ATTRIBUTES__ICodeBuilder(fra.me.REG[2]);
+  icode_builder___ICodeBuilder___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_ICodeBuilder(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_ICodeVisitor[53] = {
+  {(bigint) 163 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICodeVisitor < Object: superclass typecheck marker */},
+  {(bigint) 163 /* 3: ICodeVisitor < ICodeVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78968,14 +234186,15 @@ const classtable_elt_t VFT_MMMethSrcMethod[70] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMMethSrcMethod < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICodeVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -78983,7 +234202,6 @@ const classtable_elt_t VFT_MMMethSrcMethod[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -78991,73 +234209,89 @@ const classtable_elt_t VFT_MMMethSrcMethod[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMMethSrcMethod___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMMethSrcMethod < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling_methods___MMMethod___compile_call},
-  {(bigint) compiling_methods___MMMethod___compile_constructor_call},
-  {(bigint) compiling_methods___MMMethod___compile_super_call},
-  {(bigint) 2 /* 64: MMMethSrcMethod < MMMethod: superclass init_table position */},
-  {(bigint) compiling_methods___MMSrcMethod___decl_csignature},
-  {(bigint) compiling_methods___MMMethSrcMethod___do_compile_inside},
-  {(bigint) 3 /* 67: MMMethSrcMethod < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 68: MMMethSrcMethod < MMMethSrcMethod: superclass init_table position */},
-  {(bigint) syntax_base___MMMethSrcMethod___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ICodeVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) icode_tools___ICodeVisitor___visit_iregister_read},
+  {(bigint) icode_tools___ICodeVisitor___visit_iregister_write},
+  {(bigint) icode_tools___ICodeVisitor___current_icode},
+  {(bigint) icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) icode_tools___ICodeVisitor___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMMethSrcMethod::_cname_cache */
-/* 2: Attribute MMMethSrcMethod::_signature */
-/* 3: Attribute MMMethSrcMethod::_signatures_cache */
-/* 4: Attribute MMMethSrcMethod::_name */
-/* 5: Attribute MMMethSrcMethod::_local_class */
-/* 6: Attribute MMMethSrcMethod::_global */
-/* 7: Attribute MMMethSrcMethod::_prhe */
-/* 8: Attribute MMMethSrcMethod::_need_super */
-/* 9: Attribute MMMethSrcMethod::_node */
-val_t NEW_MMMethSrcMethod(void) {
-  val_t variable0;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_MMMethSrcMethod;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute ICodeVisitor::_current_icode */
+void INIT_ATTRIBUTES__ICodeVisitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICodeVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_tools.nit:28 */
+  ATTR_icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_syntax_base___MMMethSrcMethod___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_MMMethSrcMethod();
-  syntax_base___MMMethSrcMethod___init(self, p0, p1, p2, init_table);
-  return self;
-}
-const classtable_elt_t VFT_MMSrcTypeProperty[66] = {
-  {(bigint) 3163 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSrcTypeProperty < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMSrcTypeProperty < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2551 /* 3: MMSrcTypeProperty < MMTypeProperty: superclass typecheck marker */},
-  {(bigint) 3163 /* 4: MMSrcTypeProperty < MMSrcTypeProperty: superclass typecheck marker */},
+val_t NEW_ICodeVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_ICodeVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ICodeVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICodeVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICodeVisitor_icode_tools___ICodeVisitor___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ICodeVisitor_icode_tools___ICodeVisitor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ICodeVisitor();
+  INIT_ATTRIBUTES__ICodeVisitor(fra.me.REG[0]);
+  icode_tools___ICodeVisitor___init(fra.me.REG[0], init_table);
+  CHECKNEW_ICodeVisitor(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ICodeDupContext[50] = {
+  {(bigint) 167 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICodeDupContext < Object: superclass typecheck marker */},
+  {(bigint) 167 /* 3: ICodeDupContext < ICodeDupContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79066,14 +234300,14 @@ const classtable_elt_t VFT_MMSrcTypeProperty[66] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSrcTypeProperty < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICodeDupContext < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79081,7 +234315,6 @@ const classtable_elt_t VFT_MMSrcTypeProperty[66] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79089,71 +234322,129 @@ const classtable_elt_t VFT_MMSrcTypeProperty[66] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
-  {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
-  {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax_base___MMSrcTypeProperty___node},
-  {(bigint) inheritance___MMLocalProperty___inherit_global},
-  {(bigint) static_type___MMLocalProperty___signature},
-  {(bigint) static_type___MMLocalProperty___signature__eq},
-  {(bigint) static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 49: MMSrcTypeProperty < MMLocalProperty: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMLocalProperty___name},
-  {(bigint) abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) abstractmetamodel___MMLocalProperty___global},
-  {(bigint) abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) abstractmetamodel___MMLocalProperty___module},
-  {(bigint) abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) abstractmetamodel___MMLocalProperty___init},
-  {(bigint) 2 /* 61: MMSrcTypeProperty < MMTypeProperty: superclass init_table position */},
-  {(bigint) virtualtype___MMTypeProperty___stype_for},
-  {(bigint) virtualtype___MMTypeProperty___real_stype_for},
-  {(bigint) 3 /* 64: MMSrcTypeProperty < MMSrcTypeProperty: superclass init_table position */},
-  {(bigint) syntax_base___MMSrcTypeProperty___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ICodeDupContext < ICodeDupContext: superclass init_table position */},
+  {(bigint) icode_tools___ICodeDupContext___dup_ireg},
+  {(bigint) icode_tools___ICodeDupContext___dup_iregs},
+  {(bigint) icode_tools___ICodeDupContext___dup_mark},
+  {(bigint) icode_tools___ICodeDupContext___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSrcTypeProperty::_cname_cache */
-/* 2: Attribute MMSrcTypeProperty::_signature */
-/* 3: Attribute MMSrcTypeProperty::_signatures_cache */
-/* 4: Attribute MMSrcTypeProperty::_name */
-/* 5: Attribute MMSrcTypeProperty::_local_class */
-/* 6: Attribute MMSrcTypeProperty::_global */
-/* 7: Attribute MMSrcTypeProperty::_prhe */
-/* 8: Attribute MMSrcTypeProperty::_need_super */
-/* 9: Attribute MMSrcTypeProperty::_stypes_cache */
-/* 10: Attribute MMSrcTypeProperty::_node */
-val_t NEW_MMSrcTypeProperty(void) {
-  val_t variable0;
-  val_t variable1;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_MMSrcTypeProperty;
-  ATTR_abstractmetamodel___MMLocalProperty____need_super(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_static_type___MMLocalProperty____signatures_cache(obj) = variable0;
-  variable1 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_virtualtype___MMTypeProperty____stypes_cache(obj) = variable1;
-  return OBJ2VAL(obj);
-}
-val_t NEW_syntax_base___MMSrcTypeProperty___init(val_t p0, val_t p1, val_t p2) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_MMSrcTypeProperty();
-  syntax_base___MMSrcTypeProperty___init(self, p0, p1, p2, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute ICodeDupContext::_registers */
+/* 3: Attribute ICodeDupContext::_marks */
+/* 4: Attribute ICodeDupContext::_closures */
+/* 5: Attribute ICodeDupContext::_icb */
+void INIT_ATTRIBUTES__ICodeDupContext(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICodeDupContext;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./icode//icode_tools.nit:187 */
+  ATTR_icode_tools___ICodeDupContext____registers(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./icode//icode_tools.nit:204 */
+  ATTR_icode_tools___ICodeDupContext____marks(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ArrayMap_array___ArrayMap___init();
+  /* ./icode//icode_tools.nit:208 */
+  ATTR_icode_tools___ICodeDupContext____closures(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_Variable[46] = {
-  {(bigint) 15 /* 0: Identity */},
-  {(bigint) 3 /* 1: Variable < Object: superclass typecheck marker */},
-  {(bigint) 15 /* 2: Variable < Variable: superclass typecheck marker */},
+val_t NEW_ICodeDupContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_ICodeDupContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ICodeDupContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICodeDupContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_tools___ICodeDupContext____registers(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_registers");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_tools___ICodeDupContext____marks(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_marks");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_tools___ICodeDupContext____closures(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closures");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_icb");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICodeDupContext_icode_tools___ICodeDupContext___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 214;
+  fra.me.meth = LOCATE_NEW_ICodeDupContext_icode_tools___ICodeDupContext___init;
+  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;
+  fra.me.REG[1] = NEW_ICodeDupContext();
+  /* ./icode//icode_tools.nit:214 */
+  INIT_ATTRIBUTES__ICodeDupContext(fra.me.REG[1]);
+  icode_tools___ICodeDupContext___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ICodeDupContext(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_EscapableContext[52] = {
+  {(bigint) 195 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: EscapableContext < Object: superclass typecheck marker */},
+  {(bigint) 195 /* 3: EscapableContext < EscapableContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79164,14 +234455,12 @@ const classtable_elt_t VFT_Variable[46] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) syntax_base___Variable___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: Variable < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: EscapableContext < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79179,7 +234468,6 @@ const classtable_elt_t VFT_Variable[46] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79187,38 +234475,120 @@ const classtable_elt_t VFT_Variable[46] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: Variable < Variable: superclass init_table position */},
-  {(bigint) syntax_base___Variable___name},
-  {(bigint) syntax_base___Variable___decl},
-  {(bigint) syntax_base___Variable___stype},
-  {(bigint) syntax_base___Variable___stype__eq},
-  {(bigint) syntax_base___Variable___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: EscapableContext < EscapableContext: superclass init_table position */},
+  {(bigint) escape___EscapableContext___push},
+  {(bigint) escape___EscapableContext___head},
+  {(bigint) escape___EscapableContext___get_by_label},
+  {(bigint) escape___EscapableContext___pop},
+  {(bigint) escape___EscapableContext___visitor},
+  {(bigint) escape___EscapableContext___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute Variable::_name */
-/* 2: Attribute Variable::_decl */
-/* 3: Attribute Variable::_stype */
-val_t NEW_Variable(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_Variable;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute EscapableContext::_stack */
+/* 3: Attribute EscapableContext::_labels */
+/* 4: Attribute EscapableContext::_visitor */
+void INIT_ATTRIBUTES__EscapableContext(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__EscapableContext;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./syntax//escape.nit:24 */
+  ATTR_escape___EscapableContext____stack(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./syntax//escape.nit:27 */
+  ATTR_escape___EscapableContext____labels(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_syntax_base___Variable___init(val_t p0, val_t p1) {
+val_t NEW_EscapableContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_EscapableContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_EscapableContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_EscapableContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_escape___EscapableContext____stack(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stack");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_escape___EscapableContext____labels(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_labels");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_escape___EscapableContext____visitor(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_visitor");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_EscapableContext_escape___EscapableContext___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[2] = {0, 0};
-  val_t self = NEW_Variable();
-  syntax_base___Variable___init(self, p0, p1, init_table);
-  return self;
-}
-const classtable_elt_t VFT_AbsSyntaxVisitor[64] = {
-  {(bigint) 2679 /* 0: Identity */},
-  {(bigint) 3 /* 1: AbsSyntaxVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: AbsSyntaxVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 85;
+  fra.me.meth = LOCATE_NEW_EscapableContext_escape___EscapableContext___init;
+  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;
+  fra.me.REG[1] = NEW_EscapableContext();
+  /* ./syntax//escape.nit:85 */
+  INIT_ATTRIBUTES__EscapableContext(fra.me.REG[1]);
+  escape___EscapableContext___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_EscapableContext(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_EscapableBlock[60] = {
+  {(bigint) 199 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: EscapableBlock < Object: superclass typecheck marker */},
+  {(bigint) 199 /* 3: EscapableBlock < EscapableBlock: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79228,14 +234598,13 @@ const classtable_elt_t VFT_AbsSyntaxVisitor[64] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AbsSyntaxVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: EscapableBlock < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79243,7 +234612,6 @@ const classtable_elt_t VFT_AbsSyntaxVisitor[64] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79251,57 +234619,109 @@ const classtable_elt_t VFT_AbsSyntaxVisitor[64] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: AbsSyntaxVisitor < Visitor: superclass init_table position */},
-  {(bigint) parser_prod___Visitor___visit},
-  {(bigint) 2 /* 42: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass init_table position */},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
-  {(bigint) syntax_base___AbsSyntaxVisitor___error},
-  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
-  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
-  {(bigint) syntax_base___AbsSyntaxVisitor___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) icode_generation___EscapableBlock___break_seq},
+  {(bigint) icode_generation___EscapableBlock___break_seq__eq},
+  {(bigint) icode_generation___EscapableBlock___continue_seq},
+  {(bigint) icode_generation___EscapableBlock___continue_seq__eq},
+  {(bigint) icode_generation___EscapableBlock___break_value},
+  {(bigint) icode_generation___EscapableBlock___break_value__eq},
+  {(bigint) icode_generation___EscapableBlock___continue_value},
+  {(bigint) icode_generation___EscapableBlock___continue_value__eq},
+  {(bigint) 1 /* 53: EscapableBlock < EscapableBlock: superclass init_table position */},
+  {(bigint) escape___EscapableBlock___node},
+  {(bigint) escape___EscapableBlock___lab},
+  {(bigint) escape___EscapableBlock___is_break_block},
+  {(bigint) escape___EscapableBlock___break_list},
+  {(bigint) escape___EscapableBlock___continue_stype},
+  {(bigint) escape___EscapableBlock___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AbsSyntaxVisitor::_module */
-/* 2: Attribute AbsSyntaxVisitor::_local_class */
-/* 3: Attribute AbsSyntaxVisitor::_local_property */
-/* 4: Attribute AbsSyntaxVisitor::_tc */
-val_t NEW_AbsSyntaxVisitor(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_AbsSyntaxVisitor;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute EscapableBlock::_break_seq */
+/* 3: Attribute EscapableBlock::_continue_seq */
+/* 4: Attribute EscapableBlock::_break_value */
+/* 5: Attribute EscapableBlock::_continue_value */
+/* 6: Attribute EscapableBlock::_node */
+/* 7: Attribute EscapableBlock::_lab */
+void INIT_ATTRIBUTES__EscapableBlock(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__EscapableBlock;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_AbsSyntaxVisitor();
-  syntax_base___AbsSyntaxVisitor___init(self, p0, p1, init_table);
-  return self;
+val_t NEW_EscapableBlock(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_EscapableBlock;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_EscapableBlock(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_EscapableBlock;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_escape___EscapableBlock____node(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_node");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_EscapableBlock_escape___EscapableBlock___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 116;
+  fra.me.meth = LOCATE_NEW_EscapableBlock_escape___EscapableBlock___init;
+  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;
+  fra.me.REG[1] = NEW_EscapableBlock();
+  /* ./syntax//escape.nit:116 */
+  INIT_ATTRIBUTES__EscapableBlock(fra.me.REG[1]);
+  escape___EscapableBlock___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_EscapableBlock(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_CSHSorter[48] = {
-  {(bigint) 2667 /* 0: Identity */},
-  {(bigint) 3 /* 1: CSHSorter < Object: superclass typecheck marker */},
-  {(bigint) 175 /* 2: CSHSorter < AbstractSorter: superclass typecheck marker */},
-  {(bigint) 2667 /* 3: CSHSorter < CSHSorter: superclass typecheck marker */},
+const classtable_elt_t VFT_BreakOnlyEscapableBlock[62] = {
+  {(bigint) 5283 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: BreakOnlyEscapableBlock < Object: superclass typecheck marker */},
+  {(bigint) 199 /* 3: BreakOnlyEscapableBlock < EscapableBlock: superclass typecheck marker */},
+  {(bigint) 5283 /* 4: BreakOnlyEscapableBlock < BreakOnlyEscapableBlock: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79311,14 +234731,12 @@ const classtable_elt_t VFT_CSHSorter[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: CSHSorter < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: BreakOnlyEscapableBlock < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79326,7 +234744,6 @@ const classtable_elt_t VFT_CSHSorter[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79334,37 +234751,111 @@ const classtable_elt_t VFT_CSHSorter[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: CSHSorter < AbstractSorter: superclass init_table position */},
-  {(bigint) mmbuilder___CSHSorter___compare},
-  {(bigint) sorter___AbstractSorter___sort},
-  {(bigint) sorter___AbstractSorter___sub_sort},
-  {(bigint) sorter___AbstractSorter___quick_sort},
-  {(bigint) sorter___AbstractSorter___bubble_sort},
-  {(bigint) 2 /* 46: CSHSorter < CSHSorter: superclass init_table position */},
-  {(bigint) mmbuilder___CSHSorter___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) icode_generation___EscapableBlock___break_seq},
+  {(bigint) icode_generation___EscapableBlock___break_seq__eq},
+  {(bigint) icode_generation___EscapableBlock___continue_seq},
+  {(bigint) icode_generation___EscapableBlock___continue_seq__eq},
+  {(bigint) icode_generation___EscapableBlock___break_value},
+  {(bigint) icode_generation___EscapableBlock___break_value__eq},
+  {(bigint) icode_generation___EscapableBlock___continue_value},
+  {(bigint) icode_generation___EscapableBlock___continue_value__eq},
+  {(bigint) 1 /* 53: BreakOnlyEscapableBlock < EscapableBlock: superclass init_table position */},
+  {(bigint) escape___EscapableBlock___node},
+  {(bigint) escape___EscapableBlock___lab},
+  {(bigint) escape___BreakOnlyEscapableBlock___is_break_block},
+  {(bigint) escape___EscapableBlock___break_list},
+  {(bigint) escape___EscapableBlock___continue_stype},
+  {(bigint) escape___EscapableBlock___init},
+  {(bigint) 2 /* 60: BreakOnlyEscapableBlock < BreakOnlyEscapableBlock: superclass init_table position */},
+  {(bigint) escape___BreakOnlyEscapableBlock___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_CSHSorter(void) {
+/* 1: Object_id */
+/* 2: Attribute BreakOnlyEscapableBlock::_break_seq */
+/* 3: Attribute BreakOnlyEscapableBlock::_continue_seq */
+/* 4: Attribute BreakOnlyEscapableBlock::_break_value */
+/* 5: Attribute BreakOnlyEscapableBlock::_continue_value */
+/* 6: Attribute BreakOnlyEscapableBlock::_node */
+/* 7: Attribute BreakOnlyEscapableBlock::_lab */
+void INIT_ATTRIBUTES__BreakOnlyEscapableBlock(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__BreakOnlyEscapableBlock;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_BreakOnlyEscapableBlock(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_CSHSorter;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_BreakOnlyEscapableBlock;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_mmbuilder___CSHSorter___init() {
+void CHECKNEW_BreakOnlyEscapableBlock(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_BreakOnlyEscapableBlock;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_escape___EscapableBlock____node(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_node");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_BreakOnlyEscapableBlock_escape___BreakOnlyEscapableBlock___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_CSHSorter();
-  mmbuilder___CSHSorter___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 127;
+  fra.me.meth = LOCATE_NEW_BreakOnlyEscapableBlock_escape___BreakOnlyEscapableBlock___init;
+  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;
+  fra.me.REG[1] = NEW_BreakOnlyEscapableBlock();
+  /* ./syntax//escape.nit:127 */
+  INIT_ATTRIBUTES__BreakOnlyEscapableBlock(fra.me.REG[1]);
+  escape___BreakOnlyEscapableBlock___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_BreakOnlyEscapableBlock(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_MMSrcAncestor[52] = {
-  {(bigint) 2571 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSrcAncestor < Object: superclass typecheck marker */},
-  {(bigint) 123 /* 2: MMSrcAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2571 /* 3: MMSrcAncestor < MMSrcAncestor: superclass typecheck marker */},
+const classtable_elt_t VFT_EscapableClosure[63] = {
+  {(bigint) 5243 /* 0: Identity */},
+  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: EscapableClosure < Object: superclass typecheck marker */},
+  {(bigint) 199 /* 3: EscapableClosure < EscapableBlock: superclass typecheck marker */},
+  {(bigint) 5243 /* 4: EscapableClosure < EscapableClosure: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79374,14 +234865,12 @@ const classtable_elt_t VFT_MMSrcAncestor[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) static_type___MMAncestor___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSrcAncestor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: EscapableClosure < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79389,7 +234878,6 @@ const classtable_elt_t VFT_MMSrcAncestor[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79397,47 +234885,128 @@ const classtable_elt_t VFT_MMSrcAncestor[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) inheritance___MMAncestor___add_in},
-  {(bigint) 1 /* 41: MMSrcAncestor < MMAncestor: superclass init_table position */},
-  {(bigint) static_type___MMAncestor___stype},
-  {(bigint) static_type___MMAncestor___stype__eq},
-  {(bigint) static_type___MMAncestor___inheriter},
-  {(bigint) static_type___MMAncestor___inheriter__eq},
-  {(bigint) static_type___MMAncestor___is_reffinement},
-  {(bigint) static_type___MMAncestor___is_specialisation},
-  {(bigint) mmbuilder___MMSrcAncestor___local_class},
-  {(bigint) 2 /* 49: MMSrcAncestor < MMSrcAncestor: superclass init_table position */},
-  {(bigint) mmbuilder___MMSrcAncestor___node},
-  {(bigint) mmbuilder___MMSrcAncestor___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) icode_generation___EscapableBlock___break_seq},
+  {(bigint) icode_generation___EscapableBlock___break_seq__eq},
+  {(bigint) icode_generation___EscapableBlock___continue_seq},
+  {(bigint) icode_generation___EscapableBlock___continue_seq__eq},
+  {(bigint) icode_generation___EscapableBlock___break_value},
+  {(bigint) icode_generation___EscapableBlock___break_value__eq},
+  {(bigint) icode_generation___EscapableBlock___continue_value},
+  {(bigint) icode_generation___EscapableBlock___continue_value__eq},
+  {(bigint) 1 /* 53: EscapableClosure < EscapableBlock: superclass init_table position */},
+  {(bigint) escape___EscapableBlock___node},
+  {(bigint) escape___EscapableBlock___lab},
+  {(bigint) escape___EscapableClosure___is_break_block},
+  {(bigint) escape___EscapableClosure___break_list},
+  {(bigint) escape___EscapableClosure___continue_stype},
+  {(bigint) escape___EscapableBlock___init},
+  {(bigint) 2 /* 60: EscapableClosure < EscapableClosure: superclass init_table position */},
+  {(bigint) escape___EscapableClosure___closure},
+  {(bigint) escape___EscapableClosure___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSrcAncestor::_stype */
-/* 2: Attribute MMSrcAncestor::_inheriter */
-/* 3: Attribute MMSrcAncestor::_node */
-/* 4: Attribute MMSrcAncestor::_local_class */
-val_t NEW_MMSrcAncestor(void) {
+/* 1: Object_id */
+/* 2: Attribute EscapableClosure::_break_seq */
+/* 3: Attribute EscapableClosure::_continue_seq */
+/* 4: Attribute EscapableClosure::_break_value */
+/* 5: Attribute EscapableClosure::_continue_value */
+/* 6: Attribute EscapableClosure::_node */
+/* 7: Attribute EscapableClosure::_lab */
+/* 8: Attribute EscapableClosure::_closure */
+/* 9: Attribute EscapableClosure::_break_list */
+void INIT_ATTRIBUTES__EscapableClosure(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__EscapableClosure;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_EscapableClosure(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_MMSrcAncestor;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_EscapableClosure;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1) {
+void CHECKNEW_EscapableClosure(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_EscapableClosure;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_escape___EscapableBlock____node(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_node");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_escape___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closure");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_EscapableClosure_escape___EscapableClosure___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MMSrcAncestor();
-  mmbuilder___MMSrcAncestor___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 142;
+  fra.me.meth = LOCATE_NEW_EscapableClosure_escape___EscapableClosure___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_EscapableClosure();
+  /* ./syntax//escape.nit:142 */
+  INIT_ATTRIBUTES__EscapableClosure(fra.me.REG[3]);
+  escape___EscapableClosure___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_EscapableClosure(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ClassBuilderVisitor[70] = {
-  {(bigint) 3227 /* 0: Identity */},
-  {(bigint) 3 /* 1: ClassBuilderVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: ClassBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: ClassBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3227 /* 4: ClassBuilderVisitor < ClassBuilderVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_AEscapeExpr[85] = {
+  {(bigint) 6295 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AEscapeExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: AEscapeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: AEscapeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 5955 /* 5: AEscapeExpr < ALabelable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 6295 /* 7: AEscapeExpr < AEscapeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79445,14 +235014,11 @@ const classtable_elt_t VFT_ClassBuilderVisitor[70] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ClassBuilderVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AEscapeExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79460,7 +235026,6 @@ const classtable_elt_t VFT_ClassBuilderVisitor[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79468,67 +235033,133 @@ const classtable_elt_t VFT_ClassBuilderVisitor[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ClassBuilderVisitor < Visitor: superclass init_table position */},
-  {(bigint) mmbuilder___ClassBuilderVisitor___visit},
-  {(bigint) 2 /* 42: ClassBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
-  {(bigint) syntax_base___AbsSyntaxVisitor___error},
-  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
-  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
-  {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 64: ClassBuilderVisitor < ClassBuilderVisitor: superclass init_table position */},
-  {(bigint) mmbuilder___ClassBuilderVisitor___local_class_arity},
-  {(bigint) mmbuilder___ClassBuilderVisitor___local_class_arity__eq},
-  {(bigint) mmbuilder___ClassBuilderVisitor___formals},
-  {(bigint) mmbuilder___ClassBuilderVisitor___formals__eq},
-  {(bigint) mmbuilder___ClassBuilderVisitor___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___ANode___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___ANode___accept_property_builder},
+  {(bigint) mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: AEscapeExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___ANode___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___ANode___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: AEscapeExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 3 /* 68: AEscapeExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser_nodes___ALabelable___n_label},
+  {(bigint) parser_nodes___ALabelable___n_label__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 81: AEscapeExpr < AEscapeExpr: superclass init_table position */},
+  {(bigint) escape___AEscapeExpr___escapable},
+  {(bigint) escape___AEscapeExpr___kwname},
+  {(bigint) escape___AEscapeExpr___compute_escapable_block},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ClassBuilderVisitor::_module */
-/* 2: Attribute ClassBuilderVisitor::_local_class */
-/* 3: Attribute ClassBuilderVisitor::_local_property */
-/* 4: Attribute ClassBuilderVisitor::_tc */
-/* 5: Attribute ClassBuilderVisitor::_local_class_arity */
-/* 6: Attribute ClassBuilderVisitor::_formals */
-val_t NEW_ClassBuilderVisitor(void) {
+/* 1: Object_id */
+/* 2: Attribute AEscapeExpr::_parent */
+/* 3: Attribute AEscapeExpr::_location */
+/* 4: Attribute AEscapeExpr::_first_location */
+/* 5: Attribute AEscapeExpr::_last_location */
+/* 6: Attribute AEscapeExpr::_n_label */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* Instance Hole :( */
+/* 11: Attribute AEscapeExpr::_escapable */
+void INIT_ATTRIBUTES__AEscapeExpr(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AEscapeExpr;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_nodes.nit:586 */
+  ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEscapeExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_ClassBuilderVisitor;
-  ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_ClassBuilderVisitor();
-  mmbuilder___ClassBuilderVisitor___init(self, p0, p1, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[66] = {
-  {(bigint) 3223 /* 0: Identity */},
-  {(bigint) 3 /* 1: ClassSpecializationBuilderVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: ClassSpecializationBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3223 /* 4: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_AEscapeExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AEscapeExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AEscapeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AEscapeExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AEscapeExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_AEscapeExpr();
+  INIT_ATTRIBUTES__AEscapeExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AEscapeExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_VariableContext[64] = {
+  {(bigint) 11 /* 0: Identity */},
+  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: VariableContext < Object: superclass typecheck marker */},
+  {(bigint) 11 /* 3: VariableContext < VariableContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79537,14 +235168,13 @@ const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[66] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ClassSpecializationBuilderVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: VariableContext < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79552,7 +235182,6 @@ const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[66] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79560,60 +235189,182 @@ const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[66] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) control_flow___VariableContext___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ClassSpecializationBuilderVisitor < Visitor: superclass init_table position */},
-  {(bigint) mmbuilder___ClassSpecializationBuilderVisitor___visit},
-  {(bigint) 2 /* 42: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
-  {(bigint) syntax_base___AbsSyntaxVisitor___error},
-  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
-  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
-  {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 64: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass init_table position */},
-  {(bigint) mmbuilder___ClassSpecializationBuilderVisitor___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: VariableContext < VariableContext: superclass init_table position */},
+  {(bigint) control_flow___VariableContext_____bra},
+  {(bigint) control_flow___VariableContext___add},
+  {(bigint) control_flow___VariableContext___mark_is_set},
+  {(bigint) control_flow___VariableContext___check_is_set},
+  {(bigint) control_flow___VariableContext___stype},
+  {(bigint) control_flow___VariableContext___stype__eq},
+  {(bigint) control_flow___VariableContext___sub},
+  {(bigint) control_flow___VariableContext___sub_with},
+  {(bigint) control_flow___VariableContext___node},
+  {(bigint) control_flow___VariableContext___init},
+  {(bigint) control_flow___VariableContext___unreash},
+  {(bigint) control_flow___VariableContext___unreash__eq},
+  {(bigint) control_flow___VariableContext___already_unreash},
+  {(bigint) control_flow___VariableContext___already_unreash__eq},
+  {(bigint) control_flow___VariableContext___set_variables},
+  {(bigint) control_flow___VariableContext___is_set},
+  {(bigint) control_flow___VariableContext___merge},
+  {(bigint) control_flow___VariableContext___merge2},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ClassSpecializationBuilderVisitor::_module */
-/* 2: Attribute ClassSpecializationBuilderVisitor::_local_class */
-/* 3: Attribute ClassSpecializationBuilderVisitor::_local_property */
-/* 4: Attribute ClassSpecializationBuilderVisitor::_tc */
-val_t NEW_ClassSpecializationBuilderVisitor(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_ClassSpecializationBuilderVisitor;
-  return OBJ2VAL(obj);
-}
-val_t NEW_mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_ClassSpecializationBuilderVisitor();
-  mmbuilder___ClassSpecializationBuilderVisitor___init(self, p0, p1, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute VariableContext::_dico */
+/* 3: Attribute VariableContext::_all_variables */
+/* 4: Attribute VariableContext::_stypes */
+/* 5: Attribute VariableContext::_visitor */
+/* 6: Attribute VariableContext::_node */
+/* 7: Attribute VariableContext::_unreash */
+/* 8: Attribute VariableContext::_already_unreash */
+/* 9: Attribute VariableContext::_set_variables */
+void INIT_ATTRIBUTES__VariableContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__VariableContext;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./syntax//control_flow.nit:85 */
+  ATTR_control_flow___VariableContext____stypes(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//control_flow.nit:115 */
+  ATTR_control_flow___VariableContext____unreash(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//control_flow.nit:118 */
+  ATTR_control_flow___VariableContext____already_unreash(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./syntax//control_flow.nit:122 */
+  ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_ClassAncestorBuilder[66] = {
-  {(bigint) 3231 /* 0: Identity */},
-  {(bigint) 3 /* 1: ClassAncestorBuilder < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: ClassAncestorBuilder < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: ClassAncestorBuilder < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3231 /* 4: ClassAncestorBuilder < ClassAncestorBuilder: superclass typecheck marker */},
+val_t NEW_VariableContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_VariableContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_VariableContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_VariableContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____dico(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_dico");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_all_variables");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____stypes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stypes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____visitor(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_visitor");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____node(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_node");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____unreash(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_unreash");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____already_unreash(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_already_unreash");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_set_variables");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_VariableContext_control_flow___VariableContext___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 108;
+  fra.me.meth = LOCATE_NEW_VariableContext_control_flow___VariableContext___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_VariableContext();
+  /* ./syntax//control_flow.nit:108 */
+  INIT_ATTRIBUTES__VariableContext(fra.me.REG[2]);
+  control_flow___VariableContext___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_VariableContext(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_RootVariableContext[66] = {
+  {(bigint) 271 /* 0: Identity */},
+  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: RootVariableContext < Object: superclass typecheck marker */},
+  {(bigint) 11 /* 3: RootVariableContext < VariableContext: superclass typecheck marker */},
+  {(bigint) 271 /* 4: RootVariableContext < RootVariableContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79622,14 +235373,13 @@ const classtable_elt_t VFT_ClassAncestorBuilder[66] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ClassAncestorBuilder < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: RootVariableContext < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79637,7 +235387,6 @@ const classtable_elt_t VFT_ClassAncestorBuilder[66] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79645,60 +235394,184 @@ const classtable_elt_t VFT_ClassAncestorBuilder[66] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) control_flow___VariableContext___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ClassAncestorBuilder < Visitor: superclass init_table position */},
-  {(bigint) mmbuilder___ClassAncestorBuilder___visit},
-  {(bigint) 2 /* 42: ClassAncestorBuilder < AbsSyntaxVisitor: superclass init_table position */},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
-  {(bigint) syntax_base___AbsSyntaxVisitor___error},
-  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
-  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
-  {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 64: ClassAncestorBuilder < ClassAncestorBuilder: superclass init_table position */},
-  {(bigint) mmbuilder___ClassAncestorBuilder___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: RootVariableContext < VariableContext: superclass init_table position */},
+  {(bigint) control_flow___VariableContext_____bra},
+  {(bigint) control_flow___VariableContext___add},
+  {(bigint) control_flow___VariableContext___mark_is_set},
+  {(bigint) control_flow___VariableContext___check_is_set},
+  {(bigint) control_flow___VariableContext___stype},
+  {(bigint) control_flow___VariableContext___stype__eq},
+  {(bigint) control_flow___VariableContext___sub},
+  {(bigint) control_flow___VariableContext___sub_with},
+  {(bigint) control_flow___VariableContext___node},
+  {(bigint) control_flow___VariableContext___init},
+  {(bigint) control_flow___VariableContext___unreash},
+  {(bigint) control_flow___VariableContext___unreash__eq},
+  {(bigint) control_flow___VariableContext___already_unreash},
+  {(bigint) control_flow___VariableContext___already_unreash__eq},
+  {(bigint) control_flow___VariableContext___set_variables},
+  {(bigint) control_flow___VariableContext___is_set},
+  {(bigint) control_flow___VariableContext___merge},
+  {(bigint) control_flow___VariableContext___merge2},
+  {(bigint) 2 /* 64: RootVariableContext < RootVariableContext: superclass init_table position */},
+  {(bigint) control_flow___RootVariableContext___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ClassAncestorBuilder::_module */
-/* 2: Attribute ClassAncestorBuilder::_local_class */
-/* 3: Attribute ClassAncestorBuilder::_local_property */
-/* 4: Attribute ClassAncestorBuilder::_tc */
-val_t NEW_ClassAncestorBuilder(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_ClassAncestorBuilder;
-  return OBJ2VAL(obj);
-}
-val_t NEW_mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_ClassAncestorBuilder();
-  mmbuilder___ClassAncestorBuilder___init(self, p0, p1, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute RootVariableContext::_dico */
+/* 3: Attribute RootVariableContext::_all_variables */
+/* 4: Attribute RootVariableContext::_stypes */
+/* 5: Attribute RootVariableContext::_visitor */
+/* 6: Attribute RootVariableContext::_node */
+/* 7: Attribute RootVariableContext::_unreash */
+/* 8: Attribute RootVariableContext::_already_unreash */
+/* 9: Attribute RootVariableContext::_set_variables */
+void INIT_ATTRIBUTES__RootVariableContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__RootVariableContext;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./syntax//control_flow.nit:85 */
+  ATTR_control_flow___VariableContext____stypes(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//control_flow.nit:115 */
+  ATTR_control_flow___VariableContext____unreash(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//control_flow.nit:118 */
+  ATTR_control_flow___VariableContext____already_unreash(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./syntax//control_flow.nit:122 */
+  ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_ClassVerifierVisitor[66] = {
-  {(bigint) 3219 /* 0: Identity */},
-  {(bigint) 3 /* 1: ClassVerifierVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: ClassVerifierVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: ClassVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3219 /* 4: ClassVerifierVisitor < ClassVerifierVisitor: superclass typecheck marker */},
+val_t NEW_RootVariableContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_RootVariableContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_RootVariableContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_RootVariableContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____dico(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_dico");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_all_variables");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____stypes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stypes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____visitor(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_visitor");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____node(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_node");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____unreash(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_unreash");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____already_unreash(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_already_unreash");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_set_variables");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_RootVariableContext_control_flow___RootVariableContext___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 194;
+  fra.me.meth = LOCATE_NEW_RootVariableContext_control_flow___RootVariableContext___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_RootVariableContext();
+  /* ./syntax//control_flow.nit:194 */
+  INIT_ATTRIBUTES__RootVariableContext(fra.me.REG[2]);
+  control_flow___RootVariableContext___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_RootVariableContext(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_SubVariableContext[67] = {
+  {(bigint) 263 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: SubVariableContext < Object: superclass typecheck marker */},
+  {(bigint) 11 /* 3: SubVariableContext < VariableContext: superclass typecheck marker */},
+  {(bigint) 263 /* 4: SubVariableContext < SubVariableContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79707,14 +235580,13 @@ const classtable_elt_t VFT_ClassVerifierVisitor[66] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ClassVerifierVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: SubVariableContext < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79722,7 +235594,6 @@ const classtable_elt_t VFT_ClassVerifierVisitor[66] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79730,60 +235601,194 @@ const classtable_elt_t VFT_ClassVerifierVisitor[66] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) control_flow___VariableContext___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ClassVerifierVisitor < Visitor: superclass init_table position */},
-  {(bigint) mmbuilder___ClassVerifierVisitor___visit},
-  {(bigint) 2 /* 42: ClassVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
-  {(bigint) syntax_base___AbsSyntaxVisitor___error},
-  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
-  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
-  {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 64: ClassVerifierVisitor < ClassVerifierVisitor: superclass init_table position */},
-  {(bigint) mmbuilder___ClassVerifierVisitor___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: SubVariableContext < VariableContext: superclass init_table position */},
+  {(bigint) control_flow___SubVariableContext_____bra},
+  {(bigint) control_flow___VariableContext___add},
+  {(bigint) control_flow___VariableContext___mark_is_set},
+  {(bigint) control_flow___VariableContext___check_is_set},
+  {(bigint) control_flow___SubVariableContext___stype},
+  {(bigint) control_flow___VariableContext___stype__eq},
+  {(bigint) control_flow___VariableContext___sub},
+  {(bigint) control_flow___VariableContext___sub_with},
+  {(bigint) control_flow___VariableContext___node},
+  {(bigint) control_flow___VariableContext___init},
+  {(bigint) control_flow___VariableContext___unreash},
+  {(bigint) control_flow___VariableContext___unreash__eq},
+  {(bigint) control_flow___VariableContext___already_unreash},
+  {(bigint) control_flow___VariableContext___already_unreash__eq},
+  {(bigint) control_flow___VariableContext___set_variables},
+  {(bigint) control_flow___SubVariableContext___is_set},
+  {(bigint) control_flow___VariableContext___merge},
+  {(bigint) control_flow___VariableContext___merge2},
+  {(bigint) 2 /* 64: SubVariableContext < SubVariableContext: superclass init_table position */},
+  {(bigint) control_flow___SubVariableContext___prev},
+  {(bigint) control_flow___SubVariableContext___with_prev},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ClassVerifierVisitor::_module */
-/* 2: Attribute ClassVerifierVisitor::_local_class */
-/* 3: Attribute ClassVerifierVisitor::_local_property */
-/* 4: Attribute ClassVerifierVisitor::_tc */
-val_t NEW_ClassVerifierVisitor(void) {
+/* 1: Object_id */
+/* 2: Attribute SubVariableContext::_dico */
+/* 3: Attribute SubVariableContext::_all_variables */
+/* 4: Attribute SubVariableContext::_stypes */
+/* 5: Attribute SubVariableContext::_visitor */
+/* 6: Attribute SubVariableContext::_node */
+/* 7: Attribute SubVariableContext::_unreash */
+/* 8: Attribute SubVariableContext::_already_unreash */
+/* 9: Attribute SubVariableContext::_set_variables */
+/* 10: Attribute SubVariableContext::_prev */
+void INIT_ATTRIBUTES__SubVariableContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__SubVariableContext;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./syntax//control_flow.nit:85 */
+  ATTR_control_flow___VariableContext____stypes(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//control_flow.nit:115 */
+  ATTR_control_flow___VariableContext____unreash(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//control_flow.nit:118 */
+  ATTR_control_flow___VariableContext____already_unreash(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./syntax//control_flow.nit:122 */
+  ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_SubVariableContext(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_ClassVerifierVisitor;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_SubVariableContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_SubVariableContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_SubVariableContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____dico(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_dico");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____all_variables(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_all_variables");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____stypes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_stypes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____visitor(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_visitor");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____node(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_node");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____unreash(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_unreash");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____already_unreash(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_already_unreash");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___VariableContext____set_variables(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_set_variables");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_control_flow___SubVariableContext____prev(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_prev");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_ClassVerifierVisitor();
-  mmbuilder___ClassVerifierVisitor___init(self, p0, p1, init_table);
-  return self;
+val_t NEW_SubVariableContext_control_flow___SubVariableContext___with_prev(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 223;
+  fra.me.meth = LOCATE_NEW_SubVariableContext_control_flow___SubVariableContext___with_prev;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_SubVariableContext();
+  /* ./syntax//control_flow.nit:223 */
+  INIT_ATTRIBUTES__SubVariableContext(fra.me.REG[2]);
+  control_flow___SubVariableContext___with_prev(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_SubVariableContext(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PropertyBuilderVisitor[66] = {
-  {(bigint) 3043 /* 0: Identity */},
-  {(bigint) 3 /* 1: PropertyBuilderVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: PropertyBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3043 /* 4: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_TypingVisitor[101] = {
+  {(bigint) 5311 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TypingVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: TypingVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: TypingVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 5311 /* 5: TypingVisitor < TypingVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79792,14 +235797,12 @@ const classtable_elt_t VFT_PropertyBuilderVisitor[66] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PropertyBuilderVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TypingVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79807,7 +235810,6 @@ const classtable_elt_t VFT_PropertyBuilderVisitor[66] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79815,60 +235817,206 @@ const classtable_elt_t VFT_PropertyBuilderVisitor[66] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: PropertyBuilderVisitor < Visitor: superclass init_table position */},
-  {(bigint) mmbuilder___PropertyBuilderVisitor___visit},
-  {(bigint) 2 /* 42: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: TypingVisitor < Visitor: superclass init_table position */},
+  {(bigint) typing___TypingVisitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: TypingVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
   {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
   {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
   {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
   {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
   {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
   {(bigint) syntax_base___AbsSyntaxVisitor___tc},
   {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
   {(bigint) syntax_base___AbsSyntaxVisitor___warning},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 64: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass init_table position */},
-  {(bigint) mmbuilder___PropertyBuilderVisitor___init},
+  {(bigint) 3 /* 80: TypingVisitor < TypingVisitor: superclass init_table position */},
+  {(bigint) typing___TypingVisitor___variable_ctx},
+  {(bigint) typing___TypingVisitor___variable_ctx__eq},
+  {(bigint) typing___TypingVisitor___base_variable_ctx},
+  {(bigint) typing___TypingVisitor___base_variable_ctx__eq},
+  {(bigint) typing___TypingVisitor___escapable_ctx},
+  {(bigint) typing___TypingVisitor___escapable_ctx__eq},
+  {(bigint) typing___TypingVisitor___self_var},
+  {(bigint) typing___TypingVisitor___self_var__eq},
+  {(bigint) typing___TypingVisitor___top_block},
+  {(bigint) typing___TypingVisitor___top_block__eq},
+  {(bigint) typing___TypingVisitor___explicit_super_init_calls},
+  {(bigint) typing___TypingVisitor___explicit_super_init_calls__eq},
+  {(bigint) typing___TypingVisitor___explicit_other_init_call},
+  {(bigint) typing___TypingVisitor___explicit_other_init_call__eq},
+  {(bigint) typing___TypingVisitor___use_if_true_variable_ctx},
+  {(bigint) typing___TypingVisitor___use_if_false_variable_ctx},
+  {(bigint) typing___TypingVisitor___once_count},
+  {(bigint) typing___TypingVisitor___once_count__eq},
+  {(bigint) typing___TypingVisitor___init},
+  {(bigint) typing___TypingVisitor___get_default_constructor_for},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute PropertyBuilderVisitor::_module */
-/* 2: Attribute PropertyBuilderVisitor::_local_class */
-/* 3: Attribute PropertyBuilderVisitor::_local_property */
-/* 4: Attribute PropertyBuilderVisitor::_tc */
-val_t NEW_PropertyBuilderVisitor(void) {
+/* 1: Object_id */
+/* 2: Attribute TypingVisitor::_current_node */
+/* 3: Attribute TypingVisitor::_module */
+/* 4: Attribute TypingVisitor::_local_class */
+/* 5: Attribute TypingVisitor::_local_property */
+/* 6: Attribute TypingVisitor::_tc */
+/* 7: Attribute TypingVisitor::_variable_ctx */
+/* 8: Attribute TypingVisitor::_base_variable_ctx */
+/* 9: Attribute TypingVisitor::_escapable_ctx */
+/* 10: Attribute TypingVisitor::_self_var */
+/* 11: Attribute TypingVisitor::_top_block */
+/* 12: Attribute TypingVisitor::_explicit_super_init_calls */
+/* 13: Attribute TypingVisitor::_explicit_other_init_call */
+/* 14: Attribute TypingVisitor::_once_count */
+void INIT_ATTRIBUTES__TypingVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TypingVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = fra.me.REG[0];
+  fra.me.REG[1] = NEW_EscapableContext_escape___EscapableContext___init(fra.me.REG[1]);
+  /* ./syntax//typing.nit:54 */
+  ATTR_typing___TypingVisitor____escapable_ctx(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:67 */
+  ATTR_typing___TypingVisitor____explicit_other_init_call(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./syntax//typing.nit:84 */
+  ATTR_typing___TypingVisitor____once_count(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TypingVisitor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_PropertyBuilderVisitor;
-  return OBJ2VAL(obj);
-}
-val_t NEW_mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1) {
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_TypingVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TypingVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TypingVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___TypingVisitor____escapable_ctx(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_escapable_ctx");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___TypingVisitor____explicit_other_init_call(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_explicit_other_init_call");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_typing___TypingVisitor____once_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_once_count");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TypingVisitor_typing___TypingVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_PropertyBuilderVisitor();
-  mmbuilder___PropertyBuilderVisitor___init(self, p0, p1, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 87;
+  fra.me.meth = LOCATE_NEW_TypingVisitor_typing___TypingVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_TypingVisitor();
+  /* ./syntax//typing.nit:87 */
+  INIT_ATTRIBUTES__TypingVisitor(fra.me.REG[2]);
+  typing___TypingVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_TypingVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_PropertyVerifierVisitor[74] = {
-  {(bigint) 3039 /* 0: Identity */},
-  {(bigint) 3 /* 1: PropertyVerifierVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: PropertyVerifierVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3039 /* 4: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_ATypeCheckExpr[81] = {
+  {(bigint) 6127 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ATypeCheckExpr < Object: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ATypeCheckExpr < ANode: superclass typecheck marker */},
+  {(bigint) 5059 /* 4: ATypeCheckExpr < Prod: superclass typecheck marker */},
+  {(bigint) 6127 /* 5: ATypeCheckExpr < ATypeCheckExpr: superclass typecheck marker */},
+  {(bigint) 5971 /* 6: ATypeCheckExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79877,14 +236025,11 @@ const classtable_elt_t VFT_PropertyVerifierVisitor[74] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PropertyVerifierVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ATypeCheckExpr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79892,7 +236037,6 @@ const classtable_elt_t VFT_PropertyVerifierVisitor[74] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79900,74 +236044,137 @@ const classtable_elt_t VFT_PropertyVerifierVisitor[74] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: PropertyVerifierVisitor < Visitor: superclass init_table position */},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___visit},
-  {(bigint) 2 /* 42: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
-  {(bigint) syntax_base___AbsSyntaxVisitor___error},
-  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
-  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
-  {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 64: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass init_table position */},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___params},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___params__eq},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___untyped_params},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___untyped_params__eq},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___vararg_rank},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___vararg_rank__eq},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___signature},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___signature__eq},
-  {(bigint) mmbuilder___PropertyVerifierVisitor___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute PropertyVerifierVisitor::_module */
-/* 2: Attribute PropertyVerifierVisitor::_local_class */
-/* 3: Attribute PropertyVerifierVisitor::_local_property */
-/* 4: Attribute PropertyVerifierVisitor::_tc */
-/* 5: Attribute PropertyVerifierVisitor::_params */
-/* 6: Attribute PropertyVerifierVisitor::_untyped_params */
-/* 7: Attribute PropertyVerifierVisitor::_vararg_rank */
-/* 8: Attribute PropertyVerifierVisitor::_signature */
-val_t NEW_PropertyVerifierVisitor(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) mmbuilder___AExpr___accept_class_builder},
+  {(bigint) mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) mmbuilder___ANode___accept_class_verifier},
+  {(bigint) mmbuilder___AExpr___accept_property_builder},
+  {(bigint) mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser_prod___ANode___parent},
+  {(bigint) parser_prod___ANode___parent__eq},
+  {(bigint) parser_prod___ANode___remove_child},
+  {(bigint) parser_prod___ANode___replace_child},
+  {(bigint) parser_prod___Prod___replace_with},
+  {(bigint) parser_prod___ANode___visit_all},
+  {(bigint) parser_prod___ANode___visit_all_reverse},
+  {(bigint) 1 /* 59: ATypeCheckExpr < ANode: superclass init_table position */},
+  {(bigint) parser_nodes___ANode___location},
+  {(bigint) parser_nodes___ANode___init},
+  {(bigint) icode_generation___AExpr___accept_icode_generation},
+  {(bigint) typing___ANode___accept_typing},
+  {(bigint) typing___AExpr___after_typing},
+  {(bigint) parser_prod___ANode___replace_with},
+  {(bigint) 2 /* 66: ATypeCheckExpr < Prod: superclass init_table position */},
+  {(bigint) parser_nodes___Prod___location__eq},
+  {(bigint) 4 /* 68: ATypeCheckExpr < ATypeCheckExpr: superclass init_table position */},
+  {(bigint) typing___ATypeCheckExpr___check_expr_cast},
+  {0} /* Class Hole :( */,
+  {(bigint) typing___AExpr___is_typed},
+  {(bigint) typing___AExpr___is_statement},
+  {(bigint) typing___AExpr___stype},
+  {(bigint) 3 /* 74: ATypeCheckExpr < AExpr: superclass init_table position */},
+  {(bigint) icode_generation___AExpr___generate_icode},
+  {(bigint) typing___AExpr___is_implicit_self},
+  {(bigint) typing___AExpr___is_self},
+  {(bigint) typing___AExpr___its_variable},
+  {(bigint) typing___AExpr___if_true_variable_ctx},
+  {(bigint) typing___AExpr___if_false_variable_ctx},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ATypeCheckExpr::_parent */
+/* 3: Attribute ATypeCheckExpr::_location */
+/* 4: Attribute ATypeCheckExpr::_first_location */
+/* 5: Attribute ATypeCheckExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ATypeCheckExpr::_is_typed */
+/* 8: Attribute ATypeCheckExpr::_stype */
+/* 9: Attribute ATypeCheckExpr::_if_true_variable_ctx */
+/* 10: Attribute ATypeCheckExpr::_if_false_variable_ctx */
+void INIT_ATTRIBUTES__ATypeCheckExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ATypeCheckExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//typing.nit:318 */
+  ATTR_typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ATypeCheckExpr(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_PropertyVerifierVisitor;
-  ATTR_mmbuilder___PropertyVerifierVisitor____vararg_rank(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_PropertyVerifierVisitor();
-  mmbuilder___PropertyVerifierVisitor___init(self, p0, p1, init_table);
-  return self;
-}
-const classtable_elt_t VFT_MMSrcTypeFormalParameter[70] = {
-  {(bigint) 3287 /* 0: Identity */},
-  {(bigint) 3 /* 1: MMSrcTypeFormalParameter < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: MMSrcTypeFormalParameter < MMType: superclass typecheck marker */},
-  {(bigint) 2559 /* 3: MMSrcTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
-  {(bigint) 3159 /* 4: MMSrcTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
-  {(bigint) 3287 /* 5: MMSrcTypeFormalParameter < MMSrcTypeFormalParameter: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_ATypeCheckExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ATypeCheckExpr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ATypeCheckExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_is_typed");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ATypeCheckExpr_parser_nodes___ANode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ATypeCheckExpr_parser_nodes___ANode___init;
+  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;
+  fra.me.REG[1] = NEW_ATypeCheckExpr();
+  INIT_ATTRIBUTES__ATypeCheckExpr(fra.me.REG[1]);
+  parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_ATypeCheckExpr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_PrimitiveInfo[50] = {
+  {(bigint) 55 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: PrimitiveInfo < Object: superclass typecheck marker */},
+  {(bigint) 55 /* 3: PrimitiveInfo < PrimitiveInfo: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79975,14 +236182,15 @@ const classtable_elt_t VFT_MMSrcTypeFormalParameter[70] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) type_formal___MMTypeFormal___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MMSrcTypeFormalParameter < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: PrimitiveInfo < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -79990,7 +236198,6 @@ const classtable_elt_t VFT_MMSrcTypeFormalParameter[70] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -79998,65 +236205,114 @@ const classtable_elt_t VFT_MMSrcTypeFormalParameter[70] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_methods___MMType___compile_cast},
-  {(bigint) compiling_methods___MMType___compile_type_check},
-  {(bigint) compiling_base___MMType___cname},
-  {(bigint) compiling_base___MMType___default_cvalue},
-  {(bigint) compiling_base___MMType___boxtype},
-  {(bigint) compiling_base___MMType___unboxtype},
-  {(bigint) genericity___MMTypeFormal___is_generic},
-  {(bigint) type_formal___MMTypeFormal___direct_type},
-  {(bigint) 1 /* 48: MMSrcTypeFormalParameter < MMType: superclass init_table position */},
-  {(bigint) genericity___MMTypeFormalParameter___module},
-  {(bigint) type_formal___MMTypeFormal___local_class},
-  {(bigint) type_formal___MMTypeFormal_____l},
-  {(bigint) type_formal___MMTypeFormal___is_supertype},
-  {(bigint) genericity___MMTypeFormalParameter___for_module},
-  {(bigint) genericity___MMTypeFormalParameter___adapt_to},
-  {(bigint) genericity___MMTypeFormalParameter___upcast_for},
-  {(bigint) static_type___MMType___not_for_self},
-  {(bigint) 2 /* 57: MMSrcTypeFormalParameter < MMTypeFormal: superclass init_table position */},
-  {(bigint) type_formal___MMTypeFormal___name},
-  {(bigint) type_formal___MMTypeFormal___bound},
-  {(bigint) type_formal___MMTypeFormal___init},
-  {(bigint) 3 /* 61: MMSrcTypeFormalParameter < MMTypeFormalParameter: superclass init_table position */},
-  {(bigint) genericity___MMTypeFormalParameter___def_class},
-  {(bigint) genericity___MMTypeFormalParameter___position},
-  {(bigint) genericity___MMTypeFormalParameter___bound__eq},
-  {(bigint) genericity___MMTypeFormalParameter___with_bound},
-  {(bigint) genericity___MMTypeFormalParameter___init},
-  {(bigint) 4 /* 67: MMSrcTypeFormalParameter < MMSrcTypeFormalParameter: superclass init_table position */},
-  {(bigint) mmbuilder___MMSrcTypeFormalParameter___node},
-  {(bigint) mmbuilder___MMSrcTypeFormalParameter___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: PrimitiveInfo < PrimitiveInfo: superclass init_table position */},
+  {(bigint) primitive_info___PrimitiveInfo___name},
+  {(bigint) primitive_info___PrimitiveInfo___tagged},
+  {(bigint) primitive_info___PrimitiveInfo___cname},
+  {(bigint) primitive_info___PrimitiveInfo___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMSrcTypeFormalParameter::_name */
-/* 2: Attribute MMSrcTypeFormalParameter::_bound */
-/* 3: Attribute MMSrcTypeFormalParameter::_def_class */
-/* 4: Attribute MMSrcTypeFormalParameter::_position */
-/* 5: Attribute MMSrcTypeFormalParameter::_node */
-val_t NEW_MMSrcTypeFormalParameter(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_MMSrcTypeFormalParameter;
-  ATTR_genericity___MMTypeFormalParameter____position(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute PrimitiveInfo::_name */
+/* 3: Attribute PrimitiveInfo::_tagged */
+/* 4: Attribute PrimitiveInfo::_cname */
+void INIT_ATTRIBUTES__PrimitiveInfo(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__PrimitiveInfo;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_mmbuilder___MMSrcTypeFormalParameter___init(val_t p0, val_t p1, val_t p2, val_t p3) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_MMSrcTypeFormalParameter();
-  mmbuilder___MMSrcTypeFormalParameter___init(self, p0, p1, p2, p3, init_table);
-  return self;
+val_t NEW_PrimitiveInfo(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_PrimitiveInfo;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_PrimitiveInfo(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_PrimitiveInfo;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tagged");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_cname");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(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 tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 88;
+  fra.me.meth = LOCATE_NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init;
+  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.REG[0] = p0;
+  REGB0 = p1;
+  fra.me.REG[1] = p2;
+  fra.me.REG[2] = NEW_PrimitiveInfo();
+  /* ./primitive_info.nit:88 */
+  INIT_ATTRIBUTES__PrimitiveInfo(fra.me.REG[2]);
+  primitive_info___PrimitiveInfo___init(fra.me.REG[2], fra.me.REG[0], REGB0, fra.me.REG[1], init_table);
+  CHECKNEW_PrimitiveInfo(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_MethidAccumulator[45] = {
-  {(bigint) 2543 /* 0: Identity */},
-  {(bigint) 3 /* 1: MethidAccumulator < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: MethidAccumulator < Visitor: superclass typecheck marker */},
-  {(bigint) 2543 /* 3: MethidAccumulator < MethidAccumulator: superclass typecheck marker */},
+const classtable_elt_t VFT_A2IContext[86] = {
+  {(bigint) 5307 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: A2IContext < Object: superclass typecheck marker */},
+  {(bigint) 175 /* 3: A2IContext < ICodeBuilder: superclass typecheck marker */},
+  {(bigint) 5307 /* 4: A2IContext < A2IContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80066,14 +236322,12 @@ const classtable_elt_t VFT_MethidAccumulator[45] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: MethidAccumulator < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: A2IContext < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80081,7 +236335,6 @@ const classtable_elt_t VFT_MethidAccumulator[45] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80089,36 +236342,206 @@ const classtable_elt_t VFT_MethidAccumulator[45] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: MethidAccumulator < Visitor: superclass init_table position */},
-  {(bigint) mmbuilder___MethidAccumulator___visit},
-  {(bigint) 2 /* 42: MethidAccumulator < MethidAccumulator: superclass init_table position */},
-  {(bigint) mmbuilder___MethidAccumulator___name},
-  {(bigint) mmbuilder___MethidAccumulator___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) icode_tools___ICodeBuilder___is_currently_inlining_routine},
+  {(bigint) icode_tools___ICodeBuilder___inline_routine},
+  {(bigint) 1 /* 47: A2IContext < ICodeBuilder: superclass init_table position */},
+  {(bigint) icode_generation___A2IContext___stmt},
+  {(bigint) icode_builder___ICodeBuilder___expr},
+  {(bigint) icode_builder___ICodeBuilder___add_assignment},
+  {(bigint) icode_builder___ICodeBuilder___add_null_reciever_check},
+  {(bigint) icode_builder___ICodeBuilder___add_type_cast},
+  {(bigint) icode_builder___ICodeBuilder___add_attr_check},
+  {(bigint) icode_builder___ICodeBuilder___add_attr_read},
+  {(bigint) icode_builder___ICodeBuilder___add_abort},
+  {(bigint) icode_builder___ICodeBuilder___add_return_value},
+  {(bigint) icode_builder___ICodeBuilder___add_call},
+  {(bigint) icode_builder___ICodeBuilder___add_escape},
+  {(bigint) icode_builder___ICodeBuilder___lit_null_reg},
+  {(bigint) icode_builder___ICodeBuilder___lit_true_reg},
+  {(bigint) icode_builder___ICodeBuilder___lit_false_reg},
+  {(bigint) icode_builder___ICodeBuilder___new_register},
+  {(bigint) icode_builder___ICodeBuilder___module},
+  {(bigint) icode_builder___ICodeBuilder___iroutine},
+  {(bigint) icode_builder___ICodeBuilder___seq},
+  {(bigint) icode_builder___ICodeBuilder___seq__eq},
+  {(bigint) icode_builder___ICodeBuilder___init},
+  {(bigint) icode_builder___ICodeBuilder___current_location},
+  {(bigint) icode_builder___ICodeBuilder___current_location__eq},
+  {(bigint) 2 /* 70: A2IContext < A2IContext: superclass init_table position */},
+  {(bigint) icode_builder___ICodeBuilder___stmt},
+  {(bigint) icode_generation___A2IContext___add_new_array},
+  {(bigint) icode_generation___A2IContext___add_call_array_add},
+  {(bigint) icode_generation___A2IContext___variable},
+  {(bigint) icode_generation___A2IContext___closurevariables},
+  {(bigint) icode_generation___A2IContext___visitor},
+  {(bigint) icode_generation___A2IContext___return_seq},
+  {(bigint) icode_generation___A2IContext___return_seq__eq},
+  {(bigint) icode_generation___A2IContext___return_value},
+  {(bigint) icode_generation___A2IContext___return_value__eq},
+  {(bigint) icode_generation___A2IContext___method},
+  {(bigint) icode_generation___A2IContext___init},
+  {(bigint) icode_generation___A2IContext___invoke_super_init_calls_after},
+  {(bigint) icode_generation___A2IContext___generate_stmt},
+  {(bigint) icode_generation___A2IContext___generate_expr},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MethidAccumulator::_name */
-val_t NEW_MethidAccumulator(void) {
+/* 1: Object_id */
+/* 2: Attribute A2IContext::_current_inlining */
+/* 3: Attribute A2IContext::_module */
+/* 4: Attribute A2IContext::_iroutine */
+/* 5: Attribute A2IContext::_seq */
+/* 6: Attribute A2IContext::_current_location */
+/* 7: Attribute A2IContext::_variables */
+/* 8: Attribute A2IContext::_closurevariables */
+/* 9: Attribute A2IContext::_visitor */
+/* 10: Attribute A2IContext::_return_seq */
+/* 11: Attribute A2IContext::_return_value */
+/* 12: Attribute A2IContext::_method */
+/* 13: Attribute A2IContext::_current_node */
+void INIT_ATTRIBUTES__A2IContext(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__A2IContext;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_builder.nit:222 */
+  ATTR_icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./icode//icode_tools.nit:95 */
+  ATTR_icode_tools___ICodeBuilder____current_inlining(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./syntax//icode_generation.nit:69 */
+  ATTR_icode_generation___A2IContext____variables(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./syntax//icode_generation.nit:72 */
+  ATTR_icode_generation___A2IContext____closurevariables(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./syntax//icode_generation.nit:139 */
+  ATTR_icode_generation___A2IContext____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_A2IContext(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_MethidAccumulator;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 14);
+  obj->vft = (classtable_elt_t*)VFT_A2IContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_A2IContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_A2IContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_builder___ICodeBuilder____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_builder___ICodeBuilder____iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_iroutine");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_builder___ICodeBuilder____seq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_seq");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_tools___ICodeBuilder____current_inlining(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_current_inlining");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_generation___A2IContext____variables(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_variables");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_generation___A2IContext____closurevariables(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closurevariables");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_generation___A2IContext____visitor(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_visitor");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_mmbuilder___MethidAccumulator___init() {
+val_t NEW_A2IContext_icode_generation___A2IContext___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_MethidAccumulator();
-  mmbuilder___MethidAccumulator___init(self, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 87;
+  fra.me.meth = LOCATE_NEW_A2IContext_icode_generation___A2IContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_A2IContext();
+  /* ./syntax//icode_generation.nit:87 */
+  INIT_ATTRIBUTES__A2IContext(fra.me.REG[3]);
+  icode_generation___A2IContext___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_A2IContext(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ControlFlowVisitor[72] = {
-  {(bigint) 3215 /* 0: Identity */},
-  {(bigint) 3 /* 1: ControlFlowVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: ControlFlowVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: ControlFlowVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3215 /* 4: ControlFlowVisitor < ControlFlowVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_A2IVisitor[84] = {
+  {(bigint) 6003 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: A2IVisitor < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 3: A2IVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 5303 /* 4: A2IVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 6003 /* 5: A2IVisitor < A2IVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80127,14 +236550,12 @@ const classtable_elt_t VFT_ControlFlowVisitor[72] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ControlFlowVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: A2IVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80142,7 +236563,6 @@ const classtable_elt_t VFT_ControlFlowVisitor[72] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80150,67 +236570,148 @@ const classtable_elt_t VFT_ControlFlowVisitor[72] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ControlFlowVisitor < Visitor: superclass init_table position */},
-  {(bigint) control_flow___ControlFlowVisitor___visit},
-  {(bigint) 2 /* 42: ControlFlowVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: A2IVisitor < Visitor: superclass init_table position */},
+  {(bigint) icode_generation___A2IVisitor___visit},
+  {(bigint) parser_prod___Visitor___enter_visit},
+  {(bigint) parser_prod___Visitor___current_node},
+  {(bigint) parser_prod___Visitor___init},
+  {(bigint) 2 /* 50: A2IVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_nativestring},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
+  {(bigint) syntax_base___AbsSyntaxVisitor___get_method},
   {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
   {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
   {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
   {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
   {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
   {(bigint) syntax_base___AbsSyntaxVisitor___tc},
   {(bigint) syntax_base___AbsSyntaxVisitor___error},
+  {(bigint) syntax_base___AbsSyntaxVisitor___fatal_error},
   {(bigint) syntax_base___AbsSyntaxVisitor___warning},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
+  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 64: ControlFlowVisitor < ControlFlowVisitor: superclass init_table position */},
-  {(bigint) control_flow___ControlFlowVisitor___once_count},
-  {(bigint) control_flow___ControlFlowVisitor___once_count__eq},
-  {(bigint) control_flow___ControlFlowVisitor___control_flow_ctx},
-  {(bigint) control_flow___ControlFlowVisitor___control_flow_ctx__eq},
-  {(bigint) control_flow___ControlFlowVisitor___check_is_set},
-  {(bigint) control_flow___ControlFlowVisitor___mark_is_set},
-  {(bigint) control_flow___ControlFlowVisitor___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ControlFlowVisitor::_module */
-/* 2: Attribute ControlFlowVisitor::_local_class */
-/* 3: Attribute ControlFlowVisitor::_local_property */
-/* 4: Attribute ControlFlowVisitor::_tc */
-/* 5: Attribute ControlFlowVisitor::_once_count */
-/* 6: Attribute ControlFlowVisitor::_control_flow_ctx */
-val_t NEW_ControlFlowVisitor(void) {
+  {(bigint) 3 /* 80: A2IVisitor < A2IVisitor: superclass init_table position */},
+  {(bigint) icode_generation___A2IVisitor___icode_ctx__eq},
+  {(bigint) icode_generation___A2IVisitor___icode_ctx},
+  {(bigint) icode_generation___A2IVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute A2IVisitor::_current_node */
+/* 3: Attribute A2IVisitor::_module */
+/* 4: Attribute A2IVisitor::_local_class */
+/* 5: Attribute A2IVisitor::_local_property */
+/* 6: Attribute A2IVisitor::_tc */
+/* 7: Attribute A2IVisitor::_icode_ctx */
+void INIT_ATTRIBUTES__A2IVisitor(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__A2IVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./parser//parser_prod.nit:70 */
+  ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_A2IVisitor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_ControlFlowVisitor;
-  ATTR_control_flow___ControlFlowVisitor____once_count(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_control_flow___ControlFlowVisitor___init(val_t p0, val_t p1) {
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_A2IVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_A2IVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_A2IVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_A2IVisitor_icode_generation___A2IVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_ControlFlowVisitor();
-  control_flow___ControlFlowVisitor___init(self, p0, p1, init_table);
-  return self;
-}
-const classtable_elt_t VFT_ControlFlowContext[55] = {
-  {(bigint) 147 /* 0: Identity */},
-  {(bigint) 3 /* 1: ControlFlowContext < Object: superclass typecheck marker */},
-  {(bigint) 147 /* 2: ControlFlowContext < ControlFlowContext: superclass typecheck marker */},
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 288;
+  fra.me.meth = LOCATE_NEW_A2IVisitor_icode_generation___A2IVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_A2IVisitor();
+  /* ./syntax//icode_generation.nit:288 */
+  INIT_ATTRIBUTES__A2IVisitor(fra.me.REG[2]);
+  icode_generation___A2IVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_A2IVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_SrcModuleLoader[56] = {
+  {(bigint) 267 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: SrcModuleLoader < Object: superclass typecheck marker */},
+  {(bigint) 87 /* 3: SrcModuleLoader < ModuleLoader: superclass typecheck marker */},
+  {(bigint) 267 /* 4: SrcModuleLoader < SrcModuleLoader: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80221,14 +236722,11 @@ const classtable_elt_t VFT_ControlFlowContext[55] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ControlFlowContext < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: SrcModuleLoader < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80236,7 +236734,6 @@ const classtable_elt_t VFT_ControlFlowContext[55] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80244,64 +236741,88 @@ const classtable_elt_t VFT_ControlFlowContext[55] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ControlFlowContext < ControlFlowContext: superclass init_table position */},
-  {(bigint) control_flow___ControlFlowContext___prev},
-  {(bigint) control_flow___ControlFlowContext___has_return},
-  {(bigint) control_flow___ControlFlowContext___has_return__eq},
-  {(bigint) control_flow___ControlFlowContext___unreash},
-  {(bigint) control_flow___ControlFlowContext___unreash__eq},
-  {(bigint) control_flow___ControlFlowContext___already_unreash},
-  {(bigint) control_flow___ControlFlowContext___already_unreash__eq},
-  {(bigint) control_flow___ControlFlowContext___base_block},
-  {(bigint) control_flow___ControlFlowContext___base_block__eq},
-  {(bigint) control_flow___ControlFlowContext___set_variables},
-  {(bigint) control_flow___ControlFlowContext___is_set},
-  {(bigint) control_flow___ControlFlowContext___sub},
-  {(bigint) control_flow___ControlFlowContext___init},
-  {(bigint) control_flow___ControlFlowContext___with},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: SrcModuleLoader < ModuleLoader: superclass init_table position */},
+  {(bigint) syntax___SrcModuleLoader___file_type},
+  {(bigint) mmloader___ModuleLoader___try_to_load_dir},
+  {(bigint) mmloader___ModuleLoader___can_handle},
+  {(bigint) mmloader___ModuleLoader___load_and_process_module},
+  {(bigint) mmloader___ModuleLoader___load_module},
+  {(bigint) syntax___SrcModuleLoader___parse_file},
+  {(bigint) syntax___SrcModuleLoader___process_metamodel},
+  {(bigint) mmloader___ModuleLoader___init},
+  {(bigint) 2 /* 54: SrcModuleLoader < SrcModuleLoader: superclass init_table position */},
+  {(bigint) syntax___SrcModuleLoader___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ControlFlowContext::_prev */
-/* 2: Attribute ControlFlowContext::_has_return */
-/* 3: Attribute ControlFlowContext::_unreash */
-/* 4: Attribute ControlFlowContext::_already_unreash */
-/* 5: Attribute ControlFlowContext::_base_block */
-/* 6: Attribute ControlFlowContext::_set_variables */
-val_t NEW_ControlFlowContext(void) {
-  val_t variable0;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__SrcModuleLoader(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__SrcModuleLoader;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_SrcModuleLoader(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_ControlFlowContext;
-  ATTR_control_flow___ControlFlowContext____has_return(obj) = TAG_Bool((int)0);
-  ATTR_control_flow___ControlFlowContext____unreash(obj) = TAG_Bool((int)0);
-  ATTR_control_flow___ControlFlowContext____already_unreash(obj) = TAG_Bool((int)0);
-  variable0 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_control_flow___ControlFlowContext____set_variables(obj) = variable0;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_SrcModuleLoader;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_control_flow___ControlFlowContext___init() {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_ControlFlowContext();
-  control_flow___ControlFlowContext___init(self, init_table);
-  return self;
+void CHECKNEW_SrcModuleLoader(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_SrcModuleLoader;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_control_flow___ControlFlowContext___with(val_t p0) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_ControlFlowContext();
-  control_flow___ControlFlowContext___with(self, p0, init_table);
-  return self;
+val_t NEW_SrcModuleLoader_syntax___SrcModuleLoader___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 57;
+  fra.me.meth = LOCATE_NEW_SrcModuleLoader_syntax___SrcModuleLoader___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_SrcModuleLoader();
+  /* ./syntax//syntax.nit:57 */
+  INIT_ATTRIBUTES__SrcModuleLoader(fra.me.REG[0]);
+  syntax___SrcModuleLoader___init(fra.me.REG[0], init_table);
+  CHECKNEW_SrcModuleLoader(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_ABlockControler[78] = {
-  {(bigint) 3575 /* 0: Identity */},
-  {(bigint) 3 /* 1: ABlockControler < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ABlockControler < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ABlockControler < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ABlockControler < PExpr: superclass typecheck marker */},
-  {(bigint) 3575 /* 5: ABlockControler < ABlockControler: superclass typecheck marker */},
+const classtable_elt_t VFT_AbstractCompiler[103] = {
+  {(bigint) 5911 /* 0: Identity */},
+  {(bigint) 34 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AbstractCompiler < Object: superclass typecheck marker */},
+  {(bigint) 127 /* 3: AbstractCompiler < MMContext: superclass typecheck marker */},
+  {(bigint) 247 /* 4: AbstractCompiler < ToolContext: superclass typecheck marker */},
+  {(bigint) 5911 /* 5: AbstractCompiler < AbstractCompiler: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80309,14 +236830,714 @@ const classtable_elt_t VFT_ABlockControler[78] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AbstractCompiler < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
   {(bigint) string___Object___to_s},
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ABlockControler < Object: superclass init_table position */},
+  {(bigint) hash___Object___hash},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: AbstractCompiler < MMContext: superclass init_table position */},
+  {(bigint) abstractmetamodel___MMContext___init},
+  {(bigint) abstractmetamodel___MMContext___module_hierarchy},
+  {(bigint) abstractmetamodel___MMContext___class_hierarchy},
+  {(bigint) abstractmetamodel___MMContext___modules},
+  {(bigint) abstractmetamodel___MMContext___add_module},
+  {(bigint) abstractmetamodel___MMContext___add_global_class},
+  {(bigint) abstractmetamodel___MMContext___add_local_class},
+  {(bigint) syntax___ToolContext___keep_ast},
+  {(bigint) syntax___ToolContext___keep_ast__eq},
+  {(bigint) 2 /* 55: AbstractCompiler < ToolContext: superclass init_table position */},
+  {(bigint) mmloader___ToolContext___error_count},
+  {(bigint) mmloader___ToolContext___warning_count},
+  {(bigint) mmloader___ToolContext___check_errors},
+  {(bigint) mmloader___ToolContext___error},
+  {(bigint) mmloader___ToolContext___fatal_error},
+  {(bigint) mmloader___ToolContext___warning},
+  {(bigint) mmloader___ToolContext___info},
+  {(bigint) mmloader___ToolContext___paths},
+  {(bigint) mmloader___ToolContext___option_context},
+  {(bigint) mmloader___ToolContext___opt_warn},
+  {(bigint) mmloader___ToolContext___opt_path},
+  {(bigint) mmloader___ToolContext___opt_log},
+  {(bigint) mmloader___ToolContext___opt_only_metamodel},
+  {(bigint) mmloader___ToolContext___opt_only_parse},
+  {(bigint) mmloader___ToolContext___opt_help},
+  {(bigint) mmloader___ToolContext___opt_version},
+  {(bigint) mmloader___ToolContext___opt_verbose},
+  {(bigint) mmloader___ToolContext___verbose_level},
+  {(bigint) mmloader___ToolContext___init},
+  {(bigint) mmloader___ToolContext___process_options},
+  {(bigint) mmloader___ToolContext___try_to_load},
+  {(bigint) mmloader___ToolContext___get_module_from_filename},
+  {(bigint) mmloader___ToolContext___get_module},
+  {(bigint) mmloader___ToolContext___directory_for},
+  {(bigint) mmloader___ToolContext___register_loader},
+  {(bigint) compiling_base___ToolContext___global},
+  {(bigint) compiling_base___ToolContext___global__eq},
+  {(bigint) compiling_base___ToolContext___compdir},
+  {(bigint) compiling_base___ToolContext___compdir__eq},
+  {(bigint) compiling_base___ToolContext___clibdir},
+  {(bigint) compiling_base___ToolContext___clibdir__eq},
+  {(bigint) compiling_base___ToolContext___bindir},
+  {(bigint) compiling_base___ToolContext___bindir__eq},
+  {(bigint) compiling_base___ToolContext___output_file},
+  {(bigint) compiling_base___ToolContext___output_file__eq},
+  {(bigint) compiling_base___ToolContext___boost},
+  {(bigint) compiling_base___ToolContext___boost__eq},
+  {(bigint) compiling_base___ToolContext___no_cc},
+  {(bigint) compiling_base___ToolContext___no_cc__eq},
+  {(bigint) compiling_base___ToolContext___ext_prefix},
+  {(bigint) compiling_base___ToolContext___ext_prefix__eq},
+  {(bigint) 3 /* 97: AbstractCompiler < AbstractCompiler: superclass init_table position */},
+  {(bigint) abstracttool___AbstractCompiler___init},
+  {(bigint) abstracttool___AbstractCompiler___tool_name},
+  {(bigint) abstracttool___AbstractCompiler___exec_cmd_line},
+  {(bigint) abstracttool___AbstractCompiler___perform_work},
+  {(bigint) abstracttool___AbstractCompiler___dump_context_info},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AbstractCompiler::_module_hierarchy */
+/* 3: Attribute AbstractCompiler::_class_hierarchy */
+/* 4: Attribute AbstractCompiler::_global_classes */
+/* 5: Attribute AbstractCompiler::_modules */
+/* 6: Attribute AbstractCompiler::_keep_ast */
+/* 7: Attribute AbstractCompiler::_error_count */
+/* 8: Attribute AbstractCompiler::_warning_count */
+/* 9: Attribute AbstractCompiler::_messages */
+/* 10: Attribute AbstractCompiler::_message_sorter */
+/* 11: Attribute AbstractCompiler::_paths */
+/* 12: Attribute AbstractCompiler::_loaders */
+/* 13: Attribute AbstractCompiler::_option_context */
+/* 14: Attribute AbstractCompiler::_opt_warn */
+/* 15: Attribute AbstractCompiler::_opt_path */
+/* 16: Attribute AbstractCompiler::_opt_log */
+/* 17: Attribute AbstractCompiler::_opt_only_metamodel */
+/* 18: Attribute AbstractCompiler::_opt_only_parse */
+/* 19: Attribute AbstractCompiler::_opt_help */
+/* 20: Attribute AbstractCompiler::_opt_version */
+/* 21: Attribute AbstractCompiler::_opt_verbose */
+/* 22: Attribute AbstractCompiler::_verbose_level */
+/* 23: Attribute AbstractCompiler::_processing_modules */
+/* 24: Attribute AbstractCompiler::_path_dirs */
+/* 25: Attribute AbstractCompiler::_global */
+/* 26: Attribute AbstractCompiler::_compdir */
+/* 27: Attribute AbstractCompiler::_clibdir */
+/* 28: Attribute AbstractCompiler::_bindir */
+/* 29: Attribute AbstractCompiler::_output_file */
+/* 30: Attribute AbstractCompiler::_boost */
+/* 31: Attribute AbstractCompiler::_no_cc */
+/* 32: Attribute AbstractCompiler::_ext_prefix */
+/* 33: Attribute AbstractCompiler::_tool_name */
+void INIT_ATTRIBUTES__AbstractCompiler(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 */
+  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_21; /* Once value */
+  static val_t once_value_22; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AbstractCompiler;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  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] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:29 */
+  ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_PartialOrder_partial_order___PartialOrder___init();
+  /* ./metamodel//abstractmetamodel.nit:32 */
+  ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:36 */
+  ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./metamodel//abstractmetamodel.nit:39 */
+  ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:52 */
+  ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:55 */
+  ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:58 */
+  ATTR_mmloader___ToolContext____messages(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_ComparableSorter_sorter___ComparableSorter___init();
+  /* ./mmloader.nit:60 */
+  ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:111 */
+  ATTR_mmloader___ToolContext____paths(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./mmloader.nit:114 */
+  ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_OptionContext_opts___OptionContext___init();
+  /* ./mmloader.nit:117 */
+  ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:121 */
+  if (!once_value_1) {
+    fra.me.REG[1] = BOX_NativeString("Show warnings");
+    REGB0 = TAG_Int(13);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_1 = fra.me.REG[1];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[1] = once_value_1;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_2) {
+    fra.me.REG[3] = BOX_NativeString("-W");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(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;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_3) {
+    fra.me.REG[3] = BOX_NativeString("--warn");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(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;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:120 */
+  ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:124 */
+  if (!once_value_4) {
+    fra.me.REG[2] = BOX_NativeString("Set include path for loaders (may be used more than once)");
+    REGB0 = TAG_Int(57);
+    fra.me.REG[2] = NEW_String_string___String___with_native(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;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_5) {
+    fra.me.REG[3] = BOX_NativeString("-I");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_5 = fra.me.REG[3];
+    register_static_object(&once_value_5);
+  } else fra.me.REG[3] = once_value_5;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_6) {
+    fra.me.REG[3] = BOX_NativeString("--path");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_6 = fra.me.REG[3];
+    register_static_object(&once_value_6);
+  } else fra.me.REG[3] = once_value_6;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:123 */
+  ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:127 */
+  if (!once_value_7) {
+    fra.me.REG[1] = BOX_NativeString("Generate various log files");
+    REGB0 = TAG_Int(26);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_7 = fra.me.REG[1];
+    register_static_object(&once_value_7);
+  } else fra.me.REG[1] = once_value_7;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_8) {
+    fra.me.REG[3] = BOX_NativeString("--log");
+    REGB0 = TAG_Int(5);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_8 = fra.me.REG[3];
+    register_static_object(&once_value_8);
+  } else fra.me.REG[3] = once_value_8;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:126 */
+  ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:130 */
+  if (!once_value_9) {
+    fra.me.REG[2] = BOX_NativeString("Stop after meta-model processing");
+    REGB0 = TAG_Int(32);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_9 = fra.me.REG[2];
+    register_static_object(&once_value_9);
+  } else fra.me.REG[2] = once_value_9;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_10) {
+    fra.me.REG[3] = BOX_NativeString("--only-metamodel");
+    REGB0 = TAG_Int(16);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_10 = fra.me.REG[3];
+    register_static_object(&once_value_10);
+  } else fra.me.REG[3] = once_value_10;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:129 */
+  ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:133 */
+  if (!once_value_11) {
+    fra.me.REG[1] = BOX_NativeString("Only proceed to parse step of loaders");
+    REGB0 = TAG_Int(37);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_11 = fra.me.REG[1];
+    register_static_object(&once_value_11);
+  } else fra.me.REG[1] = once_value_11;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_12) {
+    fra.me.REG[3] = BOX_NativeString("--only-parse");
+    REGB0 = TAG_Int(12);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_12 = fra.me.REG[3];
+    register_static_object(&once_value_12);
+  } else fra.me.REG[3] = once_value_12;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:132 */
+  ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:136 */
+  if (!once_value_13) {
+    fra.me.REG[2] = BOX_NativeString("Show Help (This screen)");
+    REGB0 = TAG_Int(23);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_13 = fra.me.REG[2];
+    register_static_object(&once_value_13);
+  } else fra.me.REG[2] = once_value_13;
+  REGB0 = TAG_Int(2);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_14) {
+    fra.me.REG[3] = BOX_NativeString("-h");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_14 = fra.me.REG[3];
+    register_static_object(&once_value_14);
+  } else fra.me.REG[3] = once_value_14;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_15) {
+    fra.me.REG[3] = BOX_NativeString("-?");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_15 = fra.me.REG[3];
+    register_static_object(&once_value_15);
+  } else fra.me.REG[3] = once_value_15;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_16) {
+    fra.me.REG[3] = BOX_NativeString("--help");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_16 = fra.me.REG[3];
+    register_static_object(&once_value_16);
+  } else fra.me.REG[3] = once_value_16;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:135 */
+  ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./mmloader.nit:139 */
+  if (!once_value_17) {
+    fra.me.REG[1] = BOX_NativeString("Show version and exit");
+    REGB0 = TAG_Int(21);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_17 = fra.me.REG[1];
+    register_static_object(&once_value_17);
+  } else fra.me.REG[1] = once_value_17;
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_18) {
+    fra.me.REG[3] = BOX_NativeString("--version");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_18 = fra.me.REG[3];
+    register_static_object(&once_value_18);
+  } else fra.me.REG[3] = once_value_18;
+  array___Array___add(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  /* ./mmloader.nit:138 */
+  ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./mmloader.nit:142 */
+  if (!once_value_19) {
+    fra.me.REG[2] = BOX_NativeString("Verbose");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_19 = fra.me.REG[2];
+    register_static_object(&once_value_19);
+  } else fra.me.REG[2] = once_value_19;
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
+  if (!once_value_20) {
+    fra.me.REG[3] = BOX_NativeString("-v");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_20 = fra.me.REG[3];
+    register_static_object(&once_value_20);
+  } else fra.me.REG[3] = once_value_20;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_21) {
+    fra.me.REG[3] = BOX_NativeString("--verbose");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_21 = fra.me.REG[3];
+    register_static_object(&once_value_21);
+  } else fra.me.REG[3] = once_value_21;
+  array___Array___add(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[1]);
+  /* ./mmloader.nit:141 */
+  ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./mmloader.nit:144 */
+  ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./mmloader.nit:220 */
+  ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./mmloader.nit:288 */
+  ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./syntax//syntax.nit:85 */
+  ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:25 */
+  ATTR_compiling_base___ToolContext____global(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:26 */
+  ATTR_compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:27 */
+  ATTR_compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:28 */
+  ATTR_compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_base.nit:29 */
+  ATTR_compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:30 */
+  ATTR_compiling_base___ToolContext____boost(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_base.nit:31 */
+  ATTR_compiling_base___ToolContext____no_cc(fra.me.REG[0]) = REGB0;
+  /* ./compiling//compiling_base.nit:32 */
+  if (!once_value_22) {
+    fra.me.REG[1] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
+    fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_22 = fra.me.REG[1];
+    register_static_object(&once_value_22);
+  } else fra.me.REG[1] = once_value_22;
+  ATTR_compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractCompiler(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 34);
+  obj->vft = (classtable_elt_t*)VFT_AbstractCompiler;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AbstractCompiler(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AbstractCompiler;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_hierarchy");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_error_count");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_warning_count");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_messages");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_message_sorter");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_paths");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_loaders");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_option_context");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_warn");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_path");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_log");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_only_metamodel");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_only_parse");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_help");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_version");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_opt_verbose");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_verbose_level");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_processing_modules");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_path_dirs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_keep_ast");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tool_name");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____boost(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_boost");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____no_cc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_no_cc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___ToolContext____ext_prefix(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_ext_prefix");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbstractCompiler_abstracttool___AbstractCompiler___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 29;
+  fra.me.meth = LOCATE_NEW_AbstractCompiler_abstracttool___AbstractCompiler___init;
+  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;
+  fra.me.REG[1] = NEW_AbstractCompiler();
+  /* ./abstracttool.nit:29 */
+  INIT_ATTRIBUTES__AbstractCompiler(fra.me.REG[1]);
+  abstracttool___AbstractCompiler___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AbstractCompiler(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_Program[64] = {
+  {(bigint) 47 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: Program < Object: superclass typecheck marker */},
+  {(bigint) 47 /* 3: Program < Program: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: Program < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80324,7 +237545,6 @@ const classtable_elt_t VFT_ABlockControler[78] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80332,69 +237552,140 @@ const classtable_elt_t VFT_ABlockControler[78] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ABlockControler < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: ABlockControler < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ABlockControler < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 4 /* 76: ABlockControler < ABlockControler: superclass init_table position */},
-  {(bigint) control_flow___ABlockControler___block},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ABlockControler::_parent */
-/* 2: Attribute ABlockControler::_first_token */
-/* 3: Attribute ABlockControler::_last_token */
-/* 4: Attribute ABlockControler::_stype */
-/* 5: Attribute ABlockControler::_if_true_variable_ctx */
-/* 6: Attribute ABlockControler::_block */
-val_t NEW_ABlockControler(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling___Program___generate_classes_init_to_icode},
+  {(bigint) compiling___Program___compile_prog_to_c},
+  {(bigint) compiling___Program___compile_main},
+  {(bigint) compiling_global___Program___compile_tables_to_c},
+  {(bigint) compiling_global___Program___compile_main_part},
+  {(bigint) table_computation___Program___table_information},
+  {(bigint) table_computation___Program___compiled_classes},
+  {(bigint) table_computation___Program___do_table_computation},
+  {(bigint) table_computation___Program___do_global_analysis},
+  {(bigint) table_computation___Program___colorize},
+  {(bigint) table_computation___Program___free_color},
+  {(bigint) table_computation___Program___append_to_table},
+  {(bigint) table_computation___Program___build_tables_in},
+  {(bigint) 1 /* 58: Program < Program: superclass init_table position */},
+  {(bigint) program___Program___module},
+  {(bigint) program___Program___main_method},
+  {(bigint) program___Program___main_class},
+  {(bigint) program___Program___compute_main_method},
+  {(bigint) program___Program___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Program::_table_information */
+/* 3: Attribute Program::_compiled_classes */
+/* 4: Attribute Program::_module */
+/* 5: Attribute Program::_main_method */
+/* 6: Attribute Program::_main_class */
+void INIT_ATTRIBUTES__Program(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__Program;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./program.nit:28 */
+  ATTR_program___Program____main_method(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./program.nit:32 */
+  ATTR_program___Program____main_class(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_TableInformation_table_computation___ColorContext___init();
+  /* ./compiling//table_computation.nit:137 */
+  ATTR_table_computation___Program____table_information(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//table_computation.nit:140 */
+  ATTR_table_computation___Program____compiled_classes(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Program(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_ABlockControler;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_AControlableBlock[79] = {
-  {(bigint) 3543 /* 0: Identity */},
-  {(bigint) 3 /* 1: AControlableBlock < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AControlableBlock < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AControlableBlock < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AControlableBlock < PExpr: superclass typecheck marker */},
-  {(bigint) 3543 /* 5: AControlableBlock < AControlableBlock: superclass typecheck marker */},
+  obj->vft = (classtable_elt_t*)VFT_Program;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_Program(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_Program;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_program___Program____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___Program____table_information(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_table_information");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___Program____compiled_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_compiled_classes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Program_program___Program___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 50;
+  fra.me.meth = LOCATE_NEW_Program_program___Program___init;
+  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;
+  fra.me.REG[1] = NEW_Program();
+  /* ./program.nit:50 */
+  INIT_ATTRIBUTES__Program(fra.me.REG[1]);
+  program___Program___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_Program(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_ColorContext[50] = {
+  {(bigint) 215 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ColorContext < Object: superclass typecheck marker */},
+  {(bigint) 215 /* 3: ColorContext < ColorContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80402,14 +237693,15 @@ const classtable_elt_t VFT_AControlableBlock[79] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AControlableBlock < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ColorContext < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80417,7 +237709,6 @@ const classtable_elt_t VFT_AControlableBlock[79] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80425,68 +237716,97 @@ const classtable_elt_t VFT_AControlableBlock[79] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AControlableBlock < PNode: superclass init_table position */},
-  {(bigint) control_flow___AControlableBlock___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AControlableBlock < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___AControlableBlock___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AControlableBlock < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AControlableBlock___compile_inside_block},
-  {(bigint) 4 /* 77: AControlableBlock < AControlableBlock: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AControlableBlock::_parent */
-/* 2: Attribute AControlableBlock::_first_token */
-/* 3: Attribute AControlableBlock::_last_token */
-/* 4: Attribute AControlableBlock::_stype */
-/* 5: Attribute AControlableBlock::_if_true_variable_ctx */
-val_t NEW_AControlableBlock(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_AControlableBlock;
-  return OBJ2VAL(obj);
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ColorContext < ColorContext: superclass init_table position */},
+  {(bigint) table_computation___ColorContext___color},
+  {(bigint) table_computation___ColorContext___has_color},
+  {(bigint) table_computation___ColorContext___color__eq},
+  {(bigint) table_computation___ColorContext___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ColorContext::_colors */
+void INIT_ATTRIBUTES__ColorContext(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ColorContext;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//table_computation.nit:27 */
+  ATTR_table_computation___ColorContext____colors(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_TypingVisitor[77] = {
-  {(bigint) 2683 /* 0: Identity */},
-  {(bigint) 3 /* 1: TypingVisitor < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 2: TypingVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: TypingVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 2683 /* 4: TypingVisitor < TypingVisitor: superclass typecheck marker */},
+val_t NEW_ColorContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_ColorContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ColorContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ColorContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_colors");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ColorContext_table_computation___ColorContext___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ColorContext_table_computation___ColorContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ColorContext();
+  INIT_ATTRIBUTES__ColorContext(fra.me.REG[0]);
+  table_computation___ColorContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_ColorContext(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_TableInformation[53] = {
+  {(bigint) 255 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableInformation < Object: superclass typecheck marker */},
+  {(bigint) 215 /* 3: TableInformation < ColorContext: superclass typecheck marker */},
+  {(bigint) 255 /* 4: TableInformation < TableInformation: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80495,14 +237815,13 @@ const classtable_elt_t VFT_TypingVisitor[77] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TypingVisitor < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableInformation < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80510,7 +237829,6 @@ const classtable_elt_t VFT_TypingVisitor[77] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80518,75 +237836,112 @@ const classtable_elt_t VFT_TypingVisitor[77] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TypingVisitor < Visitor: superclass init_table position */},
-  {(bigint) typing___TypingVisitor___visit},
-  {(bigint) 2 /* 42: TypingVisitor < AbsSyntaxVisitor: superclass init_table position */},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_char},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_string},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_collection},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_array},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_discrete},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_range},
-  {(bigint) syntax_base___AbsSyntaxVisitor___type_none},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module},
-  {(bigint) syntax_base___AbsSyntaxVisitor___module__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_class__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property},
-  {(bigint) syntax_base___AbsSyntaxVisitor___local_property__eq},
-  {(bigint) syntax_base___AbsSyntaxVisitor___tc},
-  {(bigint) syntax_base___AbsSyntaxVisitor___error},
-  {(bigint) syntax_base___AbsSyntaxVisitor___warning},
-  {(bigint) syntax_base___AbsSyntaxVisitor___check_conform},
-  {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 64: TypingVisitor < TypingVisitor: superclass init_table position */},
-  {(bigint) typing___TypingVisitor___variable_ctx},
-  {(bigint) typing___TypingVisitor___variable_ctx__eq},
-  {(bigint) typing___TypingVisitor___self_type},
-  {(bigint) typing___TypingVisitor___self_type__eq},
-  {(bigint) typing___TypingVisitor___top_block},
-  {(bigint) typing___TypingVisitor___top_block__eq},
-  {(bigint) typing___TypingVisitor___explicit_super_init_calls},
-  {(bigint) typing___TypingVisitor___explicit_super_init_calls__eq},
-  {(bigint) typing___TypingVisitor___explicit_other_init_call},
-  {(bigint) typing___TypingVisitor___explicit_other_init_call__eq},
-  {(bigint) typing___TypingVisitor___init},
-  {(bigint) typing___TypingVisitor___get_default_constructor_for},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: TableInformation < ColorContext: superclass init_table position */},
+  {(bigint) table_computation___ColorContext___color},
+  {(bigint) table_computation___ColorContext___has_color},
+  {(bigint) table_computation___ColorContext___color__eq},
+  {(bigint) table_computation___ColorContext___init},
+  {(bigint) 2 /* 50: TableInformation < TableInformation: superclass init_table position */},
+  {(bigint) table_computation___TableInformation___max_class_table_length},
+  {(bigint) table_computation___TableInformation___max_class_table_length__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TypingVisitor::_module */
-/* 2: Attribute TypingVisitor::_local_class */
-/* 3: Attribute TypingVisitor::_local_property */
-/* 4: Attribute TypingVisitor::_tc */
-/* 5: Attribute TypingVisitor::_variable_ctx */
-/* 6: Attribute TypingVisitor::_self_type */
-/* 7: Attribute TypingVisitor::_top_block */
-/* 8: Attribute TypingVisitor::_explicit_super_init_calls */
-/* 9: Attribute TypingVisitor::_explicit_other_init_call */
-val_t NEW_TypingVisitor(void) {
+/* 1: Object_id */
+/* 2: Attribute TableInformation::_colors */
+/* 3: Attribute TableInformation::_max_class_table_length */
+void INIT_ATTRIBUTES__TableInformation(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableInformation;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//table_computation.nit:27 */
+  ATTR_table_computation___ColorContext____colors(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./compiling//table_computation.nit:56 */
+  ATTR_table_computation___TableInformation____max_class_table_length(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableInformation(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_TypingVisitor;
-  ATTR_typing___TypingVisitor____explicit_other_init_call(obj) = TAG_Bool((int)0);
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_TableInformation;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_typing___TypingVisitor___init(val_t p0, val_t p1) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TypingVisitor();
-  typing___TypingVisitor___init(self, p0, p1, init_table);
-  return self;
+void CHECKNEW_TableInformation(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableInformation;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_colors");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___TableInformation____max_class_table_length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_max_class_table_length");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_VariableContext[47] = {
-  {(bigint) 11 /* 0: Identity */},
-  {(bigint) 3 /* 1: VariableContext < Object: superclass typecheck marker */},
-  {(bigint) 11 /* 2: VariableContext < VariableContext: superclass typecheck marker */},
+val_t NEW_TableInformation_table_computation___ColorContext___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TableInformation_table_computation___ColorContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_TableInformation();
+  INIT_ATTRIBUTES__TableInformation(fra.me.REG[0]);
+  table_computation___ColorContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_TableInformation(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_CompiledClass[61] = {
+  {(bigint) 5263 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: CompiledClass < Object: superclass typecheck marker */},
+  {(bigint) 215 /* 3: CompiledClass < ColorContext: superclass typecheck marker */},
+  {(bigint) 5263 /* 4: CompiledClass < CompiledClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80597,14 +237952,11 @@ const classtable_elt_t VFT_VariableContext[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: VariableContext < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: CompiledClass < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80612,7 +237964,6 @@ const classtable_elt_t VFT_VariableContext[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80620,37 +237971,176 @@ const classtable_elt_t VFT_VariableContext[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: VariableContext < VariableContext: superclass init_table position */},
-  {(bigint) typing___VariableContext_____bra},
-  {(bigint) typing___VariableContext___add},
-  {(bigint) typing___VariableContext___stype},
-  {(bigint) typing___VariableContext___sub},
-  {(bigint) typing___VariableContext___sub_with},
-  {(bigint) typing___VariableContext___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: CompiledClass < ColorContext: superclass init_table position */},
+  {(bigint) table_computation___ColorContext___color},
+  {(bigint) table_computation___ColorContext___has_color},
+  {(bigint) table_computation___ColorContext___color__eq},
+  {(bigint) table_computation___ColorContext___init},
+  {(bigint) 2 /* 50: CompiledClass < CompiledClass: superclass init_table position */},
+  {(bigint) table_computation___CompiledClass___local_class},
+  {(bigint) table_computation___CompiledClass___id},
+  {(bigint) table_computation___CompiledClass___id__eq},
+  {(bigint) table_computation___CompiledClass___class_table},
+  {(bigint) table_computation___CompiledClass___instance_table},
+  {(bigint) table_computation___CompiledClass___class_layout},
+  {(bigint) table_computation___CompiledClass___class_layout__eq},
+  {(bigint) table_computation___CompiledClass___instance_layout},
+  {(bigint) table_computation___CompiledClass___instance_layout__eq},
+  {(bigint) table_computation___CompiledClass___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute VariableContext::_dico */
-val_t NEW_VariableContext(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_VariableContext;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute CompiledClass::_colors */
+/* 3: Attribute CompiledClass::_local_class */
+/* 4: Attribute CompiledClass::_id */
+/* 5: Attribute CompiledClass::_class_table */
+/* 6: Attribute CompiledClass::_instance_table */
+/* 7: Attribute CompiledClass::_class_layout */
+/* 8: Attribute CompiledClass::_instance_layout */
+void INIT_ATTRIBUTES__CompiledClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__CompiledClass;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//table_computation.nit:27 */
+  ATTR_table_computation___ColorContext____colors(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./compiling//table_computation.nit:66 */
+  ATTR_table_computation___CompiledClass____id(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:69 */
+  ATTR_table_computation___CompiledClass____class_table(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:72 */
+  ATTR_table_computation___CompiledClass____instance_table(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = fra.me.REG[0];
+  fra.me.REG[1] = NEW_TableEltComposite_table_computation___TableEltComposite___init(fra.me.REG[1]);
+  /* ./compiling//table_computation.nit:75 */
+  ATTR_table_computation___CompiledClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = fra.me.REG[0];
+  fra.me.REG[1] = NEW_TableEltComposite_table_computation___TableEltComposite___init(fra.me.REG[1]);
+  /* ./compiling//table_computation.nit:78 */
+  ATTR_table_computation___CompiledClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_typing___VariableContext___init() {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_VariableContext();
-  typing___VariableContext___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_SubVariableContext[50] = {
-  {(bigint) 199 /* 0: Identity */},
-  {(bigint) 3 /* 1: SubVariableContext < Object: superclass typecheck marker */},
-  {(bigint) 11 /* 2: SubVariableContext < VariableContext: superclass typecheck marker */},
-  {(bigint) 199 /* 3: SubVariableContext < SubVariableContext: superclass typecheck marker */},
+val_t NEW_CompiledClass(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_CompiledClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_CompiledClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_CompiledClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_colors");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_id");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____class_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____instance_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_instance_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____class_layout(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_class_layout");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___CompiledClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_instance_layout");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CompiledClass_table_computation___CompiledClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 81;
+  fra.me.meth = LOCATE_NEW_CompiledClass_table_computation___CompiledClass___init;
+  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;
+  fra.me.REG[1] = NEW_CompiledClass();
+  /* ./compiling//table_computation.nit:81 */
+  INIT_ATTRIBUTES__CompiledClass(fra.me.REG[1]);
+  table_computation___CompiledClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_CompiledClass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_AbsTableElt[48] = {
+  {(bigint) 235 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AbsTableElt < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: AbsTableElt < AbsTableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80660,14 +238150,13 @@ const classtable_elt_t VFT_SubVariableContext[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: SubVariableContext < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AbsTableElt < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80675,7 +238164,6 @@ const classtable_elt_t VFT_SubVariableContext[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80683,45 +238171,78 @@ const classtable_elt_t VFT_SubVariableContext[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: SubVariableContext < VariableContext: superclass init_table position */},
-  {(bigint) typing___SubVariableContext_____bra},
-  {(bigint) typing___VariableContext___add},
-  {(bigint) typing___SubVariableContext___stype},
-  {(bigint) typing___VariableContext___sub},
-  {(bigint) typing___VariableContext___sub_with},
-  {(bigint) typing___VariableContext___init},
-  {(bigint) 2 /* 47: SubVariableContext < SubVariableContext: superclass init_table position */},
-  {(bigint) typing___SubVariableContext___prev},
-  {(bigint) typing___SubVariableContext___with},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: AbsTableElt < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute SubVariableContext::_dico */
-/* 2: Attribute SubVariableContext::_prev */
-/* 3: Attribute SubVariableContext::_variable */
-/* 4: Attribute SubVariableContext::_var_type */
-val_t NEW_SubVariableContext(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_SubVariableContext;
-  return OBJ2VAL(obj);
-}
-val_t NEW_typing___SubVariableContext___with(val_t p0, val_t p1, val_t p2) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_SubVariableContext();
-  typing___SubVariableContext___with(self, p0, p1, p2, init_table);
-  return self;
+/* 1: Object_id */
+void INIT_ATTRIBUTES__AbsTableElt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AbsTableElt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_AAbsSendExpr[94] = {
-  {(bigint) 3611 /* 0: Identity */},
-  {(bigint) 3 /* 1: AAbsSendExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: AAbsSendExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: AAbsSendExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: AAbsSendExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: AAbsSendExpr < AAbsSendExpr: superclass typecheck marker */},
+val_t NEW_AbsTableElt(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_AbsTableElt;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_AbsTableElt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AbsTableElt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbsTableElt_table_computation___AbsTableElt___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_AbsTableElt_table_computation___AbsTableElt___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_AbsTableElt();
+  INIT_ATTRIBUTES__AbsTableElt(fra.me.REG[0]);
+  table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  CHECKNEW_AbsTableElt(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_TableElt[53] = {
+  {(bigint) 259 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableElt < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableElt < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableElt < TableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80729,14 +238250,14 @@ const classtable_elt_t VFT_AAbsSendExpr[94] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AAbsSendExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableElt < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80744,7 +238265,6 @@ const classtable_elt_t VFT_AAbsSendExpr[94] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80752,101 +238272,98 @@ const classtable_elt_t VFT_AAbsSendExpr[94] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: AAbsSendExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: AAbsSendExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: AAbsSendExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: TableElt < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableElt___compile_to_c},
+  {(bigint) 2 /* 49: TableElt < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableElt___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__TableElt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableElt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableElt(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_TableElt;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableElt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableElt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableElt_table_computation___AbsTableElt___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TableElt_table_computation___AbsTableElt___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_TableElt();
+  INIT_ATTRIBUTES__TableElt(fra.me.REG[0]);
+  table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  CHECKNEW_TableElt(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ModuleTableElt[55] = {
+  {(bigint) 5099 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ModuleTableElt < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: ModuleTableElt < AbsTableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5099 /* 5: ModuleTableElt < ModuleTableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 88: AAbsSendExpr < AAbsSendExpr: superclass init_table position */},
-  {(bigint) typing___AAbsSendExpr___do_typing},
-  {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
-  {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute AAbsSendExpr::_parent */
-/* 2: Attribute AAbsSendExpr::_first_token */
-/* 3: Attribute AAbsSendExpr::_last_token */
-/* 4: Attribute AAbsSendExpr::_stype */
-/* 5: Attribute AAbsSendExpr::_if_true_variable_ctx */
-/* 6: Attribute AAbsSendExpr::_prop */
-/* 7: Attribute AAbsSendExpr::_arguments */
-val_t NEW_AAbsSendExpr(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_AAbsSendExpr;
-  return OBJ2VAL(obj);
-}
-const classtable_elt_t VFT_ASuperInitCall[94] = {
-  {(bigint) 3675 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASuperInitCall < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASuperInitCall < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASuperInitCall < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ASuperInitCall < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ASuperInitCall < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3675 /* 7: ASuperInitCall < ASuperInitCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ASuperInitCall < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ModuleTableElt < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80854,7 +238371,6 @@ const classtable_elt_t VFT_ASuperInitCall[94] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80862,101 +238378,100 @@ const classtable_elt_t VFT_ASuperInitCall[94] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___PNode___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___PNode___visit_all},
-  {(bigint) parser_prod___PNode___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 1 /* 57: ASuperInitCall < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___PNode___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 2 /* 66: ASuperInitCall < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___PExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___PExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 3 /* 71: ASuperInitCall < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 5 /* 76: ASuperInitCall < ASuperInitCall: superclass init_table position */},
-  {(bigint) typing___ASuperInitCall___register_super_init_call},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: ModuleTableElt < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 88: ASuperInitCall < AAbsSendExpr: superclass init_table position */},
-  {(bigint) typing___AAbsSendExpr___do_typing},
-  {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
-  {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
+  {(bigint) compiling_global___ModuleTableElt___value},
+  {(bigint) 2 /* 54: ModuleTableElt < ModuleTableElt: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASuperInitCall::_parent */
-/* 2: Attribute ASuperInitCall::_first_token */
-/* 3: Attribute ASuperInitCall::_last_token */
-/* 4: Attribute ASuperInitCall::_stype */
-/* 5: Attribute ASuperInitCall::_if_true_variable_ctx */
-/* 6: Attribute ASuperInitCall::_prop */
-/* 7: Attribute ASuperInitCall::_arguments */
-val_t NEW_ASuperInitCall(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ModuleTableElt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ModuleTableElt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ModuleTableElt(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_ASuperInitCall;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ModuleTableElt;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-const classtable_elt_t VFT_ASendReassignExpr[102] = {
-  {(bigint) 3811 /* 0: Identity */},
-  {(bigint) 3 /* 1: ASendReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ASendReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ASendReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: ASendReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: ASendReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3391 /* 6: ASendReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3675 /* 7: ASendReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3795 /* 8: ASendReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3811 /* 9: ASendReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+void CHECKNEW_ModuleTableElt(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ModuleTableElt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ModuleTableElt_table_computation___AbsTableElt___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ModuleTableElt_table_computation___AbsTableElt___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ModuleTableElt();
+  INIT_ATTRIBUTES__ModuleTableElt(fra.me.REG[0]);
+  table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  CHECKNEW_ModuleTableElt(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ModuleTableEltGroup[57] = {
+  {(bigint) 5739 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ModuleTableEltGroup < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: ModuleTableEltGroup < AbsTableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5099 /* 5: ModuleTableEltGroup < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 5739 /* 6: ModuleTableEltGroup < ModuleTableEltGroup: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 2 /* 20: ASendReassignExpr < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ModuleTableEltGroup < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -80964,7 +238479,6 @@ const classtable_elt_t VFT_ASendReassignExpr[102] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -80972,97 +238486,105 @@ const classtable_elt_t VFT_ASendReassignExpr[102] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) mmbuilder___PExpr___accept_class_builder},
-  {(bigint) mmbuilder___PNode___accept_class_specialization_builder},
-  {(bigint) mmbuilder___PNode___accept_class_ancestor_builder},
-  {(bigint) mmbuilder___PNode___accept_class_verifier},
-  {(bigint) mmbuilder___PExpr___accept_property_builder},
-  {(bigint) mmbuilder___PExpr___accept_property_verifier},
-  {(bigint) syntax_base___PNode___accept_abs_syntax_visitor},
-  {(bigint) parser_prod___PNode___parent},
-  {(bigint) parser_prod___PNode___parent__eq},
-  {(bigint) parser_prod___PNode___remove_child},
-  {(bigint) parser_prod___ASendExpr___replace_child},
-  {(bigint) parser_prod___Prod___replace_with},
-  {(bigint) parser_prod___ASendExpr___visit_all},
-  {(bigint) parser_prod___ASendExpr___visit_all_reverse},
-  {(bigint) parser_prod___Prod___locate},
-  {(bigint) parser_prod___Prod___line_number},
-  {(bigint) parser_prod___PNode___printl},
-  {(bigint) 3 /* 57: ASendReassignExpr < PNode: superclass init_table position */},
-  {(bigint) control_flow___PNode___accept_control_flow},
-  {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___ASendExpr___after_typing},
-  {(bigint) parser_prod___Prod___first_token},
-  {(bigint) parser_prod___Prod___first_token__eq},
-  {(bigint) parser_prod___Prod___last_token},
-  {(bigint) parser_prod___Prod___last_token__eq},
-  {(bigint) parser_prod___PNode___replace_with},
-  {(bigint) 4 /* 66: ASendReassignExpr < Prod: superclass init_table position */},
-  {(bigint) compiling_methods___ASendReassignExpr___compile_expr},
-  {(bigint) compiling_methods___PExpr___prepare_compile_stmt},
-  {(bigint) compiling_methods___ASendExpr___compile_stmt},
-  {(bigint) typing___PExpr___stype},
-  {(bigint) 5 /* 71: ASendReassignExpr < PExpr: superclass init_table position */},
-  {(bigint) typing___PExpr___is_implicit_self},
-  {(bigint) typing___PExpr___is_self},
-  {(bigint) typing___PExpr___is_variable},
-  {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) 0 /* 76: ASendReassignExpr < ASuperInitCall: superclass init_table position */},
-  {(bigint) typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 8 /* 78: ASendReassignExpr < ASendReassignExpr: superclass init_table position */},
-  {(bigint) typing___ASendReassignExpr___read_prop},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___ModuleTableEltGroup___compile_macros},
+  {(bigint) 1 /* 46: ModuleTableEltGroup < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
   {0} /* Class Hole :( */,
-  {(bigint) typing___AReassignFormExpr___do_lvalue_typing},
-  {(bigint) typing___AReassignFormExpr___assign_method},
-  {(bigint) 7 /* 83: ASendReassignExpr < AReassignFormExpr: superclass init_table position */},
-  {(bigint) parser_nodes___AReassignFormExpr___n_assign_op},
-  {(bigint) parser_nodes___AReassignFormExpr___n_assign_op__eq},
-  {(bigint) parser_nodes___AReassignFormExpr___n_value},
-  {(bigint) parser_nodes___AReassignFormExpr___n_value__eq},
-  {(bigint) 1 /* 88: ASendReassignExpr < AAbsSendExpr: superclass init_table position */},
-  {(bigint) typing___AAbsSendExpr___do_typing},
-  {(bigint) typing___AAbsSendExpr___get_property},
-  {(bigint) typing___AAbsSendExpr___process_signature},
-  {(bigint) typing___AAbsSendExpr___prop},
-  {(bigint) typing___AAbsSendExpr___arguments},
-  {(bigint) typing___ASendExpr___name},
-  {(bigint) typing___ASendExpr___raw_arguments},
-  {(bigint) typing___ASendReassignExpr___do_all_typing},
-  {(bigint) parser_prod___ASendExpr___empty_init},
-  {(bigint) parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 6 /* 99: ASendReassignExpr < ASendExpr: superclass init_table position */},
-  {(bigint) parser_nodes___ASendExpr___n_expr},
-  {(bigint) parser_prod___ASendExpr___n_expr__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) compiling_global___ModuleTableEltGroup___value},
+  {(bigint) 2 /* 54: ModuleTableEltGroup < ModuleTableElt: superclass init_table position */},
+  {(bigint) 3 /* 55: ModuleTableEltGroup < ModuleTableEltGroup: superclass init_table position */},
+  {(bigint) table_computation___ModuleTableEltGroup___elements},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute ASendReassignExpr::_parent */
-/* 2: Attribute ASendReassignExpr::_first_token */
-/* 3: Attribute ASendReassignExpr::_last_token */
-/* 4: Attribute ASendReassignExpr::_stype */
-/* 5: Attribute ASendReassignExpr::_if_true_variable_ctx */
-/* 6: Attribute ASendReassignExpr::_prop */
-/* 7: Attribute ASendReassignExpr::_arguments */
-/* 8: Attribute ASendReassignExpr::_assign_method */
-/* 9: Attribute ASendReassignExpr::_n_assign_op */
-/* 10: Attribute ASendReassignExpr::_n_value */
-/* 11: Attribute ASendReassignExpr::_n_expr */
-/* 12: Attribute ASendReassignExpr::_read_prop */
-val_t NEW_ASendReassignExpr(void) {
+/* 1: Object_id */
+/* 2: Attribute ModuleTableEltGroup::_elements */
+void INIT_ATTRIBUTES__ModuleTableEltGroup(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ModuleTableEltGroup;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//table_computation.nit:444 */
+  ATTR_table_computation___ModuleTableEltGroup____elements(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ModuleTableEltGroup(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_ASendReassignExpr;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_ModuleTableEltGroup;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ModuleTableEltGroup(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ModuleTableEltGroup;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___ModuleTableEltGroup____elements(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_elements");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ModuleTableEltGroup_table_computation___AbsTableElt___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ModuleTableEltGroup_table_computation___AbsTableElt___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ModuleTableEltGroup();
+  INIT_ATTRIBUTES__ModuleTableEltGroup(fra.me.REG[0]);
+  table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  CHECKNEW_ModuleTableEltGroup(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_SrcModuleLoader[50] = {
-  {(bigint) 203 /* 0: Identity */},
-  {(bigint) 3 /* 1: SrcModuleLoader < Object: superclass typecheck marker */},
-  {(bigint) 79 /* 2: SrcModuleLoader < ModuleLoader: superclass typecheck marker */},
-  {(bigint) 203 /* 3: SrcModuleLoader < SrcModuleLoader: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltProp[56] = {
+  {(bigint) 5319 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltProp < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltProp < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltProp < TableElt: superclass typecheck marker */},
+  {(bigint) 5319 /* 5: TableEltProp < TableEltProp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81072,14 +238594,11 @@ const classtable_elt_t VFT_SrcModuleLoader[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: SrcModuleLoader < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltProp < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81087,7 +238606,6 @@ const classtable_elt_t VFT_SrcModuleLoader[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81095,40 +238613,102 @@ const classtable_elt_t VFT_SrcModuleLoader[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: SrcModuleLoader < ModuleLoader: superclass init_table position */},
-  {(bigint) syntax___SrcModuleLoader___file_type},
-  {(bigint) mmloader___ModuleLoader___try_to_load_dir},
-  {(bigint) mmloader___ModuleLoader___can_handle},
-  {(bigint) mmloader___ModuleLoader___load_and_process_module},
-  {(bigint) mmloader___ModuleLoader___load_module},
-  {(bigint) syntax___SrcModuleLoader___parse_file},
-  {(bigint) syntax___SrcModuleLoader___process_metamodel},
-  {(bigint) 2 /* 48: SrcModuleLoader < SrcModuleLoader: superclass init_table position */},
-  {(bigint) syntax___SrcModuleLoader___init},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_SrcModuleLoader(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: TableEltProp < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableElt___compile_to_c},
+  {(bigint) 2 /* 49: TableEltProp < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableElt___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) 3 /* 53: TableEltProp < TableEltProp: superclass init_table position */},
+  {(bigint) table_computation___TableEltProp___property},
+  {(bigint) table_computation___TableEltProp___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TableEltProp::_property */
+void INIT_ATTRIBUTES__TableEltProp(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltProp;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltProp(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_SrcModuleLoader;
-  return OBJ2VAL(obj);
-}
-val_t NEW_syntax___SrcModuleLoader___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_SrcModuleLoader();
-  syntax___SrcModuleLoader___init(self, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_TableEltProp;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltProp(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltProp;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___TableEltProp____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltProp_table_computation___TableEltProp___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 452;
+  fra.me.meth = LOCATE_NEW_TableEltProp_table_computation___TableEltProp___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltProp();
+  /* ./compiling//table_computation.nit:452 */
+  INIT_ATTRIBUTES__TableEltProp(fra.me.REG[1]);
+  table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltProp(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_AbstractCompiler[91] = {
-  {(bigint) 3239 /* 0: Identity */},
-  {(bigint) 3 /* 1: AbstractCompiler < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 2: AbstractCompiler < MMContext: superclass typecheck marker */},
-  {(bigint) 179 /* 3: AbstractCompiler < ToolContext: superclass typecheck marker */},
-  {(bigint) 3239 /* 4: AbstractCompiler < AbstractCompiler: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltMeth[57] = {
+  {(bigint) 6011 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltMeth < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltMeth < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltMeth < TableElt: superclass typecheck marker */},
+  {(bigint) 5319 /* 5: TableEltMeth < TableEltProp: superclass typecheck marker */},
+  {(bigint) 6011 /* 6: TableEltMeth < TableEltMeth: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81137,14 +238717,11 @@ const classtable_elt_t VFT_AbstractCompiler[91] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: AbstractCompiler < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltMeth < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81152,7 +238729,6 @@ const classtable_elt_t VFT_AbstractCompiler[91] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81160,197 +238736,103 @@ const classtable_elt_t VFT_AbstractCompiler[91] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: AbstractCompiler < MMContext: superclass init_table position */},
-  {(bigint) abstractmetamodel___MMContext___init},
-  {(bigint) abstractmetamodel___MMContext___module_hierarchy},
-  {(bigint) abstractmetamodel___MMContext___class_hierarchy},
-  {(bigint) abstractmetamodel___MMContext___modules},
-  {(bigint) abstractmetamodel___MMContext___add_module},
-  {(bigint) abstractmetamodel___MMContext___add_global_class},
-  {(bigint) abstractmetamodel___MMContext___add_local_class},
-  {(bigint) compiling_base___ToolContext___global},
-  {(bigint) compiling_base___ToolContext___global__eq},
-  {(bigint) compiling_base___ToolContext___attr_sim},
-  {(bigint) compiling_base___ToolContext___attr_sim__eq},
-  {(bigint) compiling_base___ToolContext___compdir},
-  {(bigint) compiling_base___ToolContext___compdir__eq},
-  {(bigint) compiling_base___ToolContext___clibdir},
-  {(bigint) compiling_base___ToolContext___clibdir__eq},
-  {(bigint) compiling_base___ToolContext___bindir},
-  {(bigint) compiling_base___ToolContext___bindir__eq},
-  {(bigint) compiling_base___ToolContext___output_file},
-  {(bigint) compiling_base___ToolContext___output_file__eq},
-  {(bigint) compiling_base___ToolContext___boost},
-  {(bigint) compiling_base___ToolContext___boost__eq},
-  {(bigint) compiling_base___ToolContext___no_cc},
-  {(bigint) compiling_base___ToolContext___no_cc__eq},
-  {(bigint) compiling_base___ToolContext___ext_prefix},
-  {(bigint) compiling_base___ToolContext___ext_prefix__eq},
-  {(bigint) 2 /* 66: AbstractCompiler < ToolContext: superclass init_table position */},
-  {(bigint) mmloader___ToolContext___error_count},
-  {(bigint) mmloader___ToolContext___warning_count},
-  {(bigint) mmloader___ToolContext___error},
-  {(bigint) mmloader___ToolContext___warning},
-  {(bigint) mmloader___ToolContext___paths},
-  {(bigint) mmloader___ToolContext___option_context},
-  {(bigint) mmloader___ToolContext___opt_warn},
-  {(bigint) mmloader___ToolContext___opt_path},
-  {(bigint) mmloader___ToolContext___opt_log},
-  {(bigint) mmloader___ToolContext___opt_only_metamodel},
-  {(bigint) mmloader___ToolContext___opt_only_parse},
-  {(bigint) mmloader___ToolContext___opt_help},
-  {(bigint) mmloader___ToolContext___init},
-  {(bigint) mmloader___ToolContext___process_options},
-  {(bigint) mmloader___ToolContext___try_to_load},
-  {(bigint) mmloader___ToolContext___get_module_from_filename},
-  {(bigint) mmloader___ToolContext___get_module},
-  {(bigint) mmloader___ToolContext___directory_for},
-  {(bigint) mmloader___ToolContext___register_loader},
-  {(bigint) 3 /* 86: AbstractCompiler < AbstractCompiler: superclass init_table position */},
-  {(bigint) abstracttool___AbstractCompiler___init},
-  {(bigint) abstracttool___AbstractCompiler___exec_cmd_line},
-  {(bigint) abstracttool___AbstractCompiler___perform_work},
-  {(bigint) abstracttool___AbstractCompiler___dump_context_info},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___TableEltMeth___compile_macros},
+  {(bigint) 1 /* 46: TableEltMeth < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltMeth___compile_to_c},
+  {(bigint) 2 /* 49: TableEltMeth < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableElt___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) 3 /* 53: TableEltMeth < TableEltProp: superclass init_table position */},
+  {(bigint) table_computation___TableEltProp___property},
+  {(bigint) table_computation___TableEltProp___init},
+  {(bigint) 4 /* 56: TableEltMeth < TableEltMeth: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute AbstractCompiler::_module_hierarchy */
-/* 2: Attribute AbstractCompiler::_class_hierarchy */
-/* 3: Attribute AbstractCompiler::_global_classes */
-/* 4: Attribute AbstractCompiler::_modules */
-/* 5: Attribute AbstractCompiler::_global */
-/* 6: Attribute AbstractCompiler::_attr_sim */
-/* 7: Attribute AbstractCompiler::_compdir */
-/* 8: Attribute AbstractCompiler::_clibdir */
-/* 9: Attribute AbstractCompiler::_bindir */
-/* 10: Attribute AbstractCompiler::_output_file */
-/* 11: Attribute AbstractCompiler::_boost */
-/* 12: Attribute AbstractCompiler::_no_cc */
-/* 13: Attribute AbstractCompiler::_ext_prefix */
-/* 14: Attribute AbstractCompiler::_error_count */
-/* 15: Attribute AbstractCompiler::_warning_count */
-/* 16: Attribute AbstractCompiler::_paths */
-/* 17: Attribute AbstractCompiler::_loaders */
-/* 18: Attribute AbstractCompiler::_option_context */
-/* 19: Attribute AbstractCompiler::_opt_warn */
-/* 20: Attribute AbstractCompiler::_opt_path */
-/* 21: Attribute AbstractCompiler::_opt_log */
-/* 22: Attribute AbstractCompiler::_opt_only_metamodel */
-/* 23: Attribute AbstractCompiler::_opt_only_parse */
-/* 24: Attribute AbstractCompiler::_opt_help */
-/* 25: Attribute AbstractCompiler::_processing_modules */
-/* 26: Attribute AbstractCompiler::_path_dirs */
-val_t NEW_AbstractCompiler(void) {
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  val_t variable3;
-  val_t variable4;
-  val_t variable5;
-  val_t variable6;
-  val_t variable7;
-  val_t variable8;
-  val_t variable9;
-  val_t variable10;
-  val_t variable11;
-  val_t variable12;
-  val_t variable13;
-  val_t variable14;
-  val_t variable15;
-  val_t variable16;
-  val_t variable17;
-  val_t variable18;
-  val_t variable19;
-  val_t variable20;
-  val_t variable21;
-  val_t variable22;
-  val_t variable23;
-  val_t variable24;
-  val_t variable25;
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 27);
-  obj->vft = (classtable_elt_t*)VFT_AbstractCompiler;
-  variable0 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMContext____module_hierarchy(obj) = variable0;
-  variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
-  ATTR_abstractmetamodel___MMContext____class_hierarchy(obj) = variable1;
-  variable2 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMContext____global_classes(obj) = variable2;
-  variable3 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_abstractmetamodel___MMContext____modules(obj) = variable3;
-  ATTR_mmloader___ToolContext____error_count(obj) = TAG_Int((bigint)0);
-  ATTR_mmloader___ToolContext____warning_count(obj) = TAG_Int((bigint)0);
-  variable4 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_mmloader___ToolContext____loaders(obj) = variable4;
-  variable5 = NEW_opts___OptionContext___init(); /*new OptionContext*/
-  ATTR_mmloader___ToolContext____option_context(obj) = variable5;
-  variable6 = NEW_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
-  variable7 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable8 = NEW_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable8) /*AbstractArray::add*/;
-  variable9 = NEW_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable9) /*AbstractArray::add*/;
-  variable8 = NEW_opts___OptionBool___init(variable6, variable7); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_warn(obj) = variable8;
-  variable9 = NEW_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
-  variable10 = NEW_array___Array___with_capacity(TAG_Int(2)); /*new Array[E]*/
-  variable11 = NEW_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable11) /*AbstractArray::add*/;
-  variable12 = NEW_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable10,COLOR_abstract_collection___SimpleCollection___add))(variable10, variable12) /*AbstractArray::add*/;
-  variable11 = NEW_opts___OptionArray___init(variable9, variable10); /*new OptionArray*/
-  ATTR_mmloader___ToolContext____opt_path(obj) = variable11;
-  variable12 = NEW_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
-  variable13 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable14 = NEW_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable13,COLOR_abstract_collection___SimpleCollection___add))(variable13, variable14) /*AbstractArray::add*/;
-  variable14 = NEW_opts___OptionBool___init(variable12, variable13); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_log(obj) = variable14;
-  variable15 = NEW_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
-  variable16 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable17 = NEW_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable16,COLOR_abstract_collection___SimpleCollection___add))(variable16, variable17) /*AbstractArray::add*/;
-  variable17 = NEW_opts___OptionBool___init(variable15, variable16); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable17;
-  variable18 = NEW_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
-  variable19 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
-  variable20 = NEW_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable19,COLOR_abstract_collection___SimpleCollection___add))(variable19, variable20) /*AbstractArray::add*/;
-  variable20 = NEW_opts___OptionBool___init(variable18, variable19); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable20;
-  variable21 = NEW_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
-  variable22 = NEW_array___Array___with_capacity(TAG_Int(3)); /*new Array[E]*/
-  variable23 = NEW_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable23) /*AbstractArray::add*/;
-  variable24 = NEW_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable24) /*AbstractArray::add*/;
-  variable25 = NEW_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable22,COLOR_abstract_collection___SimpleCollection___add))(variable22, variable25) /*AbstractArray::add*/;
-  variable23 = NEW_opts___OptionBool___init(variable21, variable22); /*new OptionBool*/
-  ATTR_mmloader___ToolContext____opt_help(obj) = variable23;
-  variable24 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
-  ATTR_mmloader___ToolContext____processing_modules(obj) = variable24;
-  variable25 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_mmloader___ToolContext____path_dirs(obj) = variable25;
-  ATTR_compiling_base___ToolContext____global(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____attr_sim(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____boost(obj) = TAG_Bool((int)0);
-  ATTR_compiling_base___ToolContext____no_cc(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_abstracttool___AbstractCompiler___init() {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_AbstractCompiler();
-  abstracttool___AbstractCompiler___init(self, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute TableEltMeth::_property */
+void INIT_ATTRIBUTES__TableEltMeth(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltMeth;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_CompilerVisitor[83] = {
-  {(bigint) 151 /* 0: Identity */},
-  {(bigint) 3 /* 1: CompilerVisitor < Object: superclass typecheck marker */},
-  {(bigint) 151 /* 2: CompilerVisitor < CompilerVisitor: superclass typecheck marker */},
+val_t NEW_TableEltMeth(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_TableEltMeth;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltMeth(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltMeth;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___TableEltProp____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltMeth_table_computation___TableEltProp___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 452;
+  fra.me.meth = LOCATE_NEW_TableEltMeth_table_computation___TableEltProp___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltMeth();
+  /* ./compiling//table_computation.nit:452 */
+  INIT_ATTRIBUTES__TableEltMeth(fra.me.REG[1]);
+  table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltMeth(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_TableEltSuper[57] = {
+  {(bigint) 6007 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltSuper < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltSuper < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltSuper < TableElt: superclass typecheck marker */},
+  {(bigint) 5319 /* 5: TableEltSuper < TableEltProp: superclass typecheck marker */},
+  {(bigint) 6007 /* 6: TableEltSuper < TableEltSuper: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81361,14 +238843,9 @@ const classtable_elt_t VFT_CompilerVisitor[83] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) compiling_base___CompilerVisitor___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: CompilerVisitor < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltSuper < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81376,7 +238853,6 @@ const classtable_elt_t VFT_CompilerVisitor[83] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81384,98 +238860,103 @@ const classtable_elt_t VFT_CompilerVisitor[83] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_global___CompilerVisitor___global_analysis},
-  {(bigint) compiling_global___CompilerVisitor___global_analysis__eq},
-  {(bigint) compiling_methods___CompilerVisitor___compile_stmt},
-  {(bigint) compiling_methods___CompilerVisitor___compile_expr},
-  {(bigint) compiling_methods___CompilerVisitor___ensure_var},
-  {(bigint) compiling_methods___CompilerVisitor___add_assignment},
-  {(bigint) compiling_methods___CompilerVisitor___variable},
-  {(bigint) compiling_methods___CompilerVisitor___get_var},
-  {(bigint) compiling_methods___CompilerVisitor___free_var},
-  {(bigint) compiling_methods___CompilerVisitor___clear},
-  {(bigint) compiling_methods___CompilerVisitor___varnames},
-  {(bigint) compiling_methods___CompilerVisitor___has_return},
-  {(bigint) compiling_methods___CompilerVisitor___has_return__eq},
-  {(bigint) compiling_methods___CompilerVisitor___method_params},
-  {(bigint) compiling_methods___CompilerVisitor___method_params__eq},
-  {(bigint) compiling_methods___CompilerVisitor___method},
-  {(bigint) compiling_methods___CompilerVisitor___method__eq},
-  {(bigint) compiling_methods___CompilerVisitor___return_label},
-  {(bigint) compiling_methods___CompilerVisitor___return_label__eq},
-  {(bigint) compiling_methods___CompilerVisitor___break_label},
-  {(bigint) compiling_methods___CompilerVisitor___break_label__eq},
-  {(bigint) compiling_methods___CompilerVisitor___continue_label},
-  {(bigint) compiling_methods___CompilerVisitor___continue_label__eq},
-  {(bigint) compiling_methods___CompilerVisitor___return_value},
-  {(bigint) compiling_methods___CompilerVisitor___return_value__eq},
-  {(bigint) compiling_methods___CompilerVisitor___printf_locate_error},
-  {(bigint) compiling_base___CompilerVisitor___init},
-  {(bigint) compiling_methods___CompilerVisitor___invoke_super_init_calls_after},
-  {(bigint) 1 /* 68: CompilerVisitor < CompilerVisitor: superclass init_table position */},
-  {(bigint) compiling_base___CompilerVisitor___add_decl},
-  {(bigint) compiling_base___CompilerVisitor___add_instr},
-  {(bigint) compiling_base___CompilerVisitor___new_number},
-  {(bigint) compiling_base___CompilerVisitor___indent},
-  {(bigint) compiling_base___CompilerVisitor___unindent},
-  {(bigint) compiling_base___CompilerVisitor___module},
-  {(bigint) compiling_base___CompilerVisitor___module__eq},
-  {(bigint) compiling_base___CompilerVisitor___ctx},
-  {(bigint) compiling_base___CompilerVisitor___ctx__eq},
-  {(bigint) compiling_base___CompilerVisitor___indent_level},
-  {(bigint) compiling_base___CompilerVisitor___indent_level__eq},
-  {(bigint) compiling_base___CompilerVisitor___tc},
-  {(bigint) compiling_base___CompilerVisitor___tc__eq},
-  {(bigint) compiling_methods___CompilerVisitor___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute CompilerVisitor::_global_analysis */
-/* 2: Attribute CompilerVisitor::_variable_index */
-/* 3: Attribute CompilerVisitor::_variable_index_max */
-/* 4: Attribute CompilerVisitor::_varnames */
-/* 5: Attribute CompilerVisitor::_has_return */
-/* 6: Attribute CompilerVisitor::_method_params */
-/* 7: Attribute CompilerVisitor::_method */
-/* 8: Attribute CompilerVisitor::_return_label */
-/* 9: Attribute CompilerVisitor::_break_label */
-/* 10: Attribute CompilerVisitor::_continue_label */
-/* 11: Attribute CompilerVisitor::_return_value */
-/* 12: Attribute CompilerVisitor::_number_cpt */
-/* 13: Attribute CompilerVisitor::_module */
-/* 14: Attribute CompilerVisitor::_ctx */
-/* 15: Attribute CompilerVisitor::_indent_level */
-/* 16: Attribute CompilerVisitor::_tc */
-val_t NEW_CompilerVisitor(void) {
-  val_t variable0;
-  val_t variable1;
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___TableEltSuper___compile_macros},
+  {(bigint) 1 /* 46: TableEltSuper < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltSuper___compile_to_c},
+  {(bigint) 2 /* 49: TableEltSuper < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableElt___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) 3 /* 53: TableEltSuper < TableEltProp: superclass init_table position */},
+  {(bigint) table_computation___TableEltProp___property},
+  {(bigint) table_computation___TableEltProp___init},
+  {(bigint) 4 /* 56: TableEltSuper < TableEltSuper: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TableEltSuper::_property */
+void INIT_ATTRIBUTES__TableEltSuper(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltSuper;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltSuper(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 17);
-  obj->vft = (classtable_elt_t*)VFT_CompilerVisitor;
-  ATTR_compiling_base___CompilerVisitor____number_cpt(obj) = TAG_Int((bigint)0);
-  variable0 = NEW_compiling_base___CContext___init(); /*new CContext*/
-  ATTR_compiling_base___CompilerVisitor____ctx(obj) = variable0;
-  ATTR_compiling_base___CompilerVisitor____indent_level(obj) = TAG_Int((bigint)0);
-  ATTR_compiling_methods___CompilerVisitor____variable_index(obj) = TAG_Int((bigint)0);
-  ATTR_compiling_methods___CompilerVisitor____variable_index_max(obj) = TAG_Int((bigint)0);
-  variable1 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
-  ATTR_compiling_methods___CompilerVisitor____varnames(obj) = variable1;
-  ATTR_compiling_methods___CompilerVisitor____has_return(obj) = TAG_Bool((int)0);
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_base___CompilerVisitor___init(val_t p0) {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_CompilerVisitor();
-  compiling_methods___CompilerVisitor___init(self, p0, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_TableEltSuper;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltSuper(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltSuper;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___TableEltProp____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltSuper_table_computation___TableEltProp___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 452;
+  fra.me.meth = LOCATE_NEW_TableEltSuper_table_computation___TableEltProp___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltSuper();
+  /* ./compiling//table_computation.nit:452 */
+  INIT_ATTRIBUTES__TableEltSuper(fra.me.REG[1]);
+  table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltSuper(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_CContext[45] = {
-  {(bigint) 167 /* 0: Identity */},
-  {(bigint) 3 /* 1: CContext < Object: superclass typecheck marker */},
-  {(bigint) 167 /* 2: CContext < CContext: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltAttr[57] = {
+  {(bigint) 6023 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltAttr < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltAttr < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltAttr < TableElt: superclass typecheck marker */},
+  {(bigint) 5319 /* 5: TableEltAttr < TableEltProp: superclass typecheck marker */},
+  {(bigint) 6023 /* 6: TableEltAttr < TableEltAttr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81486,14 +238967,9 @@ const classtable_elt_t VFT_CContext[45] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: CContext < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltAttr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81501,7 +238977,6 @@ const classtable_elt_t VFT_CContext[45] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81509,43 +238984,103 @@ const classtable_elt_t VFT_CContext[45] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: CContext < CContext: superclass init_table position */},
-  {(bigint) compiling_base___CContext___decls},
-  {(bigint) compiling_base___CContext___instrs},
-  {(bigint) compiling_base___CContext___append},
-  {(bigint) compiling_base___CContext___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___TableEltAttr___compile_macros},
+  {(bigint) 1 /* 46: TableEltAttr < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltAttr___compile_to_c},
+  {(bigint) 2 /* 49: TableEltAttr < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableElt___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) 3 /* 53: TableEltAttr < TableEltProp: superclass init_table position */},
+  {(bigint) table_computation___TableEltProp___property},
+  {(bigint) table_computation___TableEltProp___init},
+  {(bigint) 4 /* 56: TableEltAttr < TableEltAttr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute CContext::_decls */
-/* 2: Attribute CContext::_instrs */
-val_t NEW_CContext(void) {
-  val_t variable0;
-  val_t variable1;
+/* 1: Object_id */
+/* 2: Attribute TableEltAttr::_property */
+void INIT_ATTRIBUTES__TableEltAttr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltAttr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltAttr(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_CContext;
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_compiling_base___CContext____decls(obj) = variable0;
-  variable1 = NEW_array___Array___init(); /*new Array[E]*/
-  ATTR_compiling_base___CContext____instrs(obj) = variable1;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_base___CContext___init() {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_CContext();
-  compiling_base___CContext___init(self, init_table);
-  return self;
+  obj->vft = (classtable_elt_t*)VFT_TableEltAttr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltAttr(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltAttr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___TableEltProp____property(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_property");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltAttr_table_computation___TableEltProp___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 452;
+  fra.me.meth = LOCATE_NEW_TableEltAttr_table_computation___TableEltProp___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltAttr();
+  /* ./compiling//table_computation.nit:452 */
+  INIT_ATTRIBUTES__TableEltAttr(fra.me.REG[1]);
+  table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltAttr(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_PrimitiveInfo[48] = {
-  {(bigint) 47 /* 0: Identity */},
-  {(bigint) 3 /* 1: PrimitiveInfo < Object: superclass typecheck marker */},
-  {(bigint) 47 /* 2: PrimitiveInfo < PrimitiveInfo: superclass typecheck marker */},
+const classtable_elt_t VFT_AbsTableEltClass[59] = {
+  {(bigint) 5299 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: AbsTableEltClass < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: AbsTableEltClass < AbsTableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 5299 /* 6: AbsTableEltClass < AbsTableEltClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81554,14 +239089,11 @@ const classtable_elt_t VFT_PrimitiveInfo[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: PrimitiveInfo < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: AbsTableEltClass < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81569,7 +239101,6 @@ const classtable_elt_t VFT_PrimitiveInfo[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81577,41 +239108,106 @@ const classtable_elt_t VFT_PrimitiveInfo[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: PrimitiveInfo < PrimitiveInfo: superclass init_table position */},
-  {(bigint) compiling_base___PrimitiveInfo___name},
-  {(bigint) compiling_base___PrimitiveInfo___name__eq},
-  {(bigint) compiling_base___PrimitiveInfo___tagged},
-  {(bigint) compiling_base___PrimitiveInfo___tagged__eq},
-  {(bigint) compiling_base___PrimitiveInfo___cname},
-  {(bigint) compiling_base___PrimitiveInfo___cname__eq},
-  {(bigint) compiling_base___PrimitiveInfo___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) 1 /* 46: AbsTableEltClass < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) compiling_global___AbsTableEltClass___symbol},
+  {(bigint) 2 /* 56: AbsTableEltClass < AbsTableEltClass: superclass init_table position */},
+  {(bigint) table_computation___AbsTableEltClass___local_class},
+  {(bigint) table_computation___AbsTableEltClass___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute PrimitiveInfo::_name */
-/* 2: Attribute PrimitiveInfo::_tagged */
-/* 3: Attribute PrimitiveInfo::_cname */
-val_t NEW_PrimitiveInfo(void) {
+/* 1: Object_id */
+/* 2: Attribute AbsTableEltClass::_local_class */
+void INIT_ATTRIBUTES__AbsTableEltClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__AbsTableEltClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AbsTableEltClass(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_PrimitiveInfo;
-  ATTR_compiling_base___PrimitiveInfo____tagged(obj) = TAG_Bool((int)0);
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_AbsTableEltClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_compiling_base___PrimitiveInfo___init() {
-  int init_table[2] = {0, 0};
-  val_t self = NEW_PrimitiveInfo();
-  compiling_base___PrimitiveInfo___init(self, init_table);
-  return self;
+void CHECKNEW_AbsTableEltClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_AbsTableEltClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_ColorContext[44] = {
-  {(bigint) 159 /* 0: Identity */},
-  {(bigint) 3 /* 1: ColorContext < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 2: ColorContext < ColorContext: superclass typecheck marker */},
+val_t NEW_AbsTableEltClass_table_computation___AbsTableEltClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 479;
+  fra.me.meth = LOCATE_NEW_AbsTableEltClass_table_computation___AbsTableEltClass___init;
+  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;
+  fra.me.REG[1] = NEW_AbsTableEltClass();
+  /* ./compiling//table_computation.nit:479 */
+  INIT_ATTRIBUTES__AbsTableEltClass(fra.me.REG[1]);
+  table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_AbsTableEltClass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_TableEltClass[60] = {
+  {(bigint) 5343 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltClass < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltClass < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltClass < TableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5299 /* 6: TableEltClass < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 5343 /* 7: TableEltClass < TableEltClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81621,14 +239217,9 @@ const classtable_elt_t VFT_ColorContext[44] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ColorContext < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltClass < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81636,7 +239227,6 @@ const classtable_elt_t VFT_ColorContext[44] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81644,29 +239234,106 @@ const classtable_elt_t VFT_ColorContext[44] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ColorContext < ColorContext: superclass init_table position */},
-  {(bigint) compiling_global___ColorContext___color},
-  {(bigint) compiling_global___ColorContext___has_color},
-  {(bigint) compiling_global___ColorContext___color__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute ColorContext::_colors */
-val_t NEW_ColorContext(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) 1 /* 46: TableEltClass < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableElt___compile_to_c},
+  {(bigint) 2 /* 49: TableEltClass < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableEltClass___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) compiling_global___AbsTableEltClass___symbol},
+  {(bigint) 3 /* 56: TableEltClass < AbsTableEltClass: superclass init_table position */},
+  {(bigint) table_computation___AbsTableEltClass___local_class},
+  {(bigint) table_computation___AbsTableEltClass___init},
+  {(bigint) 4 /* 59: TableEltClass < TableEltClass: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TableEltClass::_local_class */
+void INIT_ATTRIBUTES__TableEltClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClass(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_ColorContext;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClass;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltClass(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltClass;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClass_table_computation___AbsTableEltClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 479;
+  fra.me.meth = LOCATE_NEW_TableEltClass_table_computation___AbsTableEltClass___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltClass();
+  /* ./compiling//table_computation.nit:479 */
+  INIT_ATTRIBUTES__TableEltClass(fra.me.REG[1]);
+  table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltClass(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_GlobalAnalysis[50] = {
-  {(bigint) 2631 /* 0: Identity */},
-  {(bigint) 3 /* 1: GlobalAnalysis < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 2: GlobalAnalysis < ColorContext: superclass typecheck marker */},
-  {(bigint) 2631 /* 3: GlobalAnalysis < GlobalAnalysis: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_TableEltClassId[59] = {
+  {(bigint) 5339 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltClassId < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltClassId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 5339 /* 4: TableEltClassId < TableEltClassId: superclass typecheck marker */},
+  {(bigint) 5099 /* 5: TableEltClassId < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 5299 /* 6: TableEltClassId < AbsTableEltClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81674,15 +239341,12 @@ const classtable_elt_t VFT_GlobalAnalysis[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: GlobalAnalysis < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltClassId < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81690,7 +239354,6 @@ const classtable_elt_t VFT_GlobalAnalysis[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81698,45 +239361,107 @@ const classtable_elt_t VFT_GlobalAnalysis[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: GlobalAnalysis < ColorContext: superclass init_table position */},
-  {(bigint) compiling_global___ColorContext___color},
-  {(bigint) compiling_global___ColorContext___has_color},
-  {(bigint) compiling_global___ColorContext___color__eq},
-  {(bigint) 2 /* 44: GlobalAnalysis < GlobalAnalysis: superclass init_table position */},
-  {(bigint) compiling_global___GlobalAnalysis___compiled_classes},
-  {(bigint) compiling_global___GlobalAnalysis___module},
-  {(bigint) compiling_global___GlobalAnalysis___max_class_table_length},
-  {(bigint) compiling_global___GlobalAnalysis___max_class_table_length__eq},
-  {(bigint) compiling_global___GlobalAnalysis___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) 1 /* 46: TableEltClassId < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) 4 /* 48: TableEltClassId < TableEltClassId: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) compiling_global___TableEltClassId___value},
+  {(bigint) 2 /* 54: TableEltClassId < ModuleTableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltClassId___symbol},
+  {(bigint) 3 /* 56: TableEltClassId < AbsTableEltClass: superclass init_table position */},
+  {(bigint) table_computation___AbsTableEltClass___local_class},
+  {(bigint) table_computation___AbsTableEltClass___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute GlobalAnalysis::_colors */
-/* 2: Attribute GlobalAnalysis::_compiled_classes */
-/* 3: Attribute GlobalAnalysis::_module */
-/* 4: Attribute GlobalAnalysis::_max_class_table_length */
-val_t NEW_GlobalAnalysis(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_GlobalAnalysis;
-  ATTR_compiling_global___GlobalAnalysis____max_class_table_length(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute TableEltClassId::_local_class */
+void INIT_ATTRIBUTES__TableEltClassId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltClassId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_compiling_global___GlobalAnalysis___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_GlobalAnalysis();
-  compiling_global___GlobalAnalysis___init(self, p0, init_table);
-  return self;
+val_t NEW_TableEltClassId(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassId;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltClassId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltClassId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClassId_table_computation___AbsTableEltClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 479;
+  fra.me.meth = LOCATE_NEW_TableEltClassId_table_computation___AbsTableEltClass___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltClassId();
+  /* ./compiling//table_computation.nit:479 */
+  INIT_ATTRIBUTES__TableEltClassId(fra.me.REG[1]);
+  table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltClassId(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_CompiledClass[57] = {
-  {(bigint) 2655 /* 0: Identity */},
-  {(bigint) 3 /* 1: CompiledClass < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 2: CompiledClass < ColorContext: superclass typecheck marker */},
-  {(bigint) 2655 /* 3: CompiledClass < CompiledClass: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltClassInitTable[61] = {
+  {(bigint) 6015 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltClassInitTable < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltClassInitTable < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltClassInitTable < TableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 5299 /* 6: TableEltClassInitTable < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 5343 /* 7: TableEltClassInitTable < TableEltClass: superclass typecheck marker */},
+  {(bigint) 6015 /* 8: TableEltClassInitTable < TableEltClassInitTable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81745,14 +239470,9 @@ const classtable_elt_t VFT_CompiledClass[57] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: CompiledClass < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltClassInitTable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81760,7 +239480,6 @@ const classtable_elt_t VFT_CompiledClass[57] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81768,54 +239487,109 @@ const classtable_elt_t VFT_CompiledClass[57] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: CompiledClass < ColorContext: superclass init_table position */},
-  {(bigint) compiling_global___ColorContext___color},
-  {(bigint) compiling_global___ColorContext___has_color},
-  {(bigint) compiling_global___ColorContext___color__eq},
-  {(bigint) 2 /* 44: CompiledClass < CompiledClass: superclass init_table position */},
-  {(bigint) compiling_global___CompiledClass___local_class},
-  {(bigint) compiling_global___CompiledClass___id},
-  {(bigint) compiling_global___CompiledClass___id__eq},
-  {(bigint) compiling_global___CompiledClass___class_table},
-  {(bigint) compiling_global___CompiledClass___class_table__eq},
-  {(bigint) compiling_global___CompiledClass___instance_table},
-  {(bigint) compiling_global___CompiledClass___instance_table__eq},
-  {(bigint) compiling_global___CompiledClass___class_layout},
-  {(bigint) compiling_global___CompiledClass___class_layout__eq},
-  {(bigint) compiling_global___CompiledClass___instance_layout},
-  {(bigint) compiling_global___CompiledClass___instance_layout__eq},
-  {(bigint) compiling_global___CompiledClass___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) 1 /* 46: TableEltClassInitTable < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltClassInitTable___compile_to_c},
+  {(bigint) 2 /* 49: TableEltClassInitTable < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableEltClass___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) compiling_global___TableEltClassInitTable___symbol},
+  {(bigint) 3 /* 56: TableEltClassInitTable < AbsTableEltClass: superclass init_table position */},
+  {(bigint) table_computation___AbsTableEltClass___local_class},
+  {(bigint) table_computation___AbsTableEltClass___init},
+  {(bigint) 4 /* 59: TableEltClassInitTable < TableEltClass: superclass init_table position */},
+  {(bigint) 5 /* 60: TableEltClassInitTable < TableEltClassInitTable: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute CompiledClass::_colors */
-/* 2: Attribute CompiledClass::_local_class */
-/* 3: Attribute CompiledClass::_id */
-/* 4: Attribute CompiledClass::_class_table */
-/* 5: Attribute CompiledClass::_instance_table */
-/* 6: Attribute CompiledClass::_class_layout */
-/* 7: Attribute CompiledClass::_instance_layout */
-val_t NEW_CompiledClass(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_CompiledClass;
-  ATTR_compiling_global___CompiledClass____id(obj) = TAG_Int((bigint)0);
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute TableEltClassInitTable::_local_class */
+void INIT_ATTRIBUTES__TableEltClassInitTable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltClassInitTable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_compiling_global___CompiledClass___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_CompiledClass();
-  compiling_global___CompiledClass___init(self, p0, init_table);
-  return self;
+val_t NEW_TableEltClassInitTable(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassInitTable;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltClassInitTable(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltClassInitTable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClassInitTable_table_computation___AbsTableEltClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 479;
+  fra.me.meth = LOCATE_NEW_TableEltClassInitTable_table_computation___AbsTableEltClass___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltClassInitTable();
+  /* ./compiling//table_computation.nit:479 */
+  INIT_ATTRIBUTES__TableEltClassInitTable(fra.me.REG[1]);
+  table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltClassInitTable(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TableElt[45] = {
-  {(bigint) 19 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableElt < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableElt < TableElt: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_TableEltClassColor[61] = {
+  {(bigint) 6019 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltClassColor < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltClassColor < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltClassColor < TableElt: superclass typecheck marker */},
+  {(bigint) 5099 /* 5: TableEltClassColor < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 5299 /* 6: TableEltClassColor < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 5343 /* 7: TableEltClassColor < TableEltClass: superclass typecheck marker */},
+  {(bigint) 6019 /* 8: TableEltClassColor < TableEltClassColor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81824,15 +239598,9 @@ const classtable_elt_t VFT_TableElt[45] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableElt < Object: superclass init_table position */},
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltClassColor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81840,7 +239608,6 @@ const classtable_elt_t VFT_TableElt[45] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81848,28 +239615,106 @@ const classtable_elt_t VFT_TableElt[45] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableElt < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableElt___compile_to_c},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) 1 /* 46: TableEltClassColor < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltClassColor___compile_to_c},
+  {(bigint) 2 /* 49: TableEltClassColor < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableEltClass___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) compiling_global___TableEltClassColor___value},
+  {(bigint) 5 /* 54: TableEltClassColor < ModuleTableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltClassColor___symbol},
+  {(bigint) 3 /* 56: TableEltClassColor < AbsTableEltClass: superclass init_table position */},
+  {(bigint) table_computation___AbsTableEltClass___local_class},
+  {(bigint) table_computation___AbsTableEltClass___init},
+  {(bigint) 4 /* 59: TableEltClassColor < TableEltClass: superclass init_table position */},
+  {(bigint) 6 /* 60: TableEltClassColor < TableEltClassColor: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_TableElt(void) {
+/* 1: Object_id */
+/* 2: Attribute TableEltClassColor::_local_class */
+void INIT_ATTRIBUTES__TableEltClassColor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltClassColor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClassColor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_TableElt;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassColor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltClassColor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltClassColor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_class");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClassColor_table_computation___AbsTableEltClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 479;
+  fra.me.meth = LOCATE_NEW_TableEltClassColor_table_computation___AbsTableEltClass___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltClassColor();
+  /* ./compiling//table_computation.nit:479 */
+  INIT_ATTRIBUTES__TableEltClassColor(fra.me.REG[1]);
+  table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltClassColor(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_LocalTableElt[48] = {
-  {(bigint) 2603 /* 0: Identity */},
-  {(bigint) 3 /* 1: LocalTableElt < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: LocalTableElt < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: LocalTableElt < LocalTableElt: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltComposite[56] = {
+  {(bigint) 5327 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltComposite < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltComposite < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltComposite < TableElt: superclass typecheck marker */},
+  {(bigint) 5327 /* 5: TableEltComposite < TableEltComposite: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81879,14 +239724,11 @@ const classtable_elt_t VFT_LocalTableElt[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: LocalTableElt < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltComposite < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81894,7 +239736,6 @@ const classtable_elt_t VFT_LocalTableElt[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81902,32 +239743,117 @@ const classtable_elt_t VFT_LocalTableElt[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: LocalTableElt < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) 2 /* 45: LocalTableElt < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___LocalTableElt___symbol},
-  {(bigint) compiling_global___LocalTableElt___value},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_LocalTableElt(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: TableEltComposite < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltComposite___compile_to_c},
+  {(bigint) 2 /* 49: TableEltComposite < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableEltComposite___is_related_to},
+  {(bigint) table_computation___TableEltComposite___length},
+  {(bigint) table_computation___TableEltComposite___item},
+  {(bigint) 3 /* 53: TableEltComposite < TableEltComposite: superclass init_table position */},
+  {(bigint) table_computation___TableEltComposite___add},
+  {(bigint) table_computation___TableEltComposite___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TableEltComposite::_table */
+/* 3: Attribute TableEltComposite::_cc */
+/* 4: Attribute TableEltComposite::_offsets */
+void INIT_ATTRIBUTES__TableEltComposite(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltComposite;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltComposite(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_LocalTableElt;
-  return OBJ2VAL(obj);
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_TableEltComposite;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltComposite(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltComposite;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_table");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___TableEltComposite____cc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_cc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_table_computation___TableEltComposite____offsets(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_offsets");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltComposite_table_computation___TableEltComposite___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 533;
+  fra.me.meth = LOCATE_NEW_TableEltComposite_table_computation___TableEltComposite___init;
+  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;
+  fra.me.REG[1] = NEW_TableEltComposite();
+  /* ./compiling//table_computation.nit:533 */
+  INIT_ATTRIBUTES__TableEltComposite(fra.me.REG[1]);
+  table_computation___TableEltComposite___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_TableEltComposite(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_TableEltPropPos[50] = {
-  {(bigint) 2687 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltPropPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltPropPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltPropPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2687 /* 4: TableEltPropPos < TableEltPropPos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltClassSelfId[54] = {
+  {(bigint) 5331 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltClassSelfId < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltClassSelfId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltClassSelfId < TableElt: superclass typecheck marker */},
+  {(bigint) 5331 /* 5: TableEltClassSelfId < TableEltClassSelfId: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81936,14 +239862,12 @@ const classtable_elt_t VFT_TableEltPropPos[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltPropPos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltClassSelfId < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -81951,7 +239875,6 @@ const classtable_elt_t VFT_TableEltPropPos[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -81959,42 +239882,85 @@ const classtable_elt_t VFT_TableEltPropPos[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltPropPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) 2 /* 45: TableEltPropPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___symbol},
-  {(bigint) compiling_global___TableEltPropPos___value},
-  {(bigint) 3 /* 48: TableEltPropPos < TableEltPropPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TableEltPropPos::_property */
-val_t NEW_TableEltPropPos(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: TableEltClassSelfId < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltClassSelfId___compile_to_c},
+  {(bigint) 2 /* 49: TableEltClassSelfId < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableEltClassSelfId___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) 3 /* 53: TableEltClassSelfId < TableEltClassSelfId: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__TableEltClassSelfId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltClassSelfId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClassSelfId(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltPropPos;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltPropPos___init(val_t p0) {
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassSelfId;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltClassSelfId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltClassSelfId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClassSelfId_table_computation___AbsTableElt___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TableEltPropPos();
-  compiling_global___TableEltPropPos___init(self, p0, init_table);
-  return self;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TableEltClassSelfId_table_computation___AbsTableElt___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_TableEltClassSelfId();
+  INIT_ATTRIBUTES__TableEltClassSelfId(fra.me.REG[0]);
+  table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  CHECKNEW_TableEltClassSelfId(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_TableEltMethPos[52] = {
-  {(bigint) 3247 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltMethPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltMethPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltMethPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2687 /* 4: TableEltMethPos < TableEltPropPos: superclass typecheck marker */},
-  {(bigint) 3247 /* 5: TableEltMethPos < TableEltMethPos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltClassObjectSize[54] = {
+  {(bigint) 5335 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltClassObjectSize < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltClassObjectSize < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltClassObjectSize < TableElt: superclass typecheck marker */},
+  {(bigint) 5335 /* 5: TableEltClassObjectSize < TableEltClassObjectSize: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82002,14 +239968,13 @@ const classtable_elt_t VFT_TableEltMethPos[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltMethPos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltClassObjectSize < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82017,7 +239982,6 @@ const classtable_elt_t VFT_TableEltMethPos[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82025,44 +239989,85 @@ const classtable_elt_t VFT_TableEltMethPos[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltMethPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltMethPos___compile_to_c},
-  {(bigint) 2 /* 45: TableEltMethPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___symbol},
-  {(bigint) compiling_global___TableEltPropPos___value},
-  {(bigint) 3 /* 48: TableEltMethPos < TableEltPropPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___init},
-  {(bigint) 4 /* 50: TableEltMethPos < TableEltMethPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltMethPos___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: TableEltClassObjectSize < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltClassObjectSize___compile_to_c},
+  {(bigint) 2 /* 49: TableEltClassObjectSize < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableEltClassObjectSize___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) 3 /* 53: TableEltClassObjectSize < TableEltClassObjectSize: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltMethPos::_property */
-val_t NEW_TableEltMethPos(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__TableEltClassObjectSize(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltClassObjectSize;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClassObjectSize(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltMethPos;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltMethPos___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltMethPos();
-  compiling_global___TableEltMethPos___init(self, p0, init_table);
-  return self;
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassObjectSize;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltClassObjectSize(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltClassObjectSize;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltClassObjectSize_table_computation___AbsTableElt___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TableEltClassObjectSize_table_computation___AbsTableElt___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_TableEltClassObjectSize();
+  INIT_ATTRIBUTES__TableEltClassObjectSize(fra.me.REG[0]);
+  table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  CHECKNEW_TableEltClassObjectSize(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_TableEltSuperPos[52] = {
-  {(bigint) 3243 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltSuperPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltSuperPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltSuperPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2687 /* 4: TableEltSuperPos < TableEltPropPos: superclass typecheck marker */},
-  {(bigint) 3243 /* 5: TableEltSuperPos < TableEltSuperPos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltObjectId[54] = {
+  {(bigint) 5323 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltObjectId < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltObjectId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltObjectId < TableElt: superclass typecheck marker */},
+  {(bigint) 5323 /* 5: TableEltObjectId < TableEltObjectId: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82070,14 +240075,13 @@ const classtable_elt_t VFT_TableEltSuperPos[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltSuperPos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltObjectId < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82085,7 +240089,6 @@ const classtable_elt_t VFT_TableEltSuperPos[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82093,44 +240096,85 @@ const classtable_elt_t VFT_TableEltSuperPos[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltSuperPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltSuperPos___compile_to_c},
-  {(bigint) 2 /* 45: TableEltSuperPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltSuperPos___symbol},
-  {(bigint) compiling_global___TableEltPropPos___value},
-  {(bigint) 3 /* 48: TableEltSuperPos < TableEltPropPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___init},
-  {(bigint) 4 /* 50: TableEltSuperPos < TableEltSuperPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltSuperPos___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: TableEltObjectId < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltObjectId___compile_to_c},
+  {(bigint) 2 /* 49: TableEltObjectId < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableEltObjectId___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) 3 /* 53: TableEltObjectId < TableEltObjectId: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltSuperPos::_property */
-val_t NEW_TableEltSuperPos(void) {
+/* 1: Object_id */
+void INIT_ATTRIBUTES__TableEltObjectId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltObjectId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltObjectId(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltSuperPos;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltSuperPos___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltSuperPos();
-  compiling_global___TableEltSuperPos___init(self, p0, init_table);
-  return self;
+  obj->vft = (classtable_elt_t*)VFT_TableEltObjectId;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltObjectId(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltObjectId;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltObjectId_table_computation___AbsTableElt___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TableEltObjectId_table_computation___AbsTableElt___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_TableEltObjectId();
+  INIT_ATTRIBUTES__TableEltObjectId(fra.me.REG[0]);
+  table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  CHECKNEW_TableEltObjectId(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_TableEltAttrPos[52] = {
-  {(bigint) 3263 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltAttrPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltAttrPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltAttrPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2687 /* 4: TableEltAttrPos < TableEltPropPos: superclass typecheck marker */},
-  {(bigint) 3263 /* 5: TableEltAttrPos < TableEltAttrPos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltVftPointer[54] = {
+  {(bigint) 5315 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: TableEltVftPointer < Object: superclass typecheck marker */},
+  {(bigint) 235 /* 3: TableEltVftPointer < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 259 /* 4: TableEltVftPointer < TableElt: superclass typecheck marker */},
+  {(bigint) 5315 /* 5: TableEltVftPointer < TableEltVftPointer: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82138,14 +240182,13 @@ const classtable_elt_t VFT_TableEltAttrPos[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltAttrPos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: TableEltVftPointer < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82153,7 +240196,6 @@ const classtable_elt_t VFT_TableEltAttrPos[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82161,43 +240203,84 @@ const classtable_elt_t VFT_TableEltAttrPos[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltAttrPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltAttrPos___compile_to_c},
-  {(bigint) 2 /* 45: TableEltAttrPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___symbol},
-  {(bigint) compiling_global___TableEltPropPos___value},
-  {(bigint) 3 /* 48: TableEltAttrPos < TableEltPropPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___init},
-  {(bigint) 4 /* 50: TableEltAttrPos < TableEltAttrPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltAttrPos___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TableEltAttrPos::_property */
-val_t NEW_TableEltAttrPos(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) 1 /* 46: TableEltVftPointer < AbsTableElt: superclass init_table position */},
+  {(bigint) table_computation___AbsTableElt___init},
+  {(bigint) compiling_global___TableEltVftPointer___compile_to_c},
+  {(bigint) 2 /* 49: TableEltVftPointer < TableElt: superclass init_table position */},
+  {(bigint) table_computation___TableEltVftPointer___is_related_to},
+  {(bigint) table_computation___TableElt___length},
+  {(bigint) table_computation___TableElt___item},
+  {(bigint) 3 /* 53: TableEltVftPointer < TableEltVftPointer: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__TableEltVftPointer(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__TableEltVftPointer;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltVftPointer(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltAttrPos;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltAttrPos___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltAttrPos();
-  compiling_global___TableEltAttrPos___init(self, p0, init_table);
-  return self;
+  obj->vft = (classtable_elt_t*)VFT_TableEltVftPointer;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_TableEltVftPointer(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_TableEltVftPointer;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TableEltVftPointer_table_computation___AbsTableElt___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_TableEltVftPointer_table_computation___AbsTableElt___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_TableEltVftPointer();
+  INIT_ATTRIBUTES__TableEltVftPointer(fra.me.REG[0]);
+  table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  CHECKNEW_TableEltVftPointer(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_TableEltClassPos[50] = {
-  {(bigint) 2691 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltClassPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2691 /* 4: TableEltClassPos < TableEltClassPos: superclass typecheck marker */},
+const classtable_elt_t VFT_ClassSorter[54] = {
+  {(bigint) 5275 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ClassSorter < Object: superclass typecheck marker */},
+  {(bigint) 231 /* 3: ClassSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 5275 /* 4: ClassSorter < ClassSorter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82206,14 +240289,13 @@ const classtable_elt_t VFT_TableEltClassPos[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassPos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ClassSorter < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82221,7 +240303,6 @@ const classtable_elt_t VFT_TableEltClassPos[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82229,42 +240310,85 @@ const classtable_elt_t VFT_TableEltClassPos[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) 2 /* 45: TableEltClassPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___LocalTableElt___symbol},
-  {(bigint) compiling_global___LocalTableElt___value},
-  {(bigint) 3 /* 48: TableEltClassPos < TableEltClassPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Attribute TableEltClassPos::_local_class */
-val_t NEW_TableEltClassPos(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ClassSorter < AbstractSorter: superclass init_table position */},
+  {(bigint) table_computation___ClassSorter___compare},
+  {(bigint) sorter___AbstractSorter___sort},
+  {(bigint) sorter___AbstractSorter___sub_sort},
+  {(bigint) sorter___AbstractSorter___quick_sort},
+  {(bigint) sorter___AbstractSorter___bubble_sort},
+  {(bigint) sorter___AbstractSorter___init},
+  {(bigint) 2 /* 52: ClassSorter < ClassSorter: superclass init_table position */},
+  {(bigint) table_computation___ClassSorter___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+void INIT_ATTRIBUTES__ClassSorter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ClassSorter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ClassSorter(void)
+{
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassPos;
+  obj->vft = (classtable_elt_t*)VFT_ClassSorter;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-val_t NEW_compiling_global___TableEltClassPos___init(val_t p0) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TableEltClassPos();
-  compiling_global___TableEltClassPos___init(self, p0, init_table);
-  return self;
+void CHECKNEW_ClassSorter(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ClassSorter;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_TableEltClassIdPos[52] = {
-  {(bigint) 3255 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassIdPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassIdPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltClassIdPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2691 /* 4: TableEltClassIdPos < TableEltClassPos: superclass typecheck marker */},
-  {(bigint) 3255 /* 5: TableEltClassIdPos < TableEltClassIdPos: superclass typecheck marker */},
+val_t NEW_ClassSorter_table_computation___ClassSorter___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 572;
+  fra.me.meth = LOCATE_NEW_ClassSorter_table_computation___ClassSorter___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ClassSorter();
+  /* ./compiling//table_computation.nit:572 */
+  INIT_ATTRIBUTES__ClassSorter(fra.me.REG[0]);
+  table_computation___ClassSorter___init(fra.me.REG[0], init_table);
+  CHECKNEW_ClassSorter(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_IRegisterSlotAllocationVisitor[63] = {
+  {(bigint) 5191 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: IRegisterSlotAllocationVisitor < Object: superclass typecheck marker */},
+  {(bigint) 163 /* 3: IRegisterSlotAllocationVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 5191 /* 4: IRegisterSlotAllocationVisitor < IRegisterSlotAllocationVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82272,14 +240396,14 @@ const classtable_elt_t VFT_TableEltClassIdPos[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassIdPos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: IRegisterSlotAllocationVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82287,7 +240411,6 @@ const classtable_elt_t VFT_TableEltClassIdPos[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82295,44 +240418,199 @@ const classtable_elt_t VFT_TableEltClassIdPos[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassIdPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) 2 /* 45: TableEltClassIdPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassIdPos___symbol},
-  {(bigint) compiling_global___TableEltClassIdPos___value},
-  {(bigint) 3 /* 48: TableEltClassIdPos < TableEltClassPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___init},
-  {(bigint) 4 /* 50: TableEltClassIdPos < TableEltClassIdPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassIdPos___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: IRegisterSlotAllocationVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write},
+  {(bigint) icode_tools___ICodeVisitor___current_icode},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine},
+  {(bigint) icode_tools___ICodeVisitor___init},
+  {(bigint) 2 /* 53: IRegisterSlotAllocationVisitor < IRegisterSlotAllocationVisitor: superclass init_table position */},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free},
+  {(bigint) icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___register},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___free},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation},
+  {(bigint) allocate_iregister_slots___IRegisterSlotAllocationVisitor___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltClassIdPos::_local_class */
-val_t NEW_TableEltClassIdPos(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassIdPos;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute IRegisterSlotAllocationVisitor::_current_icode */
+/* 3: Attribute IRegisterSlotAllocationVisitor::_pass */
+/* 4: Attribute IRegisterSlotAllocationVisitor::_live */
+/* 5: Attribute IRegisterSlotAllocationVisitor::_deferred */
+/* 6: Attribute IRegisterSlotAllocationVisitor::_current_ir */
+/* 7: Attribute IRegisterSlotAllocationVisitor::_global_slots */
+/* 8: Attribute IRegisterSlotAllocationVisitor::_std_slots */
+/* 9: Attribute IRegisterSlotAllocationVisitor::_tag_slots */
+/* 10: Attribute IRegisterSlotAllocationVisitor::_firsts */
+/* 11: Attribute IRegisterSlotAllocationVisitor::_lasts */
+void INIT_ATTRIBUTES__IRegisterSlotAllocationVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__IRegisterSlotAllocationVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_tools.nit:28 */
+  ATTR_icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./analysis//allocate_iregister_slots.nit:31 */
+  ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./analysis//allocate_iregister_slots.nit:82 */
+  ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./analysis//allocate_iregister_slots.nit:86 */
+  ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init();
+  /* ./analysis//allocate_iregister_slots.nit:172 */
+  ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init();
+  /* ./analysis//allocate_iregister_slots.nit:179 */
+  ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./analysis//allocate_iregister_slots.nit:217 */
+  ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./analysis//allocate_iregister_slots.nit:221 */
+  ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_compiling_global___TableEltClassIdPos___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltClassIdPos();
-  compiling_global___TableEltClassIdPos___init(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_TableEltClassInitTablePos[52] = {
-  {(bigint) 3251 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassInitTablePos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassInitTablePos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltClassInitTablePos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2691 /* 4: TableEltClassInitTablePos < TableEltClassPos: superclass typecheck marker */},
-  {(bigint) 3251 /* 5: TableEltClassInitTablePos < TableEltClassInitTablePos: superclass typecheck marker */},
+val_t NEW_IRegisterSlotAllocationVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_IRegisterSlotAllocationVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_IRegisterSlotAllocationVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_IRegisterSlotAllocationVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_pass");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_live");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_deferred");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_current_ir");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_global_slots");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_std_slots");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tag_slots");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_firsts");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_lasts");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_IRegisterSlotAllocationVisitor_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 235;
+  fra.me.meth = LOCATE_NEW_IRegisterSlotAllocationVisitor_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init;
+  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;
+  fra.me.REG[1] = NEW_IRegisterSlotAllocationVisitor();
+  /* ./analysis//allocate_iregister_slots.nit:235 */
+  INIT_ATTRIBUTES__IRegisterSlotAllocationVisitor(fra.me.REG[1]);
+  allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_IRegisterSlotAllocationVisitor(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_SlotGroup[49] = {
+  {(bigint) 35 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: SlotGroup < Object: superclass typecheck marker */},
+  {(bigint) 35 /* 3: SlotGroup < SlotGroup: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82340,14 +240618,15 @@ const classtable_elt_t VFT_TableEltClassInitTablePos[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassInitTablePos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: SlotGroup < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82355,7 +240634,6 @@ const classtable_elt_t VFT_TableEltClassInitTablePos[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82363,44 +240641,107 @@ const classtable_elt_t VFT_TableEltClassInitTablePos[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassInitTablePos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltClassInitTablePos___compile_to_c},
-  {(bigint) 2 /* 45: TableEltClassInitTablePos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassInitTablePos___symbol},
-  {(bigint) compiling_global___TableEltClassInitTablePos___value},
-  {(bigint) 3 /* 48: TableEltClassInitTablePos < TableEltClassPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___init},
-  {(bigint) 4 /* 50: TableEltClassInitTablePos < TableEltClassInitTablePos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassInitTablePos___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: SlotGroup < SlotGroup: superclass init_table position */},
+  {(bigint) allocate_iregister_slots___SlotGroup___register},
+  {(bigint) allocate_iregister_slots___SlotGroup___free},
+  {(bigint) allocate_iregister_slots___SlotGroup___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltClassInitTablePos::_local_class */
-val_t NEW_TableEltClassInitTablePos(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassInitTablePos;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltClassInitTablePos___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltClassInitTablePos();
-  compiling_global___TableEltClassInitTablePos___init(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute SlotGroup::_free */
+/* 3: Attribute SlotGroup::_next_index */
+void INIT_ATTRIBUTES__SlotGroup(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__SlotGroup;
+  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;
+  fra.me.REG[1] = NEW_List_list___List___init();
+  /* ./analysis//allocate_iregister_slots.nit:244 */
+  ATTR_allocate_iregister_slots___SlotGroup____free(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./analysis//allocate_iregister_slots.nit:247 */
+  ATTR_allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_TableEltClassColorPos[52] = {
-  {(bigint) 3259 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassColorPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassColorPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltClassColorPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2691 /* 4: TableEltClassColorPos < TableEltClassPos: superclass typecheck marker */},
-  {(bigint) 3259 /* 5: TableEltClassColorPos < TableEltClassColorPos: superclass typecheck marker */},
+val_t NEW_SlotGroup(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_SlotGroup;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_SlotGroup(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_SlotGroup;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____free(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_free");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_next_index");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_SlotGroup();
+  INIT_ATTRIBUTES__SlotGroup(fra.me.REG[0]);
+  allocate_iregister_slots___SlotGroup___init(fra.me.REG[0], init_table);
+  CHECKNEW_SlotGroup(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_ICodeDumper[56] = {
+  {(bigint) 171 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: ICodeDumper < Object: superclass typecheck marker */},
+  {(bigint) 171 /* 3: ICodeDumper < ICodeDumper: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82408,14 +240749,15 @@ const classtable_elt_t VFT_TableEltClassColorPos[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassColorPos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: ICodeDumper < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82423,7 +240765,6 @@ const classtable_elt_t VFT_TableEltClassColorPos[52] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82431,43 +240772,159 @@ const classtable_elt_t VFT_TableEltClassColorPos[52] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassColorPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltClassColorPos___compile_to_c},
-  {(bigint) 2 /* 45: TableEltClassColorPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassColorPos___symbol},
-  {(bigint) compiling_global___TableEltClassColorPos___value},
-  {(bigint) 3 /* 48: TableEltClassColorPos < TableEltClassPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___init},
-  {(bigint) 4 /* 50: TableEltClassColorPos < TableEltClassColorPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassColorPos___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: ICodeDumper < ICodeDumper: superclass init_table position */},
+  {(bigint) icode_dump___ICodeDumper___register},
+  {(bigint) icode_dump___ICodeDumper___register_all},
+  {(bigint) icode_dump___ICodeDumper___closdecl},
+  {(bigint) icode_dump___ICodeDumper___lab},
+  {(bigint) icode_dump___ICodeDumper___line},
+  {(bigint) icode_dump___ICodeDumper___has_lab},
+  {(bigint) icode_dump___ICodeDumper___write},
+  {(bigint) icode_dump___ICodeDumper___indent},
+  {(bigint) icode_dump___ICodeDumper___unindent},
+  {(bigint) icode_dump___ICodeDumper___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltClassColorPos::_local_class */
-val_t NEW_TableEltClassColorPos(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassColorPos;
-  return OBJ2VAL(obj);
+/* 1: Object_id */
+/* 2: Attribute ICodeDumper::_ids */
+/* 3: Attribute ICodeDumper::_last_value */
+/* 4: Attribute ICodeDumper::_last_clos */
+/* 5: Attribute ICodeDumper::_last_label */
+/* 6: Attribute ICodeDumper::_last_line */
+/* 7: Attribute ICodeDumper::_indent_level */
+void INIT_ATTRIBUTES__ICodeDumper(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__ICodeDumper;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./analysis//icode_dump.nit:68 */
+  ATTR_icode_dump___ICodeDumper____ids(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./analysis//icode_dump.nit:69 */
+  ATTR_icode_dump___ICodeDumper____last_value(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./analysis//icode_dump.nit:111 */
+  ATTR_icode_dump___ICodeDumper____last_clos(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./analysis//icode_dump.nit:127 */
+  ATTR_icode_dump___ICodeDumper____last_label(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./analysis//icode_dump.nit:142 */
+  ATTR_icode_dump___ICodeDumper____last_line(fra.me.REG[0]) = REGB0;
+  REGB0 = TAG_Int(0);
+  /* ./analysis//icode_dump.nit:171 */
+  ATTR_icode_dump___ICodeDumper____indent_level(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
 }
-val_t NEW_compiling_global___TableEltClassColorPos___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltClassColorPos();
-  compiling_global___TableEltClassColorPos___init(self, p0, init_table);
-  return self;
+val_t NEW_ICodeDumper(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_ICodeDumper;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_ICodeDumper(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_ICodeDumper;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_ids");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_dump___ICodeDumper____last_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_value");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_dump___ICodeDumper____last_clos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_clos");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_dump___ICodeDumper____last_label(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_label");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_dump___ICodeDumper____last_line(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_line");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_icode_dump___ICodeDumper____indent_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_indent_level");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ICodeDumper_icode_dump___ICodeDumper___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ICodeDumper_icode_dump___ICodeDumper___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_ICodeDumper();
+  INIT_ATTRIBUTES__ICodeDumper(fra.me.REG[0]);
+  icode_dump___ICodeDumper___init(fra.me.REG[0], init_table);
+  CHECKNEW_ICodeDumper(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_TableEltBaseAttrPos[50] = {
-  {(bigint) 2695 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltBaseAttrPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltBaseAttrPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: TableEltBaseAttrPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 2695 /* 4: TableEltBaseAttrPos < TableEltBaseAttrPos: superclass typecheck marker */},
+const classtable_elt_t VFT_InlineMethodVisitor[56] = {
+  {(bigint) 5183 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: InlineMethodVisitor < Object: superclass typecheck marker */},
+  {(bigint) 163 /* 3: InlineMethodVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 5183 /* 4: InlineMethodVisitor < InlineMethodVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82476,14 +240933,13 @@ const classtable_elt_t VFT_TableEltBaseAttrPos[50] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltBaseAttrPos < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: InlineMethodVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82491,7 +240947,6 @@ const classtable_elt_t VFT_TableEltBaseAttrPos[50] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82499,40 +240954,128 @@ const classtable_elt_t VFT_TableEltBaseAttrPos[50] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltBaseAttrPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltBaseAttrPos___compile_to_c},
-  {(bigint) 2 /* 45: TableEltBaseAttrPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltBaseAttrPos___symbol},
-  {(bigint) compiling_global___TableEltBaseAttrPos___value},
-  {(bigint) 3 /* 48: TableEltBaseAttrPos < TableEltBaseAttrPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltBaseAttrPos___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: InlineMethodVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) icode_tools___ICodeVisitor___visit_iregister_read},
+  {(bigint) icode_tools___ICodeVisitor___visit_iregister_write},
+  {(bigint) icode_tools___ICodeVisitor___current_icode},
+  {(bigint) inline_methods___InlineMethodVisitor___visit_icode},
+  {(bigint) icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) icode_tools___ICodeVisitor___init},
+  {(bigint) 2 /* 53: InlineMethodVisitor < InlineMethodVisitor: superclass init_table position */},
+  {(bigint) icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) inline_methods___InlineMethodVisitor___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltBaseAttrPos::_local_class */
-val_t NEW_TableEltBaseAttrPos(void) {
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltBaseAttrPos;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltBaseAttrPos___init(val_t p0) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TableEltBaseAttrPos();
-  compiling_global___TableEltBaseAttrPos___init(self, p0, init_table);
-  return self;
+/* 1: Object_id */
+/* 2: Attribute InlineMethodVisitor::_current_icode */
+/* 3: Attribute InlineMethodVisitor::_pass */
+/* 4: Attribute InlineMethodVisitor::_icb */
+/* 5: Attribute InlineMethodVisitor::_current_inlining */
+void INIT_ATTRIBUTES__InlineMethodVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__InlineMethodVisitor;
+  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;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./icode//icode_tools.nit:28 */
+  ATTR_icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./analysis//inline_methods.nit:24 */
+  ATTR_inline_methods___InlineMethodVisitor____pass(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
 }
-const classtable_elt_t VFT_TableEltComposite[48] = {
-  {(bigint) 191 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltComposite < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltComposite < TableElt: superclass typecheck marker */},
-  {(bigint) 191 /* 3: TableEltComposite < TableEltComposite: superclass typecheck marker */},
+val_t NEW_InlineMethodVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_InlineMethodVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_InlineMethodVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_InlineMethodVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_inline_methods___InlineMethodVisitor____pass(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_pass");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inline_methods___InlineMethodVisitor____icb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_icb");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_inline_methods___InlineMethodVisitor____current_inlining(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_current_inlining");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_InlineMethodVisitor_inline_methods___InlineMethodVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 67;
+  fra.me.meth = LOCATE_NEW_InlineMethodVisitor_inline_methods___InlineMethodVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_InlineMethodVisitor();
+  /* ./analysis//inline_methods.nit:67 */
+  INIT_ATTRIBUTES__InlineMethodVisitor(fra.me.REG[2]);
+  inline_methods___InlineMethodVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_InlineMethodVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_CompilerVisitor[62] = {
+  {(bigint) 207 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: CompilerVisitor < Object: superclass typecheck marker */},
+  {(bigint) 207 /* 3: CompilerVisitor < CompilerVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82542,14 +241085,13 @@ const classtable_elt_t VFT_TableEltComposite[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltComposite < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: CompilerVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82557,7 +241099,6 @@ const classtable_elt_t VFT_TableEltComposite[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82565,40 +241106,163 @@ const classtable_elt_t VFT_TableEltComposite[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) compiling_base___CompilerVisitor___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltComposite < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltComposite___is_related_to},
-  {(bigint) compiling_global___TableEltComposite___length},
-  {(bigint) compiling_global___TableEltComposite___item},
-  {(bigint) compiling_global___TableEltComposite___compile_to_c},
-  {(bigint) 2 /* 45: TableEltComposite < TableEltComposite: superclass init_table position */},
-  {(bigint) compiling_global___TableEltComposite___add},
-  {(bigint) compiling_global___TableEltComposite___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: CompilerVisitor < CompilerVisitor: superclass init_table position */},
+  {(bigint) compiling_base___CompilerVisitor___add_decl},
+  {(bigint) compiling_base___CompilerVisitor___add_instr},
+  {(bigint) compiling_base___CompilerVisitor___add_line_to},
+  {(bigint) compiling_base___CompilerVisitor___add_assignment},
+  {(bigint) compiling_base___CompilerVisitor___out_contexts},
+  {(bigint) compiling_base___CompilerVisitor___out_contexts__eq},
+  {(bigint) compiling_base___CompilerVisitor___new_number},
+  {(bigint) compiling_base___CompilerVisitor___indent},
+  {(bigint) compiling_base___CompilerVisitor___unindent},
+  {(bigint) compiling_base___CompilerVisitor___module},
+  {(bigint) compiling_base___CompilerVisitor___ctx},
+  {(bigint) compiling_base___CompilerVisitor___ctx__eq},
+  {(bigint) compiling_base___CompilerVisitor___indent_level},
+  {(bigint) compiling_base___CompilerVisitor___indent_level__eq},
+  {(bigint) compiling_base___CompilerVisitor___tc},
+  {(bigint) compiling_base___CompilerVisitor___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltComposite::_table */
-/* 2: Attribute TableEltComposite::_cc */
-/* 3: Attribute TableEltComposite::_offsets */
-val_t NEW_TableEltComposite(void) {
+/* 1: Object_id */
+/* 2: Attribute CompilerVisitor::_out_contexts */
+/* 3: Attribute CompilerVisitor::_number_cpt */
+/* 4: Attribute CompilerVisitor::_module */
+/* 5: Attribute CompilerVisitor::_ctx */
+/* 6: Attribute CompilerVisitor::_indent_level */
+/* 7: Attribute CompilerVisitor::_tc */
+void INIT_ATTRIBUTES__CompilerVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__CompilerVisitor;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//compiling_base.nit:74 */
+  ATTR_compiling_base___CompilerVisitor____out_contexts(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./compiling//compiling_base.nit:84 */
+  ATTR_compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_CContext_compiling_base___CContext___init();
+  /* ./compiling//compiling_base.nit:110 */
+  ATTR_compiling_base___CompilerVisitor____ctx(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./compiling//compiling_base.nit:113 */
+  ATTR_compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CompilerVisitor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_TableEltComposite;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltComposite___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_TableEltComposite();
-  compiling_global___TableEltComposite___init(self, p0, init_table);
-  return self;
-}
-const classtable_elt_t VFT_TableEltClassSelfId[47] = {
-  {(bigint) 195 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassSelfId < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassSelfId < TableElt: superclass typecheck marker */},
-  {(bigint) 195 /* 3: TableEltClassSelfId < TableEltClassSelfId: superclass typecheck marker */},
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_CompilerVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_CompilerVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_CompilerVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____out_contexts(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_out_contexts");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_number_cpt");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____ctx(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_ctx");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____indent_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_indent_level");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 119;
+  fra.me.meth = LOCATE_NEW_CompilerVisitor_compiling_base___CompilerVisitor___init;
+  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.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_CompilerVisitor();
+  /* ./compiling//compiling_base.nit:119 */
+  INIT_ATTRIBUTES__CompilerVisitor(fra.me.REG[2]);
+  compiling_base___CompilerVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_CompilerVisitor(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_CContext[51] = {
+  {(bigint) 223 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: CContext < Object: superclass typecheck marker */},
+  {(bigint) 223 /* 3: CContext < CContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82608,14 +241272,13 @@ const classtable_elt_t VFT_TableEltClassSelfId[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassSelfId < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: CContext < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82623,7 +241286,6 @@ const classtable_elt_t VFT_TableEltClassSelfId[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82631,36 +241293,109 @@ const classtable_elt_t VFT_TableEltClassSelfId[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassSelfId < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassSelfId___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltClassSelfId___compile_to_c},
-  {(bigint) 2 /* 45: TableEltClassSelfId < TableEltClassSelfId: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassSelfId___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: CContext < CContext: superclass init_table position */},
+  {(bigint) compiling_base___CContext___decls},
+  {(bigint) compiling_base___CContext___instrs},
+  {(bigint) compiling_base___CContext___append},
+  {(bigint) compiling_base___CContext___merge},
+  {(bigint) compiling_base___CContext___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_TableEltClassSelfId(void) {
+/* 1: Object_id */
+/* 2: Attribute CContext::_decls */
+/* 3: Attribute CContext::_instrs */
+void INIT_ATTRIBUTES__CContext(val_t p0){
+  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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__CContext;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//compiling_base.nit:130 */
+  ATTR_compiling_base___CContext____decls(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//compiling_base.nit:131 */
+  ATTR_compiling_base___CContext____instrs(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CContext(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassSelfId;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltClassSelfId___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_TableEltClassSelfId();
-  compiling_global___TableEltClassSelfId___init(self, init_table);
-  return self;
-}
-const classtable_elt_t VFT_TableEltVftPointer[47] = {
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_CContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_CContext(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_CContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_compiling_base___CContext____decls(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_decls");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CContext____instrs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_instrs");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_CContext_compiling_base___CContext___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 145;
+  fra.me.meth = LOCATE_NEW_CContext_compiling_base___CContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = NEW_CContext();
+  /* ./compiling//compiling_base.nit:145 */
+  INIT_ATTRIBUTES__CContext(fra.me.REG[0]);
+  compiling_base___CContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_CContext(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_I2CCompilerVisitor[74] = {
   {(bigint) 187 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltVftPointer < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltVftPointer < TableElt: superclass typecheck marker */},
-  {(bigint) 187 /* 3: TableEltVftPointer < TableEltVftPointer: superclass typecheck marker */},
+  {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: I2CCompilerVisitor < Object: superclass typecheck marker */},
+  {(bigint) 187 /* 3: I2CCompilerVisitor < I2CCompilerVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82670,14 +241405,13 @@ const classtable_elt_t VFT_TableEltVftPointer[47] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltVftPointer < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: I2CCompilerVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82685,7 +241419,6 @@ const classtable_elt_t VFT_TableEltVftPointer[47] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82693,36 +241426,253 @@ const classtable_elt_t VFT_TableEltVftPointer[47] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltVftPointer < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltVftPointer___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltVftPointer___compile_to_c},
-  {(bigint) 2 /* 45: TableEltVftPointer < TableEltVftPointer: superclass init_table position */},
-  {(bigint) compiling_global___TableEltVftPointer___init},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: I2CCompilerVisitor < I2CCompilerVisitor: superclass init_table position */},
+  {(bigint) compiling_icode___I2CCompilerVisitor___register},
+  {(bigint) compiling_icode___I2CCompilerVisitor___registers},
+  {(bigint) compiling_icode___I2CCompilerVisitor___new_number},
+  {(bigint) compiling_icode___I2CCompilerVisitor___lab},
+  {(bigint) compiling_icode___I2CCompilerVisitor___closures},
+  {(bigint) compiling_icode___I2CCompilerVisitor___clostypes},
+  {(bigint) compiling_icode___I2CCompilerVisitor___local_labels},
+  {(bigint) compiling_icode___I2CCompilerVisitor___local_labels__eq},
+  {(bigint) compiling_icode___I2CCompilerVisitor___escaped_labels},
+  {(bigint) compiling_icode___I2CCompilerVisitor___escaped_labels__eq},
+  {(bigint) compiling_icode___I2CCompilerVisitor___register_escape_label},
+  {(bigint) compiling_icode___I2CCompilerVisitor___add_label},
+  {(bigint) compiling_icode___I2CCompilerVisitor___add_goto},
+  {(bigint) compiling_icode___I2CCompilerVisitor___marks_to_seq},
+  {(bigint) compiling_icode___I2CCompilerVisitor___closure},
+  {(bigint) compiling_icode___I2CCompilerVisitor___closure__eq},
+  {(bigint) compiling_icode___I2CCompilerVisitor___visitor},
+  {(bigint) compiling_icode___I2CCompilerVisitor___iroutine},
+  {(bigint) compiling_icode___I2CCompilerVisitor___return_label},
+  {(bigint) compiling_icode___I2CCompilerVisitor___return_label__eq},
+  {(bigint) compiling_icode___I2CCompilerVisitor___add_decl},
+  {(bigint) compiling_icode___I2CCompilerVisitor___add_instr},
+  {(bigint) compiling_icode___I2CCompilerVisitor___indent},
+  {(bigint) compiling_icode___I2CCompilerVisitor___unindent},
+  {(bigint) compiling_icode___I2CCompilerVisitor___add_assignment},
+  {(bigint) compiling_icode___I2CCompilerVisitor___add_location},
+  {(bigint) compiling_icode___I2CCompilerVisitor___basecname},
+  {(bigint) compiling_icode___I2CCompilerVisitor___init},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_TableEltVftPointer(void) {
+/* 1: Object_id */
+/* 2: Attribute I2CCompilerVisitor::_ids */
+/* 3: Attribute I2CCompilerVisitor::_ids2 */
+/* 4: Attribute I2CCompilerVisitor::_last_number */
+/* 5: Attribute I2CCompilerVisitor::_closures */
+/* 6: Attribute I2CCompilerVisitor::_clostypes */
+/* 7: Attribute I2CCompilerVisitor::_local_labels */
+/* 8: Attribute I2CCompilerVisitor::_escaped_labels */
+/* 9: Attribute I2CCompilerVisitor::_marks_to_seq */
+/* 10: Attribute I2CCompilerVisitor::_closure */
+/* 11: Attribute I2CCompilerVisitor::_visitor */
+/* 12: Attribute I2CCompilerVisitor::_iroutine */
+/* 13: Attribute I2CCompilerVisitor::_return_label */
+/* 14: Attribute I2CCompilerVisitor::_last_location */
+/* 15: Attribute I2CCompilerVisitor::_next_location */
+/* 16: Attribute I2CCompilerVisitor::_basecname */
+void INIT_ATTRIBUTES__I2CCompilerVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__I2CCompilerVisitor;
+  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;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_icode.nit:26 */
+  ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_icode.nit:28 */
+  ATTR_compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./compiling//compiling_icode.nit:76 */
+  ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_icode.nit:96 */
+  ATTR_compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_icode.nit:99 */
+  ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashSet_hash_collection___HashSet___init();
+  /* ./compiling//compiling_icode.nit:102 */
+  ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_icode.nit:105 */
+  ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
+  /* ./compiling//compiling_icode.nit:142 */
+  ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(false);
+  /* ./compiling//compiling_icode.nit:145 */
+  ATTR_compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_icode.nit:154 */
+  ATTR_compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_icode.nit:187 */
+  ATTR_compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
+  fra.me.REG[1] = NIT_NULL;
+  /* ./compiling//compiling_icode.nit:188 */
+  ATTR_compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_I2CCompilerVisitor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_TableEltVftPointer;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___TableEltVftPointer___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_TableEltVftPointer();
-  compiling_global___TableEltVftPointer___init(self, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 17);
+  obj->vft = (classtable_elt_t*)VFT_I2CCompilerVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_I2CCompilerVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_I2CCompilerVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_ids");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_ids2");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_last_number");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closures");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_clostypes");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_local_labels");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_escaped_labels");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_marks_to_seq");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_closure");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_visitor");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_iroutine");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_basecname");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_I2CCompilerVisitor_compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 207;
+  fra.me.meth = LOCATE_NEW_I2CCompilerVisitor_compiling_icode___I2CCompilerVisitor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_I2CCompilerVisitor();
+  /* ./compiling//compiling_icode.nit:207 */
+  INIT_ATTRIBUTES__I2CCompilerVisitor(fra.me.REG[3]);
+  compiling_icode___I2CCompilerVisitor___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_I2CCompilerVisitor(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_ClassSorter[48] = {
-  {(bigint) 2663 /* 0: Identity */},
-  {(bigint) 3 /* 1: ClassSorter < Object: superclass typecheck marker */},
-  {(bigint) 175 /* 2: ClassSorter < AbstractSorter: superclass typecheck marker */},
-  {(bigint) 2663 /* 3: ClassSorter < ClassSorter: superclass typecheck marker */},
+const classtable_elt_t VFT_GlobalCompilerVisitor[65] = {
+  {(bigint) 5231 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) 3 /* 2: GlobalCompilerVisitor < Object: superclass typecheck marker */},
+  {(bigint) 207 /* 3: GlobalCompilerVisitor < CompilerVisitor: superclass typecheck marker */},
+  {(bigint) 5231 /* 4: GlobalCompilerVisitor < GlobalCompilerVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82732,14 +241682,12 @@ const classtable_elt_t VFT_ClassSorter[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) hash___Object___hash},
-  {(bigint) string___Object___to_s},
-  {(bigint) string___Object___inspect},
-  {(bigint) string___Object___inspect_head},
-  {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: ClassSorter < Object: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) time___Object___get_time},
+  {(bigint) 0 /* 19: GlobalCompilerVisitor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -82747,7 +241695,6 @@ const classtable_elt_t VFT_ClassSorter[48] = {
   {(bigint) kernel___Object___output},
   {(bigint) kernel___Object___exit},
   {(bigint) kernel___Object___sys},
-  {(bigint) time___Object___get_time},
   {(bigint) file___Object___printn},
   {(bigint) file___Object___print},
   {(bigint) file___Object___getc},
@@ -82755,37 +241702,177 @@ const classtable_elt_t VFT_ClassSorter[48] = {
   {(bigint) file___Object___stdin},
   {(bigint) file___Object___stdout},
   {(bigint) file___Object___stderr},
+  {(bigint) compiling_base___CompilerVisitor___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) hash___Object___hash},
   {(bigint) math___Object___atan2},
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: ClassSorter < AbstractSorter: superclass init_table position */},
-  {(bigint) compiling_global___ClassSorter___compare},
-  {(bigint) sorter___AbstractSorter___sort},
-  {(bigint) sorter___AbstractSorter___sub_sort},
-  {(bigint) sorter___AbstractSorter___quick_sort},
-  {(bigint) sorter___AbstractSorter___bubble_sort},
-  {(bigint) 2 /* 46: ClassSorter < ClassSorter: superclass init_table position */},
-  {(bigint) compiling_global___ClassSorter___init},
-};
-/* 0: Pointer to the classtable */
-val_t NEW_ClassSorter(void) {
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 45: GlobalCompilerVisitor < CompilerVisitor: superclass init_table position */},
+  {(bigint) compiling_base___CompilerVisitor___add_decl},
+  {(bigint) compiling_base___CompilerVisitor___add_instr},
+  {(bigint) compiling_base___CompilerVisitor___add_line_to},
+  {(bigint) compiling_base___CompilerVisitor___add_assignment},
+  {(bigint) compiling_base___CompilerVisitor___out_contexts},
+  {(bigint) compiling_base___CompilerVisitor___out_contexts__eq},
+  {(bigint) compiling_base___CompilerVisitor___new_number},
+  {(bigint) compiling_base___CompilerVisitor___indent},
+  {(bigint) compiling_base___CompilerVisitor___unindent},
+  {(bigint) compiling_base___CompilerVisitor___module},
+  {(bigint) compiling_base___CompilerVisitor___ctx},
+  {(bigint) compiling_base___CompilerVisitor___ctx__eq},
+  {(bigint) compiling_base___CompilerVisitor___indent_level},
+  {(bigint) compiling_base___CompilerVisitor___indent_level__eq},
+  {(bigint) compiling_base___CompilerVisitor___tc},
+  {(bigint) compiling_base___CompilerVisitor___init},
+  {(bigint) 2 /* 62: GlobalCompilerVisitor < GlobalCompilerVisitor: superclass init_table position */},
+  {(bigint) compiling_global___GlobalCompilerVisitor___program},
+  {(bigint) compiling_global___GlobalCompilerVisitor___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute GlobalCompilerVisitor::_out_contexts */
+/* 3: Attribute GlobalCompilerVisitor::_number_cpt */
+/* 4: Attribute GlobalCompilerVisitor::_module */
+/* 5: Attribute GlobalCompilerVisitor::_ctx */
+/* 6: Attribute GlobalCompilerVisitor::_indent_level */
+/* 7: Attribute GlobalCompilerVisitor::_tc */
+/* 8: Attribute GlobalCompilerVisitor::_program */
+void INIT_ATTRIBUTES__GlobalCompilerVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__GlobalCompilerVisitor;
+  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;
+  fra.me.REG[1] = NEW_Array_array___Array___init();
+  /* ./compiling//compiling_base.nit:74 */
+  ATTR_compiling_base___CompilerVisitor____out_contexts(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./compiling//compiling_base.nit:84 */
+  ATTR_compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0]) = REGB0;
+  fra.me.REG[1] = NEW_CContext_compiling_base___CContext___init();
+  /* ./compiling//compiling_base.nit:110 */
+  ATTR_compiling_base___CompilerVisitor____ctx(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  /* ./compiling//compiling_base.nit:113 */
+  ATTR_compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_GlobalCompilerVisitor(void)
+{
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_ClassSorter;
-  return OBJ2VAL(obj);
-}
-val_t NEW_compiling_global___ClassSorter___init() {
-  int init_table[3] = {0, 0, 0};
-  val_t self = NEW_ClassSorter();
-  compiling_global___ClassSorter___init(self, init_table);
-  return self;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_GlobalCompilerVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_GlobalCompilerVisitor(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_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_GlobalCompilerVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____out_contexts(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_out_contexts");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_number_cpt");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____module(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_module");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____ctx(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_ctx");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____indent_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_indent_level");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_base___CompilerVisitor____tc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_tc");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling_global___GlobalCompilerVisitor____program(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    fprintf(stderr, "Uninitialized attribute %s", "_program");
+    fprintf(stderr, " (%s)\n", LOCATE_nitc);
+    nit_exit(1);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_GlobalCompilerVisitor_compiling_global___GlobalCompilerVisitor___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 27;
+  fra.me.meth = LOCATE_NEW_GlobalCompilerVisitor_compiling_global___GlobalCompilerVisitor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = NEW_GlobalCompilerVisitor();
+  /* ./compiling//compiling_global.nit:27 */
+  INIT_ATTRIBUTES__GlobalCompilerVisitor(fra.me.REG[3]);
+  compiling_global___GlobalCompilerVisitor___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_GlobalCompilerVisitor(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
 }
 classtable_t TAG2VFT[4] = {NULL, (const classtable_t)VFT_Int, (const classtable_t)VFT_Char, (const classtable_t)VFT_Bool};
 int main(int argc, char **argv) {
   prepare_signals();
   glob_argc = argc; glob_argv = argv;
   G_sys = NEW_Sys();
+  register_static_object(&G_sys);
   nitc___Sys___main(G_sys);
   return 0;
 }